)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c4530f5cb28df262abc88cd4b2192c3e98f0c87c","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This new weigher makes possible to prioritise nodes that have the"},{"line_number":10,"context_line":"request\u0027s image cached, decreasing the deployment time."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I46f9d2934a5e929003fafcb69bd44312d7672cf5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"dac4157f_9ddee73d","line":11,"updated":"2015-04-21 19:50:16.000000000","message":"you need to address your bp here \nI think the bp is approved?","commit_id":"bb7701b819763406096c4cb0081f6845fcb9b1b3"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"e6ef48a3f6bc45936bd924ea369f9e5a2ab482fa","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This new weigher makes possible to prioritise nodes that have the"},{"line_number":10,"context_line":"request\u0027s image cached, decreasing the deployment time."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I46f9d2934a5e929003fafcb69bd44312d7672cf5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"dac4157f_037edb18","line":11,"in_reply_to":"dac4157f_9ddee73d","updated":"2015-04-22 12:33:15.000000000","message":"This was adressed as a BP, but there was no need for a bp, according to sbauza\u0027s comments.","commit_id":"bb7701b819763406096c4cb0081f6845fcb9b1b3"}],"doc/source/devref/filter_scheduler.rst":[{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"4e1d0d54b4b3233e9ead41f17c8376eb1ac0513c","unresolved":false,"context_lines":[{"line_number":415,"context_line":".. |RAMWeigher| replace:: :class:`RAMWeigher \u003cnova.scheduler.weights.ram.RAMWeigher\u003e`"},{"line_number":416,"context_line":".. |AggregateImagePropertiesIsolation| replace:: :class:`AggregateImagePropertiesIsolation \u003cnova.scheduler.filters.aggregate_image_properties_isolation.AggregateImagePropertiesIsolation\u003e`"},{"line_number":417,"context_line":".. |MetricsFilter| replace:: :class:`MetricsFilter \u003cnova.scheduler.filters.metrics_filter.MetricsFilter\u003e`"},{"line_number":418,"context_line":".. |MetricsWeigher| replace:: :class:`MetricsWeigher \u003cnova.scheduler.weights.metrics.MetricsWeigher\u003e`"},{"line_number":419,"context_line":".. |IoOpsWeigher| replace:: :class:`IoOpsWeigher \u003cnova.scheduler.weights.io_ops.IoOpsWeigher\u003e`"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5afe65bd_e0dc17e6","line":418,"updated":"2015-06-03 07:55:38.000000000","message":"you should add \u0027ImageCacheWeigher\u0027 link at here so that the url can link to the class.","commit_id":"fa4324c7c78a28e34dbeadfeba345012f56f507c"}],"nova/scheduler/weights/image_cache.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f05100ef022b270e746b040f6611ff9461fa8ebe","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        # The image cache reports the sha1 hash of the UUID of the"},{"line_number":47,"context_line":"        # cached images"},{"line_number":48,"context_line":"        cached_metric \u003d host_state.metrics.get(\u0027cached.images.sha1\u0027)"},{"line_number":49,"context_line":"        if cached_metric is not None:"},{"line_number":50,"context_line":"            cached_sha1 \u003d cached_metric.value"},{"line_number":51,"context_line":"            image_id \u003d weight_properties[\u0027request_spec\u0027][\u0027image\u0027][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_3037e9e4","line":48,"updated":"2015-04-14 22:42:34.000000000","message":"I wonder if we should maybe log a warning saying that the compute node should use the related monitor...","commit_id":"550de47d7bee70dade7ff6e7ccfb2180be63c50f"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"3577381438c67340d8d95e5d83cd63755856d7a1","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from nova.scheduler import weights"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"ram_weight_opts \u003d ["},{"line_number":26,"context_line":"        cfg.FloatOpt(\u0027cache_weight_multiplier\u0027,"},{"line_number":27,"context_line":"                     default\u003d1.0,"},{"line_number":28,"context_line":"                     help\u003d\u0027Multiplier used for weighing cached images.\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"dac4157f_7e3109a2","line":25,"updated":"2015-04-20 15:20:02.000000000","message":"typo, ram -\u003e cache","commit_id":"1f0c9ee1fad366b7eac626f310055447df8053eb"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"3036e14b5c81eacde4096e44266ebcbb716276bb","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from nova.scheduler import weights"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"ram_weight_opts \u003d ["},{"line_number":26,"context_line":"        cfg.FloatOpt(\u0027cache_weight_multiplier\u0027,"},{"line_number":27,"context_line":"                     default\u003d1.0,"},{"line_number":28,"context_line":"                     help\u003d\u0027Multiplier used for weighing cached images.\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"dac4157f_e13e7ed9","line":25,"in_reply_to":"dac4157f_7e3109a2","updated":"2015-04-21 07:42:28.000000000","message":"Yes good catch.","commit_id":"1f0c9ee1fad366b7eac626f310055447df8053eb"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"eea3989f87af4bc62139dc80777e19c5afc778bb","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from nova.scheduler import weights"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"ram_weight_opts \u003d ["},{"line_number":26,"context_line":"        cfg.FloatOpt(\u0027cache_weight_multiplier\u0027,"},{"line_number":27,"context_line":"                     default\u003d1.0,"},{"line_number":28,"context_line":"                     help\u003d\u0027Multiplier used for weighing cached images.\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"dac4157f_a4e3f404","line":25,"in_reply_to":"dac4157f_e13e7ed9","updated":"2015-04-21 08:15:17.000000000","message":"Done :)","commit_id":"1f0c9ee1fad366b7eac626f310055447df8053eb"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"3036e14b5c81eacde4096e44266ebcbb716276bb","unresolved":false,"context_lines":[{"line_number":29,"context_line":"]"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"CONF \u003d cfg.CONF"},{"line_number":32,"context_line":"CONF.register_opts(ram_weight_opts)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class ImageCacheWeigher(weights.BaseHostWeigher):"}],"source_content_type":"text/x-python","patch_set":3,"id":"dac4157f_a121a6b6","line":32,"updated":"2015-04-21 07:42:28.000000000","message":"here too","commit_id":"1f0c9ee1fad366b7eac626f310055447df8053eb"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"eea3989f87af4bc62139dc80777e19c5afc778bb","unresolved":false,"context_lines":[{"line_number":29,"context_line":"]"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"CONF \u003d cfg.CONF"},{"line_number":32,"context_line":"CONF.register_opts(ram_weight_opts)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class ImageCacheWeigher(weights.BaseHostWeigher):"}],"source_content_type":"text/x-python","patch_set":3,"id":"dac4157f_a478942c","line":32,"in_reply_to":"dac4157f_a121a6b6","updated":"2015-04-21 08:15:17.000000000","message":"Done","commit_id":"1f0c9ee1fad366b7eac626f310055447df8053eb"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c4530f5cb28df262abc88cd4b2192c3e98f0c87c","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        cached_metric \u003d host_state.metrics.get(\u0027cached.images.sha1\u0027)"},{"line_number":49,"context_line":"        if cached_metric is not None:"},{"line_number":50,"context_line":"            cached_sha1 \u003d cached_metric.value"},{"line_number":51,"context_line":"            image_id \u003d weight_properties[\u0027request_spec\u0027][\u0027image\u0027][\u0027id\u0027]"},{"line_number":52,"context_line":"            image_sha1 \u003d hashlib.sha1(image_id).hexdigest()"},{"line_number":53,"context_line":"            if image_sha1 in cached_sha1:"},{"line_number":54,"context_line":"                return self.maxval"}],"source_content_type":"text/x-python","patch_set":6,"id":"dac4157f_ddd45f21","line":51,"updated":"2015-04-21 19:50:16.000000000","message":"how about a boot from volume case? \n\nbuild_request_spec function may return {}?\n\nnova/scheduler/utils.py\n\n73             \u0027image\u0027: image or {},","commit_id":"bb7701b819763406096c4cb0081f6845fcb9b1b3"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"e6ef48a3f6bc45936bd924ea369f9e5a2ab482fa","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        cached_metric \u003d host_state.metrics.get(\u0027cached.images.sha1\u0027)"},{"line_number":49,"context_line":"        if cached_metric is not None:"},{"line_number":50,"context_line":"            cached_sha1 \u003d cached_metric.value"},{"line_number":51,"context_line":"            image_id \u003d weight_properties[\u0027request_spec\u0027][\u0027image\u0027][\u0027id\u0027]"},{"line_number":52,"context_line":"            image_sha1 \u003d hashlib.sha1(image_id).hexdigest()"},{"line_number":53,"context_line":"            if image_sha1 in cached_sha1:"},{"line_number":54,"context_line":"                return self.maxval"}],"source_content_type":"text/x-python","patch_set":6,"id":"dac4157f_e391a753","line":51,"in_reply_to":"dac4157f_ddd45f21","updated":"2015-04-22 12:33:15.000000000","message":"Nice catch. I will update it.","commit_id":"bb7701b819763406096c4cb0081f6845fcb9b1b3"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"87781fec9cb4aa97a9a08ca674d3e30fdb5ddbc0","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            return self.minval"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        image_id \u003d request_spec.image.id"},{"line_number":46,"context_line":"        image_sha1 \u003d hashlib.sha1(image_id).hexdigest()"},{"line_number":47,"context_line":"        if image_sha1 in cached_sha1:"},{"line_number":48,"context_line":"            return self.maxval"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"7af24918_4cb5d2cb","line":46,"updated":"2016-03-01 16:52:28.000000000","message":"This hashing is an implementation detail of the image cache manager. It should not be replicated here.","commit_id":"5bd3a56df317c73db5fe9a7eaff929e7fd05cf58"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"87781fec9cb4aa97a9a08ca674d3e30fdb5ddbc0","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        image_id \u003d request_spec.image.id"},{"line_number":46,"context_line":"        image_sha1 \u003d hashlib.sha1(image_id).hexdigest()"},{"line_number":47,"context_line":"        if image_sha1 in cached_sha1:"},{"line_number":48,"context_line":"            return self.maxval"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        return self.minval"}],"source_content_type":"text/x-python","patch_set":24,"id":"7af24918_2c04c67c","line":47,"updated":"2016-03-01 16:52:28.000000000","message":"This is potentially very big.","commit_id":"5bd3a56df317c73db5fe9a7eaff929e7fd05cf58"}],"nova/tests/unit/scheduler/weights/test_weights_cache.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"6ff6c8c1e327ecc0d7d42f9a1ab52f24ab46d68c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    def test_image_cached_in_several_nodes(self):"},{"line_number":73,"context_line":"        hostinfo_list \u003d self._get_all_hosts()"},{"line_number":74,"context_line":"        weighed_hosts \u003d self._get_weighed_hosts(hostinfo_list, \"image 4\")"},{"line_number":75,"context_line":"        for eh in (\"h2\", \"h3\"):"},{"line_number":76,"context_line":"            weighed_host \u003d weighed_hosts.pop(0)"},{"line_number":77,"context_line":"            self.assertEqual(1.0, weighed_host.weight)"},{"line_number":78,"context_line":"            self.assertEqual(eh, weighed_host.obj.host)"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a7e1126_977358b1","line":75,"updated":"2015-12-17 12:04:11.000000000","message":"Should I already know what an \"eh\" is? Seems like this could be more meaningful, despite being used nearby.","commit_id":"127be1389f2e333cdfecc8a44306ad9e556ccbc4"}]}
