)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"e34454cdd1b66a8620f54a0f6802b3f15d4d6f15","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add support for listing nova hosts, agents, availability-zones"},{"line_number":10,"context_line":"and aggregates."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I1facd17719299128e758334b468c01a83518889e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bae84128_934aee24","line":12,"updated":"2016-02-22 19:45:02.000000000","message":"Needs an \u0027Implements: blueprint ...\u0027 line","commit_id":"d600609abd2b252d3284b8a65f9534b522a431ad"}],"rally/plugins/openstack/scenarios/nova/agents.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"e34454cdd1b66a8620f54a0f6802b3f15d4d6f15","unresolved":false,"context_lines":[{"line_number":23,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class NovaAgents(utils.NovaScenario):"},{"line_number":27,"context_line":"    \"\"\"Benchmark scenarios for Nova agents.\"\"\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @validation.required_services(consts.Service.NOVA)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bae84128_d02aac8f","line":26,"updated":"2016-02-22 19:45:02.000000000","message":"Putting each of these new scenarios in its own plugin seems unnecessary. Is there any sensible way we could combine them (or most of them, and probably list_services() and list_hypervisors() as well) into a single class? Or are they different enough that multiple classes are justified?","commit_id":"d600609abd2b252d3284b8a65f9534b522a431ad"}],"rally/plugins/openstack/scenarios/nova/utils.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"78a8ea65ed2a2b7056870d831433558d38733824","unresolved":false,"context_lines":[{"line_number":916,"context_line":""},{"line_number":917,"context_line":"    @atomic.action_timer(\"nova.list_aggregates\")"},{"line_number":918,"context_line":"    def _list_aggregates(self):"},{"line_number":919,"context_line":"        \"\"\"return all nova aggregates details.\"\"\""},{"line_number":920,"context_line":"        return self.admin_clients(\"nova\").aggregates.list()"},{"line_number":921,"context_line":""},{"line_number":922,"context_line":"    @atomic.action_timer(\"nova.get_aggregate\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_fbab8187","line":919,"updated":"2016-02-16 11:19:36.000000000","message":"Get a list of os-aggregates","commit_id":"f6c97147b9692ce58141bfb8f7c575431c1023d1"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"78a8ea65ed2a2b7056870d831433558d38733824","unresolved":false,"context_lines":[{"line_number":920,"context_line":"        return self.admin_clients(\"nova\").aggregates.list()"},{"line_number":921,"context_line":""},{"line_number":922,"context_line":"    @atomic.action_timer(\"nova.get_aggregate\")"},{"line_number":923,"context_line":"    def _get_aggregate(self, aggregate):"},{"line_number":924,"context_line":"        \"\"\"Get details of aggregate."},{"line_number":925,"context_line":""},{"line_number":926,"context_line":"        :param aggregate: The nova-aggregate ID to list"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_9becf52a","line":923,"updated":"2016-02-16 11:19:36.000000000","message":"You have added this atomic but not used it in scenario. Please use it or add in other patch. Personally I\u0027d prefer second case.","commit_id":"f6c97147b9692ce58141bfb8f7c575431c1023d1"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"78a8ea65ed2a2b7056870d831433558d38733824","unresolved":false,"context_lines":[{"line_number":930,"context_line":""},{"line_number":931,"context_line":"    @atomic.action_timer(\"nova.list_availbility_zones\")"},{"line_number":932,"context_line":"    def _list_availability_zones(self, detailed\u003dTrue):"},{"line_number":933,"context_line":"        \"\"\"return all nova aggregates details"},{"line_number":934,"context_line":""},{"line_number":935,"context_line":"        :param detailed: True if the availability-zone listing should contain"},{"line_number":936,"context_line":"                         detailed information"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_9bbd15da","line":933,"updated":"2016-02-16 11:19:36.000000000","message":"List of all availability zones","commit_id":"f6c97147b9692ce58141bfb8f7c575431c1023d1"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"78a8ea65ed2a2b7056870d831433558d38733824","unresolved":false,"context_lines":[{"line_number":932,"context_line":"    def _list_availability_zones(self, detailed\u003dTrue):"},{"line_number":933,"context_line":"        \"\"\"return all nova aggregates details"},{"line_number":934,"context_line":""},{"line_number":935,"context_line":"        :param detailed: True if the availability-zone listing should contain"},{"line_number":936,"context_line":"                         detailed information"},{"line_number":937,"context_line":"        \"\"\""},{"line_number":938,"context_line":"        return self.admin_clients(\"nova\").availability_zones.list(detailed)"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_5b16edf1","line":935,"updated":"2016-02-16 11:19:36.000000000","message":"Please document parameter and return values in functions that you added","commit_id":"f6c97147b9692ce58141bfb8f7c575431c1023d1"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"78a8ea65ed2a2b7056870d831433558d38733824","unresolved":false,"context_lines":[{"line_number":939,"context_line":""},{"line_number":940,"context_line":"    @atomic.action_timer(\"nova.list_hosts\")"},{"line_number":941,"context_line":"    def _list_hosts(self, zone\u003dNone):"},{"line_number":942,"context_line":"        \"\"\"return all nova hosts details"},{"line_number":943,"context_line":""},{"line_number":944,"context_line":"        :param zone: List all hosts in the given nova availability-zone ID"},{"line_number":945,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_db9cbd5f","line":942,"updated":"2016-02-16 11:19:36.000000000","message":"List nova hosts","commit_id":"f6c97147b9692ce58141bfb8f7c575431c1023d1"}],"tests/unit/plugins/openstack/scenarios/nova/test_agents.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"e34454cdd1b66a8620f54a0f6802b3f15d4d6f15","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        scenario \u003d agents.NovaAgents()"},{"line_number":26,"context_line":"        scenario._list_agents \u003d mock.Mock()"},{"line_number":27,"context_line":"        scenario.list_agents(hypervisor\u003dNone)"},{"line_number":28,"context_line":"        scenario._list_agents.assert_called_once_with(None)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bae84128_d346364e","line":28,"updated":"2016-02-22 19:45:02.000000000","message":"Needs a test case to ensure that `hypervisor\u0027 is used.","commit_id":"d600609abd2b252d3284b8a65f9534b522a431ad"}],"tests/unit/plugins/openstack/scenarios/nova/test_availability_zones.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"e34454cdd1b66a8620f54a0f6802b3f15d4d6f15","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def test_list_availability_zones(self):"},{"line_number":25,"context_line":"        scenario \u003d availability_zones.NovaAvailabilityZones()"},{"line_number":26,"context_line":"        scenario._list_availability_zones \u003d mock.Mock()"},{"line_number":27,"context_line":"        scenario.list_availability_zones(detailed\u003dTrue)"},{"line_number":28,"context_line":"        scenario._list_availability_zones.assert_called_once_with(True)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bae84128_93678ee8","line":27,"updated":"2016-02-22 19:45:02.000000000","message":"Passing detailed\u003dFalse here will improve this test, since True is the default value.","commit_id":"d600609abd2b252d3284b8a65f9534b522a431ad"}],"tests/unit/plugins/openstack/scenarios/nova/test_hosts.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"e34454cdd1b66a8620f54a0f6802b3f15d4d6f15","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        scenario \u003d hosts.NovaHosts()"},{"line_number":26,"context_line":"        scenario._list_hosts \u003d mock.Mock()"},{"line_number":27,"context_line":"        scenario.list_hosts(zone\u003dNone)"},{"line_number":28,"context_line":"        scenario._list_hosts.assert_called_once_with(None)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bae84128_f3609ad1","line":28,"updated":"2016-02-22 19:45:02.000000000","message":"Need a test here to ensure that `zone\u0027 is used.","commit_id":"d600609abd2b252d3284b8a65f9534b522a431ad"}],"tests/unit/plugins/openstack/scenarios/nova/test_utils.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"e34454cdd1b66a8620f54a0f6802b3f15d4d6f15","unresolved":false,"context_lines":[{"line_number":880,"context_line":"        nova_scenario \u003d utils.NovaScenario()"},{"line_number":881,"context_line":"        self.admin_clients(\"nova\").agents.list.return_value \u003d \"agents_list\""},{"line_number":882,"context_line":"        result \u003d nova_scenario._list_agents(hypervisor\u003dNone)"},{"line_number":883,"context_line":"        self.assertEqual(\"agents_list\", result)"},{"line_number":884,"context_line":"        self.admin_clients(\"nova\").agents.list.assert_called_once_with(None)"},{"line_number":885,"context_line":"        self._test_atomic_action_timer(nova_scenario.atomic_actions(),"},{"line_number":886,"context_line":"                                       \"nova.list_agents\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"bae84128_737aca78","line":883,"updated":"2016-02-22 19:45:02.000000000","message":"The assignment of return_value is technically unnecessary. It doesn\u0027t hurt anything, so you can keep it if you want to, but I find this more economical and readable:\n\n    nova_scenario \u003d utils.NovaScenario()\n    self.assertEqual(\n        self.admin_clients(\"nova\").agents.list.return_value,\n        nova_scenario._list_agents(hypervisor\u003dNone))","commit_id":"d600609abd2b252d3284b8a65f9534b522a431ad"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"e34454cdd1b66a8620f54a0f6802b3f15d4d6f15","unresolved":false,"context_lines":[{"line_number":912,"context_line":"        self.admin_clients(\"nova\").hosts.list.return_value \u003d \"hosts_list\""},{"line_number":913,"context_line":"        result \u003d nova_scenario._list_hosts(zone\u003dNone)"},{"line_number":914,"context_line":"        self.assertEqual(\"hosts_list\", result)"},{"line_number":915,"context_line":"        self.admin_clients(\"nova\").hosts.list.assert_called_once_with(None)"},{"line_number":916,"context_line":"        self._test_atomic_action_timer(nova_scenario.atomic_actions(),"},{"line_number":917,"context_line":"                                       \"nova.list_hosts\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"bae84128_73f12a01","line":915,"updated":"2016-02-22 19:45:02.000000000","message":"Need tests to ensure that `zone\u0027 and `hypervisor\u0027 above in test__list_agents() are used.","commit_id":"d600609abd2b252d3284b8a65f9534b522a431ad"}]}
