)]}'
{"rally/plugins/openstack/scenarios/nova/hosts.py":[{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"bc356ce759471e762efce78e21e6daa9e6b913fb","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        with atomic.ActionTimer(self, \"nova.get_%s_hosts\" % len(hostnames)):"},{"line_number":63,"context_line":"            for hostname in hostnames:"},{"line_number":64,"context_line":"                self._get_host(hostname, atomic_action\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bff0334d_0441e439","line":64,"range":{"start_line":64,"start_character":41,"end_line":64,"end_character":60},"updated":"2017-04-07 07:10:51.000000000","message":"We have updated atomic action to new format. Could you remove atomic_action arguments? It is not required now.","commit_id":"024c68ed88a7f0fe1765b20aebdcbd6bfd5f1afe"},{"author":{"_account_id":23435,"name":"zhangzhihui","email":"zhangzh.fnst@cn.fujitsu.com","username":"zhangzhang"},"change_message_id":"cfff9b5bfb77e953b1d5c147c7f37032cf98da93","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        with atomic.ActionTimer(self, \"nova.get_%s_hosts\" % len(hostnames)):"},{"line_number":63,"context_line":"            for hostname in hostnames:"},{"line_number":64,"context_line":"                self._get_host(hostname, atomic_action\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bff0334d_bff001cb","line":64,"range":{"start_line":64,"start_character":41,"end_line":64,"end_character":60},"in_reply_to":"bff0334d_0441e439","updated":"2017-04-07 07:43:31.000000000","message":"Done","commit_id":"024c68ed88a7f0fe1765b20aebdcbd6bfd5f1afe"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"777cc334ee3ff73990a8853c562ca8b91118506d","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                     None (default value) means list hosts in all"},{"line_number":55,"context_line":"                     availability-zones"},{"line_number":56,"context_line":"        \"\"\""},{"line_number":57,"context_line":"        hosts \u003d self._list_hosts(zone)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        hostnames \u003d [host.host_name for host in hosts"},{"line_number":60,"context_line":"                     if host.service \u003d\u003d \"compute\"]"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        with atomic.ActionTimer(self, \"nova.get_%s_hosts\" % len(hostnames)):"},{"line_number":63,"context_line":"            for hostname in hostnames:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_e054a5cc","line":60,"range":{"start_line":57,"start_character":8,"end_line":60,"end_character":50},"updated":"2017-04-07 10:01:10.000000000","message":"let\u0027s extend list_hosts with \"service\" argument and make filtering there.","commit_id":"c3de57d18baa2f24bb83a577ce3fa2253a7470b2"},{"author":{"_account_id":23435,"name":"zhangzhihui","email":"zhangzh.fnst@cn.fujitsu.com","username":"zhangzhang"},"change_message_id":"b76c051599a35bb6f6da1f1abea5eab4108ba0a3","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                     None (default value) means list hosts in all"},{"line_number":55,"context_line":"                     availability-zones"},{"line_number":56,"context_line":"        \"\"\""},{"line_number":57,"context_line":"        hosts \u003d self._list_hosts(zone)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        hostnames \u003d [host.host_name for host in hosts"},{"line_number":60,"context_line":"                     if host.service \u003d\u003d \"compute\"]"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        with atomic.ActionTimer(self, \"nova.get_%s_hosts\" % len(hostnames)):"},{"line_number":63,"context_line":"            for hostname in hostnames:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_1a3c91e0","line":60,"range":{"start_line":57,"start_character":8,"end_line":60,"end_character":50},"in_reply_to":"bff0334d_e054a5cc","updated":"2017-04-07 12:11:29.000000000","message":"Done","commit_id":"c3de57d18baa2f24bb83a577ce3fa2253a7470b2"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"777cc334ee3ff73990a8853c562ca8b91118506d","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        hostnames \u003d [host.host_name for host in hosts"},{"line_number":60,"context_line":"                     if host.service \u003d\u003d \"compute\"]"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        with atomic.ActionTimer(self, \"nova.get_%s_hosts\" % len(hostnames)):"},{"line_number":63,"context_line":"            for hostname in hostnames:"},{"line_number":64,"context_line":"                self._get_host(hostname)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_c0b3e14c","line":62,"range":{"start_line":62,"start_character":8,"end_line":62,"end_character":76},"updated":"2017-04-07 10:01:10.000000000","message":"let\u0027s remove that line. atomics of _get_hosts should be merged automatically now and displayed like a single atomic with the name `get_host (x5)` (where is 5 is a number of original atomics)","commit_id":"c3de57d18baa2f24bb83a577ce3fa2253a7470b2"},{"author":{"_account_id":23435,"name":"zhangzhihui","email":"zhangzh.fnst@cn.fujitsu.com","username":"zhangzhang"},"change_message_id":"b76c051599a35bb6f6da1f1abea5eab4108ba0a3","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        hostnames \u003d [host.host_name for host in hosts"},{"line_number":60,"context_line":"                     if host.service \u003d\u003d \"compute\"]"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        with atomic.ActionTimer(self, \"nova.get_%s_hosts\" % len(hostnames)):"},{"line_number":63,"context_line":"            for hostname in hostnames:"},{"line_number":64,"context_line":"                self._get_host(hostname)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_fa3e8dd8","line":62,"range":{"start_line":62,"start_character":8,"end_line":62,"end_character":76},"in_reply_to":"bff0334d_c0b3e14c","updated":"2017-04-07 12:11:29.000000000","message":"Done","commit_id":"c3de57d18baa2f24bb83a577ce3fa2253a7470b2"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"81bb3dad6da608d984ac942a8540347565aa4b61","unresolved":false,"context_lines":[{"line_number":44,"context_line":"@scenario.configure(name\u003d\"NovaHosts.list_and_get_hosts\")"},{"line_number":45,"context_line":"class ListAndGetHosts(utils.NovaScenario):"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def run(self, service, zone\u003dNone):"},{"line_number":48,"context_line":"        \"\"\"List all nova hosts, and get detailed information for compute hosts."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        Measure the \"nova host-describe\" command performance."}],"source_content_type":"text/x-python","patch_set":3,"id":"bff0334d_bdaa3fcf","line":47,"range":{"start_line":47,"start_character":18,"end_line":47,"end_character":27},"updated":"2017-04-07 12:17:49.000000000","message":"You misunderstood my comment :( do not add new argument to run method, just extend self._list_hosts method to accept zone and service arguments and move L59-60 there","commit_id":"b99e14f535d60541595f226c20fce3e995ad6fc6"}],"tests/unit/plugins/openstack/scenarios/nova/test_hosts.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"777cc334ee3ff73990a8853c562ca8b91118506d","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        fake_hosts \u003d [mock.Mock(host_name\u003d\"fake_hostname\","},{"line_number":32,"context_line":"                                service\u003d\"compute\")]"},{"line_number":33,"context_line":"        scenario \u003d hosts.ListAndGetHosts()"},{"line_number":34,"context_line":"        scenario._list_hosts \u003d mock.MagicMock("},{"line_number":35,"context_line":"            return_value\u003dfake_hosts)"},{"line_number":36,"context_line":"        scenario._get_host \u003d mock.MagicMock()"},{"line_number":37,"context_line":"        scenario.run(zone\u003d\"nova\")"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        scenario._list_hosts.assert_called_once_with(\"nova\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_20e72d15","line":36,"range":{"start_line":34,"start_character":9,"end_line":36,"end_character":45},"updated":"2017-04-07 10:01:10.000000000","message":"to avoid cases when a wrong argument is transmitted, let\u0027s use create_autospec method:\n\n     scenario._list_hosts \u003d mock.create_autospec(scenario._list_hosts, return_value\u003dfake_hosts)\n\nIt will create a mock object which accepts the same arguments as an original object.","commit_id":"c3de57d18baa2f24bb83a577ce3fa2253a7470b2"},{"author":{"_account_id":23435,"name":"zhangzhihui","email":"zhangzh.fnst@cn.fujitsu.com","username":"zhangzhang"},"change_message_id":"b76c051599a35bb6f6da1f1abea5eab4108ba0a3","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        fake_hosts \u003d [mock.Mock(host_name\u003d\"fake_hostname\","},{"line_number":32,"context_line":"                                service\u003d\"compute\")]"},{"line_number":33,"context_line":"        scenario \u003d hosts.ListAndGetHosts()"},{"line_number":34,"context_line":"        scenario._list_hosts \u003d mock.MagicMock("},{"line_number":35,"context_line":"            return_value\u003dfake_hosts)"},{"line_number":36,"context_line":"        scenario._get_host \u003d mock.MagicMock()"},{"line_number":37,"context_line":"        scenario.run(zone\u003d\"nova\")"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        scenario._list_hosts.assert_called_once_with(\"nova\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_9a2f81a0","line":36,"range":{"start_line":34,"start_character":9,"end_line":36,"end_character":45},"in_reply_to":"bff0334d_20e72d15","updated":"2017-04-07 12:11:29.000000000","message":"Done","commit_id":"c3de57d18baa2f24bb83a577ce3fa2253a7470b2"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"7d102dd7d0c241026c8b3eec6485db82d5acfb02","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        fake_hosts \u003d [mock.Mock(host_name\u003d\"fake_hostname\","},{"line_number":32,"context_line":"                                service\u003d\"compute\")]"},{"line_number":33,"context_line":"        scenario \u003d hosts.ListAndGetHosts()"},{"line_number":34,"context_line":"        scenario._list_hosts \u003d mock.MagicMock("},{"line_number":35,"context_line":"            return_value\u003dfake_hosts)"},{"line_number":36,"context_line":"        scenario._get_host \u003d mock.MagicMock()"},{"line_number":37,"context_line":"        scenario.run(zone\u003d\"nova\")"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        scenario._list_hosts.assert_called_once_with(\"nova\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_4087d110","line":36,"range":{"start_line":34,"start_character":9,"end_line":36,"end_character":45},"in_reply_to":"bff0334d_20e72d15","updated":"2017-04-07 10:03:41.000000000","message":"it can be done in separate patch","commit_id":"c3de57d18baa2f24bb83a577ce3fa2253a7470b2"}]}
