)]}'
{"nova/virt/libvirt/driver.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"80fa874f7db0caa5b6c0d735ffc3eb043e43b848","unresolved":false,"context_lines":[{"line_number":1157,"context_line":"        # the instance directory and disk.info on init, this condition will"},{"line_number":1158,"context_line":"        # need to be re-visited to make sure that backend doesn\u0027t re-create"},{"line_number":1159,"context_line":"        # the disk. Refer to bugs: 1666831 1728603 1769131"},{"line_number":1160,"context_line":"        if imagebackend.SUPPORTS_CLONE_MAP[CONF.libvirt.images_type]:"},{"line_number":1161,"context_line":"            root_disk \u003d self.image_backend.by_name(instance, \u0027disk\u0027)"},{"line_number":1162,"context_line":"            # TODO(nic): Set ignore_errors\u003dFalse in a future release."},{"line_number":1163,"context_line":"            # It is set to True here to avoid any upgrade issues surrounding"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_97ed248d","line":1160,"updated":"2018-05-07 23:40:26.000000000","message":"I think, you could do this instead of creating a new SUPPORTS_CLONE_MAP that would have to be kept in sync with the various class variables:\n\n if self.image_backend.BACKEND[CONF.libvirt.images_type].SUPPORTS_CLONE:\n\nNote, I had to do this locally to have it work as-is with the existing unit test mocks:\n\n if self.image_backend.BACKEND.get(CONF.libvirt.images_type).SUPPORTS_CLONE:","commit_id":"0c3a2730749c0ffbdf8ee79ddccce48cb8ef94a0"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5a57b0eeac4b7a10c551eae729982c92a3f7e3cd","unresolved":false,"context_lines":[{"line_number":1157,"context_line":"        # the instance directory and disk.info on init, this condition will"},{"line_number":1158,"context_line":"        # need to be re-visited to make sure that backend doesn\u0027t re-create"},{"line_number":1159,"context_line":"        # the disk. Refer to bugs: 1666831 1728603 1769131"},{"line_number":1160,"context_line":"        if imagebackend.SUPPORTS_CLONE_MAP[CONF.libvirt.images_type]:"},{"line_number":1161,"context_line":"            root_disk \u003d self.image_backend.by_name(instance, \u0027disk\u0027)"},{"line_number":1162,"context_line":"            # TODO(nic): Set ignore_errors\u003dFalse in a future release."},{"line_number":1163,"context_line":"            # It is set to True here to avoid any upgrade issues surrounding"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_4d84c60c","line":1160,"in_reply_to":"5f7c97a3_1a460b7e","updated":"2018-05-08 19:26:25.000000000","message":"Yeah, SUPPORTS_CLONE is a class variable so it can be accessed (without an instance) as long as you know the subclass you want. And fortunately, self.image_backend.backend provides that lookup for us in driver.py.","commit_id":"0c3a2730749c0ffbdf8ee79ddccce48cb8ef94a0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7316925bc719caca27ea279a8b8ac9d18dd17631","unresolved":false,"context_lines":[{"line_number":1157,"context_line":"        # the instance directory and disk.info on init, this condition will"},{"line_number":1158,"context_line":"        # need to be re-visited to make sure that backend doesn\u0027t re-create"},{"line_number":1159,"context_line":"        # the disk. Refer to bugs: 1666831 1728603 1769131"},{"line_number":1160,"context_line":"        if imagebackend.SUPPORTS_CLONE_MAP[CONF.libvirt.images_type]:"},{"line_number":1161,"context_line":"            root_disk \u003d self.image_backend.by_name(instance, \u0027disk\u0027)"},{"line_number":1162,"context_line":"            # TODO(nic): Set ignore_errors\u003dFalse in a future release."},{"line_number":1163,"context_line":"            # It is set to True here to avoid any upgrade issues surrounding"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_1a460b7e","line":1160,"in_reply_to":"5f7c97a3_5ab803c7","updated":"2018-05-08 15:20:53.000000000","message":"Well I\u0027ll be damned, I guess that works:\n\n\u003e\u003e\u003e from nova.virt.libvirt import imagebackend\n\u003e\u003e\u003e backend \u003d imagebackend.Backend(False)\n\u003e\u003e\u003e backend\n\u003cnova.virt.libvirt.imagebackend.Backend object at 0x7f42bee2fef0\u003e\n\u003e\u003e\u003e backend.backend(\u0027rbd\u0027)\n\u003cclass \u0027nova.virt.libvirt.imagebackend.Rbd\u0027\u003e\n\u003e\u003e\u003e backend.backend(\u0027rbd\u0027).SUPPORTS_CLONE\nTrue\n\u003e\u003e\u003e backend.backend(\u0027qcow2\u0027).SUPPORTS_CLONE\nFalse\n\u003e\u003e\u003e","commit_id":"0c3a2730749c0ffbdf8ee79ddccce48cb8ef94a0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e17d9d1af819c9dff9cc0a59fbef33e3c57b93f3","unresolved":false,"context_lines":[{"line_number":1157,"context_line":"        # the instance directory and disk.info on init, this condition will"},{"line_number":1158,"context_line":"        # need to be re-visited to make sure that backend doesn\u0027t re-create"},{"line_number":1159,"context_line":"        # the disk. Refer to bugs: 1666831 1728603 1769131"},{"line_number":1160,"context_line":"        if imagebackend.SUPPORTS_CLONE_MAP[CONF.libvirt.images_type]:"},{"line_number":1161,"context_line":"            root_disk \u003d self.image_backend.by_name(instance, \u0027disk\u0027)"},{"line_number":1162,"context_line":"            # TODO(nic): Set ignore_errors\u003dFalse in a future release."},{"line_number":1163,"context_line":"            # It is set to True here to avoid any upgrade issues surrounding"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_5ab803c7","line":1160,"in_reply_to":"5f7c97a3_97ed248d","updated":"2018-05-08 15:04:56.000000000","message":"\u003e if self.image_backend.BACKEND[CONF.libvirt.images_type].SUPPORTS_CLONE:\n\nWill that work calling SUPPORTS_CLONE on a class (type) rather than an instance of that object? I thought that\u0027s why I couldn\u0027t use self.image_backend.backend[CONF.libvirt.images_type] in the first place because that returns a type, not an object.","commit_id":"0c3a2730749c0ffbdf8ee79ddccce48cb8ef94a0"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bc800a797ea975a08999a216fba93427b0e74287","unresolved":false,"context_lines":[{"line_number":1156,"context_line":"        # there is ever an image type that supports clone *and* re-creates"},{"line_number":1157,"context_line":"        # the instance directory and disk.info on init, this condition will"},{"line_number":1158,"context_line":"        # need to be re-visited to make sure that backend doesn\u0027t re-create"},{"line_number":1159,"context_line":"        # the disk. Refer to bugs: 1666831 1728603 1769131"},{"line_number":1160,"context_line":"        if self.image_backend.backend(CONF.libvirt.images_type).SUPPORTS_CLONE:"},{"line_number":1161,"context_line":"            root_disk \u003d self.image_backend.by_name(instance, \u0027disk\u0027)"},{"line_number":1162,"context_line":"            # TODO(nic): Set ignore_errors\u003dFalse in a future release."}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_0dfa4e74","line":1159,"updated":"2018-05-08 19:27:45.000000000","message":"++ good detailed comment","commit_id":"8e3385707cb1ced55cd12b1314d8c0b68d354c38"}],"nova/virt/libvirt/imagebackend.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"80fa874f7db0caa5b6c0d735ffc3eb043e43b848","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    \u0027ploop\u0027: False,"},{"line_number":64,"context_line":"    \u0027default\u0027: False  # Qcow2 if use_cow else Flat"},{"line_number":65,"context_line":"}"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":69,"context_line":"class Image(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_37dbf0ed","line":66,"updated":"2018-05-07 23:40:26.000000000","message":"It\u0027s been bugging me thinking about how this would have to be kept in sync with the various SUPPORTS_CLONE class variables below.","commit_id":"0c3a2730749c0ffbdf8ee79ddccce48cb8ef94a0"}]}
