)]}'
{"rally/cli/commands/show.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"9b480dd4ad3b5e4f853601735d305a4f17ca7c95","unresolved":false,"context_lines":[{"line_number":71,"context_line":"            self._print_header(\"Images\", credential_dict)"},{"line_number":72,"context_line":"            table_rows \u003d []"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"            clients \u003d osclients.Clients(objects.Credential(**credential_dict))"},{"line_number":75,"context_line":"            glance_client \u003d clients.glance()"},{"line_number":76,"context_line":"            for image in glance_client.images.list():"},{"line_number":77,"context_line":"                data \u003d [image.id, image.name, image.size]"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a061dce_ba4b0d5f","side":"PARENT","line":74,"updated":"2016-04-08 07:40:33.000000000","message":"can we rename credential_dict to credentials over the code as well","commit_id":"de64f727633612ca3a6f90fe19347004ddd7043d"}],"rally/common/objects/deploy.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"fd333b4c73e7a5fc9b2bc332b924c397d79287cc","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def update_credentials(self, credentials):"},{"line_number":59,"context_line":"        self._update({"},{"line_number":60,"context_line":"            \"admin\": credentials.get(\"admin\", {}),"},{"line_number":61,"context_line":"            \"users\": credentials.get(\"users\", [])"},{"line_number":62,"context_line":"        })"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_786c1308","line":60,"updated":"2016-03-21 08:57:53.000000000","message":"This binds us to OpenStack. What if we update credentials that does not refer to OpenStack (for example if credentials is {\"foo\": \"bar\"}) ?\nShould we set \"admin\" and \"users\" in all cases?","commit_id":"5d75191971b5a10f7eeba62d58998f4a6069b2e2"},{"author":{"_account_id":19267,"name":"Rodion Promyshlennikov","email":"rpromyshlennikov@mirantis.com","username":"rodion"},"change_message_id":"14f0217892aadd10156a26c97d4c54a7cd015b4a","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def update_credentials(self, credentials):"},{"line_number":59,"context_line":"        self._update({"},{"line_number":60,"context_line":"            \"admin\": credentials.get(\"admin\", {}),"},{"line_number":61,"context_line":"            \"users\": credentials.get(\"users\", [])"},{"line_number":62,"context_line":"        })"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_8d2091f9","line":60,"in_reply_to":"1af94dfe_786c1308","updated":"2016-03-24 18:23:42.000000000","message":"Currently, we have adapters in rally.common.db.sqlalchemy.api.Connection#deployment_update and \nrally.common.db.sqlalchemy.api.Connection#deployment_create\nmethods.\nLet\u0027s change it when we will be done with multi-credentials deployment support.","commit_id":"5d75191971b5a10f7eeba62d58998f4a6069b2e2"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"9b480dd4ad3b5e4f853601735d305a4f17ca7c95","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    def update_config(self, config):"},{"line_number":56,"context_line":"        self._update({\"config\": config})"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def update_credentials(self, credentials):"},{"line_number":59,"context_line":"        self._update({"},{"line_number":60,"context_line":"            \"admin\": credentials.get(\"admin\", {}),"},{"line_number":61,"context_line":"            \"users\": credentials.get(\"users\", [])"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a061dce_1ac67949","line":58,"updated":"2016-04-08 07:40:33.000000000","message":"Okay this looks like a huge problem. \n\nThis method should accept (for now) instance of subclass of Credentials. \n\nAnd it should run actually: \n\n   self._update({\"credentials\": [credentials.to_dict()]})\n\nWhich will store data of credentials of OpenStack including \"admin\" and \"users\". \n\nHowever in OSclients we are using same class Credentials that contains credentials only for admin or one of users.\n\n\nSeems like that we need to create a special structure for OpenStackUser which will be used by openstack deployment plugins, openstack credentials and osclients.  \n\n(put OpenStackUser in the same module where you are putting OpenStackCredentials)\n\nBy the way it\u0027s time to switch to the new DB model, as you are replacing whole method here.","commit_id":"30ff7be3375c637c558dad521559057fe0d1553f"}],"rally/deployment/engines/devstack.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"1cfcce7b5ebdc6cfe1a04c14b423368a453b6a82","unresolved":false,"context_lines":[{"line_number":125,"context_line":"                                    stdin\u003dlocal_conf)"},{"line_number":126,"context_line":"            devstack_server.ssh.run(\"~/devstack/stack.sh\")"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        admin_credential \u003d dict("},{"line_number":129,"context_line":"            auth_url\u003d\"http://%s:5000/v2.0/\" % self.servers[0].host,"},{"line_number":130,"context_line":"            username\u003d\"admin\","},{"line_number":131,"context_line":"            password\u003dself.local_conf[\"ADMIN_PASSWORD\"],"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a061dce_c1056c46","line":128,"updated":"2016-04-07 13:19:38.000000000","message":"Don\u0027t use dict(), use {}.","commit_id":"30ff7be3375c637c558dad521559057fe0d1553f"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"9b480dd4ad3b5e4f853601735d305a4f17ca7c95","unresolved":false,"context_lines":[{"line_number":125,"context_line":"                                    stdin\u003dlocal_conf)"},{"line_number":126,"context_line":"            devstack_server.ssh.run(\"~/devstack/stack.sh\")"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        admin_credential \u003d dict("},{"line_number":129,"context_line":"            auth_url\u003d\"http://%s:5000/v2.0/\" % self.servers[0].host,"},{"line_number":130,"context_line":"            username\u003d\"admin\","},{"line_number":131,"context_line":"            password\u003dself.local_conf[\"ADMIN_PASSWORD\"],"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a061dce_9a3449fc","line":128,"in_reply_to":"9a061dce_c1056c46","updated":"2016-04-08 07:40:33.000000000","message":"So as i said in previous module, you should actually use something like objects.Credential (let\u0027s rename it just to OpenStackUser) otherwise we will create a mess.","commit_id":"30ff7be3375c637c558dad521559057fe0d1553f"}],"rally/deployment/engines/existing.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"1cfcce7b5ebdc6cfe1a04c14b423368a453b6a82","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    }"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def _create_credential(self, common, user, permission):"},{"line_number":123,"context_line":"        return dict("},{"line_number":124,"context_line":"            auth_url\u003dcommon[\"auth_url\"],"},{"line_number":125,"context_line":"            username\u003duser[\"username\"],"},{"line_number":126,"context_line":"            password\u003duser[\"password\"],"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a061dce_c18c4cdc","line":123,"updated":"2016-04-07 13:19:38.000000000","message":"s/dict()/{}/","commit_id":"30ff7be3375c637c558dad521559057fe0d1553f"}],"rally/deployment/engines/lxc.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"1cfcce7b5ebdc6cfe1a04c14b423368a453b6a82","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                container.ssh.run(\"/bin/sh -e\", stdin\u003dopen(start_script, \"rb\"))"},{"line_number":152,"context_line":"            if network:"},{"line_number":153,"context_line":"                network +\u003d 1"},{"line_number":154,"context_line":"        return {\"admin\": dict(auth_url\u003d\"\", username\u003d\"\","},{"line_number":155,"context_line":"                              password\u003d\"\", tenant_name\u003d\"\")}"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def cleanup(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a061dce_81b5347f","line":154,"updated":"2016-04-07 13:19:38.000000000","message":"I\u0027m going to stop pointing these out now. :)","commit_id":"30ff7be3375c637c558dad521559057fe0d1553f"}],"rally/task/engine.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"1cfcce7b5ebdc6cfe1a04c14b423368a453b6a82","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        Typical usage:"},{"line_number":159,"context_line":"            ..."},{"line_number":160,"context_line":"            admin \u003d ....  # contains dict representations of objects.Credential"},{"line_number":161,"context_line":"                          # with OpenStack admin credentials"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"            users \u003d ....  # contains a list of dicts of representations of"},{"line_number":164,"context_line":"                          # objects.Credential with OpenStack users credentials"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a061dce_8425425d","line":161,"updated":"2016-04-07 13:19:38.000000000","message":"docstring needs fixed up here and line 164","commit_id":"30ff7be3375c637c558dad521559057fe0d1553f"}],"tests/unit/deployment/test_lxc.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"1cfcce7b5ebdc6cfe1a04c14b423368a453b6a82","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        with mock.patch.object(self.engine, \"deployment\", fake_deployment):"},{"line_number":147,"context_line":"            credential \u003d self.engine.deploy()"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        self.assertIsInstance(credential[\"admin\"], dict)"},{"line_number":150,"context_line":"        lxc_host_calls \u003d ["},{"line_number":151,"context_line":"            mock.call(fake_servers[0], {\"network\": \"10.128.128.0/28\","},{"line_number":152,"context_line":"                                        \"tunnel_to\": [\"1.1.1.1\", \"2.2.2.2\"]}),"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a061dce_64a74e0b","line":149,"updated":"2016-04-07 13:19:38.000000000","message":"This assertion seems pretty useless now. (It was actually pretty useless before, too.) Can we check the contents of the credential in more detail instead?","commit_id":"30ff7be3375c637c558dad521559057fe0d1553f"}],"tests/unit/fakes.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"fd333b4c73e7a5fc9b2bc332b924c397d79287cc","unresolved":false,"context_lines":[{"line_number":1666,"context_line":""},{"line_number":1667,"context_line":"    admin \u003d {"},{"line_number":1668,"context_line":"        \"id\": \"adminuuid\","},{"line_number":1669,"context_line":"        \"credential\": dict("},{"line_number":1670,"context_line":"            auth_url\u003d\"aurl\","},{"line_number":1671,"context_line":"            username\u003d\"aname\","},{"line_number":1672,"context_line":"            password\u003d\"apwd\","}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_9b23d9bc","line":1669,"updated":"2016-03-21 08:57:53.000000000","message":"This mixes two dict representations {} and dict(). Let\u0027s use same syntax","commit_id":"5d75191971b5a10f7eeba62d58998f4a6069b2e2"},{"author":{"_account_id":19267,"name":"Rodion Promyshlennikov","email":"rpromyshlennikov@mirantis.com","username":"rodion"},"change_message_id":"14f0217892aadd10156a26c97d4c54a7cd015b4a","unresolved":false,"context_lines":[{"line_number":1666,"context_line":""},{"line_number":1667,"context_line":"    admin \u003d {"},{"line_number":1668,"context_line":"        \"id\": \"adminuuid\","},{"line_number":1669,"context_line":"        \"credential\": dict("},{"line_number":1670,"context_line":"            auth_url\u003d\"aurl\","},{"line_number":1671,"context_line":"            username\u003d\"aname\","},{"line_number":1672,"context_line":"            password\u003d\"apwd\","}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_4dd159fb","line":1669,"in_reply_to":"1af94dfe_9b23d9bc","updated":"2016-03-24 18:23:42.000000000","message":"Done","commit_id":"5d75191971b5a10f7eeba62d58998f4a6069b2e2"}]}
