)]}'
{"watcher/api/controllers/v1/audit_template.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"f6e89cb359517ea566db141ac7edd6ea49623007","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        if self.from_audit_templates:"},{"line_number":290,"context_line":"            raise exception.OperationNotPermitted"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        if audit_template.goal not in cfg.CONF.watcher_goals.goals.keys():"},{"line_number":293,"context_line":"            raise exception.InvalidGoal(goal\u003daudit_template.goal)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        audit_template_dict \u003d audit_template.as_dict()"},{"line_number":296,"context_line":"        context \u003d pecan.request.context"},{"line_number":297,"context_line":"        new_audit_template \u003d objects.AuditTemplate(context,"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_ebb63389","line":294,"range":{"start_line":292,"start_character":0,"end_line":294,"end_character":0},"updated":"2016-02-15 16:49:43.000000000","message":"IMHO, this is not the best place to put this because this means that a PATCH could set a goal that doesn\u0027t exist.\n\nSo I reckon you should do it just like in watcher/api/controllers/v1/action_plan.py where the validate() classmethod of ActionPlanPatchType gets called via the \"@wsme.validate(types.uuid, [ActionPlanPatchType])\" decorator. So this would mean we can centralise the code into the validate() and we would only have to add the validation decorator wherever needed.","commit_id":"a4a03e70693d851cd8601a5a2f905c445114f5b0"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"925cd5661cdaf008b32d41cdaac98bb3c0cc592f","unresolved":false,"context_lines":[{"line_number":290,"context_line":"                audit_template)"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        return AuditTemplate.convert_with_links(rpc_audit_template)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    @wsme_pecan.wsexpose(AuditTemplate, body\u003dAuditTemplate, status_code\u003d201)"},{"line_number":295,"context_line":"    def post(self, audit_template):"},{"line_number":296,"context_line":"        \"\"\"Create a new audit template."}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_14706b0a","line":293,"updated":"2016-02-29 14:49:51.000000000","message":"I think you forgot to add the @validate decorator here. So I guess that would mean that we also need to implement the validate() staticmethod on AuditTemplate too. I guess I was wrong on my previous comment when saying that we could centralise this :(","commit_id":"91a6c1db2920b273f91d4ba4e006bfd8d20412b8"}],"watcher/tests/api/v1/test_audit_templates.py":[{"author":{"_account_id":11235,"name":"Edwin Zhai","email":"edwin.zhai@intel.com","username":"gzhai"},"change_message_id":"2fecf888b5f83f875085e2322089ed98865f2b61","unresolved":false,"context_lines":[{"line_number":254,"context_line":"    @mock.patch(\u0027oslo_utils.timeutils.utcnow\u0027)"},{"line_number":255,"context_line":"    def test_replace_ok_by_name(self, mock_utcnow):"},{"line_number":256,"context_line":"        cfg.CONF.set_override(\u0027goals\u0027, {\"DUMMY\": \"DUMMY\", \"BASIC\": \"BASIC\"},"},{"line_number":257,"context_line":"                              group\u003d\u0027watcher_goals\u0027, enforce_type\u003dTrue)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        test_time \u003d datetime.datetime(2000, 1, 1, 0, 0)"},{"line_number":260,"context_line":"        mock_utcnow.return_value \u003d test_time"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_4e434d13","line":257,"updated":"2016-03-04 00:38:16.000000000","message":"Why not keep original goals? If setting them explicitly, pls. put them in setUp so all tests use same goals for test.","commit_id":"119331bc09455cc5266a749197edae5e3a66c120"}],"watcher_tempest_plugin/config.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"2f0d45874366d5b9ddc84b8ca77d75cdb023cc46","unresolved":false,"context_lines":[{"line_number":25,"context_line":"                default\u003dTrue,"},{"line_number":26,"context_line":"                help\u003d\"Whether or not watcher is expected to be available\"),"},{"line_number":27,"context_line":"]"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"cfg.CONF.set_override(\u0027goals\u0027,"},{"line_number":30,"context_line":"                      {\"DUMMY\": \"DUMMY\","},{"line_number":31,"context_line":"                       \"BASIC_CONSOLIDATION\": \"BASIC_CONSOLIDATION\"},"},{"line_number":32,"context_line":"                      group\u003d\u0027watcher_goals\u0027, enforce_type\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_8ebe2c63","line":32,"range":{"start_line":28,"start_character":0,"end_line":32,"end_character":63},"updated":"2016-03-09 16:42:47.000000000","message":"This actually makes the Tempest tests fail on my DevStack. You also do not need to add this because it is already overriden in watcher/devstack/local.conf.controller.\n\nMy first question would be: Have you run the tempest tests on yourself? If so, does it work on your machine?\nIf not, can you simply get rid of this?","commit_id":"8561653e68f7819e4f6474f228d065a58e88d9fa"}]}
