)]}'
{"watcherclient/tests/test_shell.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"ca96faab58117abeafbed7dc5280cdf85777033b","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            \u0027.*action-plan-list\u0027,"},{"line_number":149,"context_line":"            \u0027.*action-plan-show\u0027,"},{"line_number":150,"context_line":"            \u0027.*action-plan-update\u0027,"},{"line_number":151,"context_line":"            \u0027.*goal-list\u0027,"},{"line_number":152,"context_line":"            \u0027.*goal-show\u0027,"},{"line_number":153,"context_line":"            \u0027.*strategy-list\u0027,"},{"line_number":154,"context_line":"            \u0027.*strategy-show\u0027,"},{"line_number":155,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_d83296a6","line":152,"range":{"start_line":151,"start_character":0,"end_line":152,"end_character":26},"updated":"2016-04-20 10:17:49.000000000","message":"Sorry, but could you move theses lines into the patchset https://review.openstack.org/#/c/298631/ ?","commit_id":"30851b7395d9958ce3555ec1d860dba3defc77c3"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"04419ac390983401d1f0d729cdff1cefc367b0c4","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            \u0027.*action-plan-list\u0027,"},{"line_number":149,"context_line":"            \u0027.*action-plan-show\u0027,"},{"line_number":150,"context_line":"            \u0027.*action-plan-update\u0027,"},{"line_number":151,"context_line":"            \u0027.*goal-list\u0027,"},{"line_number":152,"context_line":"            \u0027.*goal-show\u0027,"},{"line_number":153,"context_line":"            \u0027.*strategy-list\u0027,"},{"line_number":154,"context_line":"            \u0027.*strategy-show\u0027,"},{"line_number":155,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_592f96a0","line":152,"range":{"start_line":151,"start_character":0,"end_line":152,"end_character":26},"in_reply_to":"1a122d0e_d83296a6","updated":"2016-04-20 16:31:51.000000000","message":"Done","commit_id":"30851b7395d9958ce3555ec1d860dba3defc77c3"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"1b4bff164e72eeb26b03577f7165f8a137f6a4d4","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            \u0027.*action-plan-list\u0027,"},{"line_number":149,"context_line":"            \u0027.*action-plan-show\u0027,"},{"line_number":150,"context_line":"            \u0027.*action-plan-update\u0027,"},{"line_number":151,"context_line":"            \u0027.*goal-list\u0027,"},{"line_number":152,"context_line":"            \u0027.*goal-show\u0027,"},{"line_number":153,"context_line":"            \u0027.*strategy-list\u0027,"},{"line_number":154,"context_line":"            \u0027.*strategy-show\u0027,"},{"line_number":155,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_a07891f3","line":152,"range":{"start_line":151,"start_character":0,"end_line":152,"end_character":26},"updated":"2016-05-09 10:18:06.000000000","message":"Done .... but not deleted !?! Please remove these lines.","commit_id":"e0e2a78d3f34f20927a28cc306ea0614cf2c6f72"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"2de9d6329bd83c31dd900e007b31dc121caab061","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            \u0027.*action-plan-list\u0027,"},{"line_number":149,"context_line":"            \u0027.*action-plan-show\u0027,"},{"line_number":150,"context_line":"            \u0027.*action-plan-update\u0027,"},{"line_number":151,"context_line":"            \u0027.*goal-list\u0027,"},{"line_number":152,"context_line":"            \u0027.*goal-show\u0027,"},{"line_number":153,"context_line":"            \u0027.*strategy-list\u0027,"},{"line_number":154,"context_line":"            \u0027.*strategy-show\u0027,"},{"line_number":155,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_544c0742","line":152,"range":{"start_line":151,"start_character":0,"end_line":152,"end_character":26},"in_reply_to":"dab17558_a07891f3","updated":"2016-05-10 15:06:18.000000000","message":"Yes it\u0027s done. It\u0027s not in green because I moved it to the previous changeset (see https://review.openstack.org/#/c/298631/7/watcherclient/tests/test_shell.py). So that\u0027s normal you still see them here.","commit_id":"e0e2a78d3f34f20927a28cc306ea0614cf2c6f72"}],"watcherclient/tests/v1/test_strategy.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"8a47ee318fc11df41f3407b77c66d5f225640736","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    \u0027strategy_id\u0027: \"SERVER_CONSOLIDATION\","},{"line_number":29,"context_line":"}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"GOAL2 \u003d {"},{"line_number":32,"context_line":"    \u0027id\u0027: \"dummy\","},{"line_number":33,"context_line":"    \u0027display_name\u0027: \u0027Dummy\u0027,"},{"line_number":34,"context_line":"    \u0027strategy_id\u0027: \"DUMMY\","}],"source_content_type":"text/x-python","patch_set":1,"id":"ba0121b8_93591638","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":5},"updated":"2016-03-31 16:33:18.000000000","message":"s/GOAL/STRATEGY","commit_id":"6e8e13c3ca536a339b9b5177360e5b681a6c1c68"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"8a47ee318fc11df41f3407b77c66d5f225640736","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        self.assertEqual(expect, self.api.calls)"},{"line_number":159,"context_line":"        self.assertEqual(2, len(strategies))"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def test_strategies_show(self):"},{"line_number":162,"context_line":"        strategy \u003d self.mgr.get(STRATEGY1[\u0027id\u0027])"},{"line_number":163,"context_line":"        expect \u003d ["},{"line_number":164,"context_line":"            (\u0027GET\u0027, \u0027/v1/strategies/%s\u0027 % STRATEGY1[\u0027id\u0027], {}, None),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba0121b8_d3ad4eea","line":161,"updated":"2016-03-31 16:33:18.000000000","message":"IMO, add a test to list strategies with a same goal_id","commit_id":"6e8e13c3ca536a339b9b5177360e5b681a6c1c68"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"ca96faab58117abeafbed7dc5280cdf85777033b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    \u0027strategy_id\u0027: \"SERVER_CONSOLIDATION\","},{"line_number":29,"context_line":"}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"GOAL2 \u003d {"},{"line_number":32,"context_line":"    \u0027id\u0027: \"dummy\","},{"line_number":33,"context_line":"    \u0027display_name\u0027: \u0027Dummy\u0027,"},{"line_number":34,"context_line":"    \u0027strategy_id\u0027: \"DUMMY\","}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_b874fa35","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":5},"updated":"2016-04-20 10:17:49.000000000","message":"s/GOAL/STRATEGY","commit_id":"30851b7395d9958ce3555ec1d860dba3defc77c3"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"04419ac390983401d1f0d729cdff1cefc367b0c4","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    \u0027strategy_id\u0027: \"SERVER_CONSOLIDATION\","},{"line_number":29,"context_line":"}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"GOAL2 \u003d {"},{"line_number":32,"context_line":"    \u0027id\u0027: \"dummy\","},{"line_number":33,"context_line":"    \u0027display_name\u0027: \u0027Dummy\u0027,"},{"line_number":34,"context_line":"    \u0027strategy_id\u0027: \"DUMMY\","}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_19107e56","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":5},"in_reply_to":"1a122d0e_b874fa35","updated":"2016-04-20 16:31:51.000000000","message":"Done","commit_id":"30851b7395d9958ce3555ec1d860dba3defc77c3"}],"watcherclient/v1/strategy.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"8a47ee318fc11df41f3407b77c66d5f225640736","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        return (\u0027/v1/strategies/%s\u0027 % strategy_id"},{"line_number":32,"context_line":"                if strategy_id else \u0027/v1/strategies\u0027)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def list(self, limit\u003dNone, sort_key\u003dNone,"},{"line_number":35,"context_line":"             sort_dir\u003dNone, detail\u003dFalse):"},{"line_number":36,"context_line":"        \"\"\"Retrieve a list of strategy."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba0121b8_33e76a41","line":34,"updated":"2016-03-31 16:33:18.000000000","message":"add goal_id parameter to be able to filter strategies with goal_id","commit_id":"6e8e13c3ca536a339b9b5177360e5b681a6c1c68"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"ca96faab58117abeafbed7dc5280cdf85777033b","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    resource_class \u003d Strategy"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @staticmethod"},{"line_number":32,"context_line":"    def _path(strategy_uuid\u003dNone):"},{"line_number":33,"context_line":"        return (\u0027/v1/strategies/%s\u0027 % strategy_uuid"},{"line_number":34,"context_line":"                if strategy_uuid else \u0027/v1/strategies\u0027)"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_f832f20e","line":32,"range":{"start_line":32,"start_character":14,"end_line":32,"end_character":27},"updated":"2016-04-20 10:17:49.000000000","message":"you can have an UUID or a name strategy. Rather use \u0027strategy\u0027 term....","commit_id":"30851b7395d9958ce3555ec1d860dba3defc77c3"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"04419ac390983401d1f0d729cdff1cefc367b0c4","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    resource_class \u003d Strategy"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @staticmethod"},{"line_number":32,"context_line":"    def _path(strategy_uuid\u003dNone):"},{"line_number":33,"context_line":"        return (\u0027/v1/strategies/%s\u0027 % strategy_uuid"},{"line_number":34,"context_line":"                if strategy_uuid else \u0027/v1/strategies\u0027)"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_fd33edf3","line":32,"range":{"start_line":32,"start_character":14,"end_line":32,"end_character":27},"in_reply_to":"1a122d0e_f832f20e","updated":"2016-04-20 16:31:51.000000000","message":"Done","commit_id":"30851b7395d9958ce3555ec1d860dba3defc77c3"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"ca96faab58117abeafbed7dc5280cdf85777033b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"             sort_dir\u003dNone, detail\u003dFalse):"},{"line_number":38,"context_line":"        \"\"\"Retrieve a list of strategy."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        :param goal_uuid: The ID of the goal to filter by"},{"line_number":41,"context_line":"        :param limit: The maximum number of results to return per"},{"line_number":42,"context_line":"                      request, if:"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_18d40ebb","line":40,"range":{"start_line":40,"start_character":30,"end_line":40,"end_character":32},"updated":"2016-04-20 10:17:49.000000000","message":"s/ID/UUID","commit_id":"30851b7395d9958ce3555ec1d860dba3defc77c3"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"04419ac390983401d1f0d729cdff1cefc367b0c4","unresolved":false,"context_lines":[{"line_number":37,"context_line":"             sort_dir\u003dNone, detail\u003dFalse):"},{"line_number":38,"context_line":"        \"\"\"Retrieve a list of strategy."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        :param goal_uuid: The ID of the goal to filter by"},{"line_number":41,"context_line":"        :param limit: The maximum number of results to return per"},{"line_number":42,"context_line":"                      request, if:"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_00be42fe","line":40,"range":{"start_line":40,"start_character":30,"end_line":40,"end_character":32},"in_reply_to":"1a122d0e_18d40ebb","updated":"2016-04-20 16:31:51.000000000","message":"Done","commit_id":"30851b7395d9958ce3555ec1d860dba3defc77c3"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"ca96faab58117abeafbed7dc5280cdf85777033b","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            return self._list_pagination(self._path(path), \"strategies\","},{"line_number":79,"context_line":"                                         limit\u003dlimit)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def get(self, strategy_uuid):"},{"line_number":82,"context_line":"        try:"},{"line_number":83,"context_line":"            return self._list(self._path(strategy_uuid))[0]"},{"line_number":84,"context_line":"        except IndexError:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_782702ca","line":81,"range":{"start_line":81,"start_character":18,"end_line":81,"end_character":31},"updated":"2016-04-20 10:17:49.000000000","message":"ditto","commit_id":"30851b7395d9958ce3555ec1d860dba3defc77c3"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"04419ac390983401d1f0d729cdff1cefc367b0c4","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            return self._list_pagination(self._path(path), \"strategies\","},{"line_number":79,"context_line":"                                         limit\u003dlimit)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def get(self, strategy_uuid):"},{"line_number":82,"context_line":"        try:"},{"line_number":83,"context_line":"            return self._list(self._path(strategy_uuid))[0]"},{"line_number":84,"context_line":"        except IndexError:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_40b95acb","line":81,"range":{"start_line":81,"start_character":18,"end_line":81,"end_character":31},"in_reply_to":"1a122d0e_782702ca","updated":"2016-04-20 16:31:51.000000000","message":"Done","commit_id":"30851b7395d9958ce3555ec1d860dba3defc77c3"}],"watcherclient/v1/strategy_shell.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"8a47ee318fc11df41f3407b77c66d5f225640736","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    metavar\u003d\u0027\u003cdirection\u003e\u0027,"},{"line_number":64,"context_line":"    choices\u003d[\u0027asc\u0027, \u0027desc\u0027],"},{"line_number":65,"context_line":"    help\u003d\u0027Sort direction: \"asc\" (the default) or \"desc\".\u0027)"},{"line_number":66,"context_line":"def do_strategy_list(cc, args):"},{"line_number":67,"context_line":"    \"\"\"List the strategies.\"\"\""},{"line_number":68,"context_line":"    params \u003d {}"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba0121b8_3303eab9","line":66,"range":{"start_line":66,"start_character":4,"end_line":66,"end_character":20},"updated":"2016-03-31 16:33:18.000000000","message":"missing goal-id option ?","commit_id":"6e8e13c3ca536a339b9b5177360e5b681a6c1c68"},{"author":{"_account_id":20515,"name":"Tomasz Kaczynski","email":"tomasz.kaczynski@intel.com","username":"tkaczynski"},"change_message_id":"36efa612d6d291595bd53f4420c789aa6d9bcd93","unresolved":false,"context_lines":[{"line_number":23,"context_line":"def _print_strategy_show(strategy):"},{"line_number":24,"context_line":"    fields \u003d res_fields.STRATEGY_FIELDS"},{"line_number":25,"context_line":"    data \u003d dict([(f, getattr(strategy, f, \u0027\u0027)) for f in fields])"},{"line_number":26,"context_line":"    cliutils.print_dict(data, wrap\u003d72)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"@cliutils.arg("}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_7144731a","line":26,"updated":"2016-04-14 07:23:11.000000000","message":"Isn\u0027t 72 a magic number? I guess it\u0027s used widely in this project, but I would still suggest to refactor and make a constant or ideally a configurable setting, so the user could potentially change it.","commit_id":"84a43d904da1a4e51c93056b5683ca98569ad63d"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"375e26aa61d00069482a72ccee99858284f25f12","unresolved":false,"context_lines":[{"line_number":23,"context_line":"def _print_strategy_show(strategy):"},{"line_number":24,"context_line":"    fields \u003d res_fields.STRATEGY_FIELDS"},{"line_number":25,"context_line":"    data \u003d dict([(f, getattr(strategy, f, \u0027\u0027)) for f in fields])"},{"line_number":26,"context_line":"    cliutils.print_dict(data, wrap\u003d72)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"@cliutils.arg("}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_37e927e7","line":26,"in_reply_to":"5a18252c_7144731a","updated":"2016-04-14 16:32:57.000000000","message":"Yes it clearly is. As you said it\u0027s broadly used within watcherclient, so I guess I\u0027m going to create a bug to tidy things up everywhere. There you go: https://bugs.launchpad.net/python-watcherclient/+bug/1570467","commit_id":"84a43d904da1a4e51c93056b5683ca98569ad63d"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"ca96faab58117abeafbed7dc5280cdf85777033b","unresolved":false,"context_lines":[{"line_number":29,"context_line":"@cliutils.arg("},{"line_number":30,"context_line":"    \u0027strategy_uuid\u0027,"},{"line_number":31,"context_line":"    metavar\u003d\u0027\u003cstrategy-uuid\u003e\u0027,"},{"line_number":32,"context_line":"    help\u003d\"UUID of the strategy\")"},{"line_number":33,"context_line":"def do_strategy_show(cc, args):"},{"line_number":34,"context_line":"    \"\"\"Show detailed information about a _print_strategy_show.\"\"\""},{"line_number":35,"context_line":"    strategy \u003d cc.strategy.get(args.strategy_uuid)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_780ee23b","line":32,"range":{"start_line":32,"start_character":10,"end_line":32,"end_character":14},"updated":"2016-04-20 10:17:49.000000000","message":"UUID or name","commit_id":"30851b7395d9958ce3555ec1d860dba3defc77c3"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"04419ac390983401d1f0d729cdff1cefc367b0c4","unresolved":false,"context_lines":[{"line_number":29,"context_line":"@cliutils.arg("},{"line_number":30,"context_line":"    \u0027strategy_uuid\u0027,"},{"line_number":31,"context_line":"    metavar\u003d\u0027\u003cstrategy-uuid\u003e\u0027,"},{"line_number":32,"context_line":"    help\u003d\"UUID of the strategy\")"},{"line_number":33,"context_line":"def do_strategy_show(cc, args):"},{"line_number":34,"context_line":"    \"\"\"Show detailed information about a _print_strategy_show.\"\"\""},{"line_number":35,"context_line":"    strategy \u003d cc.strategy.get(args.strategy_uuid)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_002f62a1","line":32,"range":{"start_line":32,"start_character":10,"end_line":32,"end_character":14},"in_reply_to":"1a122d0e_780ee23b","updated":"2016-04-20 16:31:51.000000000","message":"Done","commit_id":"30851b7395d9958ce3555ec1d860dba3defc77c3"}]}
