)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3698aa1c2188d339cb013f3c7e0ea4c3a3a2ebb0","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Also fixes some bit rot-related issues in _create_volume_snapshot."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Depends-On: I04688f50b70dfbe19f2fcac8c9bc12c0940ef4fd"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Closes-Bug: #1205344"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"da20952f_54e1e628","line":24,"updated":"2015-09-04 14:32:04.000000000","message":"Turns out in patch set 6 the 2nd instance does get the virDomainAttachDeviceFlags call:\n\nhttp://logs.openstack.org/55/218355/6/check/gate-tempest-dsvm-full/e0da291/logs/libvirt/libvirtd.txt.gz#_2015-09-02_17_42_10_274\n\nSo the crazy blackhole thing I thought was happening in the libvirt driver in nova isn\u0027t actually a problem, so I\u0027m going to remove this dependency, abandon that change and invalidate the bug.","commit_id":"1c366f4230a07167a36e20b222682642bfc30180"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"18fe630ab6e67c556babb36ef4e6532bcaa5b4dc","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Also fixes some bit rot-related issues in _create_volume_snapshot."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"We also have to workaround nova bug 1492026 where the volume detach in"},{"line_number":28,"context_line":"libvirt is asynchronous and the partition might not be gone from the"},{"line_number":29,"context_line":"first instance when we take the snapshot, which then later impacts the"},{"line_number":30,"context_line":"partition from showing up properly on the 2nd instance after the 2nd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"da20952f_d9444f74","line":27,"updated":"2015-09-11 16:38:13.000000000","message":"There should be a DocImpact for this so we have something in the release notes for liberty that says basically the test_stamp_pattern scenario only works with libvirt if we have this workaround, but plan to move that into code in mitaka.","commit_id":"22cc73925f6614be67d7698304dbff6b78189d28"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b16a78add58581b3a27a17e9968f235f4e3d71df","unresolved":false,"context_lines":[{"line_number":28,"context_line":"that updates the default cirros image from 0.3.2 to 0.3.4 since that"},{"line_number":29,"context_line":"older image appears to cause issues with this test."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Depends-On: I03ee6e1403680fb6c421225a7cadaf8a82edf702"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"DocImpact: The Liberty release notes should point out that we also have"},{"line_number":34,"context_line":"  to workaround nova bug 1492026 where the volume detach in libvirt is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"da20952f_676f9592","line":31,"updated":"2015-09-11 20:07:15.000000000","message":"This appears to not make a difference on stable, still hitting the same failures where the initial attach volume doesn\u0027t reflect the partition on the guest.","commit_id":"3570a18a9a65907f96023d05053b14a6ec53b29d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b2542973e28779637a958113edaada91d3d1647d","unresolved":false,"context_lines":[{"line_number":28,"context_line":"that updates the default cirros image from 0.3.2 to 0.3.4 since that"},{"line_number":29,"context_line":"older image appears to cause issues with this test."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Depends-On: I03ee6e1403680fb6c421225a7cadaf8a82edf702"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"DocImpact: The Liberty release notes should point out that we also have"},{"line_number":34,"context_line":"  to workaround nova bug 1492026 where the volume detach in libvirt is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"da20952f_bd993e6f","line":31,"in_reply_to":"da20952f_676f9592","updated":"2015-09-11 21:27:44.000000000","message":"Although when I do this all manually it works just fine :(\n\nhttp://paste.openstack.org/show/457286/","commit_id":"3570a18a9a65907f96023d05053b14a6ec53b29d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"33251adbb530038e1d9cf5653dd11956e3645ea8","unresolved":false,"context_lines":[{"line_number":28,"context_line":"that updates the default cirros image from 0.3.2 to 0.3.4 since that"},{"line_number":29,"context_line":"older image appears to cause issues with this test."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Depends-On: I03ee6e1403680fb6c421225a7cadaf8a82edf702"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"DocImpact: The Liberty release notes should point out that we also have"},{"line_number":34,"context_line":"  to workaround nova bug 1492026 where the volume detach in libvirt is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"da20952f_9d30fa56","line":31,"in_reply_to":"da20952f_bd993e6f","updated":"2015-09-11 21:33:06.000000000","message":"FWIW, I was using novaclient and cinderclient when doing this manually.\n\nThis was my attached volume via cinder show:\n\nhttp://paste.openstack.org/show/457285/\n\nThis was the server:\n\nhttp://paste.openstack.org/show/457292/\n\nThe server is booted using the same image and flavor that the jobs in the gate are running.\n\nThe volume was just created with size\u003d1, that\u0027s it, just like test_stamp_pattern does for the first volume.","commit_id":"3570a18a9a65907f96023d05053b14a6ec53b29d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"32d6876758f89461c43f8ad590f014da88de9b2d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"  showing up properly on the 2nd instance after the 2nd attach call."},{"line_number":31,"context_line":"  This could also be due to bug 1374508."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Depends-On: I983f80822a5c210929f33e1aa348a0fef91e890b"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Closes-Bug: #1205344"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"9a68dd71_55c87474","line":33,"updated":"2016-01-27 08:55:33.000000000","message":"This doesn\u0027t help so we can remove this.","commit_id":"c7e70a03f0e93e4d0822e664a708fa475b586fac"}],"tempest/scenario/test_stamp_pattern.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5f1804669a88cec8f9bd7d22e92e505a2a1fc890","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        def _func():"},{"line_number":132,"context_line":"            part \u003d ssh.get_partitions()"},{"line_number":133,"context_line":"            LOG.debug(\"Partitions:%s\" % part)"},{"line_number":134,"context_line":"            return device in part"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        if not tempest.test.call_until_true(_func,"},{"line_number":137,"context_line":"                                            CONF.compute.build_timeout,"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_ef25e508","line":134,"updated":"2015-08-28 17:45:29.000000000","message":"This fails because now device is something like /dev/vdb whereas it used to be just vdb because of the config option.\n\nThe output here does not have the /dev/ part:\n\nhttp://paste.openstack.org/show/431155/\n\nSo this fails and we timeout (the xen API job is already failed) with this.\n\nSo just need to strip off toe /dev/ prefix before returning the device in _attach_volume.","commit_id":"154199a81bfc925a984438ceedb58e149f129e85"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7ea2a63bff8c39623ca2ab3284ecf7f6e1abc3ed","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        self._wait_for_volume_available_on_the_system(ip_for_snapshot, device)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # check the existence of the timestamp file in the volume2"},{"line_number":223,"context_line":"        self._check_timestamp(ip_for_snapshot, device)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_4845f014","line":223,"updated":"2015-08-28 15:31:35.000000000","message":"My only concern at this point is the device from the first server and volume is not the same here in the 2nd server and volume, i.e. it was /dev/vdb in the first one and is now /dev/vdc in this one.","commit_id":"154199a81bfc925a984438ceedb58e149f129e85"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eb436e362cc505f04fab7a6f5b279beecccfca59","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        self._wait_for_volume_available_on_the_system(ip_for_snapshot, device)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # check the existence of the timestamp file in the volume2"},{"line_number":223,"context_line":"        self._check_timestamp(ip_for_snapshot, device)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_28ac3c9f","line":223,"in_reply_to":"da20952f_4845f014","updated":"2015-08-28 15:34:26.000000000","message":"That shouldn\u0027t matter though since the timestamp should be in the volume snapshot and it shouldn\u0027t matter where we attach that on the instance.","commit_id":"154199a81bfc925a984438ceedb58e149f129e85"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ca94f3f95486db9763da53e737ec0b95110d868d","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        return self.get_remote_client(server_or_ip)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def _create_volume_snapshot(self, volume):"},{"line_number":80,"context_line":"        snapshot_name \u003d data_utils.rand_name(\u0027scenario-snapshot\u0027)"},{"line_number":81,"context_line":"        _, snapshot \u003d self.snapshots_client.create_snapshot("},{"line_number":82,"context_line":"            volume[\u0027id\u0027], display_name\u003dsnapshot_name)[\u0027snapshot\u0027]"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_ab47d8ba","line":80,"updated":"2015-08-28 21:17:30.000000000","message":"This only returns one thing now, not a tuple.","commit_id":"55cfa70ad197a475eaeee2d17f682f6f5ed02576"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9736cde765e44375a13444c28cae3cb9ced3012d","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        def _func():"},{"line_number":125,"context_line":"            part \u003d ssh.get_partitions()"},{"line_number":126,"context_line":"            LOG.debug(\"Partitions:%s\" % part)"},{"line_number":127,"context_line":"            return device_name in part"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        if not tempest.test.call_until_true(_func,"},{"line_number":130,"context_line":"                                            CONF.compute.build_timeout,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_a2c7db96","line":127,"updated":"2015-08-30 23:05:16.000000000","message":"This timed out in the gate-tempest-dsvm-full job because it attached to /dev/vdb but that didn\u0027t show up in the partition list on the volume snapshot attached to the 2nd instance.\n\nI see from the libvirtd logs that the request goes in properly to attach to the guest domain on the vdb device though:\n\nhttp://logs.openstack.org/55/218355/3/check/gate-tempest-dsvm-full/fdf8dfb/logs/libvirt/libvirtd.txt.gz#_2015-08-28_22_14_10_985\n\nSo seems like a bug in libvirtd where it doesn\u0027t fail the attach but it doesn\u0027t attach at that mountpoint either.\n\nActually it looks like it fails in libvirt here:\n\nhttp://logs.openstack.org/55/218355/3/check/gate-tempest-dsvm-full/fdf8dfb/logs/libvirt/libvirtd.txt.gz#_2015-08-28_22_14_11_397\n\n2015-08-28 22:14:11.397+0000: 31653: debug : qemuMonitorIOWrite:504 : QEMU_MONITOR_IO_WRITE: mon\u003d0x7f1a0c014bb0 buf\u003d{\"execute\":\"human-monitor-command\",\"arguments\":{\"command-line\":\"drive_add dummy file\u003d/dev/disk/by-path/ip-10.0.4.11:3260-iscsi-iqn.2010-10.org.openstack:volume-0f02858f-15d1-462e-b25b-be5d16986415-lun-1,if\u003dnone,id\u003ddrive-virtio-disk1,format\u003draw,serial\u003d0f02858f-15d1-462e-b25b-be5d16986415,cache\u003dnone\"},\"id\":\"libvirt-16\"}\n len\u003d321 ret\u003d321 errno\u003d22\n\nBut that didn\u0027t raise an error in the libvirt driver during the attach...\n\nI probably need danpb or ndipanov to help take a look at this.","commit_id":"37c04da456e82014108b2c21d6bd6e16be66ea15"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6208f9165a3fbbf5b978136f2328d76d83dbc03d","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        device \u003d self._attach_volume(server, volume)"},{"line_number":200,"context_line":"        self._wait_for_volume_available_on_the_system(ip_for_server, device)"},{"line_number":201,"context_line":"        self._create_timestamp(ip_for_server, device)"},{"line_number":202,"context_line":"        self._detach_volume(server, volume)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        # snapshot the volume"},{"line_number":205,"context_line":"        volume_snapshot \u003d self._create_volume_snapshot(volume)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_2188c9c4","line":202,"updated":"2015-09-04 00:28:24.000000000","message":"Should we wait for the partition to be detached from the system before continuing with doing the volume and instance snapshots?  Like in the boto test:\n\nhttp://git.openstack.org/cgit/openstack/tempest/tree/tempest/thirdparty/boto/test_ec2_instance_run.py#n347","commit_id":"1c366f4230a07167a36e20b222682642bfc30180"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3698aa1c2188d339cb013f3c7e0ea4c3a3a2ebb0","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        device \u003d self._attach_volume(server, volume)"},{"line_number":200,"context_line":"        self._wait_for_volume_available_on_the_system(ip_for_server, device)"},{"line_number":201,"context_line":"        self._create_timestamp(ip_for_server, device)"},{"line_number":202,"context_line":"        self._detach_volume(server, volume)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        # snapshot the volume"},{"line_number":205,"context_line":"        volume_snapshot \u003d self._create_volume_snapshot(volume)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_74974a90","line":202,"in_reply_to":"da20952f_2188c9c4","updated":"2015-09-04 14:32:04.000000000","message":"I think I\u0027m going to add a check for that.  danpb also suggested not doing the instance snapshot and just boot the 2nd image from the clean CONF.compute.image_ref like the first instance to avoid any cruft in the snapshot if the device isn\u0027t fully detached by the time we take the snapshot.","commit_id":"1c366f4230a07167a36e20b222682642bfc30180"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"37074025af66920cda6bc91299f20046aaf50357","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        if not tempest.test.call_until_true(_func,"},{"line_number":171,"context_line":"                                            CONF.compute.build_timeout,"},{"line_number":172,"context_line":"                                            CONF.compute.build_interval):"},{"line_number":173,"context_line":"            # get dmesg and lspci output for debugging"},{"line_number":174,"context_line":"            try:"},{"line_number":175,"context_line":"                dmesg \u003d ssh.exec_command(\u0027dmesg\u0027)"},{"line_number":176,"context_line":"            except Exception as e:"}],"source_content_type":"text/x-python","patch_set":8,"id":"da20952f_7fcba353","line":173,"updated":"2015-09-04 15:01:38.000000000","message":"This debug output / timeout handling could be consolidated into a common private helper method.","commit_id":"ce7f0dfad63460e446abd6db7953c5dfff74dcc3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"907cba0da1e8b02d7f26cf925fd9894cc0e9bd99","unresolved":false,"context_lines":[{"line_number":129,"context_line":"            action \u003d \u0027show up on\u0027"},{"line_number":130,"context_line":"        else:"},{"line_number":131,"context_line":"            action \u003d \u0027be gone from\u0027"},{"line_number":132,"context_line":"        LOG.debug(\u0027Start waiting for device \"%(device)s to %(action)s \u0027"},{"line_number":133,"context_line":"                  \u0027server: %(server)s\u0027,"},{"line_number":134,"context_line":"                  {\u0027device\u0027: device_name, \u0027action\u0027: action,"},{"line_number":135,"context_line":"                   \u0027server\u0027: server_or_ip})"}],"source_content_type":"text/x-python","patch_set":9,"id":"da20952f_f31da773","line":132,"updated":"2015-09-04 19:08:08.000000000","message":"Missing double-quote on device here.","commit_id":"8ab2b789e63e3af45b1a802b616f87a383719c90"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ca8b47411ce3aadabf9bca8ad23bb6641fde5ffe","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        # the attach operation. We do this for kilo/juno branches - which"},{"line_number":109,"context_line":"        # should work without this, but don\u0027t appear to."},{"line_number":110,"context_line":"        # TODO(mriedem): remove the specific device request after kilo-eol"},{"line_number":111,"context_line":"        device \u003d \u0027/dev/%s\u0027 % CONF.compute.volume_device_name"},{"line_number":112,"context_line":"        attached_volume \u003d self.servers_client.attach_volume("},{"line_number":113,"context_line":"            server[\u0027id\u0027], volumeId\u003dvolume[\u0027id\u0027], device\u003ddevice)"},{"line_number":114,"context_line":"        self.assertEqual(volume[\u0027id\u0027], attached_volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_f4449e47","line":111,"updated":"2015-09-05 13:07:27.000000000","message":"Specifying the device name makes no difference in the result of the test so remove this.  We must have some bugs in kilo/juno where this just falls down.","commit_id":"72d9377151992343223ecdb81f43885982abe3fa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ca8b47411ce3aadabf9bca8ad23bb6641fde5ffe","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        # workaround into the nova code so that the nova virt driver actually"},{"line_number":231,"context_line":"        # waits for the detach to be complete before moving on to call the"},{"line_number":232,"context_line":"        # detach in the cinder API."},{"line_number":233,"context_line":"        self._wait_for_volume_status_on_the_system(ip_for_server, device,"},{"line_number":234,"context_line":"                                                   attach\u003dFalse)"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"        # snapshot the volume"}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_947682a2","line":233,"updated":"2015-09-05 13:07:27.000000000","message":"Apparently this isn\u0027t helping either - so maybe it\u0027s time to try not doing the instance snapshot.","commit_id":"72d9377151992343223ecdb81f43885982abe3fa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d8246ce814bd1bc7591f8424d3b2462c5a2eaafe","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            server[\u0027id\u0027], volumeId\u003dvolume[\u0027id\u0027])"},{"line_number":107,"context_line":"        self.assertEqual(volume[\u0027id\u0027], attached_volume[\u0027id\u0027])"},{"line_number":108,"context_line":"        self._wait_for_volume_status(attached_volume, \u0027in-use\u0027)"},{"line_number":109,"context_line":"        return attached_volume[\u0027device\u0027]"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def _detach_volume(self, server, volume):"},{"line_number":112,"context_line":"        self.servers_client.detach_volume(server[\u0027id\u0027], volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":12,"id":"ba15a1d1_1475ba62","line":109,"updated":"2015-09-16 17:47:40.000000000","message":"This is not necessarily the device that\u0027s going to be attached, I don\u0027t think anyway.  Might need to actually get the volume when it\u0027s in-use and get the attachment and device information from that rather than rely on what nova-api is returning before it sends the volume_attach cast to the compute manager.","commit_id":"3570a18a9a65907f96023d05053b14a6ec53b29d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7686800c884a0f0fffaa03d7cd0ba51dc337fbbc","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        server \u003d self.create_server("},{"line_number":174,"context_line":"            image_id\u003dCONF.compute.image_ref,"},{"line_number":175,"context_line":"            key_name\u003dkeypair[\u0027name\u0027],"},{"line_number":176,"context_line":"            security_groups\u003dsecurity_group,"},{"line_number":177,"context_line":"            wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        # create and add floating IP to server1"}],"source_content_type":"text/x-python","patch_set":16,"id":"da6ed579_aa5514fa","line":176,"updated":"2016-01-15 17:30:03.000000000","message":"Nova isn\u0027t happy with this:\n\nhttp://logs.openstack.org/55/218355/16/check/gate-tempest-dsvm-full/1cfb44f/console.html#_2016-01-15_02_54_49_543","commit_id":"d595dc62c9a70804abee09ec8b772f712750389b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"06da8852ef14007b3a077c818474ea5e0cb78acc","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        timestamp \u003d self.create_timestamp(ip_for_server, device_name,"},{"line_number":177,"context_line":"                                          private_key\u003dkeypair[\u0027private_key\u0027])"},{"line_number":178,"context_line":"        self.nova_volume_detach(server, volume)"},{"line_number":179,"context_line":"        # NOTE(mriedem): We have to workaround a race where the detach on the"},{"line_number":180,"context_line":"        # guest is asynchronous (at least with libvirt/qemu) so by the time"},{"line_number":181,"context_line":"        # cinder says the volume is available the partition might not be fully"},{"line_number":182,"context_line":"        # gone from the guest - which can potentially mess up the later attach"},{"line_number":183,"context_line":"        # to the instance created from the snapshot. We should remove this"},{"line_number":184,"context_line":"        # workaround when I983f80822a5c210929f33e1aa348a0fef91e890b is in"},{"line_number":185,"context_line":"        # all supported branches of nova."},{"line_number":186,"context_line":"        self._wait_for_volume_status_on_the_system("},{"line_number":187,"context_line":"            ip_for_server, keypair[\u0027private_key\u0027], device_name, attach\u003dFalse)"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"fa31d9ce_6f3ff7b3","line":185,"range":{"start_line":179,"start_character":8,"end_line":185,"end_character":41},"updated":"2017-02-15 22:48:20.000000000","message":"We shouldn\u0027t have to do this anymore...","commit_id":"45a5cd29f780a3212ad5be170e650302a57f8092"}]}
