)]}'
{"trove/instance/models.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"41d6010c10c15f3e781153a825d60b075a190910","unresolved":false,"context_lines":[{"line_number":883,"context_line":"            # if no volume type restrictions are specified for a given"},{"line_number":884,"context_line":"            # ds, dsv then we don\u0027t verify volume_type, just pass it"},{"line_number":885,"context_line":"            # along. It may be None, in which case cinder will do what"},{"line_number":886,"context_line":"            # it consideres default."},{"line_number":887,"context_line":"            #"},{"line_number":888,"context_line":"            # if a volume type restriction is specified, then ensure"},{"line_number":889,"context_line":"            # that it is met. If a volume_type isn\u0027t specified by the"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_31074e19","line":886,"range":{"start_line":886,"start_character":17,"end_line":886,"end_character":27},"updated":"2016-11-28 11:54:03.000000000","message":"considers :) Sorry Matt.","commit_id":"0f4a5db6b9b0adfc2dc0fd00002fb77907dc4c94"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"61838582e16dc915523d1a9f4b64a79c51690958","unresolved":false,"context_lines":[{"line_number":880,"context_line":"        deltas \u003d {\u0027instances\u0027: 1}"},{"line_number":881,"context_line":"        volume_support \u003d datastore_cfg.volume_support"},{"line_number":882,"context_line":"        if volume_support:"},{"line_number":883,"context_line":"            # if no volume type restrictions are specified for a given"},{"line_number":884,"context_line":"            # ds, dsv then we don\u0027t verify volume_type, just pass it"},{"line_number":885,"context_line":"            # along. It may be None, in which case cinder will do what"},{"line_number":886,"context_line":"            # it considers default."}],"source_content_type":"text/x-python","patch_set":5,"id":"5a74a57a_2ce51ea7","line":883,"updated":"2016-11-28 17:35:21.000000000","message":"Can we move this into a validate_volume_type method in DatabaseVersionMetadata?  This method is already too complex.","commit_id":"5cc1a6cea278bc03c872abba2ae2eb05fb5df177"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"61838582e16dc915523d1a9f4b64a79c51690958","unresolved":false,"context_lines":[{"line_number":929,"context_line":"                        datastore\u003ddatastore.name,"},{"line_number":930,"context_line":"                        version_id\u003ddatastore_version.name,"},{"line_number":931,"context_line":"                        id\u003dvolume_type)"},{"line_number":932,"context_line":"            call_args[\u0027volume_size\u0027] \u003d volume_size"},{"line_number":933,"context_line":"            validate_volume_size(volume_size)"},{"line_number":934,"context_line":"            deltas[\u0027volumes\u0027] \u003d volume_size"},{"line_number":935,"context_line":"            # Instance volume should have enough space for the backup"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a74a57a_acb5ae7e","line":932,"updated":"2016-11-28 17:35:21.000000000","message":"Also, need to add call_args for volume_type and add it to the notification for Instance.create","commit_id":"5cc1a6cea278bc03c872abba2ae2eb05fb5df177"}],"trove/tests/unittests/datastore/test_datastore_version_metadata.py":[{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"61838582e16dc915523d1a9f4b64a79c51690958","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.assertEqual(ds_version.id, mapping.datastore_version_id)"},{"line_number":45,"context_line":"        self.assertEqual(\u0027flavor\u0027, str(mapping.key))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        mapping \u003d datastore_models.DBDatastoreVersionMetadata.find_by("},{"line_number":48,"context_line":"            datastore_version_id\u003dds_version.id,"},{"line_number":49,"context_line":"            value\u003dself.volume_type, deleted\u003dFalse, key\u003d\u0027volume_type\u0027)"},{"line_number":50,"context_line":"        self.assertEqual(str(self.volume_type), mapping.value)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a74a57a_599a1e6f","line":47,"updated":"2016-11-28 17:35:21.000000000","message":"Can you move this to its own test method, please?","commit_id":"5cc1a6cea278bc03c872abba2ae2eb05fb5df177"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"61838582e16dc915523d1a9f4b64a79c51690958","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            dsmetadata.add_datastore_version_flavor_association,"},{"line_number":61,"context_line":"            self.ds_name, self.ds_version, [self.flavor_id])"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        dsmetadata \u003d datastore_models.DatastoreVersionMetadata"},{"line_number":64,"context_line":"        self.assertRaises("},{"line_number":65,"context_line":"            exception.DatastoreVolumeTypeAssociationAlreadyExists,"},{"line_number":66,"context_line":"            dsmetadata.add_datastore_version_volume_type_association,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a74a57a_f97f6a12","line":63,"updated":"2016-11-28 17:35:21.000000000","message":"Ditto, and maybe rename the original method to have \"flavor\" in the name.","commit_id":"5cc1a6cea278bc03c872abba2ae2eb05fb5df177"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"61838582e16dc915523d1a9f4b64a79c51690958","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            dsmeta.delete_datastore_version_flavor_association,"},{"line_number":76,"context_line":"            self.ds_name, self.ds_version, flavor_id\u003d2)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        self.assertRaises("},{"line_number":79,"context_line":"            exception.DatastoreVolumeTypeAssociationNotFound,"},{"line_number":80,"context_line":"            dsmeta.delete_datastore_version_volume_type_association,"},{"line_number":81,"context_line":"            self.ds_name, self.ds_version,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a74a57a_3976423e","line":78,"updated":"2016-11-28 17:35:21.000000000","message":"ditto","commit_id":"5cc1a6cea278bc03c872abba2ae2eb05fb5df177"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"61838582e16dc915523d1a9f4b64a79c51690958","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                                                        self.ds_version,"},{"line_number":109,"context_line":"                                                        flavor_id)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        volume_type \u003d \u0027this is bogus\u0027"},{"line_number":112,"context_line":"        dsmetadata \u003d datastore_models. DatastoreVersionMetadata"},{"line_number":113,"context_line":"        dsmetadata.add_datastore_version_volume_type_association("},{"line_number":114,"context_line":"            self.ds_name,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a74a57a_b998926b","line":111,"updated":"2016-11-28 17:35:21.000000000","message":"And again.","commit_id":"5cc1a6cea278bc03c872abba2ae2eb05fb5df177"}],"trove/volume_types/models.py":[{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"61838582e16dc915523d1a9f4b64a79c51690958","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        by querying cinder using the context provided."},{"line_number":33,"context_line":"        \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        if volume_type and not (volume_type_id or context):"},{"line_number":36,"context_line":"            self.volume_type \u003d volume_type"},{"line_number":37,"context_line":"        elif volume_type_id and context:"},{"line_number":38,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a74a57a_2fb9902e","line":35,"updated":"2016-11-28 17:35:21.000000000","message":"This seems wrong - wouldn\u0027t this hide coding errors?\n\nAs the context is only used to create the client, and as coded a new client would be created for each volume_type, couldn\u0027t we instead make cinder_client a positional parameter which can be explicitly coded as None?  Especially since the likely caller below already has a cinder_client.","commit_id":"5cc1a6cea278bc03c872abba2ae2eb05fb5df177"}],"trove/volume_types/service.py":[{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"61838582e16dc915523d1a9f4b64a79c51690958","unresolved":false,"context_lines":[{"line_number":22,"context_line":"class VolumeTypesController(wsgi.Controller):"},{"line_number":23,"context_line":"    \"\"\"A controller for the Cinder Volume Types functionality.\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def show(self, req, tenant_id, id):"},{"line_number":26,"context_line":"        \"\"\"Return a single volume type.\"\"\""},{"line_number":27,"context_line":"        context \u003d req.environ[wsgi.CONTEXT_KEY]"},{"line_number":28,"context_line":"        volume_type \u003d models.VolumeType(context\u003dcontext, volume_type_id\u003did)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a74a57a_afc920ae","line":25,"range":{"start_line":25,"start_character":35,"end_line":25,"end_character":37},"updated":"2016-11-28 17:35:21.000000000","message":"Maybe we could call this volume_type_id to avoid confusion with instance_id?","commit_id":"5cc1a6cea278bc03c872abba2ae2eb05fb5df177"}]}
