)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"dc5e210c5c0b14998869f2edee49f7ce5264ba4b","unresolved":false,"context_lines":[{"line_number":11,"context_line":"This change also adds a \"image_cache_manager\" property to the vmware"},{"line_number":12,"context_line":"driver so that we homgoenize the way of getting the manager for all the"},{"line_number":13,"context_line":"drivers."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ie2942af00076dfd4c4cb72fea3de69ac07d337ba"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"dac4157f_d8e0f6fc","line":14,"updated":"2015-04-21 16:29:17.000000000","message":"I think it should be in your bp\u0027s scope?","commit_id":"bfb3632ac549de6265cd108e57ecdc538a6fa482"}],"nova/compute/monitors/virt/cache_monitor.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"df7eaa1b6a7adc57008f56d4188fd3f13fec00fc","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        # FIXME(aloga): This has to be homogenized in all the drivers"},{"line_number":46,"context_line":"        self.image_cache \u003d getattr(self.driver, \"image_cache_manager\", None)"},{"line_number":47,"context_line":"        if not self.image_cache:"},{"line_number":48,"context_line":"            LOG.warning(_LW(\"Compute driver does not support cache.\"))"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @monitors.ResourceMonitorBase.add_timestamp"},{"line_number":51,"context_line":"    def _get_cached_images_sha1(self, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_ff2e02f9","line":48,"updated":"2015-04-14 22:41:12.000000000","message":"I would rather log an INFO IMHO","commit_id":"4453305860ff188319618b141c3474f2f19a054a"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"020db97510250d9556913e76696a1614c88d64e1","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        # FIXME(aloga): This has to be homogenized in all the drivers"},{"line_number":46,"context_line":"        self.image_cache \u003d getattr(self.driver, \"image_cache_manager\", None)"},{"line_number":47,"context_line":"        if not self.image_cache:"},{"line_number":48,"context_line":"            LOG.warning(_LW(\"Compute driver does not support cache.\"))"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @monitors.ResourceMonitorBase.add_timestamp"},{"line_number":51,"context_line":"    def _get_cached_images_sha1(self, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_2b719ea8","line":48,"in_reply_to":"7aaa499b_ff2e02f9","updated":"2015-04-15 16:00:15.000000000","message":"Done","commit_id":"4453305860ff188319618b141c3474f2f19a054a"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"df7eaa1b6a7adc57008f56d4188fd3f13fec00fc","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        if self._data.get(\"timestamp\") is not None:"},{"line_number":58,"context_line":"            delta \u003d now - self._data.get(\"timestamp\")"},{"line_number":59,"context_line":"            if delta.seconds \u003c\u003d 60:"},{"line_number":60,"context_line":"                return"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        if not self.image_cache:"},{"line_number":63,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_bf863ad9","line":60,"updated":"2015-04-14 22:41:12.000000000","message":"I would rather propose to modify the monitors base class to provide a field saying how long it should be updating the resources","commit_id":"4453305860ff188319618b141c3474f2f19a054a"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"020db97510250d9556913e76696a1614c88d64e1","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        if self._data.get(\"timestamp\") is not None:"},{"line_number":58,"context_line":"            delta \u003d now - self._data.get(\"timestamp\")"},{"line_number":59,"context_line":"            if delta.seconds \u003c\u003d 60:"},{"line_number":60,"context_line":"                return"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        if not self.image_cache:"},{"line_number":63,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_6ba206ff","line":60,"in_reply_to":"7aaa499b_bf863ad9","updated":"2015-04-15 16:00:15.000000000","message":"Yes, I do agree.","commit_id":"4453305860ff188319618b141c3474f2f19a054a"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"44e463959c8770520d815040823bf237b8b42f61","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.update_delta \u003d 60"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        # FIXME(aloga): This has to be homogenized in all the drivers"},{"line_number":46,"context_line":"        self.image_cache \u003d getattr(self.driver, \"image_cache_manager\", None)"},{"line_number":47,"context_line":"        if not self.image_cache:"},{"line_number":48,"context_line":"            LOG.info(_LI(\"Compute driver does not support cache.\"))"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"dac4157f_093f75b5","line":46,"updated":"2015-04-20 15:32:19.000000000","message":"this is not good I think\n\ne.g vmware use _imagecache as name\ncapabilities is right thing to check\n\n385     capabilities \u003d {\n 386         \"has_imagecache\": True,\n 387         \"supports_recreate\": True,\n 388         }","commit_id":"76259b26d46a81f99896ba3f76803b510b54dd3a"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"2507d64acb169df49392abbd356c49d84fdc4148","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.update_delta \u003d 60"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        # FIXME(aloga): This has to be homogenized in all the drivers"},{"line_number":46,"context_line":"        self.image_cache \u003d getattr(self.driver, \"image_cache_manager\", None)"},{"line_number":47,"context_line":"        if not self.image_cache:"},{"line_number":48,"context_line":"            LOG.info(_LI(\"Compute driver does not support cache.\"))"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"dac4157f_8430f002","line":46,"in_reply_to":"dac4157f_093f75b5","updated":"2015-04-21 08:15:04.000000000","message":"Done","commit_id":"76259b26d46a81f99896ba3f76803b510b54dd3a"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"44e463959c8770520d815040823bf237b8b42f61","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        if not self.image_cache:"},{"line_number":58,"context_line":"            return"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        basedir \u003d self.image_cache._get_base()"},{"line_number":61,"context_line":"        self.image_cache._reset_state()"},{"line_number":62,"context_line":"        aux \u003d self.image_cache._list_base_images(basedir)"}],"source_content_type":"text/x-python","patch_set":3,"id":"dac4157f_7e1d8972","line":59,"updated":"2015-04-20 15:32:19.000000000","message":"if we don\u0027t have image_cache, why we need reset data?","commit_id":"76259b26d46a81f99896ba3f76803b510b54dd3a"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"2507d64acb169df49392abbd356c49d84fdc4148","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        if not self.image_cache:"},{"line_number":58,"context_line":"            return"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        basedir \u003d self.image_cache._get_base()"},{"line_number":61,"context_line":"        self.image_cache._reset_state()"},{"line_number":62,"context_line":"        aux \u003d self.image_cache._list_base_images(basedir)"}],"source_content_type":"text/x-python","patch_set":3,"id":"dac4157f_642b9c95","line":59,"in_reply_to":"dac4157f_7e1d8972","updated":"2015-04-21 08:15:04.000000000","message":"Done","commit_id":"76259b26d46a81f99896ba3f76803b510b54dd3a"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"dc5e210c5c0b14998869f2edee49f7ce5264ba4b","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            # NOTE(aloga): this won\u0027t work for vmware, since int does not have"},{"line_number":47,"context_line":"            # that attribute."},{"line_number":48,"context_line":"            self.image_cache \u003d getattr(self.driver,"},{"line_number":49,"context_line":"                                       \"image_cache_manager\", None)"},{"line_number":50,"context_line":"        else:"},{"line_number":51,"context_line":"            self.image_cache \u003d None"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dac4157f_585186d7","line":49,"updated":"2015-04-21 16:29:17.000000000","message":"Only a question:\nI am not a VMWare guy, but I think it\u0027s worthy to let those kind of common code utlize virt layer if they already have it \nis it only because their name is not image_cache_manager or more ?","commit_id":"bfb3632ac549de6265cd108e57ecdc538a6fa482"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c616747e16a96dd1c6a17d60bd73d405364081ac","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.update_delta \u003d 60"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        if self.driver.capabilities.get(\"has_imagecache\", False):"},{"line_number":46,"context_line":"            # NOTE(aloga): this won\u0027t work for vmware, since int does not have"},{"line_number":47,"context_line":"            # that attribute."},{"line_number":48,"context_line":"            self.image_cache \u003d getattr(self.driver,"},{"line_number":49,"context_line":"                                       \"image_cache_manager\", None)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_ae0d9b3f","line":46,"updated":"2015-05-29 12:36:40.000000000","message":"So you have added this attribute by that change. this note can be removed","commit_id":"7380727bc5a729a129e9bce6d1de6642fe7c10f0"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"4ca3012280c3e971a6e4161eb95f8628e6d585e6","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        if self.driver.capabilities.get(\"has_imagecache\", False):"},{"line_number":47,"context_line":"            self.image_cache \u003d getattr(self.driver,"},{"line_number":48,"context_line":"                                       \"image_cache_manager\", None)"},{"line_number":49,"context_line":"        else:"},{"line_number":50,"context_line":"            self.image_cache \u003d None"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"1a4dcd0f_6c3fb9d6","line":48,"updated":"2015-08-05 09:22:04.000000000","message":"This is accessing private fields of the driver, so is not acceptable. We need to have a formal API defined if you want access to this.","commit_id":"926a66830761f27490c78187ddc0e315e8668685"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"b3c469b2912eb68b661160ccc1d55e3f17ad51b3","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        if self.driver.capabilities.get(\"has_imagecache\", False):"},{"line_number":47,"context_line":"            self.image_cache \u003d getattr(self.driver,"},{"line_number":48,"context_line":"                                       \"image_cache_manager\", None)"},{"line_number":49,"context_line":"        else:"},{"line_number":50,"context_line":"            self.image_cache \u003d None"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"1a4dcd0f_6cd3fe04","line":48,"in_reply_to":"1a4dcd0f_6c3fb9d6","updated":"2015-08-06 08:54:27.000000000","message":"Done","commit_id":"926a66830761f27490c78187ddc0e315e8668685"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"0ebec7e7abf2f32d2e935a57993962e786235e05","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        self._data \u003d {}"},{"line_number":74,"context_line":"        self._data[\"timestamp\"] \u003d now"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        basedir \u003d self.image_cache._get_base()"},{"line_number":77,"context_line":"        self.image_cache._reset_state()"},{"line_number":78,"context_line":"        aux \u003d self.image_cache._list_base_images(basedir)"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1a4dcd0f_0497ae3a","line":76,"updated":"2015-08-06 10:36:16.000000000","message":"This is a private method of the image cache impl.","commit_id":"559ed74bcafa13b49a35b133e685d73dc872d1e6"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"0ebec7e7abf2f32d2e935a57993962e786235e05","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self._data[\"timestamp\"] \u003d now"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        basedir \u003d self.image_cache._get_base()"},{"line_number":77,"context_line":"        self.image_cache._reset_state()"},{"line_number":78,"context_line":"        aux \u003d self.image_cache._list_base_images(basedir)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        images_hash \u003d [os.path.basename(i) for i in aux.get(\"originals\")]"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a4dcd0f_e4a2c298","line":77,"updated":"2015-08-06 10:36:16.000000000","message":"This is a private method, only implemented by the libvirt impl of the image cache.","commit_id":"559ed74bcafa13b49a35b133e685d73dc872d1e6"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"0ebec7e7abf2f32d2e935a57993962e786235e05","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        basedir \u003d self.image_cache._get_base()"},{"line_number":77,"context_line":"        self.image_cache._reset_state()"},{"line_number":78,"context_line":"        aux \u003d self.image_cache._list_base_images(basedir)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        images_hash \u003d [os.path.basename(i) for i in aux.get(\"originals\")]"},{"line_number":81,"context_line":"        self._data[\"cached.images.sha1\"] \u003d images_hash"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a4dcd0f_a4a83a78","line":78,"updated":"2015-08-06 10:36:16.000000000","message":"This is a private method of the image cache impl.","commit_id":"559ed74bcafa13b49a35b133e685d73dc872d1e6"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"0ebec7e7abf2f32d2e935a57993962e786235e05","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        basedir \u003d self.image_cache._get_base()"},{"line_number":77,"context_line":"        self.image_cache._reset_state()"},{"line_number":78,"context_line":"        aux \u003d self.image_cache._list_base_images(basedir)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        images_hash \u003d [os.path.basename(i) for i in aux.get(\"originals\")]"},{"line_number":81,"context_line":"        self._data[\"cached.images.sha1\"] \u003d images_hash"},{"line_number":82,"context_line":"        LOG.debug(\"Got following SHA1s of cached images: %s\" % images_hash)"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a4dcd0f_04332e63","line":79,"updated":"2015-08-06 10:36:16.000000000","message":"Based on this usage, I\u0027m really strongly against this class touching the image cache object at all. It is poking about in private impl details which is just plain wrong.\n\nIMHO, if we want this metric monitor, then we should define a public method on the nova/virt/driver.py that returns the actual data needed by this monitor, and keep the image cache objects hidden inside the virt driver.","commit_id":"559ed74bcafa13b49a35b133e685d73dc872d1e6"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"a8fb70784587d0a674962f20bc4b88221ee7c0f6","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        basedir \u003d self.image_cache._get_base()"},{"line_number":77,"context_line":"        self.image_cache._reset_state()"},{"line_number":78,"context_line":"        aux \u003d self.image_cache._list_base_images(basedir)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        images_hash \u003d [os.path.basename(i) for i in aux.get(\"originals\")]"},{"line_number":81,"context_line":"        self._data[\"cached.images.sha1\"] \u003d images_hash"},{"line_number":82,"context_line":"        LOG.debug(\"Got following SHA1s of cached images: %s\" % images_hash)"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a4dcd0f_0a2330a8","line":79,"in_reply_to":"1a4dcd0f_04332e63","updated":"2015-08-06 12:43:17.000000000","message":"You\u0027re totally right. I\u0027ve refactored the patches in this series, hope it looks better now.","commit_id":"559ed74bcafa13b49a35b133e685d73dc872d1e6"}],"nova/virt/vmwareapi/vmops.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c616747e16a96dd1c6a17d60bd73d405364081ac","unresolved":false,"context_lines":[{"line_number":165,"context_line":"                                                        self._base_folder)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    @property"},{"line_number":168,"context_line":"    def image_cache_manager(self):"},{"line_number":169,"context_line":"        return self._imagecache"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def _get_base_folder(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_8911b954","line":168,"updated":"2015-05-29 12:36:40.000000000","message":"This can be done on a separate commit.","commit_id":"7380727bc5a729a129e9bce6d1de6642fe7c10f0"}]}
