)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"f56f357145578b930da57033fa9f9a46e62af2c3","unresolved":false,"context_lines":[{"line_number":24,"context_line":"TODO:"},{"line_number":25,"context_line":"- Add \u0027share_type_id\u0027 field to share_instances"},{"line_number":26,"context_line":"get/list/show/detail API."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Change-Id: I3200eaaa5b66d9b8ce1cbd16c1658db8516c70fb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dada55a8_875c077e","line":27,"updated":"2016-07-21 14:54:40.000000000","message":"Bug? BluePrint?","commit_id":"17bf17386ad35ea3489fb24548250a1b99e8ac3f"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"41881249654d046a3b8af6f030c1d4614ad3bb76","unresolved":false,"context_lines":[{"line_number":24,"context_line":"TODO:"},{"line_number":25,"context_line":"- Add \u0027share_type_id\u0027 field to share_instances"},{"line_number":26,"context_line":"get/list/show/detail API."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Change-Id: I3200eaaa5b66d9b8ce1cbd16c1658db8516c70fb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dada55a8_03f48658","line":27,"in_reply_to":"dada55a8_875c077e","updated":"2016-07-21 16:16:31.000000000","message":"Done","commit_id":"17bf17386ad35ea3489fb24548250a1b99e8ac3f"}],"manila/api/v2/shares.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"adcf62698421ba64f066178e59ddd514b174e898","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            try:"},{"line_number":154,"context_line":"                new_share_type \u003d db.share_type_get("},{"line_number":155,"context_line":"                    context, new_share_type_id)"},{"line_number":156,"context_line":"            except exception.NotFound:"},{"line_number":157,"context_line":"                msg \u003d _(\"Share type %s not found.\") % new_share_type_id"},{"line_number":158,"context_line":"                raise exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        try:"},{"line_number":161,"context_line":"            self.share_api.migration_start("}],"source_content_type":"text/x-python","patch_set":43,"id":"fa7ab95a_e394a8e9","line":158,"range":{"start_line":156,"start_character":0,"end_line":158,"end_character":55},"updated":"2016-08-31 19:54:23.000000000","message":"This is HTTPBadRequest\nso is the one above.. \n\nHTTPNotFound is only appropriate when the resource you\u0027re looking for is part of the URI\n\nhttps://specs.openstack.org/openstack/api-wg/guidelines/http.html#failure-code-clarifications","commit_id":"5a792b0c79d1fa7a7bc516a6c89f5089b07a0ec2"}],"manila/api/views/share_instance.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"092b2852bef7ba4ac466540e33f04b9138267f49","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    def add_replication_fields(self, context, instance_dict, share_instance):"},{"line_number":81,"context_line":"        instance_dict[\u0027replica_state\u0027] \u003d share_instance.get(\u0027replica_state\u0027)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    @common.ViewBuilder.versioned_method(\"2.19\")"},{"line_number":84,"context_line":"    def add_share_type_fields(self, context, instance_dict, share_instance):"},{"line_number":85,"context_line":"        instance_dict[\u0027share_type_id\u0027] \u003d share_instance.get(\u0027share_type_id\u0027)"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa7ab95a_21c981ac","line":83,"range":{"start_line":83,"start_character":42,"end_line":83,"end_character":46},"updated":"2016-08-30 16:47:07.000000000","message":"Why 2.19? 2.19 it is unrelated thing -\u003e \"Share snapshot instances admin APIs\"","commit_id":"b4150d72833e48b0d245de54f0778a84f6c3592e"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"ad94968185236b21b6d4ba3b8e0b551b83607680","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    def add_replication_fields(self, context, instance_dict, share_instance):"},{"line_number":81,"context_line":"        instance_dict[\u0027replica_state\u0027] \u003d share_instance.get(\u0027replica_state\u0027)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    @common.ViewBuilder.versioned_method(\"2.19\")"},{"line_number":84,"context_line":"    def add_share_type_fields(self, context, instance_dict, share_instance):"},{"line_number":85,"context_line":"        instance_dict[\u0027share_type_id\u0027] \u003d share_instance.get(\u0027share_type_id\u0027)"}],"source_content_type":"text/x-python","patch_set":36,"id":"fa7ab95a_57b3a797","line":83,"range":{"start_line":83,"start_character":42,"end_line":83,"end_character":46},"in_reply_to":"fa7ab95a_21c981ac","updated":"2016-08-31 01:51:10.000000000","message":"leftover. DOne.","commit_id":"b4150d72833e48b0d245de54f0778a84f6c3592e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"c2c7b2631b6ae94c7f4a75569df15e371d6cc7cc","unresolved":false,"context_lines":[{"line_number":22,"context_line":"        \"remove_export_locations\","},{"line_number":23,"context_line":"        \"add_access_rules_status_field\","},{"line_number":24,"context_line":"        \"add_replication_fields\","},{"line_number":25,"context_line":"        \"add_share_type_fields\","},{"line_number":26,"context_line":"    ]"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def detail_list(self, request, instances):"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa7ab95a_925fba74","line":25,"range":{"start_line":25,"start_character":9,"end_line":25,"end_character":30},"updated":"2016-08-31 15:26:42.000000000","message":"Why plural? Field only one.","commit_id":"dd3c4a254695ca66912927e28e2f0efa457fe5b8"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"224d6c938cbe2772dab658899b0d811fe152ca11","unresolved":false,"context_lines":[{"line_number":22,"context_line":"        \"remove_export_locations\","},{"line_number":23,"context_line":"        \"add_access_rules_status_field\","},{"line_number":24,"context_line":"        \"add_replication_fields\","},{"line_number":25,"context_line":"        \"add_share_type_fields\","},{"line_number":26,"context_line":"    ]"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def detail_list(self, request, instances):"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa7ab95a_3b55e9c5","line":25,"range":{"start_line":25,"start_character":9,"end_line":25,"end_character":30},"in_reply_to":"fa7ab95a_925fba74","updated":"2016-08-31 18:01:40.000000000","message":"Done","commit_id":"dd3c4a254695ca66912927e28e2f0efa457fe5b8"}],"manila/db/migrations/alembic/versions/48a7beae3117_move_share_type_id_to_instances.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d61f7aa8a8ab8e3b700298738cc032bd01cc21e3","unresolved":false,"context_lines":[{"line_number":34,"context_line":"def upgrade():"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    # NOTE(ganso): Adding share_type_id as a foreign key to share_instances"},{"line_number":37,"context_line":"    # table. Please note that share_type_id is NOT a foreign key in shares"},{"line_number":38,"context_line":"    # table."},{"line_number":39,"context_line":"    op.add_column("},{"line_number":40,"context_line":"        \u0027share_instances\u0027,"},{"line_number":41,"context_line":"        sa.Column(\u0027share_type_id\u0027, sa.String(36),"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa7ab95a_f55b902c","line":38,"range":{"start_line":37,"start_character":13,"end_line":38,"end_character":12},"updated":"2016-08-31 15:31:42.000000000","message":"Why is that? Look at [1].\n\n[1] https://review.openstack.org/#/c/345142/41/manila/db/sqlalchemy/models.py@306","commit_id":"dd3c4a254695ca66912927e28e2f0efa457fe5b8"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"224d6c938cbe2772dab658899b0d811fe152ca11","unresolved":false,"context_lines":[{"line_number":34,"context_line":"def upgrade():"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    # NOTE(ganso): Adding share_type_id as a foreign key to share_instances"},{"line_number":37,"context_line":"    # table. Please note that share_type_id is NOT a foreign key in shares"},{"line_number":38,"context_line":"    # table."},{"line_number":39,"context_line":"    op.add_column("},{"line_number":40,"context_line":"        \u0027share_instances\u0027,"},{"line_number":41,"context_line":"        sa.Column(\u0027share_type_id\u0027, sa.String(36),"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa7ab95a_9bd7d522","line":38,"range":{"start_line":37,"start_character":13,"end_line":38,"end_character":12},"in_reply_to":"fa7ab95a_f55b902c","updated":"2016-08-31 18:01:40.000000000","message":"check mysql. We talked about this on IRC. I will improve the comment.","commit_id":"dd3c4a254695ca66912927e28e2f0efa457fe5b8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1e33c80f72879473cff071e8a0feb5229aa78b67","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    shares_table \u003d utils.load_table(\u0027shares\u0027, connection)"},{"line_number":67,"context_line":"    share_instances_table \u003d utils.load_table(\u0027share_instances\u0027, connection)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    for instance in connection.execute(share_instances_table.select()):"},{"line_number":70,"context_line":"        op.execute(shares_table.update().where("},{"line_number":71,"context_line":"            shares_table.c.id \u003d\u003d instance[\u0027share_id\u0027]).values("},{"line_number":72,"context_line":"            {\u0027share_type_id\u0027: instance[\u0027share_type_id\u0027]}))"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    op.drop_constraint(\u0027si_st_id_fk\u0027, \u0027share_instances\u0027, type_\u003d\u0027foreignkey\u0027)"},{"line_number":75,"context_line":"    op.drop_column(\u0027share_instances\u0027, \u0027share_type_id\u0027)"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa7ab95a_ee256fae","line":72,"range":{"start_line":69,"start_character":0,"end_line":72,"end_character":58},"updated":"2016-08-31 20:50:30.000000000","message":"Feels like we\u0027ll mess up stuff if there were more than one share instance with differing share-types.. add warning above?\n\nYou should be able to loop through the shares, grab the instances, grab the share_type of the first() instance and set it instead of resetting the share-type-id from each instance..","commit_id":"5a792b0c79d1fa7a7bc516a6c89f5089b07a0ec2"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"39fa5833b36e7640f3ca9aa7341378a460ab4905","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    shares_table \u003d utils.load_table(\u0027shares\u0027, connection)"},{"line_number":67,"context_line":"    share_instances_table \u003d utils.load_table(\u0027share_instances\u0027, connection)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    for instance in connection.execute(share_instances_table.select()):"},{"line_number":70,"context_line":"        op.execute(shares_table.update().where("},{"line_number":71,"context_line":"            shares_table.c.id \u003d\u003d instance[\u0027share_id\u0027]).values("},{"line_number":72,"context_line":"            {\u0027share_type_id\u0027: instance[\u0027share_type_id\u0027]}))"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    op.drop_constraint(\u0027si_st_id_fk\u0027, \u0027share_instances\u0027, type_\u003d\u0027foreignkey\u0027)"},{"line_number":75,"context_line":"    op.drop_column(\u0027share_instances\u0027, \u0027share_type_id\u0027)"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa7ab95a_17854358","line":72,"range":{"start_line":69,"start_character":0,"end_line":72,"end_character":58},"in_reply_to":"fa7ab95a_ee256fae","updated":"2016-08-31 23:43:44.000000000","message":"good point. Although obtaining the first instance or the last should be rather equivalent if we are not doing anything special like checking their status.","commit_id":"5a792b0c79d1fa7a7bc516a6c89f5089b07a0ec2"}],"manila/share/api.py":[{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"0fd8ca805f53bd2bfbd6b278a3aefff5b2d9cdd5","unresolved":false,"context_lines":[{"line_number":941,"context_line":"            share_type \u003d new_share_type"},{"line_number":942,"context_line":"        else:"},{"line_number":943,"context_line":"            share_type \u003d {}"},{"line_number":944,"context_line":"            share_type_id \u003d share[\u0027share_type_id\u0027]"},{"line_number":945,"context_line":"            if share_type_id:"},{"line_number":946,"context_line":"                share_type \u003d share_types.get_share_type(context, share_type_id)"},{"line_number":947,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_9511de5f","line":944,"range":{"start_line":944,"start_character":28,"end_line":944,"end_character":33},"updated":"2016-07-21 12:21:09.000000000","message":"Should be share_instance?","commit_id":"cc62fc8f436ed1a4f2b33ed427e8400ea82e91ea"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"595104d7db4c15f5cdc73bb817f25cc2b8fbb6bf","unresolved":false,"context_lines":[{"line_number":941,"context_line":"            share_type \u003d new_share_type"},{"line_number":942,"context_line":"        else:"},{"line_number":943,"context_line":"            share_type \u003d {}"},{"line_number":944,"context_line":"            share_type_id \u003d share[\u0027share_type_id\u0027]"},{"line_number":945,"context_line":"            if share_type_id:"},{"line_number":946,"context_line":"                share_type \u003d share_types.get_share_type(context, share_type_id)"},{"line_number":947,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_63a46207","line":944,"range":{"start_line":944,"start_character":28,"end_line":944,"end_character":33},"in_reply_to":"dada55a8_9511de5f","updated":"2016-07-21 16:16:37.000000000","message":"Done","commit_id":"cc62fc8f436ed1a4f2b33ed427e8400ea82e91ea"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"0fd8ca805f53bd2bfbd6b278a3aefff5b2d9cdd5","unresolved":false,"context_lines":[{"line_number":950,"context_line":"        new_share_type_id \u003d (new_share_type[\u0027id\u0027] if new_share_type"},{"line_number":951,"context_line":"                             else share_instance[\u0027share_type_id\u0027])"},{"line_number":952,"context_line":""},{"line_number":953,"context_line":"        request_spec \u003d self._get_request_spec_dict("},{"line_number":954,"context_line":"            share,"},{"line_number":955,"context_line":"            share_type,"},{"line_number":956,"context_line":"            availability_zone_id\u003dservice[\u0027availability_zone_id\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_78b6dff9","line":953,"range":{"start_line":953,"start_character":28,"end_line":953,"end_character":50},"updated":"2016-07-21 12:21:09.000000000","message":"Why not add new_share_type_id property here, then the share_instance_properties in request_spec could contain new_share_type_id info, so that no need to add the new parameter new_share_type_id to migrate_share_to_host method below.","commit_id":"cc62fc8f436ed1a4f2b33ed427e8400ea82e91ea"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"595104d7db4c15f5cdc73bb817f25cc2b8fbb6bf","unresolved":false,"context_lines":[{"line_number":950,"context_line":"        new_share_type_id \u003d (new_share_type[\u0027id\u0027] if new_share_type"},{"line_number":951,"context_line":"                             else share_instance[\u0027share_type_id\u0027])"},{"line_number":952,"context_line":""},{"line_number":953,"context_line":"        request_spec \u003d self._get_request_spec_dict("},{"line_number":954,"context_line":"            share,"},{"line_number":955,"context_line":"            share_type,"},{"line_number":956,"context_line":"            availability_zone_id\u003dservice[\u0027availability_zone_id\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_83db567b","line":953,"range":{"start_line":953,"start_character":28,"end_line":953,"end_character":50},"in_reply_to":"dada55a8_78b6dff9","updated":"2016-07-21 16:16:37.000000000","message":"the request spec is used by the scheduler to supply the information to the filters. It would have to be extracted from there and passed to the share manager afterwards. This approach in my opinion is clearer of what we are doing and where parameters are going.","commit_id":"cc62fc8f436ed1a4f2b33ed427e8400ea82e91ea"}],"manila/tests/db/migrations/alembic/migrations_data_checks.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d4797ebb14cafcb19ff2d0ffe55d628d71c7371b","unresolved":false,"context_lines":[{"line_number":1041,"context_line":"        for instance in self.some_instances:"},{"line_number":1042,"context_line":"            engine.execute(share_instances_table.insert(instance))"},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"        for type in self.some_share_types:"},{"line_number":1045,"context_line":"            engine.execute(share_types_table.insert(type))"},{"line_number":1046,"context_line":""},{"line_number":1047,"context_line":"    def check_upgrade(self, engine, data):"},{"line_number":1048,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"fa7ab95a_955de4ee","line":1045,"range":{"start_line":1044,"start_character":8,"end_line":1045,"end_character":58},"updated":"2016-08-31 15:44:01.000000000","message":"Do not redefine built-ins. Last element of iteration left assigned and now built-in \"type\" not available anymore.\n\nAlso, it should be set first, before shares.","commit_id":"dd3c4a254695ca66912927e28e2f0efa457fe5b8"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"224d6c938cbe2772dab658899b0d811fe152ca11","unresolved":false,"context_lines":[{"line_number":1041,"context_line":"        for instance in self.some_instances:"},{"line_number":1042,"context_line":"            engine.execute(share_instances_table.insert(instance))"},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"        for type in self.some_share_types:"},{"line_number":1045,"context_line":"            engine.execute(share_types_table.insert(type))"},{"line_number":1046,"context_line":""},{"line_number":1047,"context_line":"    def check_upgrade(self, engine, data):"},{"line_number":1048,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"fa7ab95a_bbfd7970","line":1045,"range":{"start_line":1044,"start_character":8,"end_line":1045,"end_character":58},"in_reply_to":"fa7ab95a_955de4ee","updated":"2016-08-31 18:01:40.000000000","message":"Done","commit_id":"dd3c4a254695ca66912927e28e2f0efa457fe5b8"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"8a282213064381943df4b35f14454d8bebfab844","unresolved":false,"context_lines":[{"line_number":1060,"context_line":""},{"line_number":1061,"context_line":"        for share in engine.execute(share_instances_table.select().where("},{"line_number":1062,"context_line":"                shares_table.c.id in self.share_ids)):"},{"line_number":1063,"context_line":"            result \u003d False"},{"line_number":1064,"context_line":"            try:"},{"line_number":1065,"context_line":"                share[\u0027share_type_id\u0027]"},{"line_number":1066,"context_line":"                result \u003d True"},{"line_number":1067,"context_line":"            except sa_exc.NoSuchColumnError:"},{"line_number":1068,"context_line":"                pass"},{"line_number":1069,"context_line":"            self.test_case.assertFalse(result)"},{"line_number":1070,"context_line":""},{"line_number":1071,"context_line":"    def check_downgrade(self, engine):"},{"line_number":1072,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"fa7ab95a_c0aa4885","line":1069,"range":{"start_line":1063,"start_character":12,"end_line":1069,"end_character":46},"updated":"2016-08-31 15:51:28.000000000","message":"self.test_case.assertNotIn(\u0027share_type_id\u0027, share)","commit_id":"dd3c4a254695ca66912927e28e2f0efa457fe5b8"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"224d6c938cbe2772dab658899b0d811fe152ca11","unresolved":false,"context_lines":[{"line_number":1060,"context_line":""},{"line_number":1061,"context_line":"        for share in engine.execute(share_instances_table.select().where("},{"line_number":1062,"context_line":"                shares_table.c.id in self.share_ids)):"},{"line_number":1063,"context_line":"            result \u003d False"},{"line_number":1064,"context_line":"            try:"},{"line_number":1065,"context_line":"                share[\u0027share_type_id\u0027]"},{"line_number":1066,"context_line":"                result \u003d True"},{"line_number":1067,"context_line":"            except sa_exc.NoSuchColumnError:"},{"line_number":1068,"context_line":"                pass"},{"line_number":1069,"context_line":"            self.test_case.assertFalse(result)"},{"line_number":1070,"context_line":""},{"line_number":1071,"context_line":"    def check_downgrade(self, engine):"},{"line_number":1072,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"fa7ab95a_fb25410a","line":1069,"range":{"start_line":1063,"start_character":12,"end_line":1069,"end_character":46},"in_reply_to":"fa7ab95a_c0aa4885","updated":"2016-08-31 18:01:40.000000000","message":"Done","commit_id":"dd3c4a254695ca66912927e28e2f0efa457fe5b8"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"aee68a7bd672d368ec82b63d9f3bac2c0c2bfd72","unresolved":false,"context_lines":[{"line_number":1075,"context_line":""},{"line_number":1076,"context_line":"        for instance in engine.execute(share_instances_table.select().where("},{"line_number":1077,"context_line":"                share_instances_table.c.id in self.instance_ids)):"},{"line_number":1078,"context_line":"            result \u003d False"},{"line_number":1079,"context_line":"            try:"},{"line_number":1080,"context_line":"                instance[\u0027share_type_id\u0027]"},{"line_number":1081,"context_line":"                result \u003d True"},{"line_number":1082,"context_line":"            except sa_exc.NoSuchColumnError:"},{"line_number":1083,"context_line":"                pass"},{"line_number":1084,"context_line":"            self.test_case.assertFalse(result)"},{"line_number":1085,"context_line":""},{"line_number":1086,"context_line":"        for share in engine.execute(share_instances_table.select().where("},{"line_number":1087,"context_line":"                shares_table.c.id in self.share_ids)):"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa7ab95a_20793430","line":1084,"range":{"start_line":1078,"start_character":12,"end_line":1084,"end_character":46},"updated":"2016-08-31 15:53:15.000000000","message":"ditto","commit_id":"dd3c4a254695ca66912927e28e2f0efa457fe5b8"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"224d6c938cbe2772dab658899b0d811fe152ca11","unresolved":false,"context_lines":[{"line_number":1075,"context_line":""},{"line_number":1076,"context_line":"        for instance in engine.execute(share_instances_table.select().where("},{"line_number":1077,"context_line":"                share_instances_table.c.id in self.instance_ids)):"},{"line_number":1078,"context_line":"            result \u003d False"},{"line_number":1079,"context_line":"            try:"},{"line_number":1080,"context_line":"                instance[\u0027share_type_id\u0027]"},{"line_number":1081,"context_line":"                result \u003d True"},{"line_number":1082,"context_line":"            except sa_exc.NoSuchColumnError:"},{"line_number":1083,"context_line":"                pass"},{"line_number":1084,"context_line":"            self.test_case.assertFalse(result)"},{"line_number":1085,"context_line":""},{"line_number":1086,"context_line":"        for share in engine.execute(share_instances_table.select().where("},{"line_number":1087,"context_line":"                shares_table.c.id in self.share_ids)):"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa7ab95a_1b23c506","line":1084,"range":{"start_line":1078,"start_character":12,"end_line":1084,"end_character":46},"in_reply_to":"fa7ab95a_20793430","updated":"2016-08-31 18:01:40.000000000","message":"Done","commit_id":"dd3c4a254695ca66912927e28e2f0efa457fe5b8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1e33c80f72879473cff071e8a0feb5229aa78b67","unresolved":false,"context_lines":[{"line_number":1015,"context_line":"            \u0027id\u0027: \u0027i2\u0027,"},{"line_number":1016,"context_line":"            \u0027share_id\u0027: \u0027s2\u0027,"},{"line_number":1017,"context_line":"        },"},{"line_number":1018,"context_line":"        {"},{"line_number":1019,"context_line":"            \u0027id\u0027: \u0027i3\u0027,"},{"line_number":1020,"context_line":"            \u0027share_id\u0027: \u0027s1\u0027,"},{"line_number":1021,"context_line":"        },"},{"line_number":1022,"context_line":"    ]"},{"line_number":1023,"context_line":""},{"line_number":1024,"context_line":"    instance_ids \u003d [x[\u0027id\u0027] for x in some_instances]"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa7ab95a_a9aa8117","line":1021,"range":{"start_line":1018,"start_character":0,"end_line":1021,"end_character":10},"updated":"2016-08-31 20:50:30.000000000","message":"test two instances with the same share?","commit_id":"5a792b0c79d1fa7a7bc516a6c89f5089b07a0ec2"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"39fa5833b36e7640f3ca9aa7341378a460ab4905","unresolved":false,"context_lines":[{"line_number":1015,"context_line":"            \u0027id\u0027: \u0027i2\u0027,"},{"line_number":1016,"context_line":"            \u0027share_id\u0027: \u0027s2\u0027,"},{"line_number":1017,"context_line":"        },"},{"line_number":1018,"context_line":"        {"},{"line_number":1019,"context_line":"            \u0027id\u0027: \u0027i3\u0027,"},{"line_number":1020,"context_line":"            \u0027share_id\u0027: \u0027s1\u0027,"},{"line_number":1021,"context_line":"        },"},{"line_number":1022,"context_line":"    ]"},{"line_number":1023,"context_line":""},{"line_number":1024,"context_line":"    instance_ids \u003d [x[\u0027id\u0027] for x in some_instances]"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa7ab95a_bae71e3f","line":1021,"range":{"start_line":1018,"start_character":0,"end_line":1021,"end_character":10},"in_reply_to":"fa7ab95a_a9aa8117","updated":"2016-08-31 23:43:44.000000000","message":"Done","commit_id":"5a792b0c79d1fa7a7bc516a6c89f5089b07a0ec2"}],"manila_tempest_tests/tests/api/admin/test_migration.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"aee68a7bd672d368ec82b63d9f3bac2c0c2bfd72","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            raise cls.skipException(\"Share migration tests are disabled.\")"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        cls.new_type \u003d None"},{"line_number":66,"context_line":"        if utils.is_microversion_ge(CONF.share.max_api_microversion, \"2.20\"):"},{"line_number":67,"context_line":"            extra_specs \u003d {"},{"line_number":68,"context_line":"                \u0027storage_protocol\u0027: CONF.share.capability_storage_protocol,"},{"line_number":69,"context_line":"                \u0027driver_handles_share_servers\u0027: ("}],"source_content_type":"text/x-python","patch_set":41,"id":"fa7ab95a_e0b4acd2","line":66,"range":{"start_line":66,"start_character":70,"end_line":66,"end_character":74},"updated":"2016-08-31 15:53:15.000000000","message":"2.20?","commit_id":"dd3c4a254695ca66912927e28e2f0efa457fe5b8"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"224d6c938cbe2772dab658899b0d811fe152ca11","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            raise cls.skipException(\"Share migration tests are disabled.\")"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        cls.new_type \u003d None"},{"line_number":66,"context_line":"        if utils.is_microversion_ge(CONF.share.max_api_microversion, \"2.20\"):"},{"line_number":67,"context_line":"            extra_specs \u003d {"},{"line_number":68,"context_line":"                \u0027storage_protocol\u0027: CONF.share.capability_storage_protocol,"},{"line_number":69,"context_line":"                \u0027driver_handles_share_servers\u0027: ("}],"source_content_type":"text/x-python","patch_set":41,"id":"fa7ab95a_dbd5ddb9","line":66,"range":{"start_line":66,"start_character":70,"end_line":66,"end_character":74},"in_reply_to":"fa7ab95a_e0b4acd2","updated":"2016-08-31 18:01:40.000000000","message":"Done","commit_id":"dd3c4a254695ca66912927e28e2f0efa457fe5b8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1e33c80f72879473cff071e8a0feb5229aa78b67","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                CONF.share.run_driver_assisted_migration_tests):"},{"line_number":63,"context_line":"            raise cls.skipException(\"Share migration tests are disabled.\")"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        extra_specs \u003d {"},{"line_number":66,"context_line":"            \u0027storage_protocol\u0027: CONF.share.capability_storage_protocol,"},{"line_number":67,"context_line":"            \u0027driver_handles_share_servers\u0027: ("},{"line_number":68,"context_line":"                CONF.share.multitenancy_enabled),"},{"line_number":69,"context_line":"            \u0027snapshot_support\u0027: six.text_type("},{"line_number":70,"context_line":"                CONF.share.capability_snapshot_support),"},{"line_number":71,"context_line":"        }"},{"line_number":72,"context_line":"        cls.new_type \u003d cls.create_share_type("},{"line_number":73,"context_line":"            name\u003ddata_utils.rand_name(\u0027new_share_type_for_migration\u0027),"},{"line_number":74,"context_line":"            cleanup_in_class\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa7ab95a_a958c157","line":71,"range":{"start_line":65,"start_character":8,"end_line":71,"end_character":9},"updated":"2016-08-31 20:50:30.000000000","message":"these could really be copied from the existing share type.. so that when that changes (with upcoming changes to more undeletable extra specs), you don\u0027t need to update this..","commit_id":"5a792b0c79d1fa7a7bc516a6c89f5089b07a0ec2"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"39fa5833b36e7640f3ca9aa7341378a460ab4905","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                CONF.share.run_driver_assisted_migration_tests):"},{"line_number":63,"context_line":"            raise cls.skipException(\"Share migration tests are disabled.\")"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        extra_specs \u003d {"},{"line_number":66,"context_line":"            \u0027storage_protocol\u0027: CONF.share.capability_storage_protocol,"},{"line_number":67,"context_line":"            \u0027driver_handles_share_servers\u0027: ("},{"line_number":68,"context_line":"                CONF.share.multitenancy_enabled),"},{"line_number":69,"context_line":"            \u0027snapshot_support\u0027: six.text_type("},{"line_number":70,"context_line":"                CONF.share.capability_snapshot_support),"},{"line_number":71,"context_line":"        }"},{"line_number":72,"context_line":"        cls.new_type \u003d cls.create_share_type("},{"line_number":73,"context_line":"            name\u003ddata_utils.rand_name(\u0027new_share_type_for_migration\u0027),"},{"line_number":74,"context_line":"            cleanup_in_class\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa7ab95a_fa0446c7","line":71,"range":{"start_line":65,"start_character":8,"end_line":71,"end_character":9},"in_reply_to":"fa7ab95a_a958c157","updated":"2016-08-31 23:43:44.000000000","message":"I think it is better to derive from the tempest configuration than the default configured share type, which may be configured incorrectly","commit_id":"5a792b0c79d1fa7a7bc516a6c89f5089b07a0ec2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1f1b92cb292e4083ea9c889f66b9c76d405f3d16","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                CONF.share.run_driver_assisted_migration_tests):"},{"line_number":63,"context_line":"            raise cls.skipException(\"Share migration tests are disabled.\")"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        extra_specs \u003d {"},{"line_number":66,"context_line":"            \u0027storage_protocol\u0027: CONF.share.capability_storage_protocol,"},{"line_number":67,"context_line":"            \u0027driver_handles_share_servers\u0027: ("},{"line_number":68,"context_line":"                CONF.share.multitenancy_enabled),"},{"line_number":69,"context_line":"            \u0027snapshot_support\u0027: six.text_type("},{"line_number":70,"context_line":"                CONF.share.capability_snapshot_support),"},{"line_number":71,"context_line":"        }"},{"line_number":72,"context_line":"        cls.new_type \u003d cls.create_share_type("},{"line_number":73,"context_line":"            name\u003ddata_utils.rand_name(\u0027new_share_type_for_migration\u0027),"},{"line_number":74,"context_line":"            cleanup_in_class\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa7ab95a_505a7184","line":71,"range":{"start_line":65,"start_character":8,"end_line":71,"end_character":9},"in_reply_to":"fa7ab95a_fa0446c7","updated":"2016-08-31 23:51:18.000000000","message":"If it\u0027s configured incorrectly, a bunch of tests are supposed to fail :)","commit_id":"5a792b0c79d1fa7a7bc516a6c89f5089b07a0ec2"}],"manila_tempest_tests/tests/api/admin/test_migration_negative.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"888b3d17190dd88eebbb60fab84dfe60ac05546a","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        cls.dest_pool \u003d dest_pool[\u0027name\u0027]"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        cls.new_type \u003d None"},{"line_number":72,"context_line":"        if utils.is_microversion_ge(CONF.share.max_api_microversion, \"2.20\"):"},{"line_number":73,"context_line":"            extra_specs \u003d {"},{"line_number":74,"context_line":"                \u0027storage_protocol\u0027: CONF.share.capability_storage_protocol,"},{"line_number":75,"context_line":"                \u0027driver_handles_share_servers\u0027: ("}],"source_content_type":"text/x-python","patch_set":41,"id":"fa7ab95a_4049d8cf","line":72,"range":{"start_line":72,"start_character":70,"end_line":72,"end_character":74},"updated":"2016-08-31 15:54:29.000000000","message":"ditto","commit_id":"dd3c4a254695ca66912927e28e2f0efa457fe5b8"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"224d6c938cbe2772dab658899b0d811fe152ca11","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        cls.dest_pool \u003d dest_pool[\u0027name\u0027]"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        cls.new_type \u003d None"},{"line_number":72,"context_line":"        if utils.is_microversion_ge(CONF.share.max_api_microversion, \"2.20\"):"},{"line_number":73,"context_line":"            extra_specs \u003d {"},{"line_number":74,"context_line":"                \u0027storage_protocol\u0027: CONF.share.capability_storage_protocol,"},{"line_number":75,"context_line":"                \u0027driver_handles_share_servers\u0027: ("}],"source_content_type":"text/x-python","patch_set":41,"id":"fa7ab95a_bbe739ab","line":72,"range":{"start_line":72,"start_character":70,"end_line":72,"end_character":74},"in_reply_to":"fa7ab95a_4049d8cf","updated":"2016-08-31 18:01:40.000000000","message":"Done","commit_id":"dd3c4a254695ca66912927e28e2f0efa457fe5b8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1e33c80f72879473cff071e8a0feb5229aa78b67","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        cls.dest_pool \u003d dest_pool[\u0027name\u0027]"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        extra_specs \u003d {"},{"line_number":72,"context_line":"            \u0027storage_protocol\u0027: CONF.share.capability_storage_protocol,"},{"line_number":73,"context_line":"            \u0027driver_handles_share_servers\u0027: CONF.share.multitenancy_enabled,"},{"line_number":74,"context_line":"            \u0027snapshot_support\u0027: six.text_type("},{"line_number":75,"context_line":"                not CONF.share.capability_snapshot_support),"},{"line_number":76,"context_line":"        }"},{"line_number":77,"context_line":"        cls.new_type \u003d cls.create_share_type("},{"line_number":78,"context_line":"            name\u003ddata_utils.rand_name("},{"line_number":79,"context_line":"                \u0027new_invalid_share_type_for_migration\u0027),"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa7ab95a_3499686f","line":76,"range":{"start_line":71,"start_character":9,"end_line":76,"end_character":9},"updated":"2016-08-31 20:50:30.000000000","message":"same concern.. maybe have a _copy_share_type_extra_specs method in the base? or a _create_share_type_from_share_type method","commit_id":"5a792b0c79d1fa7a7bc516a6c89f5089b07a0ec2"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"39fa5833b36e7640f3ca9aa7341378a460ab4905","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        cls.dest_pool \u003d dest_pool[\u0027name\u0027]"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        extra_specs \u003d {"},{"line_number":72,"context_line":"            \u0027storage_protocol\u0027: CONF.share.capability_storage_protocol,"},{"line_number":73,"context_line":"            \u0027driver_handles_share_servers\u0027: CONF.share.multitenancy_enabled,"},{"line_number":74,"context_line":"            \u0027snapshot_support\u0027: six.text_type("},{"line_number":75,"context_line":"                not CONF.share.capability_snapshot_support),"},{"line_number":76,"context_line":"        }"},{"line_number":77,"context_line":"        cls.new_type \u003d cls.create_share_type("},{"line_number":78,"context_line":"            name\u003ddata_utils.rand_name("},{"line_number":79,"context_line":"                \u0027new_invalid_share_type_for_migration\u0027),"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa7ab95a_da15c2e5","line":76,"range":{"start_line":71,"start_character":9,"end_line":76,"end_character":9},"in_reply_to":"fa7ab95a_3499686f","updated":"2016-08-31 23:43:44.000000000","message":"I think it is better to derive from the tempest configuration than the default configured share type, which may be configured incorrectly. Also, this class and the other one create different share types, one valid and the other invalid.","commit_id":"5a792b0c79d1fa7a7bc516a6c89f5089b07a0ec2"}],"releasenotes/notes/newton-migration-improvements-cf9d3d6e37e19c94.yaml":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1e33c80f72879473cff071e8a0feb5229aa78b67","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":43,"id":"fa7ab95a_74ca1051","updated":"2016-08-31 20:50:30.000000000","message":"Please separate the reno into its own file..","commit_id":"5a792b0c79d1fa7a7bc516a6c89f5089b07a0ec2"}]}
