)]}'
{"rally/common/db/sqlalchemy/api.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"7ef961b14e7fd1a80f57f7cfbad6e94db8a40cdc","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        deployment \u003d models.Deployment()"},{"line_number":294,"context_line":"        try:"},{"line_number":295,"context_line":"            # TODO(rpromyshlennikov): remove after credentials refactoring"},{"line_number":296,"context_line":"            if \"type\" not in values:"},{"line_number":297,"context_line":"                values[\"type\"] \u003d \"openstack\""},{"line_number":298,"context_line":"            if \"credentials\" not in values:"},{"line_number":299,"context_line":"                values[\"credentials\"] \u003d {"}],"source_content_type":"text/x-python","patch_set":3,"id":"dae33548_bee082fb","line":296,"updated":"2016-02-17 13:35:49.000000000","message":"values.setdefault(\"type\", \"openstack\") is simpler (at least saves LOC)","commit_id":"33f20d28669f103a03d8941a1289b387d1360edc"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"7ef961b14e7fd1a80f57f7cfbad6e94db8a40cdc","unresolved":false,"context_lines":[{"line_number":332,"context_line":"                values[\"type\"] \u003d \"openstack\""},{"line_number":333,"context_line":"            if \"credentials\" not in values:"},{"line_number":334,"context_line":"                values[\"credentials\"] \u003d {"},{"line_number":335,"context_line":"                    \"admin\": values.get(\"admin\"),"},{"line_number":336,"context_line":"                    \"users\": values.get(\"users\"),"},{"line_number":337,"context_line":"                }"},{"line_number":338,"context_line":"            dpl.update(values)"}],"source_content_type":"text/x-python","patch_set":3,"id":"dae33548_e10a6b78","line":335,"updated":"2016-02-17 13:35:49.000000000","message":"Maybe It is worth to use empty dict as default value: values.get(\"admin\", {})\n\nCases like this would raise errors:\nhttps://github.com/openstack/rally/blob/master/rally/api.py#L122","commit_id":"33f20d28669f103a03d8941a1289b387d1360edc"}],"rally/common/db/sqlalchemy/models.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"b6025122fe6f56d5743f279fbb04093c46c5b950","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    # TODO(rpromyshlennikov): remove admin after credentials refactoring"},{"line_number":100,"context_line":"    @property"},{"line_number":101,"context_line":"    def admin(self):"},{"line_number":102,"context_line":"        return self.credentials[0][1][\"admin\"]"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    @admin.setter"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_fa120c56","line":101,"updated":"2016-03-31 02:11:16.000000000","message":"cool hack\u003d) to do first step without hacking everything around","commit_id":"433cf080ea02f448df1ce33c620c8b30910338cd"}],"tests/unit/common/db/test_migrations.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"fa61d9a87ccaca6422a3839075ff4cd69d704258","unresolved":false,"context_lines":[{"line_number":214,"context_line":"    def setUp(self):"},{"line_number":215,"context_line":"        # we change DB metadata in tests so we reload"},{"line_number":216,"context_line":"        # models to refresh the metadata to it\u0027s original state"},{"line_number":217,"context_line":"        six.moves.reload_module(rally.common.db.sqlalchemy.models)"},{"line_number":218,"context_line":"        super(MigrationWalkTestCase, self).setUp()"},{"line_number":219,"context_line":"        self.alembic_config \u003d api._alembic_config()"},{"line_number":220,"context_line":"        self.engine \u003d api.get_engine()"}],"source_content_type":"text/x-python","patch_set":6,"id":"1af94dfe_e08193fc","line":217,"updated":"2016-03-18 15:48:36.000000000","message":"Last test will keep models in their modified state.\nMaybe do this in tearDown() ?","commit_id":"75978e2420fadb3d9022132ab22043de1c27cead"},{"author":{"_account_id":19267,"name":"Rodion Promyshlennikov","email":"rpromyshlennikov@mirantis.com","username":"rodion"},"change_message_id":"bffefdfa3174b80317a8b456ccde7c1080f21de6","unresolved":false,"context_lines":[{"line_number":214,"context_line":"    def setUp(self):"},{"line_number":215,"context_line":"        # we change DB metadata in tests so we reload"},{"line_number":216,"context_line":"        # models to refresh the metadata to it\u0027s original state"},{"line_number":217,"context_line":"        six.moves.reload_module(rally.common.db.sqlalchemy.models)"},{"line_number":218,"context_line":"        super(MigrationWalkTestCase, self).setUp()"},{"line_number":219,"context_line":"        self.alembic_config \u003d api._alembic_config()"},{"line_number":220,"context_line":"        self.engine \u003d api.get_engine()"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa0719c6_4cd34260","line":217,"in_reply_to":"1af94dfe_e08193fc","updated":"2016-03-24 14:26:31.000000000","message":"We don\u0027t change models and metadata in this test case, so unneeded code removed.","commit_id":"75978e2420fadb3d9022132ab22043de1c27cead"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"b6025122fe6f56d5743f279fbb04093c46c5b950","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from rally.common import db"},{"line_number":30,"context_line":"from rally.common.db.sqlalchemy import api"},{"line_number":31,"context_line":"from rally.common.db.sqlalchemy import models"},{"line_number":32,"context_line":"from tests.unit.common.db import test_migrations_base as base"},{"line_number":33,"context_line":"from tests.unit import test as rtest"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_da1e285e","line":32,"updated":"2016-03-31 02:11:16.000000000","message":"jfyi it\u0027s better to keep test_migrations_base instead of base, because what is \"base\" in code is unclear. \n\nHowever it\u0027s not blocker and can be done later.","commit_id":"433cf080ea02f448df1ce33c620c8b30910338cd"}],"tests/unit/common/db/test_migrations_base.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"fa61d9a87ccaca6422a3839075ff4cd69d704258","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016: Mirantis Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"1af94dfe_36fe21ae","line":1,"updated":"2016-03-18 15:48:36.000000000","message":"This can not be marked as \"Copyright 2016: Mirantis Inc\"\n\nhttps://github.com/openstack/murano/blob/master/murano/tests/unit/db/migration/test_migrations_base.py#L1-L2","commit_id":"75978e2420fadb3d9022132ab22043de1c27cead"},{"author":{"_account_id":19267,"name":"Rodion Promyshlennikov","email":"rpromyshlennikov@mirantis.com","username":"rodion"},"change_message_id":"bffefdfa3174b80317a8b456ccde7c1080f21de6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016: Mirantis Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa0719c6_4c3a229a","line":1,"in_reply_to":"1af94dfe_36fe21ae","updated":"2016-03-24 14:26:31.000000000","message":"Done","commit_id":"75978e2420fadb3d9022132ab22043de1c27cead"}]}
