)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"720557ed03129612155529872bfd2813a7e78765","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt: move find_disk to Guest\u0027s object"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Deplaces find_disk to Guest\u0027s object and update driver"},{"line_number":10,"context_line":"libvirt to use its new definition"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Id388e98e58e6f1d420629ec1ff9e4b22d2717960"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a8ffd7b_35d738ef","line":9,"updated":"2015-11-30 13:40:24.000000000","message":"Deplaces \u003d\u003e Replaces","commit_id":"e02b9301f70b28fe5a34da2f3f0231b9e7d5ba12"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"16e9d154f88325ee0b2b8611bf0bd8d011ec1bb3","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt: move find_disk to Guest\u0027s object"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Deplaces find_disk to Guest\u0027s object and update driver"},{"line_number":10,"context_line":"libvirt to use its new definition"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Id388e98e58e6f1d420629ec1ff9e4b22d2717960"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7a740942_32427611","line":9,"updated":"2015-12-07 08:39:20.000000000","message":"Deplaces \u003d\u003e Replaces","commit_id":"38b52e051041f44fa967e9ee1805f6564dc8a153"}],"nova/tests/unit/virt/libvirt/test_guest.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"b84d8204d83f22d33b2a805de75820c971da00a2","unresolved":false,"context_lines":[{"line_number":484,"context_line":"    \u003c/disk\u003e"},{"line_number":485,"context_line":"  \u003c/devices\u003e"},{"line_number":486,"context_line":"\u003c/domain\u003e"},{"line_number":487,"context_line":"\"\"\""},{"line_number":488,"context_line":"        self.domain.XMLDesc.return_value \u003d xml"},{"line_number":489,"context_line":"        self.assertEqual("},{"line_number":490,"context_line":"            \u0027/disk\u0027, self.guest._find_disk(\u0027lxc\u0027, \u0027foo\u0027))"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a7e1126_6b9fa4b4","line":487,"updated":"2015-12-18 11:57:54.000000000","message":"can we have test data with \u003e 1 block devices. Nearly all guests have at least 2 with ephemeral and static. \n\nBonus points for domain definition that includes volumes.","commit_id":"d267ef9e0f0edb73dfc23755b265199c45341ee0"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"e8d6310ae1c5ce818e0961433ed15789dde6337f","unresolved":false,"context_lines":[{"line_number":1356,"context_line":""},{"line_number":1357,"context_line":"        snapshot \u003d self._image_api.get(context, image_id)"},{"line_number":1358,"context_line":""},{"line_number":1359,"context_line":"        disk_path \u003d guest.find_disk("},{"line_number":1360,"context_line":"            CONF.libvirt.virt_type, CONF.libvirt.images_type)"},{"line_number":1361,"context_line":"        source_format \u003d libvirt_utils.get_disk_type(disk_path)"},{"line_number":1362,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_8cfc4a73","line":1359,"updated":"2015-12-07 19:48:28.000000000","message":"Thinking again, we need both methods since \u0027disk_path\u0027 is used to get file format but also to get block device.","commit_id":"38b52e051041f44fa967e9ee1805f6564dc8a153"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"b84d8204d83f22d33b2a805de75820c971da00a2","unresolved":false,"context_lines":[{"line_number":1357,"context_line":""},{"line_number":1358,"context_line":"        snapshot \u003d self._image_api.get(context, image_id)"},{"line_number":1359,"context_line":""},{"line_number":1360,"context_line":"        dev \u003d guest.get_root_block_device("},{"line_number":1361,"context_line":"            CONF.libvirt.virt_type,"},{"line_number":1362,"context_line":"            CONF.libvirt.images_type)"},{"line_number":1363,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"3a7e1126_ab190c7b","line":1360,"range":{"start_line":1360,"start_character":8,"end_line":1360,"end_character":11},"updated":"2015-12-18 11:57:54.000000000","message":"how about we call it root_dev to be clear once we get off the page","commit_id":"d267ef9e0f0edb73dfc23755b265199c45341ee0"}],"nova/virt/libvirt/guest.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"253898890044ad7ca0336bd502ba4618f41f6e08","unresolved":false,"context_lines":[{"line_number":375,"context_line":"    def find_disk(self, virt_type, image_type):"},{"line_number":376,"context_line":"        \"\"\"Find root device path for instance"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"        May be file or device"},{"line_number":379,"context_line":"        \"\"\""},{"line_number":380,"context_line":"        xml_desc \u003d self._domain.XMLDesc(0)"},{"line_number":381,"context_line":"        domain \u003d etree.fromstring(xml_desc)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_95ae2480","line":378,"updated":"2015-11-30 13:39:48.000000000","message":"can we change this to find_device?","commit_id":"e02b9301f70b28fe5a34da2f3f0231b9e7d5ba12"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"9dcd713c6df05afa6520911c5c0a2a6c36934fdf","unresolved":false,"context_lines":[{"line_number":375,"context_line":"    def find_disk(self, virt_type, image_type):"},{"line_number":376,"context_line":"        \"\"\"Find root device path for instance"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"        May be file or device"},{"line_number":379,"context_line":"        \"\"\""},{"line_number":380,"context_line":"        xml_desc \u003d self._domain.XMLDesc(0)"},{"line_number":381,"context_line":"        domain \u003d etree.fromstring(xml_desc)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_dc9c2010","line":378,"in_reply_to":"7a740942_a9027409","updated":"2015-12-08 11:20:14.000000000","message":"Yep, that would be better","commit_id":"e02b9301f70b28fe5a34da2f3f0231b9e7d5ba12"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"876a5f4911f3f578521447f4b6060380decea1b0","unresolved":false,"context_lines":[{"line_number":375,"context_line":"    def find_disk(self, virt_type, image_type):"},{"line_number":376,"context_line":"        \"\"\"Find root device path for instance"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"        May be file or device"},{"line_number":379,"context_line":"        \"\"\""},{"line_number":380,"context_line":"        xml_desc \u003d self._domain.XMLDesc(0)"},{"line_number":381,"context_line":"        domain \u003d etree.fromstring(xml_desc)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_c37671a3","line":378,"in_reply_to":"9a8ffd7b_38b5ed30","updated":"2015-12-03 11:44:25.000000000","message":"I think the general concept of \"Find root device path\" is actually flawed. As you see from the code below in many cases there is not actually a root device. LXC and Parallels containers have a root filesystem. KVM may be backed by network based storage which has no concept of a path in the host OS. ie RBD volume\n\nIf we look at the caller of this method, it does not in fact actually really want to get the disk path - what it ultimately wants to know is the disk format. It only uses the disk path as an intermediate step:\n\n     disk_path \u003d libvirt_utils.find_disk(virt_dom)\t\n     source_format \u003d libvirt_utils.get_disk_type(disk_path)\n\nThe impl of the get_disk_type method is truly awful - inferring disk type by matching magic strings in the path. So how about we kill find_disk *and* get_disk_type from the utils.py and just add a method here that directly returns the root disk format.","commit_id":"e02b9301f70b28fe5a34da2f3f0231b9e7d5ba12"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"f57f72816208a53d4fd6ccb06537524c85b9bd6b","unresolved":false,"context_lines":[{"line_number":375,"context_line":"    def find_disk(self, virt_type, image_type):"},{"line_number":376,"context_line":"        \"\"\"Find root device path for instance"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"        May be file or device"},{"line_number":379,"context_line":"        \"\"\""},{"line_number":380,"context_line":"        xml_desc \u003d self._domain.XMLDesc(0)"},{"line_number":381,"context_line":"        domain \u003d etree.fromstring(xml_desc)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_38b5ed30","line":378,"in_reply_to":"9a8ffd7b_95ae2480","updated":"2015-11-30 13:51:57.000000000","message":"I\u0027m not sure because that can be confusing we have several kind of devices and here we are looking disk or related. What d you think ?","commit_id":"e02b9301f70b28fe5a34da2f3f0231b9e7d5ba12"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"ffab2d035e3de0ed141b3e39693cc58532d79873","unresolved":false,"context_lines":[{"line_number":375,"context_line":"    def find_disk(self, virt_type, image_type):"},{"line_number":376,"context_line":"        \"\"\"Find root device path for instance"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"        May be file or device"},{"line_number":379,"context_line":"        \"\"\""},{"line_number":380,"context_line":"        xml_desc \u003d self._domain.XMLDesc(0)"},{"line_number":381,"context_line":"        domain \u003d etree.fromstring(xml_desc)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_a9027409","line":378,"in_reply_to":"9a8ffd7b_c37671a3","updated":"2015-12-07 11:33:29.000000000","message":"I\u0027m agree we just have a problem in driver.py, method \u0027_rebase_with_qemu_img\u0027; We use get_disk_type with a path to identify disk format.\n\nSince we are in context for rebasing image with qemu I guess we can simply replace \u0027get_disk_type\u0027 with images.qemu_img_info.","commit_id":"e02b9301f70b28fe5a34da2f3f0231b9e7d5ba12"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"16e9d154f88325ee0b2b8611bf0bd8d011ec1bb3","unresolved":false,"context_lines":[{"line_number":372,"context_line":"        \"Determines whether guest is currently running.\""},{"line_number":373,"context_line":"        return self._domain.isActive()"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"    def find_disk(self, virt_type, image_type):"},{"line_number":376,"context_line":"        \"\"\"Find root device path for instance"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"        May be file or device"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_d2ff72a8","line":375,"updated":"2015-12-07 08:39:20.000000000","message":"why not find_device?\n\nThe comment below has may be file or device?","commit_id":"38b52e051041f44fa967e9ee1805f6564dc8a153"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"e8d6310ae1c5ce818e0961433ed15789dde6337f","unresolved":false,"context_lines":[{"line_number":372,"context_line":"        \"Determines whether guest is currently running.\""},{"line_number":373,"context_line":"        return self._domain.isActive()"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"    def find_disk(self, virt_type, image_type):"},{"line_number":376,"context_line":"        \"\"\"Find root device path for instance"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"        May be file or device"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_6c20fe48","line":375,"in_reply_to":"7a740942_d2ff72a8","updated":"2015-12-07 19:48:28.000000000","message":"This method only return a path. The note talks about \"device\" because of network device used as disk but even in that case that method return a \"fake\" path","commit_id":"38b52e051041f44fa967e9ee1805f6564dc8a153"}]}
