)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"056f3062a149fc3b4e1d999cafc6d03473435797","unresolved":false,"context_lines":[{"line_number":13,"context_line":"the encrypted volume and volume type."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ib2c3f9b04d35a65ce2f0e45e63e940ecd92991d0"},{"line_number":16,"context_line":"Implements: blueprint encrypt-cinder-volumes"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAATn%2F9MCA%3D","line":16,"updated":"2013-12-15 03:18:44.000000000","message":"I can\u0027t see this blueprint.\nhttps://blueprints.launchpad.net/openstack/?searchtext\u003dencrypt-cinder-volumes\nCould you tell me the url of this blueprint or please register this blueprint if you not yet.","commit_id":"482a9ed4ffabf1a621dcfe9815d3447f26f5c55c"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"bf56d8f73236c08f18eecf67026d3ca0163cb9dd","unresolved":false,"context_lines":[{"line_number":13,"context_line":"the encrypted volume and volume type."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ib2c3f9b04d35a65ce2f0e45e63e940ecd92991d0"},{"line_number":16,"context_line":"Implements: blueprint encrypt-cinder-volumes"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAATn%2F9GK0%3D","line":16,"in_reply_to":"AAAATn%2F9MCA%3D","updated":"2013-12-16 21:24:47.000000000","message":"The line \"https://blueprints.launchpad.net/nova/+spec/encrypt-cinder-volumes\" should be added at the end.","commit_id":"482a9ed4ffabf1a621dcfe9815d3447f26f5c55c"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"46deef3eed2cdbd15f0f4ce83cbcebbf46e9f895","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Adds scenario tests for volume encryption"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Two scenario tests and the supporting methods in the test manager"},{"line_number":10,"context_line":"are added. The tests create an image, boots an instance of the"},{"line_number":11,"context_line":"image, creates an encryption type, creates a volume of that type,"},{"line_number":12,"context_line":"attaches the volume to the instance, detaches it, and deletes"},{"line_number":13,"context_line":"the encrypted volume and volume type."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"7adec928_d2edff26","line":10,"updated":"2014-05-14 14:56:19.000000000","message":"boots-\u003eboot","commit_id":"1e72321ea4139bd3fb1ea64f28aaa42ae8acb211"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"46deef3eed2cdbd15f0f4ce83cbcebbf46e9f895","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Two scenario tests and the supporting methods in the test manager"},{"line_number":10,"context_line":"are added. The tests create an image, boots an instance of the"},{"line_number":11,"context_line":"image, creates an encryption type, creates a volume of that type,"},{"line_number":12,"context_line":"attaches the volume to the instance, detaches it, and deletes"},{"line_number":13,"context_line":"the encrypted volume and volume type."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"7adec928_f2f4bbf3","line":11,"updated":"2014-05-14 14:56:19.000000000","message":"creates-\u003ecreate\n\netc...","commit_id":"1e72321ea4139bd3fb1ea64f28aaa42ae8acb211"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"488af335877e0eb1397ba681840c816b55b11ce6","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Two scenario tests and the supporting methods in the test manager"},{"line_number":10,"context_line":"are added. The tests create an image, boots an instance of the"},{"line_number":11,"context_line":"image, creates an encryption type, creates a volume of that type,"},{"line_number":12,"context_line":"attaches the volume to the instance, detaches it, and deletes"},{"line_number":13,"context_line":"the encrypted volume and volume type."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"7adec928_2342533e","line":11,"in_reply_to":"7adec928_f2f4bbf3","updated":"2014-05-14 17:59:26.000000000","message":"will fix these, thanks!","commit_id":"1e72321ea4139bd3fb1ea64f28aaa42ae8acb211"}],"tempest/scenario/manager.py":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"bf56d8f73236c08f18eecf67026d3ca0163cb9dd","unresolved":false,"context_lines":[{"line_number":445,"context_line":"        if name is None:"},{"line_number":446,"context_line":"            name \u003d \u0027generic\u0027"},{"line_number":447,"context_line":"        randomized_name \u003d data_utils.rand_name(\u0027scenario-type-\u0027 + name + \u0027-\u0027)"},{"line_number":448,"context_line":"        LOG.debug(\"Creating a volume type: %s\", name)"},{"line_number":449,"context_line":"        volume_type \u003d client.volume_types.create(randomized_name)"},{"line_number":450,"context_line":"        self.addCleanup(client.volume_types.delete, volume_type.id)"},{"line_number":451,"context_line":"        return volume_type"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9GIU%3D","line":448,"updated":"2013-12-16 21:24:47.000000000","message":"Should \"name\" be \"randomized_name\" instead? The \"randomized_name\" is the name actually given to the volume type, even if a name is provided.","commit_id":"482a9ed4ffabf1a621dcfe9815d3447f26f5c55c"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"bf56d8f73236c08f18eecf67026d3ca0163cb9dd","unresolved":false,"context_lines":[{"line_number":465,"context_line":"                                                   \u0027key_size\u0027: key_size,"},{"line_number":466,"context_line":"                                                   \u0027cipher\u0027: cipher,"},{"line_number":467,"context_line":"                                                   \u0027control_location\u0027:"},{"line_number":468,"context_line":"                                                   control_location})"},{"line_number":469,"context_line":"        return encryption_type"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"    def create_server_snapshot(self, server, compute_client\u003dNone,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9GEE%3D","line":468,"updated":"2013-12-16 21:24:47.000000000","message":"Since \"encryption_types\" is only used once, I think it makes sense to combine the above two lines (i.e. encryption_type \u003d client.volume_encryption_types.create...)","commit_id":"482a9ed4ffabf1a621dcfe9815d3447f26f5c55c"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"fc2fa98cd0258bc1138cb470a09f225af87d7450","unresolved":false,"context_lines":[{"line_number":534,"context_line":"        cls.admin_volume_client \u003d manager.volume_client"},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"    def _wait_for_volume_status(self, status):"},{"line_number":537,"context_line":"        volume_id \u003d self.volume.id"},{"line_number":538,"context_line":"        self.status_timeout("},{"line_number":539,"context_line":"            self.volume_client.volumes, volume_id, status)"},{"line_number":540,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_a273c413","line":537,"updated":"2014-05-14 12:35:19.000000000","message":"Why do you create a new variable? You can pass self.volume.id directly.","commit_id":"1e72321ea4139bd3fb1ea64f28aaa42ae8acb211"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"488af335877e0eb1397ba681840c816b55b11ce6","unresolved":false,"context_lines":[{"line_number":534,"context_line":"        cls.admin_volume_client \u003d manager.volume_client"},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"    def _wait_for_volume_status(self, status):"},{"line_number":537,"context_line":"        volume_id \u003d self.volume.id"},{"line_number":538,"context_line":"        self.status_timeout("},{"line_number":539,"context_line":"            self.volume_client.volumes, volume_id, status)"},{"line_number":540,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_433d9fba","line":537,"in_reply_to":"7adec928_a273c413","updated":"2014-05-14 17:59:26.000000000","message":"ok, will fix this and the similar issues","commit_id":"1e72321ea4139bd3fb1ea64f28aaa42ae8acb211"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"fc2fa98cd0258bc1138cb470a09f225af87d7450","unresolved":false,"context_lines":[{"line_number":539,"context_line":"            self.volume_client.volumes, volume_id, status)"},{"line_number":540,"context_line":""},{"line_number":541,"context_line":"    def _wait_for_volume_deletion(self):"},{"line_number":542,"context_line":"        volume_id \u003d self.volume.id"},{"line_number":543,"context_line":"        self.delete_timeout("},{"line_number":544,"context_line":"            self.volume_client.volumes, volume_id,"},{"line_number":545,"context_line":"            not_found_exception\u003dcinder_exceptions.NotFound)"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_e264ec4a","line":542,"updated":"2014-05-14 12:35:19.000000000","message":"ditto","commit_id":"1e72321ea4139bd3fb1ea64f28aaa42ae8acb211"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"fc2fa98cd0258bc1138cb470a09f225af87d7450","unresolved":false,"context_lines":[{"line_number":552,"context_line":"                                         create_kwargs\u003dcreate_kwargs)"},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"    def create_volume_type(self, client\u003dNone, name\u003dNone):"},{"line_number":555,"context_line":"        if client is None:"},{"line_number":556,"context_line":"            client \u003d self.admin_volume_client"},{"line_number":557,"context_line":"        if name is None:"},{"line_number":558,"context_line":"            name \u003d \u0027generic\u0027"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_223a5436","line":555,"updated":"2014-05-14 12:35:19.000000000","message":"ditto","commit_id":"1e72321ea4139bd3fb1ea64f28aaa42ae8acb211"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"fc2fa98cd0258bc1138cb470a09f225af87d7450","unresolved":false,"context_lines":[{"line_number":554,"context_line":"    def create_volume_type(self, client\u003dNone, name\u003dNone):"},{"line_number":555,"context_line":"        if client is None:"},{"line_number":556,"context_line":"            client \u003d self.admin_volume_client"},{"line_number":557,"context_line":"        if name is None:"},{"line_number":558,"context_line":"            name \u003d \u0027generic\u0027"},{"line_number":559,"context_line":"        randomized_name \u003d data_utils.rand_name(\u0027scenario-type-\u0027 + name + \u0027-\u0027)"},{"line_number":560,"context_line":"        LOG.debug(\"Creating a volume type: %s\", randomized_name)"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_22b5f4cc","line":557,"updated":"2014-05-14 12:35:19.000000000","message":"If name variable is blank line (\"\"), this condition will not be performed.\n\n    if not name:\n        ...","commit_id":"1e72321ea4139bd3fb1ea64f28aaa42ae8acb211"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"488af335877e0eb1397ba681840c816b55b11ce6","unresolved":false,"context_lines":[{"line_number":554,"context_line":"    def create_volume_type(self, client\u003dNone, name\u003dNone):"},{"line_number":555,"context_line":"        if client is None:"},{"line_number":556,"context_line":"            client \u003d self.admin_volume_client"},{"line_number":557,"context_line":"        if name is None:"},{"line_number":558,"context_line":"            name \u003d \u0027generic\u0027"},{"line_number":559,"context_line":"        randomized_name \u003d data_utils.rand_name(\u0027scenario-type-\u0027 + name + \u0027-\u0027)"},{"line_number":560,"context_line":"        LOG.debug(\"Creating a volume type: %s\", randomized_name)"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_634c5b71","line":557,"in_reply_to":"7adec928_22b5f4cc","updated":"2014-05-14 17:59:26.000000000","message":"Thanks, will fix!","commit_id":"1e72321ea4139bd3fb1ea64f28aaa42ae8acb211"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"fc2fa98cd0258bc1138cb470a09f225af87d7450","unresolved":false,"context_lines":[{"line_number":565,"context_line":"    def create_encryption_type(self, client\u003dNone, type_id\u003dNone, provider\u003dNone,"},{"line_number":566,"context_line":"                               key_size\u003dNone, cipher\u003dNone,"},{"line_number":567,"context_line":"                               control_location\u003dNone):"},{"line_number":568,"context_line":"        if client is None:"},{"line_number":569,"context_line":"            client \u003d self.admin_volume_client"},{"line_number":570,"context_line":"        if type_id is None:"},{"line_number":571,"context_line":"            volume_type \u003d self.create_volume_type()"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_623b7c38","line":568,"updated":"2014-05-14 12:35:19.000000000","message":"ditto","commit_id":"1e72321ea4139bd3fb1ea64f28aaa42ae8acb211"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"fc2fa98cd0258bc1138cb470a09f225af87d7450","unresolved":false,"context_lines":[{"line_number":567,"context_line":"                               control_location\u003dNone):"},{"line_number":568,"context_line":"        if client is None:"},{"line_number":569,"context_line":"            client \u003d self.admin_volume_client"},{"line_number":570,"context_line":"        if type_id is None:"},{"line_number":571,"context_line":"            volume_type \u003d self.create_volume_type()"},{"line_number":572,"context_line":"            type_id \u003d volume_type.id"},{"line_number":573,"context_line":"        LOG.debug(\"Creating an encryption type for volume type: %s\", type_id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_62c61c4b","line":570,"updated":"2014-05-14 12:35:19.000000000","message":"ditto","commit_id":"1e72321ea4139bd3fb1ea64f28aaa42ae8acb211"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"d569a40d12f15ca9b22c597f60c05ac7dcbd1365","unresolved":false,"context_lines":[{"line_number":523,"context_line":""},{"line_number":524,"context_line":"class EncryptionScenarioTest(OfficialClientTest):"},{"line_number":525,"context_line":"    \"\"\""},{"line_number":526,"context_line":"    Base class for encrytion scenario tests"},{"line_number":527,"context_line":"    \"\"\""},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":24,"id":"3ae8d1ca_1a832357","line":526,"updated":"2014-05-28 22:49:44.000000000","message":"encryption*","commit_id":"02a3188c3575af931106bcc151c698673a7ed67e"}],"tempest/scenario/test_encrypted_cinder_volumes_cryptsetup.py":[{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"46deef3eed2cdbd15f0f4ce83cbcebbf46e9f895","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    def delete_volume(self):"},{"line_number":53,"context_line":"        self.cinder_delete_encrypted()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @services(\u0027compute\u0027, \u0027volume\u0027, \u0027image\u0027, \u0027network\u0027)"},{"line_number":56,"context_line":"    def test_encrypted_cinder_volumes_cryptsetup(self):"},{"line_number":57,"context_line":"        self.launch_instance()"},{"line_number":58,"context_line":"        self.create_encrypted_volume()"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_72350bd9","line":55,"updated":"2014-05-14 14:56:19.000000000","message":"Could you please clarify, why does the list of services contain \u0027network\u0027? How is Neutron involved in this scenario?","commit_id":"1e72321ea4139bd3fb1ea64f28aaa42ae8acb211"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"488af335877e0eb1397ba681840c816b55b11ce6","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    def delete_volume(self):"},{"line_number":53,"context_line":"        self.cinder_delete_encrypted()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @services(\u0027compute\u0027, \u0027volume\u0027, \u0027image\u0027, \u0027network\u0027)"},{"line_number":56,"context_line":"    def test_encrypted_cinder_volumes_cryptsetup(self):"},{"line_number":57,"context_line":"        self.launch_instance()"},{"line_number":58,"context_line":"        self.create_encrypted_volume()"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_035c7724","line":55,"in_reply_to":"7adec928_72350bd9","updated":"2014-05-14 17:59:26.000000000","message":"This test was originally modeled after test_minimum_basic, checking if it could ssh to the server after rebooting, but I removed that part of the test to focus on the errors from simply creating, attaching, and deleting the volume.  I failed to remove \u0027network\u0027 after making the changes but will do so now, thanks!","commit_id":"1e72321ea4139bd3fb1ea64f28aaa42ae8acb211"}],"tempest/scenario/test_encrypted_cinder_volumes_dm_crypt.py":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"bf56d8f73236c08f18eecf67026d3ca0163cb9dd","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    \"\"\""},{"line_number":30,"context_line":"    This test is for verifying the functionality of encrypted cinder volumes."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    \"\"\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9GDQ%3D","line":31,"updated":"2013-12-16 21:24:47.000000000","message":"This doc string is identical to the doc string for test_encrypted_cinder_volumes_luks.py.  I think both doc strings should be a little more descriptive.  This should mention dmcrypt, and the other should mention luks.","commit_id":"482a9ed4ffabf1a621dcfe9815d3447f26f5c55c"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"bf56d8f73236c08f18eecf67026d3ca0163cb9dd","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                                    control_location\u003d\u0027front-end\u0027)"},{"line_number":112,"context_line":"        self.volume \u003d self.create_volume(volume_type\u003dvolume_type.name)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def cinder_delete_encrypted(self):"},{"line_number":115,"context_line":"        self.volume_client.volumes.force_delete(self.volume.id)"},{"line_number":116,"context_line":"        self._wait_for_volume_deletion()"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9F9Y%3D","line":114,"updated":"2013-12-16 21:24:47.000000000","message":"I think this method should be moved below nova_volume_detach, since all of the other methods are in the order called by test_encrypted_cinder_volumes_dm_crypt().","commit_id":"482a9ed4ffabf1a621dcfe9815d3447f26f5c55c"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"bf56d8f73236c08f18eecf67026d3ca0163cb9dd","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        self.assertEqual(self.volume.id, volume.id)"},{"line_number":124,"context_line":"        self._wait_for_volume_status(\u0027in-use\u0027)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def nova_reboot(self):"},{"line_number":127,"context_line":"        self.server.reboot()"},{"line_number":128,"context_line":"        self._wait_for_server_status(\u0027ACTIVE\u0027)"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9F94%3D","line":126,"updated":"2013-12-16 21:24:47.000000000","message":"Is this method used?","commit_id":"482a9ed4ffabf1a621dcfe9815d3447f26f5c55c"}],"tempest/scenario/test_encrypted_cinder_volumes_luks.py":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"bf56d8f73236c08f18eecf67026d3ca0163cb9dd","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    \"\"\""},{"line_number":32,"context_line":"    This test is for verifying the functionality of encrypted cinder volumes."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    \"\"\""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9F8w%3D","line":33,"updated":"2013-12-16 21:24:47.000000000","message":"As mentioned in test_encrypted_cinder_volumes_dm_crypt.py, I think this doc string should contain a mention of luks.","commit_id":"482a9ed4ffabf1a621dcfe9815d3447f26f5c55c"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"bf56d8f73236c08f18eecf67026d3ca0163cb9dd","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        volume_type \u003d self.create_volume_type(name\u003d\u0027luks\u0027)"},{"line_number":112,"context_line":"        self.volume \u003d self.create_volume(volume_type\u003dvolume_type.name)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def cinder_delete_encrypted(self):"},{"line_number":115,"context_line":"        self.volume_client.volumes.force_delete(self.volume.id)"},{"line_number":116,"context_line":"        self._wait_for_volume_deletion()"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9F54%3D","line":114,"updated":"2013-12-16 21:24:47.000000000","message":"I think this should move below nova_volume_detach().","commit_id":"482a9ed4ffabf1a621dcfe9815d3447f26f5c55c"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"bf56d8f73236c08f18eecf67026d3ca0163cb9dd","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        self.assertEqual(self.volume.id, volume.id)"},{"line_number":124,"context_line":"        self._wait_for_volume_status(\u0027in-use\u0027)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def nova_reboot(self):"},{"line_number":127,"context_line":"        self.server.reboot()"},{"line_number":128,"context_line":"        self._wait_for_server_status(\u0027ACTIVE\u0027)"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9F6E%3D","line":126,"updated":"2013-12-16 21:24:47.000000000","message":"Where is this used?","commit_id":"482a9ed4ffabf1a621dcfe9815d3447f26f5c55c"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"46deef3eed2cdbd15f0f4ce83cbcebbf46e9f895","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    This test performs the following:"},{"line_number":26,"context_line":"        * Creates an image in Glance"},{"line_number":27,"context_line":"        * Boots an instance from the image"},{"line_number":28,"context_line":"        * Creates an encryption type using cryptsetup (as admin)"},{"line_number":29,"context_line":"        * Creates a volume of that encryption type (as a regular user)"},{"line_number":30,"context_line":"        * Attaches and detaches the encrypted volume to the instance"},{"line_number":31,"context_line":"        * Deletes the encrypted volume"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_72ba6b24","line":28,"updated":"2014-05-14 14:56:19.000000000","message":"I guess in this case you use another encryptor - Luks.","commit_id":"1e72321ea4139bd3fb1ea64f28aaa42ae8acb211"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"1a900affa1aa36891ed0bcb67a96d3627a1eb4ac","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    This test performs the following:"},{"line_number":26,"context_line":"        * Creates an image in Glance"},{"line_number":27,"context_line":"        * Boots an instance from the image"},{"line_number":28,"context_line":"        * Creates an encryption type using cryptsetup (as admin)"},{"line_number":29,"context_line":"        * Creates a volume of that encryption type (as a regular user)"},{"line_number":30,"context_line":"        * Attaches and detaches the encrypted volume to the instance"},{"line_number":31,"context_line":"        * Deletes the encrypted volume"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_5ebad823","line":28,"in_reply_to":"7adec928_5e3578d8","updated":"2014-05-14 18:54:47.000000000","message":"Ok!  I hadn\u0027t considered that because the other scenario tests seemed to have one test per file, though most of the other tempest tests put multiple tests in one file.  I agree that that would be better, thanks!","commit_id":"1e72321ea4139bd3fb1ea64f28aaa42ae8acb211"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"488af335877e0eb1397ba681840c816b55b11ce6","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    This test performs the following:"},{"line_number":26,"context_line":"        * Creates an image in Glance"},{"line_number":27,"context_line":"        * Boots an instance from the image"},{"line_number":28,"context_line":"        * Creates an encryption type using cryptsetup (as admin)"},{"line_number":29,"context_line":"        * Creates a volume of that encryption type (as a regular user)"},{"line_number":30,"context_line":"        * Attaches and detaches the encrypted volume to the instance"},{"line_number":31,"context_line":"        * Deletes the encrypted volume"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_a3d10359","line":28,"in_reply_to":"7adec928_72ba6b24","updated":"2014-05-14 17:59:26.000000000","message":"The choice for having two different tests  was to test each encryptor separately, to clarify which encryptor fails if only one and not the other errors.  For future tests for other encryptor types, I thought it would be easier to create similar tests for each new encryptor rather than combining them all in one test.  I understand what you mean about avoiding copy-pasted code, and had tried to minimize duplicate code by moving function definitions to a parent class in manager.  Do you still think it would be better to create two volumes encrypted with each encryptor type in one test here?","commit_id":"1e72321ea4139bd3fb1ea64f28aaa42ae8acb211"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"17438480c1068efbb33104988935030be293671c","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    This test performs the following:"},{"line_number":26,"context_line":"        * Creates an image in Glance"},{"line_number":27,"context_line":"        * Boots an instance from the image"},{"line_number":28,"context_line":"        * Creates an encryption type using cryptsetup (as admin)"},{"line_number":29,"context_line":"        * Creates a volume of that encryption type (as a regular user)"},{"line_number":30,"context_line":"        * Attaches and detaches the encrypted volume to the instance"},{"line_number":31,"context_line":"        * Deletes the encrypted volume"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_5e3578d8","line":28,"in_reply_to":"7adec928_a3d10359","updated":"2014-05-14 18:48:11.000000000","message":"What I mean is that you you can have one file with three classes: 1. The helper class where you can put all methods like launch_instance(), create_encrypted_volume() etc.\n2. TestEncryptedCinderVolumesLuks\n3. TestEncryptedCinderVolumesCryptsetup\n\nThus, both test classes will be able to call helper methods and they will remain independent.\n\nBut in any case, the way you have it now also seems okay to me. I just suggest you an option to consider :)","commit_id":"1e72321ea4139bd3fb1ea64f28aaa42ae8acb211"}]}
