)]}'
{"watcher/decision_engine/model/collector/ironic.py":[{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"661d9727ed116b27e3f5d636afa2e7334f497132","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def __init__(self, config, osc\u003dNone):"},{"line_number":36,"context_line":"        super(BaremetalClusterDataModelCollector, self).__init__(config, osc)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    @property"},{"line_number":39,"context_line":"    def audit_scope_handler(self):"},{"line_number":40,"context_line":"        return None"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def execute(self):"},{"line_number":43,"context_line":"        \"\"\"Build the baremetal cluster data model\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"df87a7cf_fd27fec5","line":40,"range":{"start_line":38,"start_character":1,"end_line":40,"end_character":19},"updated":"2017-12-12 05:33:01.000000000","message":"now we need to implement get_audit_scope_handler.\nhttps://review.openstack.org/#/c/521408/2/watcher/decision_engine/model/collector/nova.py","commit_id":"e96141ad0392ecc92c3415eb0fcb01698f3e55b8"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"ad076e812f1fd0b30076cf9ffdd097eee7803178","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def __init__(self, config, osc\u003dNone):"},{"line_number":36,"context_line":"        super(BaremetalClusterDataModelCollector, self).__init__(config, osc)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    @property"},{"line_number":39,"context_line":"    def audit_scope_handler(self):"},{"line_number":40,"context_line":"        return None"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def execute(self):"},{"line_number":43,"context_line":"        \"\"\"Build the baremetal cluster data model\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"df87a7cf_c28e7b26","line":40,"range":{"start_line":38,"start_character":1,"end_line":40,"end_character":19},"in_reply_to":"df87a7cf_fd27fec5","updated":"2017-12-15 05:16:18.000000000","message":"Done","commit_id":"e96141ad0392ecc92c3415eb0fcb01698f3e55b8"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"661d9727ed116b27e3f5d636afa2e7334f497132","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        \"\"\"Build a Baremetal node from a Ironic node"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        :param node: A ironic node"},{"line_number":71,"context_line":"        :type node: :py:class:`~novaclient.v2.hypervisors.Hypervisor`"},{"line_number":72,"context_line":"        \"\"\""},{"line_number":73,"context_line":"        # build up the ironic node."},{"line_number":74,"context_line":"        node_attributes \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"df87a7cf_b8042416","line":71,"range":{"start_line":71,"start_character":30,"end_line":71,"end_character":69},"updated":"2017-12-12 05:33:01.000000000","message":"This is not true.","commit_id":"e96141ad0392ecc92c3415eb0fcb01698f3e55b8"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"ad076e812f1fd0b30076cf9ffdd097eee7803178","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        \"\"\"Build a Baremetal node from a Ironic node"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        :param node: A ironic node"},{"line_number":71,"context_line":"        :type node: :py:class:`~novaclient.v2.hypervisors.Hypervisor`"},{"line_number":72,"context_line":"        \"\"\""},{"line_number":73,"context_line":"        # build up the ironic node."},{"line_number":74,"context_line":"        node_attributes \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"df87a7cf_2272c74a","line":71,"range":{"start_line":71,"start_character":30,"end_line":71,"end_character":69},"in_reply_to":"df87a7cf_b8042416","updated":"2017-12-15 05:16:18.000000000","message":"Done","commit_id":"e96141ad0392ecc92c3415eb0fcb01698f3e55b8"}],"watcher/decision_engine/strategy/strategies/base.py":[{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"661d9727ed116b27e3f5d636afa2e7334f497132","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        :rtype model: :py:class:`~.ModelRoot` instance"},{"line_number":223,"context_line":"        \"\"\""},{"line_number":224,"context_line":"        if self._baremetal_model is None:"},{"line_number":225,"context_line":"            collector \u003d self.collector_manager.get_cluster_model_collector("},{"line_number":226,"context_line":"                \u0027baremetal\u0027, osc\u003dself.osc)"},{"line_number":227,"context_line":"            self._baremetal_model \u003d self.audit_scope_handler.get_scoped_model("},{"line_number":228,"context_line":"                collector.get_latest_cluster_data_model())"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        if not self._baremetal_model:"},{"line_number":231,"context_line":"            raise exception.ClusterStateNotDefined()"}],"source_content_type":"text/x-python","patch_set":4,"id":"df87a7cf_b8a0a4f5","line":228,"range":{"start_line":225,"start_character":12,"end_line":228,"end_character":58},"updated":"2017-12-12 05:33:01.000000000","message":"Fix as the following.\nhttps://review.openstack.org/#/c/521408/2/watcher/decision_engine/strategy/strategies/base.py","commit_id":"e96141ad0392ecc92c3415eb0fcb01698f3e55b8"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"ad076e812f1fd0b30076cf9ffdd097eee7803178","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        :rtype model: :py:class:`~.ModelRoot` instance"},{"line_number":223,"context_line":"        \"\"\""},{"line_number":224,"context_line":"        if self._baremetal_model is None:"},{"line_number":225,"context_line":"            collector \u003d self.collector_manager.get_cluster_model_collector("},{"line_number":226,"context_line":"                \u0027baremetal\u0027, osc\u003dself.osc)"},{"line_number":227,"context_line":"            self._baremetal_model \u003d self.audit_scope_handler.get_scoped_model("},{"line_number":228,"context_line":"                collector.get_latest_cluster_data_model())"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        if not self._baremetal_model:"},{"line_number":231,"context_line":"            raise exception.ClusterStateNotDefined()"}],"source_content_type":"text/x-python","patch_set":4,"id":"df87a7cf_787de06c","line":228,"range":{"start_line":225,"start_character":12,"end_line":228,"end_character":58},"in_reply_to":"df87a7cf_b8a0a4f5","updated":"2017-12-15 05:16:18.000000000","message":"Done","commit_id":"e96141ad0392ecc92c3415eb0fcb01698f3e55b8"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"9ec1a952578c1ebfe92e9efabe7d87607b17c751","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        \"\"\""},{"line_number":225,"context_line":"        if self._baremetal_model is None:"},{"line_number":226,"context_line":"            collector \u003d self.collector_manager.get_cluster_model_collector("},{"line_number":227,"context_line":"                \u0027baremetal\u0027, osc\u003dself.osc)"},{"line_number":228,"context_line":"            audit_scope_handler \u003d collector.get_audit_scope_handler("},{"line_number":229,"context_line":"                audit_scope\u003dself.audit_scope)"},{"line_number":230,"context_line":"            self._baremetal_model \u003d audit_scope_handler.get_scoped_model("}],"source_content_type":"text/x-python","patch_set":5,"id":"bf8cb3f7_f3c10fe6","line":227,"range":{"start_line":227,"start_character":17,"end_line":227,"end_character":26},"updated":"2017-12-25 14:16:29.000000000","message":"where have you defined this collector? Shouldn\u0027t it be defined in watcher_cluster_data_model_collectors namespace in setup.cfg?","commit_id":"f02e76fccf650a974c02053a2afaaaed77322a23"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"8ee9f2a696ad274b5f97c21810dcec916bab9e8b","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        \"\"\""},{"line_number":225,"context_line":"        if self._baremetal_model is None:"},{"line_number":226,"context_line":"            collector \u003d self.collector_manager.get_cluster_model_collector("},{"line_number":227,"context_line":"                \u0027baremetal\u0027, osc\u003dself.osc)"},{"line_number":228,"context_line":"            audit_scope_handler \u003d collector.get_audit_scope_handler("},{"line_number":229,"context_line":"                audit_scope\u003dself.audit_scope)"},{"line_number":230,"context_line":"            self._baremetal_model \u003d audit_scope_handler.get_scoped_model("}],"source_content_type":"text/x-python","patch_set":5,"id":"bf8cb3f7_13e26c02","line":227,"range":{"start_line":227,"start_character":17,"end_line":227,"end_character":26},"in_reply_to":"bf8cb3f7_f3c10fe6","updated":"2017-12-26 09:06:57.000000000","message":"Done","commit_id":"f02e76fccf650a974c02053a2afaaaed77322a23"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"985aaf3254d88c51201b13dc2c299cc900d1e0c5","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        if self._baremetal_model is None:"},{"line_number":231,"context_line":"            collector \u003d self.collector_manager.get_cluster_model_collector("},{"line_number":232,"context_line":"                \u0027baremetal\u0027, osc\u003dself.osc)"},{"line_number":233,"context_line":"            audit_scope_handler \u003d collector.get_audit_scope_handler("},{"line_number":234,"context_line":"                audit_scope\u003dself.audit_scope)"},{"line_number":235,"context_line":"            self._baremetal_model \u003d audit_scope_handler.get_scoped_model("},{"line_number":236,"context_line":"                collector.get_latest_cluster_data_model())"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf8cb3f7_d3ee44b3","line":233,"range":{"start_line":233,"start_character":44,"end_line":233,"end_character":67},"updated":"2017-12-26 09:29:39.000000000","message":"This method will return None in your current implementation.\nI\u0027d propose to implement CinderScope as it\u0027s done here: https://github.com/openstack/watcher/blob/master/watcher/decision_engine/scope/storage.py\nAnd fill it with logic later, in another blueprint.","commit_id":"f2274f859a5a59f609cd1ada1facefa029611b79"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"e3bcf12960652fe5b5d3747f9afb312377cdf4bd","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        if self._baremetal_model is None:"},{"line_number":231,"context_line":"            collector \u003d self.collector_manager.get_cluster_model_collector("},{"line_number":232,"context_line":"                \u0027baremetal\u0027, osc\u003dself.osc)"},{"line_number":233,"context_line":"            audit_scope_handler \u003d collector.get_audit_scope_handler("},{"line_number":234,"context_line":"                audit_scope\u003dself.audit_scope)"},{"line_number":235,"context_line":"            self._baremetal_model \u003d audit_scope_handler.get_scoped_model("},{"line_number":236,"context_line":"                collector.get_latest_cluster_data_model())"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_06163756","line":233,"range":{"start_line":233,"start_character":44,"end_line":233,"end_character":67},"in_reply_to":"9f91af0f_f3a9938f","updated":"2018-01-10 06:57:36.000000000","message":"Done","commit_id":"f2274f859a5a59f609cd1ada1facefa029611b79"},{"author":{"_account_id":19457,"name":"aditi sharma","email":"adi.sky17@gmail.com","username":"aditi"},"change_message_id":"409106d820f7772ef1d11d289f1977a6b2c38a56","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        if self._baremetal_model is None:"},{"line_number":231,"context_line":"            collector \u003d self.collector_manager.get_cluster_model_collector("},{"line_number":232,"context_line":"                \u0027baremetal\u0027, osc\u003dself.osc)"},{"line_number":233,"context_line":"            audit_scope_handler \u003d collector.get_audit_scope_handler("},{"line_number":234,"context_line":"                audit_scope\u003dself.audit_scope)"},{"line_number":235,"context_line":"            self._baremetal_model \u003d audit_scope_handler.get_scoped_model("},{"line_number":236,"context_line":"                collector.get_latest_cluster_data_model())"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_f3a9938f","line":233,"range":{"start_line":233,"start_character":44,"end_line":233,"end_character":67},"in_reply_to":"bf8cb3f7_d3ee44b3","updated":"2018-01-10 05:25:18.000000000","message":"+1, Implement BaremetalScope or IronicScope, just basic structure","commit_id":"f2274f859a5a59f609cd1ada1facefa029611b79"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"e3bcf12960652fe5b5d3747f9afb312377cdf4bd","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        if self._baremetal_model is None:"},{"line_number":231,"context_line":"            collector \u003d self.collector_manager.get_cluster_model_collector("},{"line_number":232,"context_line":"                \u0027baremetal\u0027, osc\u003dself.osc)"},{"line_number":233,"context_line":"            audit_scope_handler \u003d collector.get_audit_scope_handler("},{"line_number":234,"context_line":"                audit_scope\u003dself.audit_scope)"},{"line_number":235,"context_line":"            self._baremetal_model \u003d audit_scope_handler.get_scoped_model("},{"line_number":236,"context_line":"                collector.get_latest_cluster_data_model())"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_e6123362","line":233,"range":{"start_line":233,"start_character":44,"end_line":233,"end_character":67},"in_reply_to":"bf8cb3f7_d3ee44b3","updated":"2018-01-10 06:57:36.000000000","message":"Done","commit_id":"f2274f859a5a59f609cd1ada1facefa029611b79"}]}
