)]}'
{"watcher/api/controllers/v1/audit.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"c45e87eaee4da71111b64ba72fa91b9d1b109876","unresolved":false,"context_lines":[{"line_number":303,"context_line":"                                       \u0027state\u0027, \u0027goal_uuid\u0027, \u0027interval\u0027,"},{"line_number":304,"context_line":"                                       \u0027strategy_uuid\u0027, \u0027host_aggregate\u0027,"},{"line_number":305,"context_line":"                                       \u0027goal_name\u0027, \u0027strategy_name\u0027,"},{"line_number":306,"context_line":"                                       \u0027audit_template_id\u0027])"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"        audit.links \u003d [link.Link.make_link(\u0027self\u0027, url,"},{"line_number":309,"context_line":"                                           \u0027audits\u0027, audit.uuid),"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_f2ed668c","line":306,"range":{"start_line":306,"start_character":40,"end_line":306,"end_character":57},"updated":"2016-08-26 16:21:43.000000000","message":"this field does not exist anymore in audit so you can remove this","commit_id":"62cc5085807fecf84b9cc00bb8b5033a2eb1fa67"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"63aad4b71c498be6092c68708a9c956aefa43b22","unresolved":false,"context_lines":[{"line_number":303,"context_line":"                                       \u0027state\u0027, \u0027goal_uuid\u0027, \u0027interval\u0027,"},{"line_number":304,"context_line":"                                       \u0027strategy_uuid\u0027, \u0027host_aggregate\u0027,"},{"line_number":305,"context_line":"                                       \u0027goal_name\u0027, \u0027strategy_name\u0027,"},{"line_number":306,"context_line":"                                       \u0027audit_template_id\u0027])"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"        audit.links \u003d [link.Link.make_link(\u0027self\u0027, url,"},{"line_number":309,"context_line":"                                           \u0027audits\u0027, audit.uuid),"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_1ebb730f","line":306,"range":{"start_line":306,"start_character":40,"end_line":306,"end_character":57},"in_reply_to":"fa7ab95a_f2ed668c","updated":"2016-08-31 17:16:25.000000000","message":"Done","commit_id":"62cc5085807fecf84b9cc00bb8b5033a2eb1fa67"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"e268bb977d480841d7be6481b09d1693fb051995","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                               default\u003d{})"},{"line_number":72,"context_line":"    interval \u003d wsme.wsattr(int, mandatory\u003dFalse)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    host_aggregate \u003d wsme.wsattr(wtypes.IntegerType(minimum\u003d1),"},{"line_number":75,"context_line":"                                 mandatory\u003dFalse)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def as_audit(self, context):"},{"line_number":78,"context_line":"        audit_type_values \u003d [val.value for val in objects.audit.AuditType]"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_ed3df52b","line":75,"range":{"start_line":74,"start_character":0,"end_line":75,"end_character":49},"updated":"2016-10-03 07:43:34.000000000","message":"I think that the \u0027scope\u0027 parameter replaces the \u0027host_aggregate\u0027 parameter.","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"436ba585ed686fe5191afc8472597edbd56bcc3e","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                               default\u003d{})"},{"line_number":72,"context_line":"    interval \u003d wsme.wsattr(int, mandatory\u003dFalse)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    host_aggregate \u003d wsme.wsattr(wtypes.IntegerType(minimum\u003d1),"},{"line_number":75,"context_line":"                                 mandatory\u003dFalse)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def as_audit(self, context):"},{"line_number":78,"context_line":"        audit_type_values \u003d [val.value for val in objects.audit.AuditType]"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_d87ab5bc","line":75,"range":{"start_line":74,"start_character":0,"end_line":75,"end_character":49},"in_reply_to":"3a98d1f4_ed3df52b","updated":"2016-10-03 09:55:47.000000000","message":"Done","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"}],"watcher/api/controllers/v1/audit_template.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"e268bb977d480841d7be6481b09d1693fb051995","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    deadline \u003d wsme.wsattr(datetime.datetime, mandatory\u003dFalse)"},{"line_number":83,"context_line":"    \"\"\"deadline of the audit template\"\"\""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    host_aggregate \u003d wsme.wsattr(wtypes.IntegerType(minimum\u003d1),"},{"line_number":86,"context_line":"                                 mandatory\u003dFalse)"},{"line_number":87,"context_line":"    \"\"\"ID of the Nova host aggregate targeted by the audit template\"\"\""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    extra \u003d wtypes.wsattr({wtypes.text: types.jsontype}, mandatory\u003dFalse)"},{"line_number":90,"context_line":"    \"\"\"The metadata of the audit template\"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_6d31e559","line":87,"range":{"start_line":85,"start_character":0,"end_line":87,"end_character":70},"updated":"2016-10-03 07:43:34.000000000","message":"should be removed (replaced by scope)","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"436ba585ed686fe5191afc8472597edbd56bcc3e","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    deadline \u003d wsme.wsattr(datetime.datetime, mandatory\u003dFalse)"},{"line_number":83,"context_line":"    \"\"\"deadline of the audit template\"\"\""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    host_aggregate \u003d wsme.wsattr(wtypes.IntegerType(minimum\u003d1),"},{"line_number":86,"context_line":"                                 mandatory\u003dFalse)"},{"line_number":87,"context_line":"    \"\"\"ID of the Nova host aggregate targeted by the audit template\"\"\""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    extra \u003d wtypes.wsattr({wtypes.text: types.jsontype}, mandatory\u003dFalse)"},{"line_number":90,"context_line":"    \"\"\"The metadata of the audit template\"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_182fbda1","line":87,"range":{"start_line":85,"start_character":0,"end_line":87,"end_character":70},"in_reply_to":"3a98d1f4_6d31e559","updated":"2016-10-03 09:55:47.000000000","message":"Done","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"}],"watcher/db/sqlalchemy/models.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"e268bb977d480841d7be6481b09d1693fb051995","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    uuid \u003d Column(String(36))"},{"line_number":155,"context_line":"    name \u003d Column(String(63), nullable\u003dTrue)"},{"line_number":156,"context_line":"    description \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":157,"context_line":"    host_aggregate \u003d Column(Integer, nullable\u003dTrue)"},{"line_number":158,"context_line":"    goal_id \u003d Column(Integer, ForeignKey(\u0027goals.id\u0027), nullable\u003dFalse)"},{"line_number":159,"context_line":"    strategy_id \u003d Column(Integer, ForeignKey(\u0027strategies.id\u0027), nullable\u003dTrue)"},{"line_number":160,"context_line":"    extra \u003d Column(JSONEncodedDict)"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_0d778102","line":157,"range":{"start_line":157,"start_character":0,"end_line":157,"end_character":51},"updated":"2016-10-03 07:43:34.000000000","message":"should be removed (replaced by scope)","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"436ba585ed686fe5191afc8472597edbd56bcc3e","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    uuid \u003d Column(String(36))"},{"line_number":155,"context_line":"    name \u003d Column(String(63), nullable\u003dTrue)"},{"line_number":156,"context_line":"    description \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":157,"context_line":"    host_aggregate \u003d Column(Integer, nullable\u003dTrue)"},{"line_number":158,"context_line":"    goal_id \u003d Column(Integer, ForeignKey(\u0027goals.id\u0027), nullable\u003dFalse)"},{"line_number":159,"context_line":"    strategy_id \u003d Column(Integer, ForeignKey(\u0027strategies.id\u0027), nullable\u003dTrue)"},{"line_number":160,"context_line":"    extra \u003d Column(JSONEncodedDict)"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_382ab990","line":157,"range":{"start_line":157,"start_character":0,"end_line":157,"end_character":51},"in_reply_to":"3a98d1f4_0d778102","updated":"2016-10-03 09:55:47.000000000","message":"Done","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"e268bb977d480841d7be6481b09d1693fb051995","unresolved":false,"context_lines":[{"line_number":177,"context_line":"    deadline \u003d Column(DateTime, nullable\u003dTrue)"},{"line_number":178,"context_line":"    parameters \u003d Column(JSONEncodedDict, nullable\u003dTrue)"},{"line_number":179,"context_line":"    interval \u003d Column(Integer, nullable\u003dTrue)"},{"line_number":180,"context_line":"    host_aggregate \u003d Column(Integer, nullable\u003dTrue)"},{"line_number":181,"context_line":"    goal_id \u003d Column(Integer, ForeignKey(\u0027goals.id\u0027), nullable\u003dFalse)"},{"line_number":182,"context_line":"    strategy_id \u003d Column(Integer, ForeignKey(\u0027strategies.id\u0027), nullable\u003dTrue)"},{"line_number":183,"context_line":"    scope \u003d Column(JSONEncodedList, nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_2d727d11","line":180,"range":{"start_line":180,"start_character":0,"end_line":180,"end_character":51},"updated":"2016-10-03 07:43:34.000000000","message":"ditto","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"436ba585ed686fe5191afc8472597edbd56bcc3e","unresolved":false,"context_lines":[{"line_number":177,"context_line":"    deadline \u003d Column(DateTime, nullable\u003dTrue)"},{"line_number":178,"context_line":"    parameters \u003d Column(JSONEncodedDict, nullable\u003dTrue)"},{"line_number":179,"context_line":"    interval \u003d Column(Integer, nullable\u003dTrue)"},{"line_number":180,"context_line":"    host_aggregate \u003d Column(Integer, nullable\u003dTrue)"},{"line_number":181,"context_line":"    goal_id \u003d Column(Integer, ForeignKey(\u0027goals.id\u0027), nullable\u003dFalse)"},{"line_number":182,"context_line":"    strategy_id \u003d Column(Integer, ForeignKey(\u0027strategies.id\u0027), nullable\u003dTrue)"},{"line_number":183,"context_line":"    scope \u003d Column(JSONEncodedList, nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_781e0171","line":180,"range":{"start_line":180,"start_character":0,"end_line":180,"end_character":51},"in_reply_to":"3a98d1f4_2d727d11","updated":"2016-10-03 09:55:47.000000000","message":"Done","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"}],"watcher/decision_engine/scope/base.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"c45e87eaee4da71111b64ba72fa91b9d1b109876","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    requires Cluster Data Model which can be segregated to achieve audit scope."},{"line_number":30,"context_line":"    \"\"\""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def __init__(self):"},{"line_number":33,"context_line":"        self.ctx \u003d context.make_context()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @abc.abstractmethod"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_75d94021","line":32,"updated":"2016-08-26 16:21:43.000000000","message":"IMHO, the init signature should look like def __init__(self, scope):...","commit_id":"62cc5085807fecf84b9cc00bb8b5033a2eb1fa67"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"63aad4b71c498be6092c68708a9c956aefa43b22","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    requires Cluster Data Model which can be segregated to achieve audit scope."},{"line_number":30,"context_line":"    \"\"\""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def __init__(self):"},{"line_number":33,"context_line":"        self.ctx \u003d context.make_context()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @abc.abstractmethod"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_becfe77d","line":32,"in_reply_to":"fa7ab95a_75d94021","updated":"2016-08-31 17:16:25.000000000","message":"Done","commit_id":"62cc5085807fecf84b9cc00bb8b5033a2eb1fa67"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"c45e87eaee4da71111b64ba72fa91b9d1b109876","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        self.ctx \u003d context.make_context()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @abc.abstractmethod"},{"line_number":36,"context_line":"    def get_scoped_model(self, audit_uuid, cluster_model):"},{"line_number":37,"context_line":"        \"\"\"Leave only nodes and instances proposed in the audit scope\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_35c25886","line":36,"updated":"2016-08-26 16:21:43.000000000","message":"IMHO the signature of this function should be get_scoped_model(self, cluster_model)","commit_id":"62cc5085807fecf84b9cc00bb8b5033a2eb1fa67"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"63aad4b71c498be6092c68708a9c956aefa43b22","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        self.ctx \u003d context.make_context()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @abc.abstractmethod"},{"line_number":36,"context_line":"    def get_scoped_model(self, audit_uuid, cluster_model):"},{"line_number":37,"context_line":"        \"\"\"Leave only nodes and instances proposed in the audit scope\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_decaeb6d","line":36,"in_reply_to":"fa7ab95a_35c25886","updated":"2016-08-31 17:16:25.000000000","message":"Done","commit_id":"62cc5085807fecf84b9cc00bb8b5033a2eb1fa67"}],"watcher/decision_engine/scope/default.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"c45e87eaee4da71111b64ba72fa91b9d1b109876","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        instance \u003d cluster_model.get_instance_from_id(instance_uuid)"},{"line_number":42,"context_line":"        cluster_model.remove_instance(instance)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def get_scoped_model(self, audit_uuid, cluster_model):"},{"line_number":45,"context_line":"        \"\"\"Leave only nodes and instances proposed in the audit scope\"\"\""},{"line_number":46,"context_line":"        allowed_nodes \u003d []"},{"line_number":47,"context_line":"        nodes_to_exclude \u003d []"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_0f738381","line":44,"updated":"2016-08-26 16:21:43.000000000","message":"This method is bit too long, so can you please chunk it down into smaller functions?","commit_id":"62cc5085807fecf84b9cc00bb8b5033a2eb1fa67"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"63aad4b71c498be6092c68708a9c956aefa43b22","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        instance \u003d cluster_model.get_instance_from_id(instance_uuid)"},{"line_number":42,"context_line":"        cluster_model.remove_instance(instance)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def get_scoped_model(self, audit_uuid, cluster_model):"},{"line_number":45,"context_line":"        \"\"\"Leave only nodes and instances proposed in the audit scope\"\"\""},{"line_number":46,"context_line":"        allowed_nodes \u003d []"},{"line_number":47,"context_line":"        nodes_to_exclude \u003d []"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_0951b862","line":44,"in_reply_to":"fa7ab95a_0f738381","updated":"2016-08-31 17:16:25.000000000","message":"Done","commit_id":"62cc5085807fecf84b9cc00bb8b5033a2eb1fa67"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"e268bb977d480841d7be6481b09d1693fb051995","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        aggregate_ids \u003d [aggregate_id[\u0027id\u0027] for aggregate_id"},{"line_number":112,"context_line":"                         in host_aggregates]"},{"line_number":113,"context_line":"        include_all_nodes \u003d False"},{"line_number":114,"context_line":"        if len(aggregate_ids) \u003d\u003d 1 and aggregate_ids[0] \u003d\u003d \u0027*\u0027:"},{"line_number":115,"context_line":"            include_all_nodes \u003d True"},{"line_number":116,"context_line":"        for aggregate in aggregate_list:"},{"line_number":117,"context_line":"            detailed_aggregate \u003d self.wrapper.get_aggregate_detail("},{"line_number":118,"context_line":"                aggregate.id)"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_8d1f115a","line":115,"range":{"start_line":114,"start_character":0,"end_line":115,"end_character":36},"updated":"2016-10-03 07:43:34.000000000","message":"Please add a test on this use case.\nWhat happens if I set this configuration: \n\n\"scope\": [\n          {\"host_aggregates\": [\n            {\"id\": 1},\n            {\"id\": *},\n            {\"id\": 3}\n          ]}, ...","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"436ba585ed686fe5191afc8472597edbd56bcc3e","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        aggregate_ids \u003d [aggregate_id[\u0027id\u0027] for aggregate_id"},{"line_number":112,"context_line":"                         in host_aggregates]"},{"line_number":113,"context_line":"        include_all_nodes \u003d False"},{"line_number":114,"context_line":"        if len(aggregate_ids) \u003d\u003d 1 and aggregate_ids[0] \u003d\u003d \u0027*\u0027:"},{"line_number":115,"context_line":"            include_all_nodes \u003d True"},{"line_number":116,"context_line":"        for aggregate in aggregate_list:"},{"line_number":117,"context_line":"            detailed_aggregate \u003d self.wrapper.get_aggregate_detail("},{"line_number":118,"context_line":"                aggregate.id)"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_7950c332","line":115,"range":{"start_line":114,"start_character":0,"end_line":115,"end_character":36},"in_reply_to":"3a98d1f4_8d1f115a","updated":"2016-10-03 09:55:47.000000000","message":"Done","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"e268bb977d480841d7be6481b09d1693fb051995","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        zone_names \u003d [zone[\u0027name\u0027] for zone"},{"line_number":125,"context_line":"                      in availability_zones]"},{"line_number":126,"context_line":"        include_all_nodes \u003d False"},{"line_number":127,"context_line":"        if len(zone_names) \u003d\u003d 1 and zone_names[0] \u003d\u003d \u0027*\u0027:"},{"line_number":128,"context_line":"            include_all_nodes \u003d True"},{"line_number":129,"context_line":"        for zone in zone_list:"},{"line_number":130,"context_line":"            if zone.zoneName in zone_names or include_all_nodes:"},{"line_number":131,"context_line":"                allowed_nodes.extend(zone.hosts.keys())"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_2d46fd4e","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":36},"updated":"2016-10-03 07:43:34.000000000","message":"ditto","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"436ba585ed686fe5191afc8472597edbd56bcc3e","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        zone_names \u003d [zone[\u0027name\u0027] for zone"},{"line_number":125,"context_line":"                      in availability_zones]"},{"line_number":126,"context_line":"        include_all_nodes \u003d False"},{"line_number":127,"context_line":"        if len(zone_names) \u003d\u003d 1 and zone_names[0] \u003d\u003d \u0027*\u0027:"},{"line_number":128,"context_line":"            include_all_nodes \u003d True"},{"line_number":129,"context_line":"        for zone in zone_list:"},{"line_number":130,"context_line":"            if zone.zoneName in zone_names or include_all_nodes:"},{"line_number":131,"context_line":"                allowed_nodes.extend(zone.hosts.keys())"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_9943cf6b","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":36},"in_reply_to":"3a98d1f4_2d46fd4e","updated":"2016-10-03 09:55:47.000000000","message":"Done","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"455326277a7fb9ea3e058b3bfd4eac516f514af7","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        for aggregate in aggregate_list:"},{"line_number":121,"context_line":"            detailed_aggregate \u003d self.wrapper.get_aggregate_detail("},{"line_number":122,"context_line":"                aggregate.id)"},{"line_number":123,"context_line":"            if detailed_aggregate.id in aggregate_ids or include_all_nodes:"},{"line_number":124,"context_line":"                allowed_nodes.extend(detailed_aggregate.hosts)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def _collect_zones(self, availability_zones, allowed_nodes):"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a98d1f4_7545f140","line":123,"range":{"start_line":123,"start_character":12,"end_line":123,"end_character":75},"updated":"2016-10-04 10:00:34.000000000","message":"Check with detailed_aggregate.name as well. In horizon host aggregate name is only visible. We should be able to set:\n\n---\n  - host_aggregates:\n    - id: 48\n\nor \n\n---\n   - host_aggregates:\n     - name: aggregate_1\n\n\n\n(openstack) aggregate list\n+----+-------------+-------------------+\n| ID | Name        | Availability Zone |\n+----+-------------+-------------------+\n| 48 | aggregate_1 | pkb               |\n| 49 | aggregate_2 | pkb               |\n+----+-------------+-------------------+","commit_id":"51aafabf727269b7237c1494ccb3d712860cf40a"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"435d60dbedffeb5a3f648f1b63e0a9b06764f931","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        for aggregate in aggregate_list:"},{"line_number":121,"context_line":"            detailed_aggregate \u003d self.wrapper.get_aggregate_detail("},{"line_number":122,"context_line":"                aggregate.id)"},{"line_number":123,"context_line":"            if detailed_aggregate.id in aggregate_ids or include_all_nodes:"},{"line_number":124,"context_line":"                allowed_nodes.extend(detailed_aggregate.hosts)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def _collect_zones(self, availability_zones, allowed_nodes):"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a98d1f4_a373b914","line":123,"range":{"start_line":123,"start_character":12,"end_line":123,"end_character":75},"in_reply_to":"3a98d1f4_7545f140","updated":"2016-10-04 13:41:37.000000000","message":"Done","commit_id":"51aafabf727269b7237c1494ccb3d712860cf40a"}],"watcher/tests/db/utils.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"c45e87eaee4da71111b64ba72fa91b9d1b109876","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        \u0027created_at\u0027: kwargs.get(\u0027created_at\u0027),"},{"line_number":32,"context_line":"        \u0027updated_at\u0027: kwargs.get(\u0027updated_at\u0027),"},{"line_number":33,"context_line":"        \u0027deleted_at\u0027: kwargs.get(\u0027deleted_at\u0027),"},{"line_number":34,"context_line":"        \u0027scope\u0027: kwargs.get(\u0027scope\u0027,"},{"line_number":35,"context_line":"                            {\u0027scope\u0027:"},{"line_number":36,"context_line":"                             [{\u0027availability_zones\u0027: [{\u0027name\u0027: \u0027AZ1\u0027}]},"},{"line_number":37,"context_line":"                              {\u0027exclude\u0027: [{\u0027instances\u0027:"},{"line_number":38,"context_line":"                                           [{\u0027uuid\u0027: \u002707fde36b-5bd8-4953\u0027"},{"line_number":39,"context_line":"                                                     \u0027-96f4-2533b8bed9cf\u0027}]"},{"line_number":40,"context_line":"                                            }]"},{"line_number":41,"context_line":"                               }]"},{"line_number":42,"context_line":"                             }"},{"line_number":43,"context_line":"                            ),"},{"line_number":44,"context_line":"    }"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_32a18e95","line":43,"range":{"start_line":34,"start_character":0,"end_line":43,"end_character":30},"updated":"2016-08-26 16:21:43.000000000","message":"IMHO, there shouldn\u0027t be any scope defined by default. You should instead override the empty scope in the needed tests.","commit_id":"62cc5085807fecf84b9cc00bb8b5033a2eb1fa67"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"63aad4b71c498be6092c68708a9c956aefa43b22","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        \u0027created_at\u0027: kwargs.get(\u0027created_at\u0027),"},{"line_number":32,"context_line":"        \u0027updated_at\u0027: kwargs.get(\u0027updated_at\u0027),"},{"line_number":33,"context_line":"        \u0027deleted_at\u0027: kwargs.get(\u0027deleted_at\u0027),"},{"line_number":34,"context_line":"        \u0027scope\u0027: kwargs.get(\u0027scope\u0027,"},{"line_number":35,"context_line":"                            {\u0027scope\u0027:"},{"line_number":36,"context_line":"                             [{\u0027availability_zones\u0027: [{\u0027name\u0027: \u0027AZ1\u0027}]},"},{"line_number":37,"context_line":"                              {\u0027exclude\u0027: [{\u0027instances\u0027:"},{"line_number":38,"context_line":"                                           [{\u0027uuid\u0027: \u002707fde36b-5bd8-4953\u0027"},{"line_number":39,"context_line":"                                                     \u0027-96f4-2533b8bed9cf\u0027}]"},{"line_number":40,"context_line":"                                            }]"},{"line_number":41,"context_line":"                               }]"},{"line_number":42,"context_line":"                             }"},{"line_number":43,"context_line":"                            ),"},{"line_number":44,"context_line":"    }"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_be73677f","line":43,"range":{"start_line":34,"start_character":0,"end_line":43,"end_character":30},"in_reply_to":"fa7ab95a_32a18e95","updated":"2016-08-31 17:16:25.000000000","message":"Done","commit_id":"62cc5085807fecf84b9cc00bb8b5033a2eb1fa67"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"c45e87eaee4da71111b64ba72fa91b9d1b109876","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        \u0027goal_id\u0027: kwargs.get(\u0027goal_id\u0027, 1),"},{"line_number":76,"context_line":"        \u0027strategy_id\u0027: kwargs.get(\u0027strategy_id\u0027, None),"},{"line_number":77,"context_line":"        \u0027host_aggregate\u0027: kwargs.get(\u0027host_aggregate\u0027, 1),"},{"line_number":78,"context_line":"        \u0027scope\u0027: kwargs.get(\u0027scope\u0027,"},{"line_number":79,"context_line":"                            {\u0027scope\u0027:"},{"line_number":80,"context_line":"                                [{\u0027availability_zones\u0027: [{\u0027name\u0027: \u0027AZ1\u0027}]},"},{"line_number":81,"context_line":"                                 {\u0027exclude\u0027: [{\u0027instances\u0027:"},{"line_number":82,"context_line":"                                              [{\u0027uuid\u0027: \u002707fde36b-5bd8-4953\u0027"},{"line_number":83,"context_line":"                                                        \u0027-96f4-2533b8bed9cf\u0027"},{"line_number":84,"context_line":"                                                }]"},{"line_number":85,"context_line":"                                               }]"},{"line_number":86,"context_line":"                                  }]"},{"line_number":87,"context_line":"                             }"},{"line_number":88,"context_line":"                            ),"},{"line_number":89,"context_line":"    }"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_928fba22","line":88,"range":{"start_line":78,"start_character":0,"end_line":88,"end_character":30},"updated":"2016-08-26 16:21:43.000000000","message":"ditto","commit_id":"62cc5085807fecf84b9cc00bb8b5033a2eb1fa67"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"63aad4b71c498be6092c68708a9c956aefa43b22","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        \u0027goal_id\u0027: kwargs.get(\u0027goal_id\u0027, 1),"},{"line_number":76,"context_line":"        \u0027strategy_id\u0027: kwargs.get(\u0027strategy_id\u0027, None),"},{"line_number":77,"context_line":"        \u0027host_aggregate\u0027: kwargs.get(\u0027host_aggregate\u0027, 1),"},{"line_number":78,"context_line":"        \u0027scope\u0027: kwargs.get(\u0027scope\u0027,"},{"line_number":79,"context_line":"                            {\u0027scope\u0027:"},{"line_number":80,"context_line":"                                [{\u0027availability_zones\u0027: [{\u0027name\u0027: \u0027AZ1\u0027}]},"},{"line_number":81,"context_line":"                                 {\u0027exclude\u0027: [{\u0027instances\u0027:"},{"line_number":82,"context_line":"                                              [{\u0027uuid\u0027: \u002707fde36b-5bd8-4953\u0027"},{"line_number":83,"context_line":"                                                        \u0027-96f4-2533b8bed9cf\u0027"},{"line_number":84,"context_line":"                                                }]"},{"line_number":85,"context_line":"                                               }]"},{"line_number":86,"context_line":"                                  }]"},{"line_number":87,"context_line":"                             }"},{"line_number":88,"context_line":"                            ),"},{"line_number":89,"context_line":"    }"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_def58bcb","line":88,"range":{"start_line":78,"start_character":0,"end_line":88,"end_character":30},"in_reply_to":"fa7ab95a_928fba22","updated":"2016-08-31 17:16:25.000000000","message":"Done","commit_id":"62cc5085807fecf84b9cc00bb8b5033a2eb1fa67"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"e268bb977d480841d7be6481b09d1693fb051995","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        \u0027name\u0027: kwargs.get(\u0027name\u0027, \u0027My Audit Template\u0027),"},{"line_number":27,"context_line":"        \u0027description\u0027: kwargs.get(\u0027description\u0027, \u0027Desc. Of My Audit Template\u0027),"},{"line_number":28,"context_line":"        \u0027extra\u0027: kwargs.get(\u0027extra\u0027, {\u0027automatic\u0027: False}),"},{"line_number":29,"context_line":"        \u0027host_aggregate\u0027: kwargs.get(\u0027host_aggregate\u0027, 1),"},{"line_number":30,"context_line":"        \u0027version\u0027: kwargs.get(\u0027version\u0027, \u0027v1\u0027),"},{"line_number":31,"context_line":"        \u0027created_at\u0027: kwargs.get(\u0027created_at\u0027),"},{"line_number":32,"context_line":"        \u0027updated_at\u0027: kwargs.get(\u0027updated_at\u0027),"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_cd575956","line":29,"range":{"start_line":29,"start_character":0,"end_line":29,"end_character":58},"updated":"2016-10-03 07:43:34.000000000","message":"should be removed (replaced by scope)","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"436ba585ed686fe5191afc8472597edbd56bcc3e","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        \u0027name\u0027: kwargs.get(\u0027name\u0027, \u0027My Audit Template\u0027),"},{"line_number":27,"context_line":"        \u0027description\u0027: kwargs.get(\u0027description\u0027, \u0027Desc. Of My Audit Template\u0027),"},{"line_number":28,"context_line":"        \u0027extra\u0027: kwargs.get(\u0027extra\u0027, {\u0027automatic\u0027: False}),"},{"line_number":29,"context_line":"        \u0027host_aggregate\u0027: kwargs.get(\u0027host_aggregate\u0027, 1),"},{"line_number":30,"context_line":"        \u0027version\u0027: kwargs.get(\u0027version\u0027, \u0027v1\u0027),"},{"line_number":31,"context_line":"        \u0027created_at\u0027: kwargs.get(\u0027created_at\u0027),"},{"line_number":32,"context_line":"        \u0027updated_at\u0027: kwargs.get(\u0027updated_at\u0027),"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_730b82d6","line":29,"range":{"start_line":29,"start_character":0,"end_line":29,"end_character":58},"in_reply_to":"3a98d1f4_cd575956","updated":"2016-10-03 09:55:47.000000000","message":"Done","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"e268bb977d480841d7be6481b09d1693fb051995","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        \u0027interval\u0027: kwargs.get(\u0027period\u0027, 3600),"},{"line_number":66,"context_line":"        \u0027goal_id\u0027: kwargs.get(\u0027goal_id\u0027, 1),"},{"line_number":67,"context_line":"        \u0027strategy_id\u0027: kwargs.get(\u0027strategy_id\u0027, None),"},{"line_number":68,"context_line":"        \u0027host_aggregate\u0027: kwargs.get(\u0027host_aggregate\u0027, 1),"},{"line_number":69,"context_line":"        \u0027scope\u0027: kwargs.get(\u0027scope\u0027, []),"},{"line_number":70,"context_line":"    }"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_0d4ea1c0","line":68,"range":{"start_line":68,"start_character":0,"end_line":68,"end_character":58},"updated":"2016-10-03 07:43:34.000000000","message":"ditto","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"436ba585ed686fe5191afc8472597edbd56bcc3e","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        \u0027interval\u0027: kwargs.get(\u0027period\u0027, 3600),"},{"line_number":66,"context_line":"        \u0027goal_id\u0027: kwargs.get(\u0027goal_id\u0027, 1),"},{"line_number":67,"context_line":"        \u0027strategy_id\u0027: kwargs.get(\u0027strategy_id\u0027, None),"},{"line_number":68,"context_line":"        \u0027host_aggregate\u0027: kwargs.get(\u0027host_aggregate\u0027, 1),"},{"line_number":69,"context_line":"        \u0027scope\u0027: kwargs.get(\u0027scope\u0027, []),"},{"line_number":70,"context_line":"    }"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_b3118a06","line":68,"range":{"start_line":68,"start_character":0,"end_line":68,"end_character":58},"in_reply_to":"3a98d1f4_0d4ea1c0","updated":"2016-10-03 09:55:47.000000000","message":"Done","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"}],"watcher/tests/decision_engine/scope/test_default.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"e268bb977d480841d7be6481b09d1693fb051995","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    @mock.patch.object(nova_helper.NovaHelper, \u0027get_availability_zone_list\u0027)"},{"line_number":34,"context_line":"    def test_get_scoped_model_with_zones_and_instances(self, mock_zone_list):"},{"line_number":35,"context_line":"        cluster \u003d self.fake_cluster.generate_scenario_1()"},{"line_number":36,"context_line":"        audit_scope \u003d [{\u0027availability_zones\u0027: [{\u0027name\u0027: \u0027AZ1\u0027}]},"},{"line_number":37,"context_line":"                       {\u0027exclude\u0027:"},{"line_number":38,"context_line":"                        [{\u0027instances\u0027: [{\u0027uuid\u0027: \u0027INSTANCE_6\u0027}]}]}]"},{"line_number":39,"context_line":"        mock_zone_list.return_value \u003d ["},{"line_number":40,"context_line":"            mock.Mock(zoneName\u003d\u0027AZ{0}\u0027.format(i),"},{"line_number":41,"context_line":"                      hosts\u003d{\u0027Node_{0}\u0027.format(i): {}})"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_b8f5e9ed","line":38,"range":{"start_line":36,"start_character":0,"end_line":38,"end_character":67},"updated":"2016-10-03 07:43:34.000000000","message":"To be more readable, I will prefer you write json scope definition into external json fake file, and you load it from this test. Get inspire by vincentfrancoise test coding on CMDC ;)","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"436ba585ed686fe5191afc8472597edbd56bcc3e","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    @mock.patch.object(nova_helper.NovaHelper, \u0027get_availability_zone_list\u0027)"},{"line_number":34,"context_line":"    def test_get_scoped_model_with_zones_and_instances(self, mock_zone_list):"},{"line_number":35,"context_line":"        cluster \u003d self.fake_cluster.generate_scenario_1()"},{"line_number":36,"context_line":"        audit_scope \u003d [{\u0027availability_zones\u0027: [{\u0027name\u0027: \u0027AZ1\u0027}]},"},{"line_number":37,"context_line":"                       {\u0027exclude\u0027:"},{"line_number":38,"context_line":"                        [{\u0027instances\u0027: [{\u0027uuid\u0027: \u0027INSTANCE_6\u0027}]}]}]"},{"line_number":39,"context_line":"        mock_zone_list.return_value \u003d ["},{"line_number":40,"context_line":"            mock.Mock(zoneName\u003d\u0027AZ{0}\u0027.format(i),"},{"line_number":41,"context_line":"                      hosts\u003d{\u0027Node_{0}\u0027.format(i): {}})"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_eb4eba39","line":38,"range":{"start_line":36,"start_character":0,"end_line":38,"end_character":67},"in_reply_to":"3a98d1f4_b8f5e9ed","updated":"2016-10-03 09:55:47.000000000","message":"Done","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"e268bb977d480841d7be6481b09d1693fb051995","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        self.assertEqual([\u0027Node_0\u0027, \u0027Node_1\u0027], sorted(allowed_nodes))"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_default_schema(self):"},{"line_number":96,"context_line":"        test_scope \u003d [{\u0027host_aggregates\u0027: [{\u0027id\u0027: 1}, {\u0027id\u0027: 2}]},"},{"line_number":97,"context_line":"                      {\u0027availability_zones\u0027: [{\u0027name\u0027: \u0027AZ1\u0027},"},{"line_number":98,"context_line":"                                              {\u0027name\u0027: \u0027AZ2\u0027}]},"},{"line_number":99,"context_line":"                      {\u0027exclude\u0027: [{\u0027instances\u0027: [{\u0027uuid\u0027: \u0027INSTANCE_1\u0027},"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_f8dbf179","line":96,"range":{"start_line":96,"start_character":8,"end_line":96,"end_character":66},"updated":"2016-10-03 07:43:34.000000000","message":"{\u0027id\u0027: \u0027*\u0027} is missing ?","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"436ba585ed686fe5191afc8472597edbd56bcc3e","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        self.assertEqual([\u0027Node_0\u0027, \u0027Node_1\u0027], sorted(allowed_nodes))"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_default_schema(self):"},{"line_number":96,"context_line":"        test_scope \u003d [{\u0027host_aggregates\u0027: [{\u0027id\u0027: 1}, {\u0027id\u0027: 2}]},"},{"line_number":97,"context_line":"                      {\u0027availability_zones\u0027: [{\u0027name\u0027: \u0027AZ1\u0027},"},{"line_number":98,"context_line":"                                              {\u0027name\u0027: \u0027AZ2\u0027}]},"},{"line_number":99,"context_line":"                      {\u0027exclude\u0027: [{\u0027instances\u0027: [{\u0027uuid\u0027: \u0027INSTANCE_1\u0027},"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a98d1f4_cb43be11","line":96,"range":{"start_line":96,"start_character":8,"end_line":96,"end_character":66},"in_reply_to":"3a98d1f4_f8dbf179","updated":"2016-10-03 09:55:47.000000000","message":"Done","commit_id":"64ca3727c7e12b2f20f56acee792b40f25c4f40b"}],"watcher/tests/decision_engine/strategy/strategies/test_basic_consolidation.py":[{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"577566e4cc79efd1245ba91f312b28ab5816f886","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        self.addCleanup(p_ceilometer.stop)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        p_audit_scope \u003d mock.patch.object("},{"line_number":61,"context_line":"            strategies.WorkloadStabilization, \"audit_scope\","},{"line_number":62,"context_line":"            new_callable\u003dmock.PropertyMock"},{"line_number":63,"context_line":"        )"},{"line_number":64,"context_line":"        self.m_audit_scope \u003d p_audit_scope.start()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a98d1f4_c44060a8","line":61,"range":{"start_line":61,"start_character":23,"end_line":61,"end_character":44},"updated":"2016-09-30 08:21:35.000000000","message":"should be BasicConsolidation","commit_id":"bcbcfcbbc93a94f2cd5720df6fe42327832aa221"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"2310a56ed14b067d2d3b39d76fbd2a507fe4dae4","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        self.addCleanup(p_ceilometer.stop)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        p_audit_scope \u003d mock.patch.object("},{"line_number":61,"context_line":"            strategies.WorkloadStabilization, \"audit_scope\","},{"line_number":62,"context_line":"            new_callable\u003dmock.PropertyMock"},{"line_number":63,"context_line":"        )"},{"line_number":64,"context_line":"        self.m_audit_scope \u003d p_audit_scope.start()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a98d1f4_5fedf923","line":61,"range":{"start_line":61,"start_character":23,"end_line":61,"end_character":44},"in_reply_to":"3a98d1f4_c44060a8","updated":"2016-09-30 08:30:58.000000000","message":"Done","commit_id":"bcbcfcbbc93a94f2cd5720df6fe42327832aa221"}],"watcher/tests/decision_engine/strategy/strategies/test_dummy_strategy.py":[{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"577566e4cc79efd1245ba91f312b28ab5816f886","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        self.addCleanup(p_model.stop)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        p_audit_scope \u003d mock.patch.object("},{"line_number":42,"context_line":"            strategies.WorkloadStabilization, \"audit_scope\","},{"line_number":43,"context_line":"            new_callable\u003dmock.PropertyMock"},{"line_number":44,"context_line":"        )"},{"line_number":45,"context_line":"        self.m_audit_scope \u003d p_audit_scope.start()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a98d1f4_6416aca8","line":42,"range":{"start_line":42,"start_character":23,"end_line":42,"end_character":44},"updated":"2016-09-30 08:21:35.000000000","message":"DummyStrategy","commit_id":"bcbcfcbbc93a94f2cd5720df6fe42327832aa221"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"2310a56ed14b067d2d3b39d76fbd2a507fe4dae4","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        self.addCleanup(p_model.stop)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        p_audit_scope \u003d mock.patch.object("},{"line_number":42,"context_line":"            strategies.WorkloadStabilization, \"audit_scope\","},{"line_number":43,"context_line":"            new_callable\u003dmock.PropertyMock"},{"line_number":44,"context_line":"        )"},{"line_number":45,"context_line":"        self.m_audit_scope \u003d p_audit_scope.start()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a98d1f4_dfd90985","line":42,"range":{"start_line":42,"start_character":23,"end_line":42,"end_character":44},"in_reply_to":"3a98d1f4_6416aca8","updated":"2016-09-30 08:30:58.000000000","message":"Done","commit_id":"bcbcfcbbc93a94f2cd5720df6fe42327832aa221"}],"watcher/tests/decision_engine/strategy/strategies/test_outlet_temp_control.py":[{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"577566e4cc79efd1245ba91f312b28ab5816f886","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        self.addCleanup(p_ceilometer.stop)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        p_audit_scope \u003d mock.patch.object("},{"line_number":57,"context_line":"            strategies.WorkloadStabilization, \"audit_scope\","},{"line_number":58,"context_line":"            new_callable\u003dmock.PropertyMock"},{"line_number":59,"context_line":"        )"},{"line_number":60,"context_line":"        self.m_audit_scope \u003d p_audit_scope.start()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a98d1f4_241d84bd","line":57,"range":{"start_line":57,"start_character":23,"end_line":57,"end_character":44},"updated":"2016-09-30 08:21:35.000000000","message":"OutletTempControl","commit_id":"bcbcfcbbc93a94f2cd5720df6fe42327832aa221"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"2310a56ed14b067d2d3b39d76fbd2a507fe4dae4","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        self.addCleanup(p_ceilometer.stop)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        p_audit_scope \u003d mock.patch.object("},{"line_number":57,"context_line":"            strategies.WorkloadStabilization, \"audit_scope\","},{"line_number":58,"context_line":"            new_callable\u003dmock.PropertyMock"},{"line_number":59,"context_line":"        )"},{"line_number":60,"context_line":"        self.m_audit_scope \u003d p_audit_scope.start()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a98d1f4_bfc51d8f","line":57,"range":{"start_line":57,"start_character":23,"end_line":57,"end_character":44},"in_reply_to":"3a98d1f4_241d84bd","updated":"2016-09-30 08:30:58.000000000","message":"Done","commit_id":"bcbcfcbbc93a94f2cd5720df6fe42327832aa221"}],"watcher/tests/decision_engine/strategy/strategies/test_uniform_airflow.py":[{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"577566e4cc79efd1245ba91f312b28ab5816f886","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        self.addCleanup(p_ceilometer.stop)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        p_audit_scope \u003d mock.patch.object("},{"line_number":57,"context_line":"            strategies.WorkloadStabilization, \"audit_scope\","},{"line_number":58,"context_line":"            new_callable\u003dmock.PropertyMock"},{"line_number":59,"context_line":"        )"},{"line_number":60,"context_line":"        self.m_audit_scope \u003d p_audit_scope.start()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a98d1f4_e469dc26","line":57,"range":{"start_line":57,"start_character":23,"end_line":57,"end_character":44},"updated":"2016-09-30 08:21:35.000000000","message":"UniformAirflow","commit_id":"bcbcfcbbc93a94f2cd5720df6fe42327832aa221"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"2310a56ed14b067d2d3b39d76fbd2a507fe4dae4","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        self.addCleanup(p_ceilometer.stop)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        p_audit_scope \u003d mock.patch.object("},{"line_number":57,"context_line":"            strategies.WorkloadStabilization, \"audit_scope\","},{"line_number":58,"context_line":"            new_callable\u003dmock.PropertyMock"},{"line_number":59,"context_line":"        )"},{"line_number":60,"context_line":"        self.m_audit_scope \u003d p_audit_scope.start()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a98d1f4_9f45c118","line":57,"range":{"start_line":57,"start_character":23,"end_line":57,"end_character":44},"in_reply_to":"3a98d1f4_e469dc26","updated":"2016-09-30 08:30:58.000000000","message":"Done","commit_id":"bcbcfcbbc93a94f2cd5720df6fe42327832aa221"}],"watcher/tests/decision_engine/strategy/strategies/test_vm_workload_consolidation.py":[{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"577566e4cc79efd1245ba91f312b28ab5816f886","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        self.addCleanup(p_ceilometer.stop)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        p_audit_scope \u003d mock.patch.object("},{"line_number":52,"context_line":"            strategies.WorkloadStabilization, \"audit_scope\","},{"line_number":53,"context_line":"            new_callable\u003dmock.PropertyMock"},{"line_number":54,"context_line":"        )"},{"line_number":55,"context_line":"        self.m_audit_scope \u003d p_audit_scope.start()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a98d1f4_845bb886","line":52,"range":{"start_line":52,"start_character":23,"end_line":52,"end_character":44},"updated":"2016-09-30 08:21:35.000000000","message":"VMWorkloadConsolidation","commit_id":"bcbcfcbbc93a94f2cd5720df6fe42327832aa221"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"2310a56ed14b067d2d3b39d76fbd2a507fe4dae4","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        self.addCleanup(p_ceilometer.stop)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        p_audit_scope \u003d mock.patch.object("},{"line_number":52,"context_line":"            strategies.WorkloadStabilization, \"audit_scope\","},{"line_number":53,"context_line":"            new_callable\u003dmock.PropertyMock"},{"line_number":54,"context_line":"        )"},{"line_number":55,"context_line":"        self.m_audit_scope \u003d p_audit_scope.start()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a98d1f4_3f5f4de6","line":52,"range":{"start_line":52,"start_character":23,"end_line":52,"end_character":44},"in_reply_to":"3a98d1f4_845bb886","updated":"2016-09-30 08:30:58.000000000","message":"Done","commit_id":"bcbcfcbbc93a94f2cd5720df6fe42327832aa221"}],"watcher/tests/decision_engine/strategy/strategies/test_workload_balance.py":[{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"577566e4cc79efd1245ba91f312b28ab5816f886","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        self.addCleanup(p_ceilometer.stop)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        p_audit_scope \u003d mock.patch.object("},{"line_number":57,"context_line":"            strategies.WorkloadStabilization, \"audit_scope\","},{"line_number":58,"context_line":"            new_callable\u003dmock.PropertyMock"},{"line_number":59,"context_line":"        )"},{"line_number":60,"context_line":"        self.m_audit_scope \u003d p_audit_scope.start()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a98d1f4_84d2d8d0","line":57,"range":{"start_line":57,"start_character":23,"end_line":57,"end_character":44},"updated":"2016-09-30 08:21:35.000000000","message":"WorkloadBalance","commit_id":"bcbcfcbbc93a94f2cd5720df6fe42327832aa221"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"2310a56ed14b067d2d3b39d76fbd2a507fe4dae4","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        self.addCleanup(p_ceilometer.stop)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        p_audit_scope \u003d mock.patch.object("},{"line_number":57,"context_line":"            strategies.WorkloadStabilization, \"audit_scope\","},{"line_number":58,"context_line":"            new_callable\u003dmock.PropertyMock"},{"line_number":59,"context_line":"        )"},{"line_number":60,"context_line":"        self.m_audit_scope \u003d p_audit_scope.start()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a98d1f4_5f0979dc","line":57,"range":{"start_line":57,"start_character":23,"end_line":57,"end_character":44},"in_reply_to":"3a98d1f4_84d2d8d0","updated":"2016-09-30 08:30:58.000000000","message":"Done","commit_id":"bcbcfcbbc93a94f2cd5720df6fe42327832aa221"}]}
