)]}'
{"tempest/scenario/manager.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"d17550714873fc0a9ef7eaf11be4c2b806d0b74a","unresolved":false,"context_lines":[{"line_number":387,"context_line":"            LOG.debug(\u0027Console output for %s\u0027, server[\u0027id\u0027])"},{"line_number":388,"context_line":"            LOG.debug(self.servers_client.get_console_output(server[\u0027id\u0027]))"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"    def nova_volume_attach(self):"},{"line_number":391,"context_line":"        # TODO(andreaf) Device should be here CONF.compute.volume_device_name"},{"line_number":392,"context_line":"        _, volume_attachment \u003d self.servers_client.attach_volume("},{"line_number":393,"context_line":"            self.server[\u0027id\u0027], self.volume[\u0027id\u0027], \u0027/dev/vdb\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_72a8df21","line":390,"updated":"2014-08-06 17:10:27.000000000","message":"Moving the helpers here makes sense - it seems like an unrelated change but ok...","commit_id":"1ab2db82a926cfcd9b53db41b579e615e9c64fb2"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"f8e1bd440769300b9e60b30e5a56417b01924049","unresolved":false,"context_lines":[{"line_number":1108,"context_line":"        self.server \u003d self.create_server(image\u003dself.image,"},{"line_number":1109,"context_line":"                                         create_kwargs\u003dcreate_kwargs)"},{"line_number":1110,"context_line":""},{"line_number":1111,"context_line":"    def _delete_volume_type(self, volume_type_id):"},{"line_number":1112,"context_line":"        self.volume_types_client.delete_volume_type(volume_type_id)"},{"line_number":1113,"context_line":""},{"line_number":1114,"context_line":"    def create_volume_type(self, name\u003dNone):"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa98f980_258e362f","line":1111,"updated":"2014-09-01 17:03:09.000000000","message":"I\u0027m not sure we need an additional helper, but it\u0027s doesn\u0027t harm.","commit_id":"7d88da14af032d02f169d4ed45a5c87f9598121b"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"c8f765eb7e36437b3c0d5655ff2011724aa227a1","unresolved":false,"context_lines":[{"line_number":1108,"context_line":"        self.server \u003d self.create_server(image\u003dself.image,"},{"line_number":1109,"context_line":"                                         create_kwargs\u003dcreate_kwargs)"},{"line_number":1110,"context_line":""},{"line_number":1111,"context_line":"    def _delete_volume_type(self, volume_type_id):"},{"line_number":1112,"context_line":"        self.volume_types_client.delete_volume_type(volume_type_id)"},{"line_number":1113,"context_line":""},{"line_number":1114,"context_line":"    def create_volume_type(self, name\u003dNone):"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa98f980_d9682424","line":1111,"in_reply_to":"fa98f980_258e362f","updated":"2014-09-07 11:43:46.000000000","message":"We don\u0027t, and it does. Aliasing methods (having 1-line methods) just adds unnecessary code. IMO this is cause for -1","commit_id":"7d88da14af032d02f169d4ed45a5c87f9598121b"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"c8f765eb7e36437b3c0d5655ff2011724aa227a1","unresolved":false,"context_lines":[{"line_number":1114,"context_line":"    def create_volume_type(self, name\u003dNone):"},{"line_number":1115,"context_line":"        if not name:"},{"line_number":1116,"context_line":"            name \u003d \u0027generic\u0027"},{"line_number":1117,"context_line":"        randomized_name \u003d data_utils.rand_name(\u0027scenario-type-\u0027 + name + \u0027-\u0027)"},{"line_number":1118,"context_line":"        LOG.debug(\"Creating a volume type: %s\", randomized_name)"},{"line_number":1119,"context_line":"        _, body \u003d self.volume_types_client.create_volume_type("},{"line_number":1120,"context_line":"            randomized_name)"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa98f980_59643449","line":1117,"updated":"2014-09-07 11:43:46.000000000","message":"nit (out of scope): \u0027scenario-type-%s\u0027 % name","commit_id":"7d88da14af032d02f169d4ed45a5c87f9598121b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"deab8b848c49b3282016cefce443d6574ab3b5d4","unresolved":false,"context_lines":[{"line_number":1634,"context_line":"        _, body \u003d self.volume_types_client.create_volume_type("},{"line_number":1635,"context_line":"            randomized_name)"},{"line_number":1636,"context_line":"        self.assertIn(\u0027id\u0027, body)"},{"line_number":1637,"context_line":"        self.addCleanup(self.self.volume_types_client.delete_volume_type,"},{"line_number":1638,"context_line":"                        body[\u0027id\u0027])"},{"line_number":1639,"context_line":"        return body"},{"line_number":1640,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"fa98f980_00ca246e","line":1637,"updated":"2014-09-08 02:09:22.000000000","message":"extra \".self\"","commit_id":"7ec6c89da4879a565942fa4bfc004f9340bd0008"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"275b07ba86d654a5d4aa7d0324c77c790d9993c9","unresolved":false,"context_lines":[{"line_number":1634,"context_line":"        _, body \u003d self.volume_types_client.create_volume_type("},{"line_number":1635,"context_line":"            randomized_name)"},{"line_number":1636,"context_line":"        self.assertIn(\u0027id\u0027, body)"},{"line_number":1637,"context_line":"        self.addCleanup(self.self.volume_types_client.delete_volume_type,"},{"line_number":1638,"context_line":"                        body[\u0027id\u0027])"},{"line_number":1639,"context_line":"        return body"},{"line_number":1640,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"fa98f980_239e5264","line":1637,"in_reply_to":"fa98f980_00ca246e","updated":"2014-09-08 03:31:36.000000000","message":"oops. Thanks.","commit_id":"7ec6c89da4879a565942fa4bfc004f9340bd0008"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"9acd409ed23ac909c64513a34d39a26b76c894a3","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        # Neutron network client"},{"line_number":94,"context_line":"        cls.network_client \u003d cls.manager.network_client"},{"line_number":95,"context_line":"        # Cinder volume client"},{"line_number":96,"context_line":"        cls.volume_types_client \u003d cls.admin_manager.volume_types_client"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @classmethod"},{"line_number":99,"context_line":"    def tearDownClass(cls):"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa98f980_ca34b24c","line":96,"updated":"2014-09-08 10:06:37.000000000","message":"I\u0027m not sure about that.\nAll other clients are non-admin. if we need to use admin client, I \nbelieve we should call it explicitly when we need to, instead of \nmasking it as regular client.","commit_id":"57bfe6cb0fdd46f2a550cdeb97eee5764b62c708"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"8800d6b272b4c36805d90b3d1b86781d2cd053c4","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        # Neutron network client"},{"line_number":94,"context_line":"        cls.network_client \u003d cls.manager.network_client"},{"line_number":95,"context_line":"        # Cinder volume client"},{"line_number":96,"context_line":"        cls.volume_types_client \u003d cls.admin_manager.volume_types_client"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @classmethod"},{"line_number":99,"context_line":"    def tearDownClass(cls):"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa98f980_e92ea0a4","line":96,"in_reply_to":"fa98f980_ca34b24c","updated":"2014-09-10 04:50:15.000000000","message":"Indeed, I\u0027ll update my patch. Thanks.","commit_id":"57bfe6cb0fdd46f2a550cdeb97eee5764b62c708"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"9acd409ed23ac909c64513a34d39a26b76c894a3","unresolved":false,"context_lines":[{"line_number":1631,"context_line":"            name \u003d \u0027generic\u0027"},{"line_number":1632,"context_line":"        randomized_name \u003d data_utils.rand_name(\u0027scenario-type-\u0027 + name + \u0027-\u0027)"},{"line_number":1633,"context_line":"        LOG.debug(\"Creating a volume type: %s\", randomized_name)"},{"line_number":1634,"context_line":"        _, body \u003d self.volume_types_client.create_volume_type("},{"line_number":1635,"context_line":"            randomized_name)"},{"line_number":1636,"context_line":"        self.assertIn(\u0027id\u0027, body)"},{"line_number":1637,"context_line":"        self.addCleanup(self.volume_types_client.delete_volume_type,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa98f980_0a015a39","line":1634,"range":{"start_line":1634,"start_character":23,"end_line":1634,"end_character":42},"updated":"2014-09-08 10:06:37.000000000","message":"I\u0027d prefer if this (and all other volume_type_client methods) \ncalled admin clients explicitly:\nadmin_manager.volume_types_client.delete...","commit_id":"57bfe6cb0fdd46f2a550cdeb97eee5764b62c708"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"9acd409ed23ac909c64513a34d39a26b76c894a3","unresolved":false,"context_lines":[{"line_number":1645,"context_line":"            volume_type \u003d self.create_volume_type()"},{"line_number":1646,"context_line":"            type_id \u003d volume_type[\u0027id\u0027]"},{"line_number":1647,"context_line":"        LOG.debug(\"Creating an encryption type for volume type: %s\", type_id)"},{"line_number":1648,"context_line":"        self.volume_types_client.create_encryption_type("},{"line_number":1649,"context_line":"            type_id, provider\u003dprovider, key_size\u003dkey_size, cipher\u003dcipher,"},{"line_number":1650,"context_line":"            control_location\u003dcontrol_location)"},{"line_number":1651,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"fa98f980_6af8264a","line":1648,"updated":"2014-09-08 10:06:37.000000000","message":"same here","commit_id":"57bfe6cb0fdd46f2a550cdeb97eee5764b62c708"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"8800388692a8690cdbcd2987b9c4d26cdaecbd3f","unresolved":false,"context_lines":[{"line_number":1607,"context_line":""},{"line_number":1608,"context_line":"class EncryptionScenarioTest(ScenarioTest):"},{"line_number":1609,"context_line":"    \"\"\""},{"line_number":1610,"context_line":"    Base class for encryption scenario tests"},{"line_number":1611,"context_line":"    \"\"\""},{"line_number":1612,"context_line":""},{"line_number":1613,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":16,"id":"fa98f980_77c1822e","line":1610,"updated":"2014-09-11 07:49:23.000000000","message":"nit: could you please add a docstring to explain why we use admin client here? for those unfamiliar with encrypted storage?","commit_id":"1f0ad63937e8282abcfae225ab3c2ffb6a420751"}],"tempest/scenario/test_encrypted_cinder_volumes.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"d17550714873fc0a9ef7eaf11be4c2b806d0b74a","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @classmethod"},{"line_number":35,"context_line":"    def credentials(cls):"},{"line_number":36,"context_line":"        return cls.admin_credentials()"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def launch_instance(self):"},{"line_number":39,"context_line":"        self.glance_image_create()"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_d22c4bb5","line":36,"updated":"2014-08-06 17:10:27.000000000","message":"This actually turns only client to admin credentials, which is different from what the test used to be, and which a less likely scenario as well.","commit_id":"1ab2db82a926cfcd9b53db41b579e615e9c64fb2"}]}
