)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"13f4924f79957ec6203c31516b6291e2129e4fc1","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":" + The attribute snapshot was not defined (W0201)."},{"line_number":10,"context_line":" + The private method _text_node should be used as function (R0201)."},{"line_number":11,"context_line":" + Replaces statickmethod calls by classname instead of instance ref."},{"line_number":12,"context_line":" + Removes duplicate code in volume.py for the method: get_hash_str."},{"line_number":13,"context_line":" + Fixes a test in libvirt to be more coherent with the static"},{"line_number":14,"context_line":"   method _direct_io_stub."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAT3%2F%2Ft88%3D","line":11,"updated":"2014-01-02 23:29:25.000000000","message":"staticmethod","commit_id":"be4cad8e18d2e737f18e3feed1ce4cf111373127"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"926e4105e9e2fdcdf92d0a87461c8b21f7ad7b0f","unresolved":false,"context_lines":[{"line_number":11,"context_line":" + Replaces staticmethod calls by classname instead of instance ref."},{"line_number":12,"context_line":" + Removes duplicate code in volume.py for the method: get_hash_str."},{"line_number":13,"context_line":" + Fixes a test in libvirt to be more coherent with the static"},{"line_number":14,"context_line":"   method _direct_io_stub."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ie61350dc0c017feff6b85958c7b3c65da501bfd2"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAUH%2F%2Fy4k%3D","line":14,"updated":"2014-01-08 11:23:51.000000000","message":"Whenever you find yourself writing a commit message which is a list of multiple different things, then this is a sign you need to split the commit up into a series of independent patches applying one distinct fix each time.","commit_id":"f27a6c49ca1341c9345e737916cb9c41fcd5c466"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"f235eafa73d57061600fd34fa456ae1eec96e559","unresolved":false,"context_lines":[{"line_number":11,"context_line":" + Replaces staticmethod calls by classname instead of instance ref."},{"line_number":12,"context_line":" + Removes duplicate code in volume.py for the method: get_hash_str."},{"line_number":13,"context_line":" + Fixes a test in libvirt to be more coherent with the static"},{"line_number":14,"context_line":"   method _direct_io_stub."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ie61350dc0c017feff6b85958c7b3c65da501bfd2"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAUH%2F%2Fyww%3D","line":14,"in_reply_to":"AAAAUH%2F%2Fy4k%3D","updated":"2014-01-08 12:17:16.000000000","message":"Done","commit_id":"f27a6c49ca1341c9345e737916cb9c41fcd5c466"}],"nova/virt/libvirt/config.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"01ac771aababfeabd5af7b71d9ad4a9b6eb08529","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright (C) 2012-2013 Red Hat, Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAT3%2F%2Fvrc%3D","side":"PARENT","line":1,"updated":"2014-01-02 14:30:58.000000000","message":"There is a already a bug https://bugs.launchpad.net/ceilometer/+bug/1229324 for this, I think no need to fix this in your patch","commit_id":"dd3f96e91581f465a52d10a212eb51b147dc38b5"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"7a2f12265349600d2706e831278e5fd8818f17e2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright (C) 2012-2013 Red Hat, Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAT3%2F%2FvdE%3D","side":"PARENT","line":1,"in_reply_to":"AAAAT3%2F%2Fvrc%3D","updated":"2014-01-02 15:56:08.000000000","message":"Done","commit_id":"dd3f96e91581f465a52d10a212eb51b147dc38b5"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"eaebec8aaa924575ccc6c254285b8aa36f6403a6","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.ns_prefix \u003d kwargs.get(\u0027ns_prefix\u0027)"},{"line_number":44,"context_line":"        self.ns_uri \u003d kwargs.get(\u0027ns_uri\u0027)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @staticmethod"},{"line_number":47,"context_line":"    def _text_node(name, value):"},{"line_number":48,"context_line":"        child \u003d etree.Element(name)"},{"line_number":49,"context_line":"        child.text \u003d str(value)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAT3%2F%2Fvpg%3D","line":46,"updated":"2014-01-02 14:40:24.000000000","message":"All of the calls to self._text_node(... should be changed to LibvirtConfigObject._text_node(...","commit_id":"d95917587a34543ff0d72a0d5b11bf3795a9ba7e"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"e42a5d91214de2e15a0bc5c0fd2dad445262f52e","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.ns_prefix \u003d kwargs.get(\u0027ns_prefix\u0027)"},{"line_number":44,"context_line":"        self.ns_uri \u003d kwargs.get(\u0027ns_uri\u0027)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @staticmethod"},{"line_number":47,"context_line":"    def _text_node(name, value):"},{"line_number":48,"context_line":"        child \u003d etree.Element(name)"},{"line_number":49,"context_line":"        child.text \u003d str(value)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAT3%2F%2FvXk%3D","line":46,"in_reply_to":"AAAAT3%2F%2FvbA%3D","updated":"2014-01-02 16:11:51.000000000","message":"Sorry @Jay I pushed a new patchset before to wait for your comment :-)\n\nYou probably right, but maybe we have to work on that module per module, I mean libvirt, xenapi, compute, ...\nI will do a check on libvirt/*.py","commit_id":"d95917587a34543ff0d72a0d5b11bf3795a9ba7e"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"5175b99033970773db1548a9d1bab0c7707e69e3","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.ns_prefix \u003d kwargs.get(\u0027ns_prefix\u0027)"},{"line_number":44,"context_line":"        self.ns_uri \u003d kwargs.get(\u0027ns_uri\u0027)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @staticmethod"},{"line_number":47,"context_line":"    def _text_node(name, value):"},{"line_number":48,"context_line":"        child \u003d etree.Element(name)"},{"line_number":49,"context_line":"        child.text \u003d str(value)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAT3%2F%2FvbA%3D","line":46,"in_reply_to":"AAAAT3%2F%2FvdI%3D","updated":"2014-01-02 16:04:25.000000000","message":"Not sure if it is a must, I noticed that most of the code for this case are using self.xxx\n\nhttps://github.com/openstack/nova/blob/master/nova/compute/api.py#L715\n\nBut I have no comments if you want to do a fully clean up. ;-)","commit_id":"d95917587a34543ff0d72a0d5b11bf3795a9ba7e"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"7a2f12265349600d2706e831278e5fd8818f17e2","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.ns_prefix \u003d kwargs.get(\u0027ns_prefix\u0027)"},{"line_number":44,"context_line":"        self.ns_uri \u003d kwargs.get(\u0027ns_uri\u0027)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @staticmethod"},{"line_number":47,"context_line":"    def _text_node(name, value):"},{"line_number":48,"context_line":"        child \u003d etree.Element(name)"},{"line_number":49,"context_line":"        child.text \u003d str(value)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAT3%2F%2FvdI%3D","line":46,"in_reply_to":"AAAAT3%2F%2FvoQ%3D","updated":"2014-01-02 15:56:08.000000000","message":"It\u0027s could be more clean to use \"LibvirtConfigObject._text_node\" but it\u0027s a lot of lines to change for something works.\n\nThe aim of this patch is to clean the code; so maybe we have to.","commit_id":"d95917587a34543ff0d72a0d5b11bf3795a9ba7e"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"a4321a54ec2166f14e738ee00e95f6c27f4e5a06","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.ns_prefix \u003d kwargs.get(\u0027ns_prefix\u0027)"},{"line_number":44,"context_line":"        self.ns_uri \u003d kwargs.get(\u0027ns_uri\u0027)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @staticmethod"},{"line_number":47,"context_line":"    def _text_node(name, value):"},{"line_number":48,"context_line":"        child \u003d etree.Element(name)"},{"line_number":49,"context_line":"        child.text \u003d str(value)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAT3%2F%2FvoQ%3D","line":46,"in_reply_to":"AAAAT3%2F%2Fvpg%3D","updated":"2014-01-02 14:50:07.000000000","message":"Gary, _text_node() is only used in LibvirtConfigObject and its child class, so seems it is ok to use self._text_node(),  comments? Thanks.","commit_id":"d95917587a34543ff0d72a0d5b11bf3795a9ba7e"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"aa8addeb397602a8e10935b2bc6018d41413f640","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.ns_prefix \u003d kwargs.get(\u0027ns_prefix\u0027)"},{"line_number":46,"context_line":"        self.ns_uri \u003d kwargs.get(\u0027ns_uri\u0027)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @staticmethod"},{"line_number":49,"context_line":"    def _text_node(name, value):"},{"line_number":50,"context_line":"        child \u003d etree.Element(name)"},{"line_number":51,"context_line":"        child.text \u003d str(value)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Fy5A%3D","line":48,"updated":"2014-01-08 11:25:43.000000000","message":"This is ok","commit_id":"f27a6c49ca1341c9345e737916cb9c41fcd5c466"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"f235eafa73d57061600fd34fa456ae1eec96e559","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.ns_prefix \u003d kwargs.get(\u0027ns_prefix\u0027)"},{"line_number":46,"context_line":"        self.ns_uri \u003d kwargs.get(\u0027ns_uri\u0027)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @staticmethod"},{"line_number":49,"context_line":"    def _text_node(name, value):"},{"line_number":50,"context_line":"        child \u003d etree.Element(name)"},{"line_number":51,"context_line":"        child.text \u003d str(value)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2FysQ%3D","line":48,"in_reply_to":"AAAAUH%2F%2Fy5A%3D","updated":"2014-01-08 12:17:16.000000000","message":"Done","commit_id":"f27a6c49ca1341c9345e737916cb9c41fcd5c466"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"aa8addeb397602a8e10935b2bc6018d41413f640","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        caps \u003d super(LibvirtConfigCapsHost, self).format_dom()"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        if self.uuid:"},{"line_number":133,"context_line":"            caps.append(LibvirtConfigObject._text_node(\"uuid\", self.uuid))"},{"line_number":134,"context_line":"        if self.cpu:"},{"line_number":135,"context_line":"            caps.append(self.cpu.format_dom())"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Fy48%3D","line":133,"updated":"2014-01-08 11:25:43.000000000","message":"makes no sense to me as well as all others","commit_id":"f27a6c49ca1341c9345e737916cb9c41fcd5c466"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"f235eafa73d57061600fd34fa456ae1eec96e559","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        caps \u003d super(LibvirtConfigCapsHost, self).format_dom()"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        if self.uuid:"},{"line_number":133,"context_line":"            caps.append(LibvirtConfigObject._text_node(\"uuid\", self.uuid))"},{"line_number":134,"context_line":"        if self.cpu:"},{"line_number":135,"context_line":"            caps.append(self.cpu.format_dom())"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2FysY%3D","line":133,"in_reply_to":"AAAAUH%2F%2Fy48%3D","updated":"2014-01-08 12:17:16.000000000","message":"Done","commit_id":"f27a6c49ca1341c9345e737916cb9c41fcd5c466"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"aa8addeb397602a8e10935b2bc6018d41413f640","unresolved":false,"context_lines":[{"line_number":487,"context_line":"        self.logical_block_size \u003d None"},{"line_number":488,"context_line":"        self.physical_block_size \u003d None"},{"line_number":489,"context_line":"        self.readonly \u003d False"},{"line_number":490,"context_line":"        self.snapshot \u003d None"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"    def format_dom(self):"},{"line_number":493,"context_line":"        dev \u003d super(LibvirtConfigGuestDisk, self).format_dom()"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Fy4A%3D","line":490,"updated":"2014-01-08 11:25:43.000000000","message":"This is the other thing I\u0027d keep in this patch... all else... not really","commit_id":"f27a6c49ca1341c9345e737916cb9c41fcd5c466"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"f235eafa73d57061600fd34fa456ae1eec96e559","unresolved":false,"context_lines":[{"line_number":487,"context_line":"        self.logical_block_size \u003d None"},{"line_number":488,"context_line":"        self.physical_block_size \u003d None"},{"line_number":489,"context_line":"        self.readonly \u003d False"},{"line_number":490,"context_line":"        self.snapshot \u003d None"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"    def format_dom(self):"},{"line_number":493,"context_line":"        dev \u003d super(LibvirtConfigGuestDisk, self).format_dom()"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2FysI%3D","line":490,"in_reply_to":"AAAAUH%2F%2Fy4A%3D","updated":"2014-01-08 12:17:16.000000000","message":"Done","commit_id":"f27a6c49ca1341c9345e737916cb9c41fcd5c466"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"aa8addeb397602a8e10935b2bc6018d41413f640","unresolved":false,"context_lines":[{"line_number":414,"context_line":"            # provided the filesystem is cache coherent (cluster filesystems"},{"line_number":415,"context_line":"            # typically are, but things like NFS are not)."},{"line_number":416,"context_line":"            self._disk_cachemode \u003d \"none\""},{"line_number":417,"context_line":"            if not LibvirtDriver._supports_direct_io(CONF.instances_path):"},{"line_number":418,"context_line":"                self._disk_cachemode \u003d \"writethrough\""},{"line_number":419,"context_line":"        return self._disk_cachemode"},{"line_number":420,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Fy6k%3D","line":417,"updated":"2014-01-08 11:25:43.000000000","message":"So just because this is defined as a static method - we call it on a class object? Don\u0027t do this, there is no benefit and it\u0027s confusing, plus can break testing mocking etc ... just don\u0027t do it, or at least explain me the benefit of this.","commit_id":"f27a6c49ca1341c9345e737916cb9c41fcd5c466"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"aa8addeb397602a8e10935b2bc6018d41413f640","unresolved":false,"context_lines":[{"line_number":459,"context_line":"            return False"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    def has_min_version(self, lv_ver\u003dNone, hv_ver\u003dNone, hv_type\u003dNone):"},{"line_number":462,"context_line":"        return LibvirtDriver._has_min_version("},{"line_number":463,"context_line":"            self._conn, lv_ver, hv_ver, hv_type)"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"    def _native_thread(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Fy6g%3D","line":462,"updated":"2014-01-08 11:25:43.000000000","message":"Same here","commit_id":"f27a6c49ca1341c9345e737916cb9c41fcd5c466"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"aa8addeb397602a8e10935b2bc6018d41413f640","unresolved":false,"context_lines":[{"line_number":621,"context_line":""},{"line_number":622,"context_line":"    def _get_new_connection(self):"},{"line_number":623,"context_line":"        # call with _wrapped_conn_lock held"},{"line_number":624,"context_line":"        LOG.debug(_(\u0027Connecting to libvirt: %s\u0027), LibvirtDriver.uri())"},{"line_number":625,"context_line":"        wrapped_conn \u003d None"},{"line_number":626,"context_line":""},{"line_number":627,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Fy6Q%3D","line":624,"updated":"2014-01-08 11:25:43.000000000","message":"And here...","commit_id":"f27a6c49ca1341c9345e737916cb9c41fcd5c466"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"aa8addeb397602a8e10935b2bc6018d41413f640","unresolved":false,"context_lines":[{"line_number":626,"context_line":""},{"line_number":627,"context_line":"        try:"},{"line_number":628,"context_line":"            wrapped_conn \u003d self._connect("},{"line_number":629,"context_line":"                LibvirtDriver.uri(), self.read_only)"},{"line_number":630,"context_line":"        finally:"},{"line_number":631,"context_line":"            # Enabling the compute service, in case it was disabled"},{"line_number":632,"context_line":"            # since the connection was successful."}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Fy6U%3D","line":629,"updated":"2014-01-08 11:25:43.000000000","message":"And here...","commit_id":"f27a6c49ca1341c9345e737916cb9c41fcd5c466"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"aa8addeb397602a8e10935b2bc6018d41413f640","unresolved":false,"context_lines":[{"line_number":640,"context_line":"            wrapped_conn.domainEventRegisterAny("},{"line_number":641,"context_line":"                None,"},{"line_number":642,"context_line":"                libvirt.VIR_DOMAIN_EVENT_ID_LIFECYCLE,"},{"line_number":643,"context_line":"                LibvirtDriver._event_lifecycle_callback,"},{"line_number":644,"context_line":"                self)"},{"line_number":645,"context_line":"        except Exception as e:"},{"line_number":646,"context_line":"            LOG.warn(_(\"URI %(uri)s does not support events: %(error)s\"),"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Fy6M%3D","line":643,"updated":"2014-01-08 11:25:43.000000000","message":"You get the idea...","commit_id":"f27a6c49ca1341c9345e737916cb9c41fcd5c466"}],"nova/virt/libvirt/firewall.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"aa8addeb397602a8e10935b2bc6018d41413f640","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def _get_instance_filter_xml(self, instance, filters, vif):"},{"line_number":179,"context_line":"        nic_id \u003d vif[\u0027address\u0027].replace(\u0027:\u0027, \u0027\u0027)"},{"line_number":180,"context_line":"        instance_filter_name \u003d NWFilterFirewall._instance_filter_name("},{"line_number":181,"context_line":"            instance, nic_id)"},{"line_number":182,"context_line":"        parameters \u003d self._get_instance_filter_parameters(vif)"},{"line_number":183,"context_line":"        xml \u003d \u0027\u0027\u0027\u003cfilter name\u003d\u0027%s\u0027 chain\u003d\u0027root\u0027\u003e\u0027\u0027\u0027 % instance_filter_name"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Fy4w%3D","line":180,"updated":"2014-01-08 11:25:43.000000000","message":"As well as all others... don\u0027t.","commit_id":"f27a6c49ca1341c9345e737916cb9c41fcd5c466"}],"nova/virt/libvirt/imagebackend.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"aa8addeb397602a8e10935b2bc6018d41413f640","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        else:"},{"line_number":274,"context_line":"            if not os.path.exists(base):"},{"line_number":275,"context_line":"                prepare_template(target\u003dbase, max_size\u003dsize, *args, **kwargs)"},{"line_number":276,"context_line":"            Image.verify_base_size(base, size)"},{"line_number":277,"context_line":"            if not os.path.exists(self.path):"},{"line_number":278,"context_line":"                with fileutils.remove_path_on_error(self.path):"},{"line_number":279,"context_line":"                    copy_raw_image(base, self.path, size)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Fy5I%3D","line":276,"updated":"2014-01-08 11:25:43.000000000","message":"All of these are pointless too imho","commit_id":"f27a6c49ca1341c9345e737916cb9c41fcd5c466"}],"nova/virt/libvirt/volume.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"aa8addeb397602a8e10935b2bc6018d41413f640","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        \"\"\"Disconnect the volume.\"\"\""},{"line_number":166,"context_line":"        pass"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    @staticmethod"},{"line_number":169,"context_line":"    def get_hash_str(base_str):"},{"line_number":170,"context_line":"        \"\"\"returns string that represents hash of base_str (in hex format).\"\"\""},{"line_number":171,"context_line":"        return hashlib.md5(base_str).hexdigest()"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Fy5Y%3D","line":168,"updated":"2014-01-08 11:25:43.000000000","message":"why not make it a module level function, or even part of utils... or not make it a method/function at all?? \n\nit\u0027s literally one line - just call it everywhere.","commit_id":"f27a6c49ca1341c9345e737916cb9c41fcd5c466"}]}
