)]}'
{"tempest/api/image/base.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d474e5425d9ca524e183a5cb88533457b6d9f9a5","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        return image"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    @classmethod"},{"line_number":87,"context_line":"    def create_namespace(cls, namespace_name\u003dNone, visibility\u003d\u0027public\u0027,"},{"line_number":88,"context_line":"                         description\u003d\u0027Tempest\u0027, protected\u003dFalse,"},{"line_number":89,"context_line":"                         **kwargs):"},{"line_number":90,"context_line":"        if not namespace_name:"},{"line_number":91,"context_line":"            namespace_name \u003d data_utils.rand_name(\u0027test-ns\u0027)"},{"line_number":92,"context_line":"        kwargs.setdefault(\u0027display_name\u0027, namespace_name)"},{"line_number":93,"context_line":"        namespace \u003d cls.namespaces_client.create_namespace("},{"line_number":94,"context_line":"            namespace\u003dnamespace_name, visibility\u003dvisibility,"},{"line_number":95,"context_line":"            description\u003ddescription, protected\u003dprotected, **kwargs)"},{"line_number":96,"context_line":"        cls.created_namespaces.append(namespace_name)"},{"line_number":97,"context_line":"        return namespace"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    @classmethod"},{"line_number":100,"context_line":"    def _get_create_params(cls, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_5c10f34e","line":97,"range":{"start_line":87,"start_character":0,"end_line":97,"end_character":24},"updated":"2016-08-15 06:14:04.000000000","message":"we should move this to BaseV2ImageTest class as it is only v2 specific.","commit_id":"a4549bc43ac296d1ba0b07af435f65f97a557e3a"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"2f26d24ad0bd5adda03f073dd43cb0bac282c016","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        return image"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    @classmethod"},{"line_number":87,"context_line":"    def create_namespace(cls, namespace_name\u003dNone, visibility\u003d\u0027public\u0027,"},{"line_number":88,"context_line":"                         description\u003d\u0027Tempest\u0027, protected\u003dFalse,"},{"line_number":89,"context_line":"                         **kwargs):"},{"line_number":90,"context_line":"        if not namespace_name:"},{"line_number":91,"context_line":"            namespace_name \u003d data_utils.rand_name(\u0027test-ns\u0027)"},{"line_number":92,"context_line":"        kwargs.setdefault(\u0027display_name\u0027, namespace_name)"},{"line_number":93,"context_line":"        namespace \u003d cls.namespaces_client.create_namespace("},{"line_number":94,"context_line":"            namespace\u003dnamespace_name, visibility\u003dvisibility,"},{"line_number":95,"context_line":"            description\u003ddescription, protected\u003dprotected, **kwargs)"},{"line_number":96,"context_line":"        cls.created_namespaces.append(namespace_name)"},{"line_number":97,"context_line":"        return namespace"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    @classmethod"},{"line_number":100,"context_line":"    def _get_create_params(cls, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_9f4b7db0","line":97,"range":{"start_line":87,"start_character":0,"end_line":97,"end_character":24},"in_reply_to":"3ac371cc_5c10f34e","updated":"2016-08-15 08:33:12.000000000","message":"Done","commit_id":"a4549bc43ac296d1ba0b07af435f65f97a557e3a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"13ae72eea305da586f4dc191fb7bce983f29772a","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        cls.schemas_client \u003d cls.os.schemas_client"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    @classmethod"},{"line_number":154,"context_line":"    def create_namespace(cls, namespace_name\u003dNone, visibility\u003d\u0027public\u0027,"},{"line_number":155,"context_line":"                         description\u003d\u0027Tempest\u0027, protected\u003dFalse,"},{"line_number":156,"context_line":"                         **kwargs):"},{"line_number":157,"context_line":"        if not namespace_name:"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_c400f136","line":154,"updated":"2016-08-30 15:40:26.000000000","message":"Let\u0027s try to use addCleanup (and test-local fixture) instead of class level/class method.\n\nYou don\"t need your namespaces to be shared between tests, just use self.addCleanup() here.","commit_id":"e34c1ff757eb23520dc4931c2e5cde339bcb8985"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"d761bade3ea49810bc51933ce5fd508d3b45d955","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        cls.schemas_client \u003d cls.os.schemas_client"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    @classmethod"},{"line_number":154,"context_line":"    def create_namespace(cls, namespace_name\u003dNone, visibility\u003d\u0027public\u0027,"},{"line_number":155,"context_line":"                         description\u003d\u0027Tempest\u0027, protected\u003dFalse,"},{"line_number":156,"context_line":"                         **kwargs):"},{"line_number":157,"context_line":"        if not namespace_name:"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_68b8b72b","line":154,"in_reply_to":"fa7ab95a_520f3536","updated":"2016-08-30 23:56:36.000000000","message":"How about implementing this when it is necessary?\naddCleanup() seems simple and easy at this time in this patch.","commit_id":"e34c1ff757eb23520dc4931c2e5cde339bcb8985"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"1f60f221d2316c1f920b79e0d0a51e6e70081073","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        cls.schemas_client \u003d cls.os.schemas_client"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    @classmethod"},{"line_number":154,"context_line":"    def create_namespace(cls, namespace_name\u003dNone, visibility\u003d\u0027public\u0027,"},{"line_number":155,"context_line":"                         description\u003d\u0027Tempest\u0027, protected\u003dFalse,"},{"line_number":156,"context_line":"                         **kwargs):"},{"line_number":157,"context_line":"        if not namespace_name:"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_983382f6","line":154,"in_reply_to":"fa7ab95a_68b8b72b","updated":"2016-08-31 06:14:05.000000000","message":"Fine, I will add it in next patch.\nThanks.","commit_id":"e34c1ff757eb23520dc4931c2e5cde339bcb8985"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"fb5a14fffbb66f7c2be2bcbbcf66df04f2fb5f15","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        cls.schemas_client \u003d cls.os.schemas_client"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    @classmethod"},{"line_number":154,"context_line":"    def create_namespace(cls, namespace_name\u003dNone, visibility\u003d\u0027public\u0027,"},{"line_number":155,"context_line":"                         description\u003d\u0027Tempest\u0027, protected\u003dFalse,"},{"line_number":156,"context_line":"                         **kwargs):"},{"line_number":157,"context_line":"        if not namespace_name:"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_520f3536","line":154,"in_reply_to":"fa7ab95a_c400f136","updated":"2016-08-30 17:42:05.000000000","message":"For current test cases, i haven\u0027t used any shared resource but it might be possible to use shared resources in later testcases. So I have used it.","commit_id":"e34c1ff757eb23520dc4931c2e5cde339bcb8985"}],"tempest/api/image/v2/test_images_metadefs_namespaces.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d474e5425d9ca524e183a5cb88533457b6d9f9a5","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        self.namespaces_client.delete_namespace(namespace_name)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"class MetadataResourceTypesTest(base.BaseV2ImageTest):"},{"line_number":76,"context_line":"    \"\"\"Test the Metadata definition ressource types basic functionality\"\"\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @test.idempotent_id(\u00276f358a4e-5ef0-11e6-a795-080027d0d606\u0027)"},{"line_number":79,"context_line":"    def test_basic_meta_def_resource_type_association(self):"},{"line_number":80,"context_line":"        # Get the available resource types and use one resource_type"},{"line_number":81,"context_line":"        body \u003d self.resource_types_client.list_resource_types()"},{"line_number":82,"context_line":"        resource_name \u003d body[\u0027resource_types\u0027][0][\u0027name\u0027]"},{"line_number":83,"context_line":"        # Create a namespace"},{"line_number":84,"context_line":"        namespace \u003d self.create_namespace()"},{"line_number":85,"context_line":"        # Create resource type association"},{"line_number":86,"context_line":"        body \u003d (self.resource_types_client.create_resource_type_association("},{"line_number":87,"context_line":"                namespace[\u0027namespace\u0027], name\u003dresource_name))"},{"line_number":88,"context_line":"        self.assertEqual(body[\u0027name\u0027], resource_name)"},{"line_number":89,"context_line":"        # List resource type associations and validate creation"},{"line_number":90,"context_line":"        rs_type_associations \u003d ("},{"line_number":91,"context_line":"            [rs_type_association[\u0027name\u0027] for rs_type_association in"},{"line_number":92,"context_line":"                self.resource_types_client.list_resource_type_association("},{"line_number":93,"context_line":"                    namespace[\u0027namespace\u0027])[\u0027resource_type_associations\u0027]])"},{"line_number":94,"context_line":"        self.assertIn(resource_name, rs_type_associations)"},{"line_number":95,"context_line":"        # Delete resource type association"},{"line_number":96,"context_line":"        self.resource_types_client.delete_resource_type_association("},{"line_number":97,"context_line":"            namespace[\u0027namespace\u0027], resource_name)"},{"line_number":98,"context_line":"        # List resource type associations and validate deletion"},{"line_number":99,"context_line":"        rs_type_associations \u003d ("},{"line_number":100,"context_line":"            [rs_type_association[\u0027name\u0027] for rs_type_association in"},{"line_number":101,"context_line":"                self.resource_types_client.list_resource_type_association("},{"line_number":102,"context_line":"                    namespace[\u0027namespace\u0027])[\u0027resource_type_associations\u0027]])"},{"line_number":103,"context_line":"        self.assertNotIn(resource_name, rs_type_associations)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_bc55a7c7","line":103,"range":{"start_line":75,"start_character":0,"end_line":103,"end_character":61},"updated":"2016-08-15 06:14:04.000000000","message":"this should go in new file.","commit_id":"a4549bc43ac296d1ba0b07af435f65f97a557e3a"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"2f26d24ad0bd5adda03f073dd43cb0bac282c016","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        self.namespaces_client.delete_namespace(namespace_name)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"class MetadataResourceTypesTest(base.BaseV2ImageTest):"},{"line_number":76,"context_line":"    \"\"\"Test the Metadata definition ressource types basic functionality\"\"\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @test.idempotent_id(\u00276f358a4e-5ef0-11e6-a795-080027d0d606\u0027)"},{"line_number":79,"context_line":"    def test_basic_meta_def_resource_type_association(self):"},{"line_number":80,"context_line":"        # Get the available resource types and use one resource_type"},{"line_number":81,"context_line":"        body \u003d self.resource_types_client.list_resource_types()"},{"line_number":82,"context_line":"        resource_name \u003d body[\u0027resource_types\u0027][0][\u0027name\u0027]"},{"line_number":83,"context_line":"        # Create a namespace"},{"line_number":84,"context_line":"        namespace \u003d self.create_namespace()"},{"line_number":85,"context_line":"        # Create resource type association"},{"line_number":86,"context_line":"        body \u003d (self.resource_types_client.create_resource_type_association("},{"line_number":87,"context_line":"                namespace[\u0027namespace\u0027], name\u003dresource_name))"},{"line_number":88,"context_line":"        self.assertEqual(body[\u0027name\u0027], resource_name)"},{"line_number":89,"context_line":"        # List resource type associations and validate creation"},{"line_number":90,"context_line":"        rs_type_associations \u003d ("},{"line_number":91,"context_line":"            [rs_type_association[\u0027name\u0027] for rs_type_association in"},{"line_number":92,"context_line":"                self.resource_types_client.list_resource_type_association("},{"line_number":93,"context_line":"                    namespace[\u0027namespace\u0027])[\u0027resource_type_associations\u0027]])"},{"line_number":94,"context_line":"        self.assertIn(resource_name, rs_type_associations)"},{"line_number":95,"context_line":"        # Delete resource type association"},{"line_number":96,"context_line":"        self.resource_types_client.delete_resource_type_association("},{"line_number":97,"context_line":"            namespace[\u0027namespace\u0027], resource_name)"},{"line_number":98,"context_line":"        # List resource type associations and validate deletion"},{"line_number":99,"context_line":"        rs_type_associations \u003d ("},{"line_number":100,"context_line":"            [rs_type_association[\u0027name\u0027] for rs_type_association in"},{"line_number":101,"context_line":"                self.resource_types_client.list_resource_type_association("},{"line_number":102,"context_line":"                    namespace[\u0027namespace\u0027])[\u0027resource_type_associations\u0027]])"},{"line_number":103,"context_line":"        self.assertNotIn(resource_name, rs_type_associations)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_6b41a339","line":103,"range":{"start_line":75,"start_character":0,"end_line":103,"end_character":61},"in_reply_to":"3ac371cc_bc55a7c7","updated":"2016-08-15 08:33:12.000000000","message":"Done","commit_id":"a4549bc43ac296d1ba0b07af435f65f97a557e3a"}],"tempest/api/image/v2/test_images_metadefs_resource_types.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"38132da6be5a54354e168a78535d8da1312e484f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        # Create a namespace"},{"line_number":29,"context_line":"        namespace \u003d self.create_namespace()"},{"line_number":30,"context_line":"        # Create resource type association"},{"line_number":31,"context_line":"        body \u003d (self.resource_types_client.create_resource_type_association("},{"line_number":32,"context_line":"                namespace[\u0027namespace\u0027], name\u003dresource_name))"},{"line_number":33,"context_line":"        self.assertEqual(body[\u0027name\u0027], resource_name)"},{"line_number":34,"context_line":"        # List resource type associations and validate creation"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_86f0dc68","line":31,"updated":"2016-08-17 08:26:33.000000000","message":"Useless outer parenthesis","commit_id":"c7bccd33c712a37ab4f31ff5943fcf34bd27a476"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"4534b84187f581141d2e8349e8c8b1ba909bf0e7","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        # Create a namespace"},{"line_number":29,"context_line":"        namespace \u003d self.create_namespace()"},{"line_number":30,"context_line":"        # Create resource type association"},{"line_number":31,"context_line":"        body \u003d (self.resource_types_client.create_resource_type_association("},{"line_number":32,"context_line":"                namespace[\u0027namespace\u0027], name\u003dresource_name))"},{"line_number":33,"context_line":"        self.assertEqual(body[\u0027name\u0027], resource_name)"},{"line_number":34,"context_line":"        # List resource type associations and validate creation"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_efcd2386","line":31,"in_reply_to":"3ac371cc_86f0dc68","updated":"2016-08-17 09:12:36.000000000","message":"Done","commit_id":"c7bccd33c712a37ab4f31ff5943fcf34bd27a476"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"38132da6be5a54354e168a78535d8da1312e484f","unresolved":false,"context_lines":[{"line_number":32,"context_line":"                namespace[\u0027namespace\u0027], name\u003dresource_name))"},{"line_number":33,"context_line":"        self.assertEqual(body[\u0027name\u0027], resource_name)"},{"line_number":34,"context_line":"        # List resource type associations and validate creation"},{"line_number":35,"context_line":"        rs_type_associations \u003d ("},{"line_number":36,"context_line":"            [rs_type_association[\u0027name\u0027] for rs_type_association in"},{"line_number":37,"context_line":"                self.resource_types_client.list_resource_type_association("},{"line_number":38,"context_line":"                    namespace[\u0027namespace\u0027])[\u0027resource_type_associations\u0027]])"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_a6a23849","line":35,"updated":"2016-08-17 08:26:33.000000000","message":"Useless outer parenthesis, just do\n\nrs_type_associations \u003d [\n    rs_type_association[\u0027name\u0027] for rs_type_association in\n        self.resource_types_client.list_resource_type_association(\n            namespace[\u0027namespace\u0027])[\u0027resource_type_associations\u0027]\n]","commit_id":"c7bccd33c712a37ab4f31ff5943fcf34bd27a476"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"4534b84187f581141d2e8349e8c8b1ba909bf0e7","unresolved":false,"context_lines":[{"line_number":32,"context_line":"                namespace[\u0027namespace\u0027], name\u003dresource_name))"},{"line_number":33,"context_line":"        self.assertEqual(body[\u0027name\u0027], resource_name)"},{"line_number":34,"context_line":"        # List resource type associations and validate creation"},{"line_number":35,"context_line":"        rs_type_associations \u003d ("},{"line_number":36,"context_line":"            [rs_type_association[\u0027name\u0027] for rs_type_association in"},{"line_number":37,"context_line":"                self.resource_types_client.list_resource_type_association("},{"line_number":38,"context_line":"                    namespace[\u0027namespace\u0027])[\u0027resource_type_associations\u0027]])"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_2fc45b5d","line":35,"in_reply_to":"3ac371cc_a6a23849","updated":"2016-08-17 09:12:36.000000000","message":"Done","commit_id":"c7bccd33c712a37ab4f31ff5943fcf34bd27a476"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"38132da6be5a54354e168a78535d8da1312e484f","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        self.resource_types_client.delete_resource_type_association("},{"line_number":42,"context_line":"            namespace[\u0027namespace\u0027], resource_name)"},{"line_number":43,"context_line":"        # List resource type associations and validate deletion"},{"line_number":44,"context_line":"        rs_type_associations \u003d ("},{"line_number":45,"context_line":"            [rs_type_association[\u0027name\u0027] for rs_type_association in"},{"line_number":46,"context_line":"                self.resource_types_client.list_resource_type_association("},{"line_number":47,"context_line":"                    namespace[\u0027namespace\u0027])[\u0027resource_type_associations\u0027]])"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_469264f7","line":44,"updated":"2016-08-17 08:26:33.000000000","message":"same","commit_id":"c7bccd33c712a37ab4f31ff5943fcf34bd27a476"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"4534b84187f581141d2e8349e8c8b1ba909bf0e7","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        self.resource_types_client.delete_resource_type_association("},{"line_number":42,"context_line":"            namespace[\u0027namespace\u0027], resource_name)"},{"line_number":43,"context_line":"        # List resource type associations and validate deletion"},{"line_number":44,"context_line":"        rs_type_associations \u003d ("},{"line_number":45,"context_line":"            [rs_type_association[\u0027name\u0027] for rs_type_association in"},{"line_number":46,"context_line":"                self.resource_types_client.list_resource_type_association("},{"line_number":47,"context_line":"                    namespace[\u0027namespace\u0027])[\u0027resource_type_associations\u0027]])"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_afae8b95","line":44,"in_reply_to":"3ac371cc_469264f7","updated":"2016-08-17 09:12:36.000000000","message":"Done","commit_id":"c7bccd33c712a37ab4f31ff5943fcf34bd27a476"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"be3cc2d54e298ed1365b05018e69ced224c6f12e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        namespace \u003d self.create_namespace()"},{"line_number":30,"context_line":"        # Create resource type association"},{"line_number":31,"context_line":"        body \u003d self.resource_types_client.create_resource_type_association("},{"line_number":32,"context_line":"            namespace[\u0027namespace\u0027], name\u003dresource_name)"},{"line_number":33,"context_line":"        self.assertEqual(body[\u0027name\u0027], resource_name)"},{"line_number":34,"context_line":"        # List resource type associations and validate creation"},{"line_number":35,"context_line":"        rs_type_associations \u003d ["}],"source_content_type":"text/x-python","patch_set":5,"id":"fa7ab95a_338e62d0","line":32,"updated":"2016-08-30 07:56:17.000000000","message":"How about adding your intention as a comment?","commit_id":"1566c747dfcb739999f66cd3d6986e9b1472db0a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"49edd93c4c35175f4464e76529e7c54016419e96","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        # Create a namespace"},{"line_number":29,"context_line":"        namespace \u003d self.create_namespace()"},{"line_number":30,"context_line":"        # Create resource type association"},{"line_number":31,"context_line":"        body \u003d self.resource_types_client.create_resource_type_association("},{"line_number":32,"context_line":"            namespace[\u0027namespace\u0027], name\u003dresource_name)"},{"line_number":33,"context_line":"        self.assertEqual(body[\u0027name\u0027], resource_name)"},{"line_number":34,"context_line":"        # List resource type associations and validate creation"},{"line_number":35,"context_line":"        rs_type_associations \u003d ["}],"source_content_type":"text/x-python","patch_set":5,"id":"fa7ab95a_8eb71cd7","line":32,"range":{"start_line":31,"start_character":8,"end_line":32,"end_character":55},"updated":"2016-08-29 20:36:13.000000000","message":"We need addCleanup() just after create_resource_type_association() for removing the association when a failure happens on the following asserts.","commit_id":"1566c747dfcb739999f66cd3d6986e9b1472db0a"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"46fd7ce569b11e34aefb169cf4eadc56d0563bab","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        # Create a namespace"},{"line_number":29,"context_line":"        namespace \u003d self.create_namespace()"},{"line_number":30,"context_line":"        # Create resource type association"},{"line_number":31,"context_line":"        body \u003d self.resource_types_client.create_resource_type_association("},{"line_number":32,"context_line":"            namespace[\u0027namespace\u0027], name\u003dresource_name)"},{"line_number":33,"context_line":"        self.assertEqual(body[\u0027name\u0027], resource_name)"},{"line_number":34,"context_line":"        # List resource type associations and validate creation"},{"line_number":35,"context_line":"        rs_type_associations \u003d ["}],"source_content_type":"text/x-python","patch_set":5,"id":"fa7ab95a_ad9bf164","line":32,"range":{"start_line":31,"start_character":8,"end_line":32,"end_character":55},"in_reply_to":"fa7ab95a_8eb71cd7","updated":"2016-08-30 07:06:41.000000000","message":"Intentionally, I haven\u0027t added addCleanup here because association is only metadata association and is automatically removed when namespace is cleaned.\nAs it is being automatically removed with namespace, I thought not to add this.","commit_id":"1566c747dfcb739999f66cd3d6986e9b1472db0a"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"a6d5ad8d28edd4be087296b79216eb10bad81648","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        # method for resource type dissociation because its a metadata add and"},{"line_number":36,"context_line":"        # being cleaned as soon as namespace is cleaned at test case level."},{"line_number":37,"context_line":"        # When namespace cleans, resource type associaion will automatically"},{"line_number":38,"context_line":"        # cleane without any error or dependency."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        # List resource type associations and validate creation"},{"line_number":41,"context_line":"        rs_type_associations \u003d ["}],"source_content_type":"text/x-python","patch_set":9,"id":"fa7ab95a_194bd8b1","line":38,"updated":"2016-08-31 14:18:24.000000000","message":"cleaneD (typo) ?","commit_id":"1f7c0556169a46ab3856bf77be460f38260ad664"}],"tempest/lib/services/image/v2/resource_types_client.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d474e5425d9ca524e183a5cb88533457b6d9f9a5","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    api_version \u003d \"v2\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def list_resource_types(self):"},{"line_number":25,"context_line":"        \"\"\"Delete resource type association."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"         Available params: see http://developer.openstack.org/"},{"line_number":28,"context_line":"                               api-ref-image-v2.html#listResourceTypes-v2"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_795ea146","line":25,"range":{"start_line":25,"start_character":11,"end_line":25,"end_character":44},"updated":"2016-08-15 06:14:04.000000000","message":"Lists all resource types.","commit_id":"a4549bc43ac296d1ba0b07af435f65f97a557e3a"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"2f26d24ad0bd5adda03f073dd43cb0bac282c016","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    api_version \u003d \"v2\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def list_resource_types(self):"},{"line_number":25,"context_line":"        \"\"\"Delete resource type association."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"         Available params: see http://developer.openstack.org/"},{"line_number":28,"context_line":"                               api-ref-image-v2.html#listResourceTypes-v2"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_ab4b9b58","line":25,"range":{"start_line":25,"start_character":11,"end_line":25,"end_character":44},"in_reply_to":"3ac371cc_795ea146","updated":"2016-08-15 08:33:12.000000000","message":"Done","commit_id":"a4549bc43ac296d1ba0b07af435f65f97a557e3a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d474e5425d9ca524e183a5cb88533457b6d9f9a5","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def create_resource_type_association(self, namespace_id, **kwargs):"},{"line_number":37,"context_line":"        \"\"\"Delete resource type association."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"         Available params: see http://developer.openstack.org/"},{"line_number":40,"context_line":"                               api-ref-image-v2.html#createResourceTypeAssoc-v2"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_99555d1f","line":37,"range":{"start_line":37,"start_character":8,"end_line":37,"end_character":44},"updated":"2016-08-15 06:14:04.000000000","message":"Creates a resource type association in given namespace.","commit_id":"a4549bc43ac296d1ba0b07af435f65f97a557e3a"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"2f26d24ad0bd5adda03f073dd43cb0bac282c016","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def create_resource_type_association(self, namespace_id, **kwargs):"},{"line_number":37,"context_line":"        \"\"\"Delete resource type association."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"         Available params: see http://developer.openstack.org/"},{"line_number":40,"context_line":"                               api-ref-image-v2.html#createResourceTypeAssoc-v2"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_8b485f5d","line":37,"range":{"start_line":37,"start_character":8,"end_line":37,"end_character":44},"in_reply_to":"3ac371cc_99555d1f","updated":"2016-08-15 08:33:12.000000000","message":"Done","commit_id":"a4549bc43ac296d1ba0b07af435f65f97a557e3a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d474e5425d9ca524e183a5cb88533457b6d9f9a5","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def list_resource_type_association(self, namespace_id):"},{"line_number":50,"context_line":"        \"\"\"Delete resource type association."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"         Available params: see http://developer.openstack.org/"},{"line_number":53,"context_line":"                               api-ref-image-v2.html#listResourceTypeAssocs-v2"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_f930d109","line":50,"range":{"start_line":50,"start_character":11,"end_line":50,"end_character":44},"updated":"2016-08-15 06:14:04.000000000","message":"Lists resource type associations in given namespace.","commit_id":"a4549bc43ac296d1ba0b07af435f65f97a557e3a"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"2f26d24ad0bd5adda03f073dd43cb0bac282c016","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def list_resource_type_association(self, namespace_id):"},{"line_number":50,"context_line":"        \"\"\"Delete resource type association."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"         Available params: see http://developer.openstack.org/"},{"line_number":53,"context_line":"                               api-ref-image-v2.html#listResourceTypeAssocs-v2"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_2b6e8bc9","line":50,"range":{"start_line":50,"start_character":11,"end_line":50,"end_character":44},"in_reply_to":"3ac371cc_f930d109","updated":"2016-08-15 08:33:12.000000000","message":"Done","commit_id":"a4549bc43ac296d1ba0b07af435f65f97a557e3a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d474e5425d9ca524e183a5cb88533457b6d9f9a5","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def delete_resource_type_association(self, namespace_id, resource_name):"},{"line_number":62,"context_line":"        \"\"\"Delete resource type association."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"         Available params: see http://developer.openstack.org/"},{"line_number":65,"context_line":"                               api-ref-image-v2.html#deleteResourceTypeAssoc-v2"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_d93515f8","line":62,"range":{"start_line":62,"start_character":11,"end_line":62,"end_character":44},"updated":"2016-08-15 06:14:04.000000000","message":"Removes a resource type association in given namespace.","commit_id":"a4549bc43ac296d1ba0b07af435f65f97a557e3a"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"2f26d24ad0bd5adda03f073dd43cb0bac282c016","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def delete_resource_type_association(self, namespace_id, resource_name):"},{"line_number":62,"context_line":"        \"\"\"Delete resource type association."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"         Available params: see http://developer.openstack.org/"},{"line_number":65,"context_line":"                               api-ref-image-v2.html#deleteResourceTypeAssoc-v2"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_eb9ab3c4","line":62,"range":{"start_line":62,"start_character":11,"end_line":62,"end_character":44},"in_reply_to":"3ac371cc_d93515f8","updated":"2016-08-15 08:33:12.000000000","message":"Done","commit_id":"a4549bc43ac296d1ba0b07af435f65f97a557e3a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"38132da6be5a54354e168a78535d8da1312e484f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def create_resource_type_association(self, namespace_id, **kwargs):"},{"line_number":37,"context_line":"        \"\"\"Creates a resource type association in given namespace."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"         Available params: see http://developer.openstack.org/"},{"line_number":40,"context_line":"                               api-ref-image-v2.html#createResourceTypeAssoc-v2"},{"line_number":41,"context_line":"         \"\"\""},{"line_number":42,"context_line":"        url \u003d \u0027metadefs/namespaces/%s/resource_types\u0027 % namespace_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_c642d467","line":39,"updated":"2016-08-17 08:26:33.000000000","message":"This link doesn\u0027t point to the exact location of the documentation","commit_id":"c7bccd33c712a37ab4f31ff5943fcf34bd27a476"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"4534b84187f581141d2e8349e8c8b1ba909bf0e7","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def create_resource_type_association(self, namespace_id, **kwargs):"},{"line_number":37,"context_line":"        \"\"\"Creates a resource type association in given namespace."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"         Available params: see http://developer.openstack.org/"},{"line_number":40,"context_line":"                               api-ref-image-v2.html#createResourceTypeAssoc-v2"},{"line_number":41,"context_line":"         \"\"\""},{"line_number":42,"context_line":"        url \u003d \u0027metadefs/namespaces/%s/resource_types\u0027 % namespace_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_ef940344","line":39,"in_reply_to":"3ac371cc_c642d467","updated":"2016-08-17 09:12:36.000000000","message":"Done","commit_id":"c7bccd33c712a37ab4f31ff5943fcf34bd27a476"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"49edd93c4c35175f4464e76529e7c54016419e96","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                               api-ref/image/v2/metadefs-index.html?expanded\u003d#"},{"line_number":42,"context_line":"                               create-resource-type-association"},{"line_number":43,"context_line":"         \"\"\""},{"line_number":44,"context_line":"        url \u003d \u0027metadefs/namespaces/%s/resource_types\u0027 % namespace_id"},{"line_number":45,"context_line":"        data \u003d json.dumps(kwargs)"},{"line_number":46,"context_line":"        resp, body \u003d self.post(url, data)"},{"line_number":47,"context_line":"        self.expected_success(201, resp.status)"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa7ab95a_0b0e9e3a","line":44,"range":{"start_line":44,"start_character":15,"end_line":44,"end_character":34},"updated":"2016-08-29 20:36:13.000000000","message":"based on this url, these methods should be contained in namespaces_client, not resource_types_client.","commit_id":"1566c747dfcb739999f66cd3d6986e9b1472db0a"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"be3cc2d54e298ed1365b05018e69ced224c6f12e","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                               api-ref/image/v2/metadefs-index.html?expanded\u003d#"},{"line_number":42,"context_line":"                               create-resource-type-association"},{"line_number":43,"context_line":"         \"\"\""},{"line_number":44,"context_line":"        url \u003d \u0027metadefs/namespaces/%s/resource_types\u0027 % namespace_id"},{"line_number":45,"context_line":"        data \u003d json.dumps(kwargs)"},{"line_number":46,"context_line":"        resp, body \u003d self.post(url, data)"},{"line_number":47,"context_line":"        self.expected_success(201, resp.status)"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa7ab95a_13931efb","line":44,"updated":"2016-08-30 07:56:17.000000000","message":"yeah, I feel it\u0027s natural to implement this here not namespaces_client.","commit_id":"1566c747dfcb739999f66cd3d6986e9b1472db0a"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"46fd7ce569b11e34aefb169cf4eadc56d0563bab","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                               api-ref/image/v2/metadefs-index.html?expanded\u003d#"},{"line_number":42,"context_line":"                               create-resource-type-association"},{"line_number":43,"context_line":"         \"\"\""},{"line_number":44,"context_line":"        url \u003d \u0027metadefs/namespaces/%s/resource_types\u0027 % namespace_id"},{"line_number":45,"context_line":"        data \u003d json.dumps(kwargs)"},{"line_number":46,"context_line":"        resp, body \u003d self.post(url, data)"},{"line_number":47,"context_line":"        self.expected_success(201, resp.status)"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa7ab95a_edf6d98d","line":44,"range":{"start_line":44,"start_character":15,"end_line":44,"end_character":34},"in_reply_to":"fa7ab95a_0b0e9e3a","updated":"2016-08-30 07:06:41.000000000","message":"From the API docs I could see, all these methods are grouped under metadef resource type topic. that\u0027s why I have added these in this file only. I just followed API ref doc for addition of clients.","commit_id":"1566c747dfcb739999f66cd3d6986e9b1472db0a"}]}
