)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"9ba287b12be6a3e24ed872f23d67db8f4fd08710","unresolved":false,"context_lines":[{"line_number":12,"context_line":"   a label of \"cloudimg-rootfs\";"},{"line_number":13,"context_line":"2. set the label as \"ephemeral0\" for ephemeral device"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"$ ls -l /dev/disk/by-label/"},{"line_number":16,"context_line":"total 0"},{"line_number":17,"context_line":"lrwxrwxrwx. 1 root root 11 Aug 14 09:11 cloudimg-rootfs -\u003e ../../xvda1"},{"line_number":18,"context_line":"lrwxrwxrwx. 1 root root 10 Aug 14 09:11 config-2 -\u003e ../../xvdd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1a4dcd0f_722fd5a7","line":15,"updated":"2015-08-14 12:59:54.000000000","message":"We don\u0027t need proof that the code works in the commit message","commit_id":"1bb5a0d1017dd634444932dc87dc8d6c4460934b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"46e9fd521a7276762530d03d741f363442d8416c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Bob Ball \u003cbob.ball@citrix.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-08-19 17:15:14 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"To expose disk labels in guest for root and ephemeral disks"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This fix is to display lables under /dev/disk/by-label for root and"},{"line_number":10,"context_line":"ephemeral disks in Linux guest running against on XenServer."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"fa1b9901_4a2398a7","line":7,"updated":"2015-08-19 18:01:48.000000000","message":"prefix virt driver changes with \"xen:\"","commit_id":"15ee2125dd5eaa5a8d4e1ec7a4ffd2c748365fc2"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"c0c96ba86b9e074fe63533a73581ca7c62a3fcc8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Bob Ball \u003cbob.ball@citrix.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-08-19 17:15:14 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"To expose disk labels in guest for root and ephemeral disks"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This fix is to display lables under /dev/disk/by-label for root and"},{"line_number":10,"context_line":"ephemeral disks in Linux guest running against on XenServer."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"fa1b9901_eeaeeb7f","line":7,"in_reply_to":"fa1b9901_4a2398a7","updated":"2015-08-21 06:16:38.000000000","message":"Done","commit_id":"15ee2125dd5eaa5a8d4e1ec7a4ffd2c748365fc2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"46e9fd521a7276762530d03d741f363442d8416c","unresolved":false,"context_lines":[{"line_number":20,"context_line":"This patch also moves the DEVICE_ location constants from"},{"line_number":21,"context_line":"vmops.py to vmutils.py so that they are more common to be"},{"line_number":22,"context_line":"shared by more places with the consistent definitions."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I8108aa7fa167989aa2f5c749996ea638d930f40e"},{"line_number":25,"context_line":"Signed-off-by: jianghua wang \u003cjianghua.wang@citrix.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"fa1b9901_8a2d3097","line":23,"updated":"2015-08-19 18:01:48.000000000","message":"Is there a bug for this?","commit_id":"15ee2125dd5eaa5a8d4e1ec7a4ffd2c748365fc2"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"c0c96ba86b9e074fe63533a73581ca7c62a3fcc8","unresolved":false,"context_lines":[{"line_number":20,"context_line":"This patch also moves the DEVICE_ location constants from"},{"line_number":21,"context_line":"vmops.py to vmutils.py so that they are more common to be"},{"line_number":22,"context_line":"shared by more places with the consistent definitions."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I8108aa7fa167989aa2f5c749996ea638d930f40e"},{"line_number":25,"context_line":"Signed-off-by: jianghua wang \u003cjianghua.wang@citrix.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"fa1b9901_ee334b60","line":23,"in_reply_to":"fa1b9901_8a2d3097","updated":"2015-08-21 06:16:38.000000000","message":"No bug for it. But we think we should support this.","commit_id":"15ee2125dd5eaa5a8d4e1ec7a4ffd2c748365fc2"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"cca41315a4cc37d341bc45033200a5f69a85d1b9","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jianghua Wang \u003cjianghua.wang@citrix.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-08-21 06:14:25 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"xen: To expose disk labels in guest for root and ephemeral disks"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This fix is to display lables under /dev/disk/by-label for root and"},{"line_number":10,"context_line":"ephemeral disks in Linux guest running against on XenServer."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"fa1b9901_f859665c","line":7,"updated":"2015-08-25 17:30:43.000000000","message":"This should start with \"XenAPI:\" to distinguish from libvirt/xen","commit_id":"d5fb83f141d1b32f13c1ebd69e843b4df48e2791"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"fad0e581270760fc0b635f1050b39ddb853075c1","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jianghua Wang \u003cjianghua.wang@citrix.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-08-21 06:14:25 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"xen: To expose disk labels in guest for root and ephemeral disks"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This fix is to display lables under /dev/disk/by-label for root and"},{"line_number":10,"context_line":"ephemeral disks in Linux guest running against on XenServer."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"da20952f_04e89ce1","line":7,"in_reply_to":"fa1b9901_f859665c","updated":"2015-08-27 08:03:01.000000000","message":"Done","commit_id":"d5fb83f141d1b32f13c1ebd69e843b4df48e2791"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d31696411366dab59272af3ed4d46f26e4d3e3a7","unresolved":false,"context_lines":[{"line_number":17,"context_line":"   from 1 (e.g.: \"ephemeral\" for the first one, \"ephemeral1\""},{"line_number":18,"context_line":"   for the 2nd one; and \"ephemeral2\" for the 3rd one...)"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This patch also moves the DEVICE_ location constants from"},{"line_number":21,"context_line":"vmops.py to vmutils.py so that they are more common to be"},{"line_number":22,"context_line":"shared by more places with the consistent definitions."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"fa1b9901_dc336f61","line":20,"updated":"2015-08-22 00:52:25.000000000","message":"To make this a smaller change, you could do this refactor in a dependent change that is just the moving around refactor part, then in this change you use it from the utils in your new code.","commit_id":"d5fb83f141d1b32f13c1ebd69e843b4df48e2791"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"616297f911df11d0ff9b883f3cc308e66657fade","unresolved":false,"context_lines":[{"line_number":17,"context_line":"   from 1 (e.g.: \"ephemeral\" for the first one, \"ephemeral1\""},{"line_number":18,"context_line":"   for the 2nd one; and \"ephemeral2\" for the 3rd one...)"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This patch also moves the DEVICE_ location constants from"},{"line_number":21,"context_line":"vmops.py to vmutils.py so that they are more common to be"},{"line_number":22,"context_line":"shared by more places with the consistent definitions."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"fa1b9901_9b1288b3","line":20,"in_reply_to":"fa1b9901_dc336f61","updated":"2015-08-25 06:25:16.000000000","message":"Agree. I will do the refactor in a separate submit. This submit won\u0027t introduce new places to use these definitions. So this submit can go ahead without dependence on the refactor if I move the refactor out. Thanks.","commit_id":"d5fb83f141d1b32f13c1ebd69e843b4df48e2791"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f814b3e3b5843a26db6356da2aae850289e68ff4","unresolved":false,"context_lines":[{"line_number":20,"context_line":"This patch also moves the DEVICE_ location constants from"},{"line_number":21,"context_line":"vmops.py to vmutils.py so that they are more common to be"},{"line_number":22,"context_line":"shared by more places with the consistent definitions."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I8108aa7fa167989aa2f5c749996ea638d930f40e"},{"line_number":25,"context_line":"Signed-off-by: jianghua wang \u003cjianghua.wang@citrix.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"fa1b9901_9cd097f9","line":23,"updated":"2015-08-22 00:50:53.000000000","message":"In the previous patch set you said this wasn\u0027t a bug, so it\u0027s a feature?","commit_id":"d5fb83f141d1b32f13c1ebd69e843b4df48e2791"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"fad0e581270760fc0b635f1050b39ddb853075c1","unresolved":false,"context_lines":[{"line_number":20,"context_line":"This patch also moves the DEVICE_ location constants from"},{"line_number":21,"context_line":"vmops.py to vmutils.py so that they are more common to be"},{"line_number":22,"context_line":"shared by more places with the consistent definitions."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I8108aa7fa167989aa2f5c749996ea638d930f40e"},{"line_number":25,"context_line":"Signed-off-by: jianghua wang \u003cjianghua.wang@citrix.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"da20952f_c4f144cf","line":23,"in_reply_to":"fa1b9901_2088c3c4","updated":"2015-08-27 08:03:01.000000000","message":"Done","commit_id":"d5fb83f141d1b32f13c1ebd69e843b4df48e2791"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"616297f911df11d0ff9b883f3cc308e66657fade","unresolved":false,"context_lines":[{"line_number":20,"context_line":"This patch also moves the DEVICE_ location constants from"},{"line_number":21,"context_line":"vmops.py to vmutils.py so that they are more common to be"},{"line_number":22,"context_line":"shared by more places with the consistent definitions."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I8108aa7fa167989aa2f5c749996ea638d930f40e"},{"line_number":25,"context_line":"Signed-off-by: jianghua wang \u003cjianghua.wang@citrix.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"fa1b9901_9effd600","line":23,"in_reply_to":"fa1b9901_9cd097f9","updated":"2015-08-25 06:25:16.000000000","message":"In my opinion, it\u0027s not a feature but indeed it\u0027s a minor parity change: \nThere were bugs reported against on the other driver - libvirt:\n   bug 828357: request to add a label to the filesystem for ephemeral devices\nAnd libvirt fixed those bugs via the following submit: https://github.com/openstack/nova/commit/248787462473195ab35591946ed6e3f0e2a818b0.\n\nFor virt/xenapi, we\u0027re just trying to implement the same thing as libvirt.","commit_id":"d5fb83f141d1b32f13c1ebd69e843b4df48e2791"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"cca41315a4cc37d341bc45033200a5f69a85d1b9","unresolved":false,"context_lines":[{"line_number":20,"context_line":"This patch also moves the DEVICE_ location constants from"},{"line_number":21,"context_line":"vmops.py to vmutils.py so that they are more common to be"},{"line_number":22,"context_line":"shared by more places with the consistent definitions."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I8108aa7fa167989aa2f5c749996ea638d930f40e"},{"line_number":25,"context_line":"Signed-off-by: jianghua wang \u003cjianghua.wang@citrix.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"fa1b9901_2088c3c4","line":23,"in_reply_to":"fa1b9901_9effd600","updated":"2015-08-25 17:30:43.000000000","message":"After discussion with johnthetubaguy, the suggestion is that we raise a wishlist bug (similar to bug 828357, but for XenAPI) and point out that this fixes the wishlist bug.","commit_id":"d5fb83f141d1b32f13c1ebd69e843b4df48e2791"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"e3900232c2ffde309570c9c2f772872420842402","unresolved":false,"context_lines":[{"line_number":7,"context_line":"XenAPI: Expose labels for root and ephemeral disks"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This fix is to display lables under /dev/disk/by-label for root and"},{"line_number":10,"context_line":"ephemeral disks in Linux guest running against on XenServer."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"1. if it uses the glance image to build-up root device, we give it"},{"line_number":13,"context_line":"   a label of \"cloudimg-rootfsn\" to each partition (the last n is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"ba15a1d1_f8890d27","line":10,"updated":"2015-09-17 01:33:47.000000000","message":"on XenServer instead of against on XenServer.","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"4e2406f76ab86051b19deb29571574ecd5d1583a","unresolved":false,"context_lines":[{"line_number":7,"context_line":"XenAPI: Expose labels for root and ephemeral disks"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This fix is to display lables under /dev/disk/by-label for root and"},{"line_number":10,"context_line":"ephemeral disks in Linux guest running against on XenServer."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"1. if it uses the glance image to build-up root device, we give it"},{"line_number":13,"context_line":"   a label of \"cloudimg-rootfsn\" to each partition (the last n is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"ba15a1d1_14da1079","line":10,"in_reply_to":"ba15a1d1_f8890d27","updated":"2015-09-21 10:57:11.000000000","message":"Done","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"}],"nova/tests/unit/virt/xenapi/test_vm_utils.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"e3900232c2ffde309570c9c2f772872420842402","unresolved":false,"context_lines":[{"line_number":1166,"context_line":"    def test_generate_disk_ephemeral(self):"},{"line_number":1167,"context_line":"        self._expect_parted_calls()"},{"line_number":1168,"context_line":"        utils.execute(\u0027mkfs\u0027, \u0027-t\u0027, \u0027ext4\u0027, \u0027-F\u0027, \u0027-L\u0027, \u0027ephemeral\u0027,"},{"line_number":1169,"context_line":"            \u0027/dev/fakedev1\u0027, run_as_root\u003dTrue)"},{"line_number":1170,"context_line":""},{"line_number":1171,"context_line":"        self.mox.ReplayAll()"},{"line_number":1172,"context_line":"        vdi_ref \u003d vm_utils._generate_disk(self.session, {\"uuid\": \"fake_uuid\"},"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_38f0e590","line":1169,"updated":"2015-09-17 01:33:47.000000000","message":"could be indented to match \u0027mkfs\u0027","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"4e2406f76ab86051b19deb29571574ecd5d1583a","unresolved":false,"context_lines":[{"line_number":1166,"context_line":"    def test_generate_disk_ephemeral(self):"},{"line_number":1167,"context_line":"        self._expect_parted_calls()"},{"line_number":1168,"context_line":"        utils.execute(\u0027mkfs\u0027, \u0027-t\u0027, \u0027ext4\u0027, \u0027-F\u0027, \u0027-L\u0027, \u0027ephemeral\u0027,"},{"line_number":1169,"context_line":"            \u0027/dev/fakedev1\u0027, run_as_root\u003dTrue)"},{"line_number":1170,"context_line":""},{"line_number":1171,"context_line":"        self.mox.ReplayAll()"},{"line_number":1172,"context_line":"        vdi_ref \u003d vm_utils._generate_disk(self.session, {\"uuid\": \"fake_uuid\"},"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_56996f1e","line":1169,"in_reply_to":"ba15a1d1_38f0e590","updated":"2015-09-21 10:57:11.000000000","message":"Done","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"e3900232c2ffde309570c9c2f772872420842402","unresolved":false,"context_lines":[{"line_number":1177,"context_line":"    def test_generate_disk_ensure_cleanup_called(self):"},{"line_number":1178,"context_line":"        self._expect_parted_calls()"},{"line_number":1179,"context_line":"        utils.execute(\u0027mkfs\u0027, \u0027-t\u0027, \u0027ext4\u0027, \u0027-F\u0027, \u0027-L\u0027, \u0027ephemeral\u0027,"},{"line_number":1180,"context_line":"            \u0027/dev/fakedev1\u0027, run_as_root\u003dTrue).AndRaise(test.TestingException)"},{"line_number":1181,"context_line":"        vm_utils.destroy_vdi(self.session,"},{"line_number":1182,"context_line":"            mox.IgnoreArg()).AndRaise(exception.StorageError(reason\u003d\"\"))"},{"line_number":1183,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_58ed99b5","line":1180,"updated":"2015-09-17 01:33:47.000000000","message":"ditto","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"4e2406f76ab86051b19deb29571574ecd5d1583a","unresolved":false,"context_lines":[{"line_number":1177,"context_line":"    def test_generate_disk_ensure_cleanup_called(self):"},{"line_number":1178,"context_line":"        self._expect_parted_calls()"},{"line_number":1179,"context_line":"        utils.execute(\u0027mkfs\u0027, \u0027-t\u0027, \u0027ext4\u0027, \u0027-F\u0027, \u0027-L\u0027, \u0027ephemeral\u0027,"},{"line_number":1180,"context_line":"            \u0027/dev/fakedev1\u0027, run_as_root\u003dTrue).AndRaise(test.TestingException)"},{"line_number":1181,"context_line":"        vm_utils.destroy_vdi(self.session,"},{"line_number":1182,"context_line":"            mox.IgnoreArg()).AndRaise(exception.StorageError(reason\u003d\"\"))"},{"line_number":1183,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_f69d230b","line":1180,"in_reply_to":"ba15a1d1_58ed99b5","updated":"2015-09-21 10:57:11.000000000","message":"Done","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"e3900232c2ffde309570c9c2f772872420842402","unresolved":false,"context_lines":[{"line_number":1191,"context_line":"        self.session.is_local_connection \u003d True"},{"line_number":1192,"context_line":"        self._expect_parted_calls()"},{"line_number":1193,"context_line":"        utils.execute(\u0027mkfs\u0027, \u0027-t\u0027, \u0027ext4\u0027, \u0027-F\u0027, \u0027-L\u0027, \u0027ephemeral\u0027,"},{"line_number":1194,"context_line":"            \u0027/dev/mapper/fakedev1\u0027, run_as_root\u003dTrue)"},{"line_number":1195,"context_line":""},{"line_number":1196,"context_line":"        self.mox.ReplayAll()"},{"line_number":1197,"context_line":"        vdi_ref \u003d vm_utils._generate_disk(self.session, {\"uuid\": \"fake_uuid\"},"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_b832b55c","line":1194,"updated":"2015-09-17 01:33:47.000000000","message":"ditto.","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"4e2406f76ab86051b19deb29571574ecd5d1583a","unresolved":false,"context_lines":[{"line_number":1191,"context_line":"        self.session.is_local_connection \u003d True"},{"line_number":1192,"context_line":"        self._expect_parted_calls()"},{"line_number":1193,"context_line":"        utils.execute(\u0027mkfs\u0027, \u0027-t\u0027, \u0027ext4\u0027, \u0027-F\u0027, \u0027-L\u0027, \u0027ephemeral\u0027,"},{"line_number":1194,"context_line":"            \u0027/dev/mapper/fakedev1\u0027, run_as_root\u003dTrue)"},{"line_number":1195,"context_line":""},{"line_number":1196,"context_line":"        self.mox.ReplayAll()"},{"line_number":1197,"context_line":"        vdi_ref \u003d vm_utils._generate_disk(self.session, {\"uuid\": \"fake_uuid\"},"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_b6880bc8","line":1194,"in_reply_to":"ba15a1d1_b832b55c","updated":"2015-09-21 10:57:11.000000000","message":"Done","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"}],"nova/virt/xenapi/vm_utils.py":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"9ba287b12be6a3e24ed872f23d67db8f4fd08710","unresolved":false,"context_lines":[{"line_number":1052,"context_line":"            # label ephemeral"},{"line_number":1053,"context_line":"            partition_label\u003dNone"},{"line_number":1054,"context_line":"            if disk_type \u003d\u003d \u0027ephemeral\u0027:"},{"line_number":1055,"context_line":"                partition_label\u003d\u0027ephemeral0\u0027"},{"line_number":1056,"context_line":""},{"line_number":1057,"context_line":"            if fs_type \u003d\u003d \u0027linux-swap\u0027:"},{"line_number":1058,"context_line":"                utils.execute(\u0027mkswap\u0027, partition_path, run_as_root\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_cd508cd7","line":1055,"updated":"2015-08-14 12:59:54.000000000","message":"I suggest partition_label is passed in, then generate_single_ephemeral can set a proper partition_label rather than defaulting to ephemeral0 here.","commit_id":"1bb5a0d1017dd634444932dc87dc8d6c4460934b"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"9ba287b12be6a3e24ed872f23d67db8f4fd08710","unresolved":false,"context_lines":[{"line_number":2649,"context_line":"    other_config[\u0027pci\u0027] \u003d params"},{"line_number":2650,"context_line":"    session.call_xenapi(\"VM.set_other_config\", vm_ref, other_config)"},{"line_number":2651,"context_line":""},{"line_number":2652,"context_line":"def get_partition_fs(partition):"},{"line_number":2653,"context_line":"    \"\"\"Return partition\u0027s fstype.\"\"\""},{"line_number":2654,"context_line":"    out, _err \u003d utils.execute(\u0027blkid\u0027, \u0027-po\u0027, \u0027udev\u0027, partition, run_as_root\u003dTrue)"},{"line_number":2655,"context_line":"    lines \u003d [line for line in out.split(\u0027\\n\u0027) if line]"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_b1123a08","line":2652,"updated":"2015-08-14 12:59:54.000000000","message":"I don\u0027t think this is needed (see other comment)","commit_id":"1bb5a0d1017dd634444932dc87dc8d6c4460934b"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"2b42bb1acf0abaa4b92610f4c14d0bf1999a2dd5","unresolved":false,"context_lines":[{"line_number":143,"context_line":"VHD_SIZE_CHECK_FUDGE_FACTOR_GB \u003d 10"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"DEVICE_ROOT \u003d \u00270\u0027"},{"line_number":147,"context_line":"DEVICE_RESCUE \u003d \u00271\u0027"},{"line_number":148,"context_line":"DEVICE_SWAP \u003d \u00272\u0027"},{"line_number":149,"context_line":"DEVICE_CONFIGDRIVE \u003d \u00273\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_f7b3a9e7","line":146,"updated":"2015-08-18 22:17:20.000000000","message":"Why did these have to move from vmops?  Can we not import them from there?  If there is a reason for the refactor, perhaps we should comment in the commit message or split out into a seperate commit?","commit_id":"cdd11bb17ee6474715653bad4a7ac6eae4ca72fc"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"ac36668db1ce1b5442238d0bb96bdef9750500f3","unresolved":false,"context_lines":[{"line_number":143,"context_line":"VHD_SIZE_CHECK_FUDGE_FACTOR_GB \u003d 10"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"DEVICE_ROOT \u003d \u00270\u0027"},{"line_number":147,"context_line":"DEVICE_RESCUE \u003d \u00271\u0027"},{"line_number":148,"context_line":"DEVICE_SWAP \u003d \u00272\u0027"},{"line_number":149,"context_line":"DEVICE_CONFIGDRIVE \u003d \u00273\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_fcbce86d","line":146,"in_reply_to":"fa1b9901_f7b3a9e7","updated":"2015-08-19 03:14:12.000000000","message":"the reason is: DEVICE_EPHEMERAL is used both in vm_utils.py and vmops.py. But it\u0027s hardcoded in vm_utils.py with the value of \u00274\u0027 previously in vm_utils.py. And the author johngarbutt added comments as the following\n    # TODO(johngarbutt) need to move DEVICE_EPHEMERAL from vmops to use it here\n    label_number \u003d int(userdevice) - 4\n\nI don\u0027t think it\u0027s a good way to hardcode the value, but it\u0027s reasonable to move the definitions to vm_utils.py for common usage and keep only one place to hold the consistent value.\nI\u0027ve updated the commit message to include the reason.","commit_id":"cdd11bb17ee6474715653bad4a7ac6eae4ca72fc"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1fb4ec14c6ef16a5fe51f4a51188c1bc56fc3f7e","unresolved":false,"context_lines":[{"line_number":1022,"context_line":""},{"line_number":1023,"context_line":""},{"line_number":1024,"context_line":"def _generate_disk(session, instance, vm_ref, userdevice, name_label,"},{"line_number":1025,"context_line":"                   disk_type, size_mb, fs_type, fs_label \u003d None):"},{"line_number":1026,"context_line":"    \"\"\"Steps to programmatically generate a disk:"},{"line_number":1027,"context_line":""},{"line_number":1028,"context_line":"        1. Create VDI of desired size"}],"source_content_type":"text/x-python","patch_set":11,"id":"da20952f_7b284e97","line":1025,"updated":"2015-09-07 17:42:59.000000000","message":"why can\u0027t se make fs_label a required field?\n\nNit: I think its normally fs_labal\u003dNone in the rest of the code base, but unsure why pep8 hasn\u0027t picked that up...","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"4e2406f76ab86051b19deb29571574ecd5d1583a","unresolved":false,"context_lines":[{"line_number":1022,"context_line":""},{"line_number":1023,"context_line":""},{"line_number":1024,"context_line":"def _generate_disk(session, instance, vm_ref, userdevice, name_label,"},{"line_number":1025,"context_line":"                   disk_type, size_mb, fs_type, fs_label \u003d None):"},{"line_number":1026,"context_line":"    \"\"\"Steps to programmatically generate a disk:"},{"line_number":1027,"context_line":""},{"line_number":1028,"context_line":"        1. Create VDI of desired size"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_f681a3c4","line":1025,"in_reply_to":"da20952f_7b284e97","updated":"2015-09-21 10:57:11.000000000","message":"Removed the space around the \u0027\u003d\u0027 at here.","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"e3900232c2ffde309570c9c2f772872420842402","unresolved":false,"context_lines":[{"line_number":1052,"context_line":""},{"line_number":1053,"context_line":"            if fs_type is not None:"},{"line_number":1054,"context_line":"                utils.mkfs(fs_type, partition_path, fs_label,"},{"line_number":1055,"context_line":"                              run_as_root\u003dTrue)"},{"line_number":1056,"context_line":""},{"line_number":1057,"context_line":"        # 4. Create VBD between instance VM and VDI"},{"line_number":1058,"context_line":"        if vm_ref:"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_b8fb957a","line":1055,"updated":"2015-09-17 01:33:47.000000000","message":"the indentation doesn\u0027t really match with fs_type","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"4e2406f76ab86051b19deb29571574ecd5d1583a","unresolved":false,"context_lines":[{"line_number":1052,"context_line":""},{"line_number":1053,"context_line":"            if fs_type is not None:"},{"line_number":1054,"context_line":"                utils.mkfs(fs_type, partition_path, fs_label,"},{"line_number":1055,"context_line":"                              run_as_root\u003dTrue)"},{"line_number":1056,"context_line":""},{"line_number":1057,"context_line":"        # 4. Create VBD between instance VM and VDI"},{"line_number":1058,"context_line":"        if vm_ref:"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_d669ff26","line":1055,"in_reply_to":"ba15a1d1_b8fb957a","updated":"2015-09-21 10:57:11.000000000","message":"Done","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"}],"nova/virt/xenapi/vmops.py":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"9ba287b12be6a3e24ed872f23d67db8f4fd08710","unresolved":false,"context_lines":[{"line_number":365,"context_line":"            with vm_utils.vdi_attached_here(self._session, root_vdi_ref, read_only\u003dFalse) as dev:"},{"line_number":366,"context_line":"                # NB: Partition 1 hardcoded"},{"line_number":367,"context_line":"                dev_part \u003d utils.make_dev_path(dev, partition\u003d1)"},{"line_number":368,"context_line":"                fstype \u003d vm_utils.get_partition_fs(dev_part)"},{"line_number":369,"context_line":"                # skip label for filesystem which is not either ext3 or ext4"},{"line_number":370,"context_line":"                if fstype not in (\u0027ext3\u0027, \u0027ext4\u0027):"},{"line_number":371,"context_line":"                    LOG.info(_LI(\u0027Disk contains a filesystem \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_f161a2a9","line":368,"updated":"2015-08-14 12:59:54.000000000","message":"Can\u0027t we use the existing vm_utils.get_partitions?  This is using parted so we don\u0027t need a new exectuable for blkid, and it also gives you a list of all partitions.  In theory we could add a label to each matching partition just with an index.","commit_id":"1bb5a0d1017dd634444932dc87dc8d6c4460934b"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"0bede8fefe1747d157a41dbaf5663d0a9ff29a75","unresolved":false,"context_lines":[{"line_number":365,"context_line":"            with vm_utils.vdi_attached_here(self._session, root_vdi_ref, read_only\u003dFalse) as dev:"},{"line_number":366,"context_line":"                # NB: Partition 1 hardcoded"},{"line_number":367,"context_line":"                dev_part \u003d utils.make_dev_path(dev, partition\u003d1)"},{"line_number":368,"context_line":"                fstype \u003d vm_utils.get_partition_fs(dev_part)"},{"line_number":369,"context_line":"                # skip label for filesystem which is not either ext3 or ext4"},{"line_number":370,"context_line":"                if fstype not in (\u0027ext3\u0027, \u0027ext4\u0027):"},{"line_number":371,"context_line":"                    LOG.info(_LI(\u0027Disk contains a filesystem \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_46c42891","line":368,"in_reply_to":"1a4dcd0f_f161a2a9","updated":"2015-08-19 03:17:36.000000000","message":"blkid is an existing command in the devstack list. The originate command I used is lsblk which is not in the existing wrapper list. \nBy referring to the re-sizing function which only takes care of the first partition, so I hardcoded partition 1 at here. But I agree it\u0027s a better implementation to label all of those matching partitions. I\u0027ve updated code by following your comments in the latest patch set. thanks.","commit_id":"1bb5a0d1017dd634444932dc87dc8d6c4460934b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1fb4ec14c6ef16a5fe51f4a51188c1bc56fc3f7e","unresolved":false,"context_lines":[{"line_number":359,"context_line":"                    instance, name_label, image_id, image_type)"},{"line_number":360,"context_line":"            vdis.update(create_image_vdis)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"            # set label for the root device once root created from image"},{"line_number":363,"context_line":"            if \u0027root\u0027 in vdis:"},{"line_number":364,"context_line":"                root_vdi \u003d vdis[\u0027root\u0027]"},{"line_number":365,"context_line":"                root_vdi_ref \u003d self._session.call_xenapi(\u0027VDI.get_by_uuid\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"da20952f_1b04b112","line":362,"updated":"2015-09-07 17:42:59.000000000","message":"This feels bad, modifying the existing partition.\n\nIs this really what libvirt does?","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"7f59e0df510656547547ceb08807762a898ff64c","unresolved":false,"context_lines":[{"line_number":359,"context_line":"                    instance, name_label, image_id, image_type)"},{"line_number":360,"context_line":"            vdis.update(create_image_vdis)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"            # set label for the root device once root created from image"},{"line_number":363,"context_line":"            if \u0027root\u0027 in vdis:"},{"line_number":364,"context_line":"                root_vdi \u003d vdis[\u0027root\u0027]"},{"line_number":365,"context_line":"                root_vdi_ref \u003d self._session.call_xenapi(\u0027VDI.get_by_uuid\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"da20952f_b911ff06","line":362,"in_reply_to":"da20952f_1b04b112","updated":"2015-09-08 09:09:35.000000000","message":"It\u0027s a good point; The main request was to ensure that the disks, including root disk, have a defined label.  This label typically exists for VMs created in libvirt, but it\u0027s possible they were set by some other means (e.g. on initial image creation).\nDo you have a suggestion for where we could do this better?","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"4e2406f76ab86051b19deb29571574ecd5d1583a","unresolved":false,"context_lines":[{"line_number":359,"context_line":"                    instance, name_label, image_id, image_type)"},{"line_number":360,"context_line":"            vdis.update(create_image_vdis)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"            # set label for the root device once root created from image"},{"line_number":363,"context_line":"            if \u0027root\u0027 in vdis:"},{"line_number":364,"context_line":"                root_vdi \u003d vdis[\u0027root\u0027]"},{"line_number":365,"context_line":"                root_vdi_ref \u003d self._session.call_xenapi(\u0027VDI.get_by_uuid\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_76759330","line":362,"in_reply_to":"da20952f_1b04b112","updated":"2015-09-21 10:57:11.000000000","message":"Thanks for the comments. Could you advise where we should define the label by considering Bob\u0027s comment? Please note this implemente will set label only when it creates vdi from a glance image. thanks.","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"e3900232c2ffde309570c9c2f772872420842402","unresolved":false,"context_lines":[{"line_number":363,"context_line":"            if \u0027root\u0027 in vdis:"},{"line_number":364,"context_line":"                root_vdi \u003d vdis[\u0027root\u0027]"},{"line_number":365,"context_line":"                root_vdi_ref \u003d self._session.call_xenapi(\u0027VDI.get_by_uuid\u0027,"},{"line_number":366,"context_line":"                    root_vdi[\u0027uuid\u0027])"},{"line_number":367,"context_line":"                with vm_utils.vdi_attached_here(self._session, root_vdi_ref,"},{"line_number":368,"context_line":"                    read_only\u003dFalse) as dev:"},{"line_number":369,"context_line":"                    partitions \u003d vm_utils._get_partitions(dev)"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_58bfd9a9","line":366,"updated":"2015-09-17 01:33:47.000000000","message":"this could be indented to match \u0027VDI.get_by_uuid\u0027","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"4e2406f76ab86051b19deb29571574ecd5d1583a","unresolved":false,"context_lines":[{"line_number":363,"context_line":"            if \u0027root\u0027 in vdis:"},{"line_number":364,"context_line":"                root_vdi \u003d vdis[\u0027root\u0027]"},{"line_number":365,"context_line":"                root_vdi_ref \u003d self._session.call_xenapi(\u0027VDI.get_by_uuid\u0027,"},{"line_number":366,"context_line":"                    root_vdi[\u0027uuid\u0027])"},{"line_number":367,"context_line":"                with vm_utils.vdi_attached_here(self._session, root_vdi_ref,"},{"line_number":368,"context_line":"                    read_only\u003dFalse) as dev:"},{"line_number":369,"context_line":"                    partitions \u003d vm_utils._get_partitions(dev)"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_16453716","line":366,"in_reply_to":"ba15a1d1_58bfd9a9","updated":"2015-09-21 10:57:11.000000000","message":"Done","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"e3900232c2ffde309570c9c2f772872420842402","unresolved":false,"context_lines":[{"line_number":365,"context_line":"                root_vdi_ref \u003d self._session.call_xenapi(\u0027VDI.get_by_uuid\u0027,"},{"line_number":366,"context_line":"                    root_vdi[\u0027uuid\u0027])"},{"line_number":367,"context_line":"                with vm_utils.vdi_attached_here(self._session, root_vdi_ref,"},{"line_number":368,"context_line":"                    read_only\u003dFalse) as dev:"},{"line_number":369,"context_line":"                    partitions \u003d vm_utils._get_partitions(dev)"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"                    for num, start, size, fstype, name, flags in partitions:"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_b8add585","line":368,"updated":"2015-09-17 01:33:47.000000000","message":"this could be indented, so it\u0027s distinguishable from the block of code within with","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"4e2406f76ab86051b19deb29571574ecd5d1583a","unresolved":false,"context_lines":[{"line_number":365,"context_line":"                root_vdi_ref \u003d self._session.call_xenapi(\u0027VDI.get_by_uuid\u0027,"},{"line_number":366,"context_line":"                    root_vdi[\u0027uuid\u0027])"},{"line_number":367,"context_line":"                with vm_utils.vdi_attached_here(self._session, root_vdi_ref,"},{"line_number":368,"context_line":"                    read_only\u003dFalse) as dev:"},{"line_number":369,"context_line":"                    partitions \u003d vm_utils._get_partitions(dev)"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"                    for num, start, size, fstype, name, flags in partitions:"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_b64a4b26","line":368,"in_reply_to":"ba15a1d1_b8add585","updated":"2015-09-21 10:57:11.000000000","message":"Done","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a95faa3084c143e5d6d6f21cb3e89ff4ae162df1","unresolved":false,"context_lines":[{"line_number":373,"context_line":"                        # nor ext4"},{"line_number":374,"context_line":"                        if fstype not in (\u0027ext3\u0027, \u0027ext4\u0027):"},{"line_number":375,"context_line":"                            LOG.info(_LI(\u0027Disk contains a filesystem \u0027"},{"line_number":376,"context_line":"                                \u0027we are unable to label: %s\u0027), fstype)"},{"line_number":377,"context_line":"                        else:"},{"line_number":378,"context_line":"                            # append the partition num to the end of the label"},{"line_number":379,"context_line":"                            fs_label \u003d \u0027cloudimg-rootfs%d\u0027 % num"}],"source_content_type":"text/x-python","patch_set":11,"id":"da20952f_6472b8e7","line":376,"updated":"2015-08-27 08:11:01.000000000","message":"indentation here is a little dodgy","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"4e2406f76ab86051b19deb29571574ecd5d1583a","unresolved":false,"context_lines":[{"line_number":373,"context_line":"                        # nor ext4"},{"line_number":374,"context_line":"                        if fstype not in (\u0027ext3\u0027, \u0027ext4\u0027):"},{"line_number":375,"context_line":"                            LOG.info(_LI(\u0027Disk contains a filesystem \u0027"},{"line_number":376,"context_line":"                                \u0027we are unable to label: %s\u0027), fstype)"},{"line_number":377,"context_line":"                        else:"},{"line_number":378,"context_line":"                            # append the partition num to the end of the label"},{"line_number":379,"context_line":"                            fs_label \u003d \u0027cloudimg-rootfs%d\u0027 % num"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_7654b3c9","line":376,"in_reply_to":"da20952f_6472b8e7","updated":"2015-09-21 10:57:11.000000000","message":"Done","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"e3900232c2ffde309570c9c2f772872420842402","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                            partition_path \u003d utils.make_dev_path(dev,"},{"line_number":381,"context_line":"                                partition\u003dnum)"},{"line_number":382,"context_line":"                            utils.execute(\u0027tune2fs\u0027, \u0027-L\u0027, fs_label,"},{"line_number":383,"context_line":"                                partition_path, run_as_root\u003dTrue)"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"        # Fetch VDI refs now so we don\u0027t have to fetch the ref multiple times"},{"line_number":386,"context_line":"        for vdi in six.itervalues(vdis):"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_d8e9a9b8","line":383,"updated":"2015-09-17 01:33:47.000000000","message":"this could be indented to match \u0027tune2fs\u0027","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"4e2406f76ab86051b19deb29571574ecd5d1583a","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                            partition_path \u003d utils.make_dev_path(dev,"},{"line_number":381,"context_line":"                                partition\u003dnum)"},{"line_number":382,"context_line":"                            utils.execute(\u0027tune2fs\u0027, \u0027-L\u0027, fs_label,"},{"line_number":383,"context_line":"                                partition_path, run_as_root\u003dTrue)"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"        # Fetch VDI refs now so we don\u0027t have to fetch the ref multiple times"},{"line_number":386,"context_line":"        for vdi in six.itervalues(vdis):"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_b671eb79","line":383,"in_reply_to":"ba15a1d1_d8e9a9b8","updated":"2015-09-21 10:57:11.000000000","message":"Done","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1fb4ec14c6ef16a5fe51f4a51188c1bc56fc3f7e","unresolved":false,"context_lines":[{"line_number":784,"context_line":"            else:"},{"line_number":785,"context_line":"                # create specified ephemeral disks"},{"line_number":786,"context_line":"                vm_utils.generate_ephemeral(self._session, instance, vm_ref,"},{"line_number":787,"context_line":"                    DEVICE_EPHEMERAL, name_label, ephemeral_gb)"},{"line_number":788,"context_line":""},{"line_number":789,"context_line":"        # Attach (optional) configdrive v2 disk"},{"line_number":790,"context_line":"        if configdrive.required_by(instance):"}],"source_content_type":"text/x-python","patch_set":11,"id":"da20952f_5b56aa2a","line":787,"updated":"2015-09-07 17:42:59.000000000","message":"This seems an unrelated change, please remove it from this patch.","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"4e2406f76ab86051b19deb29571574ecd5d1583a","unresolved":false,"context_lines":[{"line_number":784,"context_line":"            else:"},{"line_number":785,"context_line":"                # create specified ephemeral disks"},{"line_number":786,"context_line":"                vm_utils.generate_ephemeral(self._session, instance, vm_ref,"},{"line_number":787,"context_line":"                    DEVICE_EPHEMERAL, name_label, ephemeral_gb)"},{"line_number":788,"context_line":""},{"line_number":789,"context_line":"        # Attach (optional) configdrive v2 disk"},{"line_number":790,"context_line":"        if configdrive.required_by(instance):"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_96686789","line":787,"in_reply_to":"da20952f_5b56aa2a","updated":"2015-09-21 10:57:11.000000000","message":"Done","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1fb4ec14c6ef16a5fe51f4a51188c1bc56fc3f7e","unresolved":false,"context_lines":[{"line_number":1283,"context_line":"            # and add any extra disks if required due to a"},{"line_number":1284,"context_line":"            # larger total_ephemeral_gb (resize down is not supported)."},{"line_number":1285,"context_line":"            for userdevice, new_size in enumerate(sizes,"},{"line_number":1286,"context_line":"                start\u003dint(DEVICE_EPHEMERAL)):"},{"line_number":1287,"context_line":"                vdi \u003d ephemeral_vdis.get(str(userdevice))"},{"line_number":1288,"context_line":"                if vdi:"},{"line_number":1289,"context_line":"                    vdi_ref \u003d vdi[\u0027ref\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"da20952f_9b60c202","line":1286,"updated":"2015-09-07 17:42:59.000000000","message":"this seems an unrelated change, please remove it from this patch.","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"4e2406f76ab86051b19deb29571574ecd5d1583a","unresolved":false,"context_lines":[{"line_number":1283,"context_line":"            # and add any extra disks if required due to a"},{"line_number":1284,"context_line":"            # larger total_ephemeral_gb (resize down is not supported)."},{"line_number":1285,"context_line":"            for userdevice, new_size in enumerate(sizes,"},{"line_number":1286,"context_line":"                start\u003dint(DEVICE_EPHEMERAL)):"},{"line_number":1287,"context_line":"                vdi \u003d ephemeral_vdis.get(str(userdevice))"},{"line_number":1288,"context_line":"                if vdi:"},{"line_number":1289,"context_line":"                    vdi_ref \u003d vdi[\u0027ref\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_d6f57fcb","line":1286,"in_reply_to":"da20952f_9b60c202","updated":"2015-09-21 10:57:11.000000000","message":"Done","commit_id":"fa7b864d25e23ef827b83448f5c9bdf0eeee4169"}]}
