)]}'
{"rally-jobs/neutron.yaml":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"fedc32b4339896fed83459d88c2cdc0e26544ea2","unresolved":false,"context_lines":[{"line_number":662,"context_line":"            subnet: -1"},{"line_number":663,"context_line":"            port: -1"},{"line_number":664,"context_line":"        network: {}"},{"line_number":665,"context_line":"        networking_agents: {}"},{"line_number":666,"context_line":"      sla:"},{"line_number":667,"context_line":"        failure_rate:"},{"line_number":668,"context_line":"          max: 0"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_05529367","line":665,"range":{"start_line":665,"start_character":0,"end_line":665,"end_character":29},"updated":"2019-07-02 12:28:54.000000000","message":"Could remove this line if the context been defaulted.","commit_id":"42738f82aac26b4b4430e48a8508c3caeffcf77c"}],"rally_openstack/cfg/neutron.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"cdca53b67b8c6a28b2e5253cb8478d3a0ec13771","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                    \"Open vSwitch agent\","},{"line_number":36,"context_line":"                    \"Linux bridge agent\","},{"line_number":37,"context_line":"                ],"},{"line_number":38,"context_line":"                deprecated_group\u003d\"benchmark\","},{"line_number":39,"context_line":"                help\u003d\"Neutron L2 agent types to find hosts to bind\"),"},{"line_number":40,"context_line":"]}"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_acd19dfd","line":38,"updated":"2019-06-25 14:05:43.000000000","message":"Do you need this?  The code is using cfg.CONF.openstack...","commit_id":"11fb6565b6ee0fc98066f9eea520b79b2bcf8d7e"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"5e2628f76e38315fe1955e6365d8adb5ab85f4e7","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                    \"Open vSwitch agent\","},{"line_number":36,"context_line":"                    \"Linux bridge agent\","},{"line_number":37,"context_line":"                ],"},{"line_number":38,"context_line":"                deprecated_group\u003d\"benchmark\","},{"line_number":39,"context_line":"                help\u003d\"Neutron L2 agent types to find hosts to bind\"),"},{"line_number":40,"context_line":"]}"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_566e5e00","line":38,"in_reply_to":"9fb8cfa7_acd19dfd","updated":"2019-06-26 08:54:04.000000000","message":"Done","commit_id":"11fb6565b6ee0fc98066f9eea520b79b2bcf8d7e"}],"rally_openstack/contexts/network/networking_agents.py":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"fedc32b4339896fed83459d88c2cdc0e26544ea2","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def setup(self):"},{"line_number":37,"context_line":"        nc \u003d osclients.Clients(self.context[\"admin\"][\"credential\"]).neutron()"},{"line_number":38,"context_line":"        agents \u003d nc.list_agents()[\"agents\"]"},{"line_number":39,"context_line":"        self.context[\"networking_agents\"] \u003d agents"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def cleanup(self):"},{"line_number":42,"context_line":"        \"\"\"Neutron agents were not created by Rally, so nothing to do.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_4583abcb","line":39,"range":{"start_line":39,"start_character":8,"end_line":39,"end_character":41},"updated":"2019-07-02 12:28:54.000000000","message":"Is there a convention where to stuff data like this in self.context? I\u0027m bothered by that input parameters would be passed here if this context had input parameters.","commit_id":"42738f82aac26b4b4430e48a8508c3caeffcf77c"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"232debe1c8f4ceba709989d7c01c8e4bcaed8d8f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def setup(self):"},{"line_number":37,"context_line":"        nc \u003d osclients.Clients(self.context[\"admin\"][\"credential\"]).neutron()"},{"line_number":38,"context_line":"        agents \u003d nc.list_agents()[\"agents\"]"},{"line_number":39,"context_line":"        self.context[\"networking_agents\"] \u003d agents"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def cleanup(self):"},{"line_number":42,"context_line":"        \"\"\"Neutron agents were not created by Rally, so nothing to do.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_2adf5f3b","line":39,"range":{"start_line":39,"start_character":8,"end_line":39,"end_character":41},"in_reply_to":"9fb8cfa7_4583abcb","updated":"2019-07-02 14:59:17.000000000","message":"\u003e Is there a convention where to stuff data like this in self.context?\n\nThere is no strict convention, so using \"networking_agents\" looks good. Ideally, all these stuff will go under the \"openstack\" key someday but as for now, it looks ok.\n\n\u003e I\u0027m bothered by that input parameters would be passed here if this context had input parameters.\n\nIn case of passing other than the default parameters, we can use the same key to simplify usage of listed agents.","commit_id":"42738f82aac26b4b4430e48a8508c3caeffcf77c"}],"rally_openstack/scenarios/neutron/network.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c8727f4adb31c94abda530e12042945cfd1dbea6","unresolved":false,"context_lines":[{"line_number":542,"context_line":"        # successfully. Look at agent types used in the gate."},{"line_number":543,"context_line":"        l2_agent_types \u003d ("},{"line_number":544,"context_line":"            \"Open vSwitch agent\","},{"line_number":545,"context_line":"            \"Linux bridge agent\","},{"line_number":546,"context_line":"        )"},{"line_number":547,"context_line":"        for l2_agent_type in l2_agent_types:"},{"line_number":548,"context_line":"            agents \u003d self._list_agents("}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_f8ab4672","line":545,"updated":"2019-06-03 16:15:14.000000000","message":"I guess we can\u0027t import neutron_lib.constants :(","commit_id":"100518d1df2184aaede9cb7a551a683390a991ee"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"9c5bf2db8eecf0adffaa9d5b41eaacd90c7595be","unresolved":false,"context_lines":[{"line_number":542,"context_line":"        # successfully. Look at agent types used in the gate."},{"line_number":543,"context_line":"        l2_agent_types \u003d ("},{"line_number":544,"context_line":"            \"Open vSwitch agent\","},{"line_number":545,"context_line":"            \"Linux bridge agent\","},{"line_number":546,"context_line":"        )"},{"line_number":547,"context_line":"        for l2_agent_type in l2_agent_types:"},{"line_number":548,"context_line":"            agents \u003d self._list_agents("}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_5be36c06","line":545,"in_reply_to":"9fb8cfa7_f8ab4672","updated":"2019-06-03 16:57:01.000000000","message":"In tests I like to avoid importing neutron-lib to keep the tests fully independent.","commit_id":"100518d1df2184aaede9cb7a551a683390a991ee"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c8727f4adb31c94abda530e12042945cfd1dbea6","unresolved":false,"context_lines":[{"line_number":552,"context_line":"            )"},{"line_number":553,"context_line":"            if agents:"},{"line_number":554,"context_line":"                break"},{"line_number":555,"context_line":"        live_host \u003d agents[0][\"host\"]"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        tenant_id \u003d self.context[\"tenant\"][\"id\"]"},{"line_number":558,"context_line":"        for network in self.context[\"tenants\"][tenant_id][\"networks\"]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_7834364b","line":555,"updated":"2019-06-03 16:15:14.000000000","message":"Should probably fail/stop if \u0027not agents\u0027 else we\u0027ll get a TypeError possibly.","commit_id":"100518d1df2184aaede9cb7a551a683390a991ee"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"9c5bf2db8eecf0adffaa9d5b41eaacd90c7595be","unresolved":false,"context_lines":[{"line_number":552,"context_line":"            )"},{"line_number":553,"context_line":"            if agents:"},{"line_number":554,"context_line":"                break"},{"line_number":555,"context_line":"        live_host \u003d agents[0][\"host\"]"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        tenant_id \u003d self.context[\"tenant\"][\"id\"]"},{"line_number":558,"context_line":"        for network in self.context[\"tenants\"][tenant_id][\"networks\"]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_9bb6c4d9","line":555,"in_reply_to":"9fb8cfa7_7834364b","updated":"2019-06-03 16:57:01.000000000","message":"I improved the logs. Or do we want to skip the test instead? How do we skip in rally?","commit_id":"100518d1df2184aaede9cb7a551a683390a991ee"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c8727f4adb31c94abda530e12042945cfd1dbea6","unresolved":false,"context_lines":[{"line_number":565,"context_line":"            )"},{"line_number":566,"context_line":"            self._create_subnet("},{"line_number":567,"context_line":"                wrapped_network,"},{"line_number":568,"context_line":"                start_cidr\u003d\"2001:db8::/32\","},{"line_number":569,"context_line":"                subnet_create_args\u003d{},"},{"line_number":570,"context_line":"            )"},{"line_number":571,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_189bba72","line":568,"range":{"start_line":568,"start_character":39,"end_line":568,"end_character":41},"updated":"2019-06-03 16:15:14.000000000","message":"nit: s/64 since it\u0027s a more typical SLAAC subnet.  And if you do that might as well use 2001:db8:1:1::/64 or something.","commit_id":"100518d1df2184aaede9cb7a551a683390a991ee"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"9c5bf2db8eecf0adffaa9d5b41eaacd90c7595be","unresolved":false,"context_lines":[{"line_number":565,"context_line":"            )"},{"line_number":566,"context_line":"            self._create_subnet("},{"line_number":567,"context_line":"                wrapped_network,"},{"line_number":568,"context_line":"                start_cidr\u003d\"2001:db8::/32\","},{"line_number":569,"context_line":"                subnet_create_args\u003d{},"},{"line_number":570,"context_line":"            )"},{"line_number":571,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_9bba44dc","line":568,"range":{"start_line":568,"start_character":39,"end_line":568,"end_character":41},"in_reply_to":"9fb8cfa7_189bba72","updated":"2019-06-03 16:57:01.000000000","message":"Done","commit_id":"100518d1df2184aaede9cb7a551a683390a991ee"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"808e12e4401c1c12fb06557f294ef2ac7e3f71c8","unresolved":false,"context_lines":[{"line_number":556,"context_line":"            live_host \u003d agents[0][\"host\"]"},{"line_number":557,"context_line":"        except IndexError:"},{"line_number":558,"context_line":"            LOG.error(\"No live agent to bind (type OVS or LB) was found.\")"},{"line_number":559,"context_line":"            raise"},{"line_number":560,"context_line":""},{"line_number":561,"context_line":"        tenant_id \u003d self.context[\"tenant\"][\"id\"]"},{"line_number":562,"context_line":"        for network in self.context[\"tenants\"][tenant_id][\"networks\"]:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_d13bbd99","line":559,"updated":"2019-06-03 18:30:01.000000000","message":"I think this is Ok, but maybe you need to raise a more specific exception?  nova/servers.py has an example.  Someone more familiar with rally would have an answer perhaps.","commit_id":"5317fe501256f8d345eaeab9f52c145cda290f15"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"5fe0840f8c84de510a83b3632650d8e21d13ebb5","unresolved":false,"context_lines":[{"line_number":540,"context_line":""},{"line_number":541,"context_line":"        # NOTE(bence romsics): Find a host where we can expect to bind"},{"line_number":542,"context_line":"        # successfully. Look at agent types used in the gate."},{"line_number":543,"context_line":"        l2_agent_types \u003d ("},{"line_number":544,"context_line":"            \"Open vSwitch agent\","},{"line_number":545,"context_line":"            \"Linux bridge agent\","},{"line_number":546,"context_line":"        )"},{"line_number":547,"context_line":"        for l2_agent_type in l2_agent_types:"},{"line_number":548,"context_line":"            agents \u003d self._list_agents("},{"line_number":549,"context_line":"                admin_state_up\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_ea459171","line":546,"range":{"start_line":543,"start_character":0,"end_line":546,"end_character":9},"updated":"2019-06-04 21:00:48.000000000","message":"shouldn\u0027t this be somehow configurable? If someone would like to run this rally scenario against some other agent type it will not be possible now.","commit_id":"50df41ed10cbe81b2a16b299de71cd0a28c15d5d"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"78a6261b06955595e826828a31cff793a46cb4a8","unresolved":false,"context_lines":[{"line_number":540,"context_line":""},{"line_number":541,"context_line":"        # NOTE(bence romsics): Find a host where we can expect to bind"},{"line_number":542,"context_line":"        # successfully. Look at agent types used in the gate."},{"line_number":543,"context_line":"        l2_agent_types \u003d ("},{"line_number":544,"context_line":"            \"Open vSwitch agent\","},{"line_number":545,"context_line":"            \"Linux bridge agent\","},{"line_number":546,"context_line":"        )"},{"line_number":547,"context_line":"        for l2_agent_type in l2_agent_types:"},{"line_number":548,"context_line":"            agents \u003d self._list_agents("},{"line_number":549,"context_line":"                admin_state_up\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_f3ce1b5a","line":546,"range":{"start_line":543,"start_character":0,"end_line":546,"end_character":9},"in_reply_to":"9fb8cfa7_722e0593","updated":"2019-06-17 12:49:03.000000000","message":"Done","commit_id":"50df41ed10cbe81b2a16b299de71cd0a28c15d5d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"bdd926ddb52d760427413bd01a1d494226969ac5","unresolved":false,"context_lines":[{"line_number":540,"context_line":""},{"line_number":541,"context_line":"        # NOTE(bence romsics): Find a host where we can expect to bind"},{"line_number":542,"context_line":"        # successfully. Look at agent types used in the gate."},{"line_number":543,"context_line":"        l2_agent_types \u003d ("},{"line_number":544,"context_line":"            \"Open vSwitch agent\","},{"line_number":545,"context_line":"            \"Linux bridge agent\","},{"line_number":546,"context_line":"        )"},{"line_number":547,"context_line":"        for l2_agent_type in l2_agent_types:"},{"line_number":548,"context_line":"            agents \u003d self._list_agents("},{"line_number":549,"context_line":"                admin_state_up\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_722e0593","line":546,"range":{"start_line":543,"start_character":0,"end_line":546,"end_character":9},"in_reply_to":"9fb8cfa7_aa021808","updated":"2019-06-11 15:23:12.000000000","message":"https://opendev.org/openstack/rally-openstack/src/branch/master/rally_openstack/cfg/neutron.py should be a good place as I see, or am I missing something?","commit_id":"50df41ed10cbe81b2a16b299de71cd0a28c15d5d"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"37508141529a6dcb61b2f473453c5755c6d1bf4c","unresolved":false,"context_lines":[{"line_number":540,"context_line":""},{"line_number":541,"context_line":"        # NOTE(bence romsics): Find a host where we can expect to bind"},{"line_number":542,"context_line":"        # successfully. Look at agent types used in the gate."},{"line_number":543,"context_line":"        l2_agent_types \u003d ("},{"line_number":544,"context_line":"            \"Open vSwitch agent\","},{"line_number":545,"context_line":"            \"Linux bridge agent\","},{"line_number":546,"context_line":"        )"},{"line_number":547,"context_line":"        for l2_agent_type in l2_agent_types:"},{"line_number":548,"context_line":"            agents \u003d self._list_agents("},{"line_number":549,"context_line":"                admin_state_up\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_aa021808","line":546,"range":{"start_line":543,"start_character":0,"end_line":546,"end_character":9},"in_reply_to":"9fb8cfa7_ea459171","updated":"2019-06-06 08:21:15.000000000","message":"Rally has a config file. But at the moment that contains zero test-level configuration options.\n\nAlternatively I could find a host from nova\u0027s hypervisor list. Would that be better?","commit_id":"50df41ed10cbe81b2a16b299de71cd0a28c15d5d"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"2f56ff70ea44a93ce00890604c1823e6d3712405","unresolved":false,"context_lines":[{"line_number":521,"context_line":"@validation.add(\"required_services\","},{"line_number":522,"context_line":"                services\u003d[consts.Service.NEUTRON])"},{"line_number":523,"context_line":"@validation.add(\"required_contexts\", contexts\u003d[\"network\"])"},{"line_number":524,"context_line":"@validation.add(\"required_platform\", platform\u003d\"openstack\", users\u003dTrue)"},{"line_number":525,"context_line":"@scenario.configure(context\u003d{\"cleanup@openstack\": [\"neutron\"]},"},{"line_number":526,"context_line":"                    name\u003d\"NeutronNetworks.create_and_bind_ports\","},{"line_number":527,"context_line":"                    platform\u003d\"openstack\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_1fdf7b0d","line":524,"range":{"start_line":524,"start_character":16,"end_line":524,"end_character":69},"updated":"2019-06-27 14:53:51.000000000","message":"extend arguments with admin\u003dTrue, since you mentioned below that `# port bind needs admin role`","commit_id":"7e7251305cd90c10aed8d3d6464a01638318d29d"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"5861e06909fefb15c2fb5e91ad05dbb0e3b276ea","unresolved":false,"context_lines":[{"line_number":521,"context_line":"@validation.add(\"required_services\","},{"line_number":522,"context_line":"                services\u003d[consts.Service.NEUTRON])"},{"line_number":523,"context_line":"@validation.add(\"required_contexts\", contexts\u003d[\"network\"])"},{"line_number":524,"context_line":"@validation.add(\"required_platform\", platform\u003d\"openstack\", users\u003dTrue)"},{"line_number":525,"context_line":"@scenario.configure(context\u003d{\"cleanup@openstack\": [\"neutron\"]},"},{"line_number":526,"context_line":"                    name\u003d\"NeutronNetworks.create_and_bind_ports\","},{"line_number":527,"context_line":"                    platform\u003d\"openstack\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_8dc7b864","line":524,"range":{"start_line":524,"start_character":16,"end_line":524,"end_character":69},"in_reply_to":"9fb8cfa7_1fdf7b0d","updated":"2019-06-28 14:30:24.000000000","message":"Done","commit_id":"7e7251305cd90c10aed8d3d6464a01638318d29d"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"2f56ff70ea44a93ce00890604c1823e6d3712405","unresolved":false,"context_lines":[{"line_number":540,"context_line":"        :param ports_per_network: int, number of ports for one network"},{"line_number":541,"context_line":"        \"\"\""},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"        # NOTE(bence romsics): Find a host where we can expect to bind"},{"line_number":544,"context_line":"        # successfully. Look at agent types used in the gate."},{"line_number":545,"context_line":"        for l2_agent_type in CONF.openstack.neutron_bind_l2_agent_types:"},{"line_number":546,"context_line":"            agents \u003d self._list_agents("},{"line_number":547,"context_line":"                admin_state_up\u003dTrue,"},{"line_number":548,"context_line":"                agent_type\u003dl2_agent_type,"},{"line_number":549,"context_line":"                alive\u003dTrue,"},{"line_number":550,"context_line":"            )"},{"line_number":551,"context_line":"            if agents:"},{"line_number":552,"context_line":"                break"},{"line_number":553,"context_line":"        try:"},{"line_number":554,"context_line":"            live_host \u003d agents[0][\"host\"]"},{"line_number":555,"context_line":"        except IndexError:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_5fb65340","line":552,"range":{"start_line":543,"start_character":0,"end_line":552,"end_character":21},"updated":"2019-06-27 14:53:51.000000000","message":"I guess listing of the agents is not the primary goal of the scenario and you probably do not want to do it each time.\n\nIf yes, it would be nice to move this logic to context plugin.  An example of similar to existing_networks context - https://github.com/openstack/rally-openstack/blob/master/rally_openstack/contexts/network/existing_network.py . Use can add the new context as a default for this scenario plugin (by extending context argument at L524), so configuration of task yaml/json will not be changed.","commit_id":"7e7251305cd90c10aed8d3d6464a01638318d29d"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"5861e06909fefb15c2fb5e91ad05dbb0e3b276ea","unresolved":false,"context_lines":[{"line_number":540,"context_line":"        :param ports_per_network: int, number of ports for one network"},{"line_number":541,"context_line":"        \"\"\""},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"        # NOTE(bence romsics): Find a host where we can expect to bind"},{"line_number":544,"context_line":"        # successfully. Look at agent types used in the gate."},{"line_number":545,"context_line":"        for l2_agent_type in CONF.openstack.neutron_bind_l2_agent_types:"},{"line_number":546,"context_line":"            agents \u003d self._list_agents("},{"line_number":547,"context_line":"                admin_state_up\u003dTrue,"},{"line_number":548,"context_line":"                agent_type\u003dl2_agent_type,"},{"line_number":549,"context_line":"                alive\u003dTrue,"},{"line_number":550,"context_line":"            )"},{"line_number":551,"context_line":"            if agents:"},{"line_number":552,"context_line":"                break"},{"line_number":553,"context_line":"        try:"},{"line_number":554,"context_line":"            live_host \u003d agents[0][\"host\"]"},{"line_number":555,"context_line":"        except IndexError:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_c57024a7","line":552,"range":{"start_line":543,"start_character":0,"end_line":552,"end_character":21},"in_reply_to":"9fb8cfa7_5fb65340","updated":"2019-06-28 14:30:24.000000000","message":"I started doing this (still have tests failing/missing so not uploading that yet), and I\u0027m no sure if I see what we gain by the extra 100+ lines of code. Does a context call list_agents() fewer times? A context is setup() for each run(), isn\u0027t it? Am I missing something here? Maybe shall we cache the response in the context?\n\nI also could not figure yet how to add an extra default context. I guess you meant the context argument in L525, right? I guess the key should be the context name, but what should be the value for it?\n\nAnyway if we refactor the agent listing to a context we may want to pass the agent types from the yaml/json instead of the config option, so we actually may not want to make the context default.","commit_id":"7e7251305cd90c10aed8d3d6464a01638318d29d"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"2bbfbc673dc3c67975552544ed04f188f2cd91fd","unresolved":false,"context_lines":[{"line_number":540,"context_line":"        :param ports_per_network: int, number of ports for one network"},{"line_number":541,"context_line":"        \"\"\""},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"        # NOTE(bence romsics): Find a host where we can expect to bind"},{"line_number":544,"context_line":"        # successfully. Look at agent types used in the gate."},{"line_number":545,"context_line":"        for l2_agent_type in CONF.openstack.neutron_bind_l2_agent_types:"},{"line_number":546,"context_line":"            agents \u003d self._list_agents("},{"line_number":547,"context_line":"                admin_state_up\u003dTrue,"},{"line_number":548,"context_line":"                agent_type\u003dl2_agent_type,"},{"line_number":549,"context_line":"                alive\u003dTrue,"},{"line_number":550,"context_line":"            )"},{"line_number":551,"context_line":"            if agents:"},{"line_number":552,"context_line":"                break"},{"line_number":553,"context_line":"        try:"},{"line_number":554,"context_line":"            live_host \u003d agents[0][\"host\"]"},{"line_number":555,"context_line":"        except IndexError:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_992579b1","line":552,"range":{"start_line":543,"start_character":0,"end_line":552,"end_character":21},"in_reply_to":"9fb8cfa7_aae02f28","updated":"2019-07-03 10:19:38.000000000","message":"Ack and thanks for the example at the other comment.","commit_id":"7e7251305cd90c10aed8d3d6464a01638318d29d"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"544e0ff0b3e1e7449ba0211d4b368ffdb0fbcf38","unresolved":false,"context_lines":[{"line_number":540,"context_line":"        :param ports_per_network: int, number of ports for one network"},{"line_number":541,"context_line":"        \"\"\""},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"        # NOTE(bence romsics): Find a host where we can expect to bind"},{"line_number":544,"context_line":"        # successfully. Look at agent types used in the gate."},{"line_number":545,"context_line":"        for l2_agent_type in CONF.openstack.neutron_bind_l2_agent_types:"},{"line_number":546,"context_line":"            agents \u003d self._list_agents("},{"line_number":547,"context_line":"                admin_state_up\u003dTrue,"},{"line_number":548,"context_line":"                agent_type\u003dl2_agent_type,"},{"line_number":549,"context_line":"                alive\u003dTrue,"},{"line_number":550,"context_line":"            )"},{"line_number":551,"context_line":"            if agents:"},{"line_number":552,"context_line":"                break"},{"line_number":553,"context_line":"        try:"},{"line_number":554,"context_line":"            live_host \u003d agents[0][\"host\"]"},{"line_number":555,"context_line":"        except IndexError:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_aae02f28","line":552,"range":{"start_line":543,"start_character":0,"end_line":552,"end_character":21},"in_reply_to":"9fb8cfa7_c57024a7","updated":"2019-07-02 14:52:18.000000000","message":"\u003e Does a context call list_agents() fewer times? A context is setup() for each run(), isn\u0027t it? Am I missing something here? Maybe shall we cache the response in the context?\n\nThe context\u0027s setup method is called once before all scenario iteration.\n\n\u003e I also could not figure yet how to add an extra default context. I guess you meant the context argument in L525, right? I guess the key should be the context name, but what should be the value for it?\n\nright. the value is a configuration for the context. If the context doesn\u0027t require anything transmit just None.\n\n\u003e Anyway if we refactor the agent listing to a context we may want to pass the agent types from the yaml/json instead of the config option, so we actually may not want to make the context default.\n\nIf context is configured form task json/yaml, the default configuration (from L545) will be overridden.","commit_id":"7e7251305cd90c10aed8d3d6464a01638318d29d"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"fedc32b4339896fed83459d88c2cdc0e26544ea2","unresolved":false,"context_lines":[{"line_number":540,"context_line":"        :param ports_per_network: int, number of ports for one network"},{"line_number":541,"context_line":"        \"\"\""},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"        # NOTE(bence romsics): Find a host where we can expect to bind"},{"line_number":544,"context_line":"        # successfully. Look at agent types used in the gate."},{"line_number":545,"context_line":"        for l2_agent_type in CONF.openstack.neutron_bind_l2_agent_types:"},{"line_number":546,"context_line":"            agents \u003d self._list_agents("},{"line_number":547,"context_line":"                admin_state_up\u003dTrue,"},{"line_number":548,"context_line":"                agent_type\u003dl2_agent_type,"},{"line_number":549,"context_line":"                alive\u003dTrue,"},{"line_number":550,"context_line":"            )"},{"line_number":551,"context_line":"            if agents:"},{"line_number":552,"context_line":"                break"},{"line_number":553,"context_line":"        try:"},{"line_number":554,"context_line":"            live_host \u003d agents[0][\"host\"]"},{"line_number":555,"context_line":"        except IndexError:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_0524d30b","line":552,"range":{"start_line":543,"start_character":0,"end_line":552,"end_character":21},"in_reply_to":"9fb8cfa7_c57024a7","updated":"2019-07-02 12:28:54.000000000","message":"I managed to simplify the context plugin. I have a few open questions left about context plugins. I\u0027ll leave them on ps9.","commit_id":"7e7251305cd90c10aed8d3d6464a01638318d29d"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"2f56ff70ea44a93ce00890604c1823e6d3712405","unresolved":false,"context_lines":[{"line_number":553,"context_line":"        try:"},{"line_number":554,"context_line":"            live_host \u003d agents[0][\"host\"]"},{"line_number":555,"context_line":"        except IndexError:"},{"line_number":556,"context_line":"            LOG.error(\"No live agent to bind (type OVS or LB) was found.\")"},{"line_number":557,"context_line":"            raise"},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"        tenant_id \u003d self.context[\"tenant\"][\"id\"]"},{"line_number":560,"context_line":"        for network in self.context[\"tenants\"][tenant_id][\"networks\"]:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_7f70f740","line":557,"range":{"start_line":556,"start_character":12,"end_line":557,"end_character":17},"updated":"2019-06-27 14:53:51.000000000","message":"re-raising IndexError makes no-sense. Rally task executor will same it at DB and your user-friendly error will be lost at logs (and not be displayed at rally html reports).\n\nThe better way is just raising another exception(it can be Exception class or something like https://github.com/openstack/rally/blob/1.6.0/rally/exceptions.py#L136 ) with a message you are logging","commit_id":"7e7251305cd90c10aed8d3d6464a01638318d29d"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"5861e06909fefb15c2fb5e91ad05dbb0e3b276ea","unresolved":false,"context_lines":[{"line_number":553,"context_line":"        try:"},{"line_number":554,"context_line":"            live_host \u003d agents[0][\"host\"]"},{"line_number":555,"context_line":"        except IndexError:"},{"line_number":556,"context_line":"            LOG.error(\"No live agent to bind (type OVS or LB) was found.\")"},{"line_number":557,"context_line":"            raise"},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"        tenant_id \u003d self.context[\"tenant\"][\"id\"]"},{"line_number":560,"context_line":"        for network in self.context[\"tenants\"][tenant_id][\"networks\"]:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_4dba20c1","line":557,"range":{"start_line":556,"start_character":12,"end_line":557,"end_character":17},"in_reply_to":"9fb8cfa7_7f70f740","updated":"2019-06-28 14:30:24.000000000","message":"Done","commit_id":"7e7251305cd90c10aed8d3d6464a01638318d29d"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"2f56ff70ea44a93ce00890604c1823e6d3712405","unresolved":false,"context_lines":[{"line_number":560,"context_line":"        for network in self.context[\"tenants\"][tenant_id][\"networks\"]:"},{"line_number":561,"context_line":"            wrapped_network \u003d {\"network\": network}"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"            self._create_subnet("},{"line_number":564,"context_line":"                wrapped_network,"},{"line_number":565,"context_line":"                start_cidr\u003d\"10.2.0.0/24\","},{"line_number":566,"context_line":"                subnet_create_args\u003d{},"},{"line_number":567,"context_line":"            )"},{"line_number":568,"context_line":"            self._create_subnet("},{"line_number":569,"context_line":"                wrapped_network,"},{"line_number":570,"context_line":"                start_cidr\u003d\"2001:db8:1:1::/64\","},{"line_number":571,"context_line":"                subnet_create_args\u003d{},"},{"line_number":572,"context_line":"            )"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"            for i in range(ports_per_network):"},{"line_number":575,"context_line":"                port \u003d self._create_port(wrapped_network, port_create_args\u003d{})"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_5fc3b338","line":572,"range":{"start_line":563,"start_character":12,"end_line":572,"end_character":13},"updated":"2019-06-27 14:53:51.000000000","message":"should it be an option to create ipv4 or ipv6 based subnet? do we really need both of them","commit_id":"7e7251305cd90c10aed8d3d6464a01638318d29d"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"2bbfbc673dc3c67975552544ed04f188f2cd91fd","unresolved":false,"context_lines":[{"line_number":560,"context_line":"        for network in self.context[\"tenants\"][tenant_id][\"networks\"]:"},{"line_number":561,"context_line":"            wrapped_network \u003d {\"network\": network}"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"            self._create_subnet("},{"line_number":564,"context_line":"                wrapped_network,"},{"line_number":565,"context_line":"                start_cidr\u003d\"10.2.0.0/24\","},{"line_number":566,"context_line":"                subnet_create_args\u003d{},"},{"line_number":567,"context_line":"            )"},{"line_number":568,"context_line":"            self._create_subnet("},{"line_number":569,"context_line":"                wrapped_network,"},{"line_number":570,"context_line":"                start_cidr\u003d\"2001:db8:1:1::/64\","},{"line_number":571,"context_line":"                subnet_create_args\u003d{},"},{"line_number":572,"context_line":"            )"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"            for i in range(ports_per_network):"},{"line_number":575,"context_line":"                port \u003d self._create_port(wrapped_network, port_create_args\u003d{})"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_79f525ed","line":572,"range":{"start_line":563,"start_character":12,"end_line":572,"end_character":13},"in_reply_to":"9fb8cfa7_2aa75f0e","updated":"2019-07-03 10:19:38.000000000","message":"Improved the docstring.\n\nFor the start_cidr I don\u0027t want to be dense, but isn\u0027t it one of the points of network virtualization that if I create a network in this test then I can use any address without the slightest chance of collision?","commit_id":"7e7251305cd90c10aed8d3d6464a01638318d29d"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"5861e06909fefb15c2fb5e91ad05dbb0e3b276ea","unresolved":false,"context_lines":[{"line_number":560,"context_line":"        for network in self.context[\"tenants\"][tenant_id][\"networks\"]:"},{"line_number":561,"context_line":"            wrapped_network \u003d {\"network\": network}"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"            self._create_subnet("},{"line_number":564,"context_line":"                wrapped_network,"},{"line_number":565,"context_line":"                start_cidr\u003d\"10.2.0.0/24\","},{"line_number":566,"context_line":"                subnet_create_args\u003d{},"},{"line_number":567,"context_line":"            )"},{"line_number":568,"context_line":"            self._create_subnet("},{"line_number":569,"context_line":"                wrapped_network,"},{"line_number":570,"context_line":"                start_cidr\u003d\"2001:db8:1:1::/64\","},{"line_number":571,"context_line":"                subnet_create_args\u003d{},"},{"line_number":572,"context_line":"            )"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"            for i in range(ports_per_network):"},{"line_number":575,"context_line":"                port \u003d self._create_port(wrapped_network, port_create_args\u003d{})"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_ad415ca8","line":572,"range":{"start_line":563,"start_character":12,"end_line":572,"end_character":13},"in_reply_to":"9fb8cfa7_5fc3b338","updated":"2019-06-28 14:30:24.000000000","message":"In this scenario we want to measure a realistically complex setup - that\u0027s why I use dual stack networks.","commit_id":"7e7251305cd90c10aed8d3d6464a01638318d29d"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"544e0ff0b3e1e7449ba0211d4b368ffdb0fbcf38","unresolved":false,"context_lines":[{"line_number":560,"context_line":"        for network in self.context[\"tenants\"][tenant_id][\"networks\"]:"},{"line_number":561,"context_line":"            wrapped_network \u003d {\"network\": network}"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"            self._create_subnet("},{"line_number":564,"context_line":"                wrapped_network,"},{"line_number":565,"context_line":"                start_cidr\u003d\"10.2.0.0/24\","},{"line_number":566,"context_line":"                subnet_create_args\u003d{},"},{"line_number":567,"context_line":"            )"},{"line_number":568,"context_line":"            self._create_subnet("},{"line_number":569,"context_line":"                wrapped_network,"},{"line_number":570,"context_line":"                start_cidr\u003d\"2001:db8:1:1::/64\","},{"line_number":571,"context_line":"                subnet_create_args\u003d{},"},{"line_number":572,"context_line":"            )"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"            for i in range(ports_per_network):"},{"line_number":575,"context_line":"                port \u003d self._create_port(wrapped_network, port_create_args\u003d{})"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_2aa75f0e","line":572,"range":{"start_line":563,"start_character":12,"end_line":572,"end_character":13},"in_reply_to":"9fb8cfa7_ad415ca8","updated":"2019-07-02 14:52:18.000000000","message":"ok, but anyway it would be nice to make start_cidr configurable and mention these actions at scenario docstring.","commit_id":"7e7251305cd90c10aed8d3d6464a01638318d29d"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"2f56ff70ea44a93ce00890604c1823e6d3712405","unresolved":false,"context_lines":[{"line_number":578,"context_line":"                    port,"},{"line_number":579,"context_line":"                    port_update_args\u003d{"},{"line_number":580,"context_line":"                        \"device_owner\": \"compute:nova\","},{"line_number":581,"context_line":"                        \"device_id\": \"ba805478-85ff-11e9-a2e4-2b8dea218fc8\","},{"line_number":582,"context_line":"                        \"binding:host_id\": live_host,"},{"line_number":583,"context_line":"                    },"},{"line_number":584,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_ffe707e2","line":581,"range":{"start_line":581,"start_character":37,"end_line":581,"end_character":75},"updated":"2019-06-27 14:53:51.000000000","message":"What should we pass here or just random stuff?","commit_id":"7e7251305cd90c10aed8d3d6464a01638318d29d"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"5861e06909fefb15c2fb5e91ad05dbb0e3b276ea","unresolved":false,"context_lines":[{"line_number":578,"context_line":"                    port,"},{"line_number":579,"context_line":"                    port_update_args\u003d{"},{"line_number":580,"context_line":"                        \"device_owner\": \"compute:nova\","},{"line_number":581,"context_line":"                        \"device_id\": \"ba805478-85ff-11e9-a2e4-2b8dea218fc8\","},{"line_number":582,"context_line":"                        \"binding:host_id\": live_host,"},{"line_number":583,"context_line":"                    },"},{"line_number":584,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_4d7b00f4","line":581,"range":{"start_line":581,"start_character":37,"end_line":581,"end_character":75},"in_reply_to":"9fb8cfa7_ffe707e2","updated":"2019-06-28 14:30:24.000000000","message":"An arbitrary UUID. But the unit test needs to know what to expect.","commit_id":"7e7251305cd90c10aed8d3d6464a01638318d29d"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"fedc32b4339896fed83459d88c2cdc0e26544ea2","unresolved":false,"context_lines":[{"line_number":519,"context_line":"                integer_only\u003dTrue)"},{"line_number":520,"context_line":"@validation.add(\"required_services\","},{"line_number":521,"context_line":"                services\u003d[consts.Service.NEUTRON])"},{"line_number":522,"context_line":"@validation.add(\"required_contexts\", contexts\u003d[\"network\", \"networking_agents\"])"},{"line_number":523,"context_line":"@validation.add(\"required_platform\", platform\u003d\"openstack\","},{"line_number":524,"context_line":"                users\u003dTrue, admin\u003dTrue)"},{"line_number":525,"context_line":"@scenario.configure(context\u003d{\"cleanup@openstack\": [\"neutron\"]},"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_e56dff31","line":522,"range":{"start_line":522,"start_character":59,"end_line":522,"end_character":76},"updated":"2019-07-02 12:28:54.000000000","message":"How do I add this context as a default context to this scenario?","commit_id":"42738f82aac26b4b4430e48a8508c3caeffcf77c"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"2bbfbc673dc3c67975552544ed04f188f2cd91fd","unresolved":false,"context_lines":[{"line_number":519,"context_line":"                integer_only\u003dTrue)"},{"line_number":520,"context_line":"@validation.add(\"required_services\","},{"line_number":521,"context_line":"                services\u003d[consts.Service.NEUTRON])"},{"line_number":522,"context_line":"@validation.add(\"required_contexts\", contexts\u003d[\"network\", \"networking_agents\"])"},{"line_number":523,"context_line":"@validation.add(\"required_platform\", platform\u003d\"openstack\","},{"line_number":524,"context_line":"                users\u003dTrue, admin\u003dTrue)"},{"line_number":525,"context_line":"@scenario.configure(context\u003d{\"cleanup@openstack\": [\"neutron\"]},"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_5906211f","line":522,"range":{"start_line":522,"start_character":59,"end_line":522,"end_character":76},"in_reply_to":"9fb8cfa7_2ab8bfe3","updated":"2019-07-03 10:19:38.000000000","message":"Ahh, now I understand the schema validation error message I got when I tried [] as the value for key \"networking_agents\". Thanks.","commit_id":"42738f82aac26b4b4430e48a8508c3caeffcf77c"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"d3104487d658e24b54541c5def36c711f6aabb74","unresolved":false,"context_lines":[{"line_number":519,"context_line":"                integer_only\u003dTrue)"},{"line_number":520,"context_line":"@validation.add(\"required_services\","},{"line_number":521,"context_line":"                services\u003d[consts.Service.NEUTRON])"},{"line_number":522,"context_line":"@validation.add(\"required_contexts\", contexts\u003d[\"network\", \"networking_agents\"])"},{"line_number":523,"context_line":"@validation.add(\"required_platform\", platform\u003d\"openstack\","},{"line_number":524,"context_line":"                users\u003dTrue, admin\u003dTrue)"},{"line_number":525,"context_line":"@scenario.configure(context\u003d{\"cleanup@openstack\": [\"neutron\"]},"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_dc475f4c","line":522,"range":{"start_line":522,"start_character":59,"end_line":522,"end_character":76},"in_reply_to":"9fb8cfa7_5906211f","updated":"2019-07-03 10:24:20.000000000","message":"Hmm, even with this addition I get required_context validation errors if I try to to delete these contexts from the templates. I don\u0027t understand why.","commit_id":"42738f82aac26b4b4430e48a8508c3caeffcf77c"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"ee918d67160729296221ed3dbb12deb5e6ed366e","unresolved":false,"context_lines":[{"line_number":519,"context_line":"                integer_only\u003dTrue)"},{"line_number":520,"context_line":"@validation.add(\"required_services\","},{"line_number":521,"context_line":"                services\u003d[consts.Service.NEUTRON])"},{"line_number":522,"context_line":"@validation.add(\"required_contexts\", contexts\u003d[\"network\", \"networking_agents\"])"},{"line_number":523,"context_line":"@validation.add(\"required_platform\", platform\u003d\"openstack\","},{"line_number":524,"context_line":"                users\u003dTrue, admin\u003dTrue)"},{"line_number":525,"context_line":"@scenario.configure(context\u003d{\"cleanup@openstack\": [\"neutron\"]},"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_8a3bcf36","line":522,"range":{"start_line":522,"start_character":59,"end_line":522,"end_character":76},"in_reply_to":"9fb8cfa7_dc475f4c","updated":"2019-07-05 12:13:31.000000000","message":"`required_contexts` validator doesn\u0027t check default contexts[*] :( Since this should be changed in the separate repository and wait for new rally release, I prefer to do not block your change.\n\nTo workaround current behavior, you can remove usage of`required_contexts` validator since actually no user input is required.\n\n[*] - https://github.com/openstack/rally/blob/1.6.0/rally/plugins/common/validators.py#L326","commit_id":"42738f82aac26b4b4430e48a8508c3caeffcf77c"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"232debe1c8f4ceba709989d7c01c8e4bcaed8d8f","unresolved":false,"context_lines":[{"line_number":519,"context_line":"                integer_only\u003dTrue)"},{"line_number":520,"context_line":"@validation.add(\"required_services\","},{"line_number":521,"context_line":"                services\u003d[consts.Service.NEUTRON])"},{"line_number":522,"context_line":"@validation.add(\"required_contexts\", contexts\u003d[\"network\", \"networking_agents\"])"},{"line_number":523,"context_line":"@validation.add(\"required_platform\", platform\u003d\"openstack\","},{"line_number":524,"context_line":"                users\u003dTrue, admin\u003dTrue)"},{"line_number":525,"context_line":"@scenario.configure(context\u003d{\"cleanup@openstack\": [\"neutron\"]},"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_2ab8bfe3","line":522,"range":{"start_line":522,"start_character":59,"end_line":522,"end_character":76},"in_reply_to":"9fb8cfa7_e56dff31","updated":"2019-07-02 14:59:17.000000000","message":"something like\n\n    context\u003d{\"cleanup@openstack\": [\"neutron\"], \"networking_agents\": {}, \"network\": {}}\n\nfor L525","commit_id":"42738f82aac26b4b4430e48a8508c3caeffcf77c"}],"samples/tasks/scenarios/neutron/create-and-bind-ports.json":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"fedc32b4339896fed83459d88c2cdc0e26544ea2","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                    }"},{"line_number":24,"context_line":"                },"},{"line_number":25,"context_line":"                \"network\": {},"},{"line_number":26,"context_line":"                \"networking_agents\": {}"},{"line_number":27,"context_line":"            },"},{"line_number":28,"context_line":"            \"sla\": {"},{"line_number":29,"context_line":"                \"failure_rate\": {"}],"source_content_type":"application/json","patch_set":9,"id":"9fb8cfa7_c5479ba2","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":39},"updated":"2019-07-02 12:28:54.000000000","message":"Could remove this line if the context been defaulted.","commit_id":"42738f82aac26b4b4430e48a8508c3caeffcf77c"}],"samples/tasks/scenarios/neutron/create-and-bind-ports.yaml":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"fedc32b4339896fed83459d88c2cdc0e26544ea2","unresolved":false,"context_lines":[{"line_number":19,"context_line":"            subnet: -1"},{"line_number":20,"context_line":"            port: -1"},{"line_number":21,"context_line":"        network: {}"},{"line_number":22,"context_line":"        networking_agents: {}"},{"line_number":23,"context_line":"      sla:"},{"line_number":24,"context_line":"        failure_rate:"},{"line_number":25,"context_line":"          max: 0"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_85cbe31b","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":29},"updated":"2019-07-02 12:28:54.000000000","message":"Could remove this line if the context been defaulted.","commit_id":"42738f82aac26b4b4430e48a8508c3caeffcf77c"}]}
