)]}'
{".zuul.yaml":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"41bd8ea91d99490147490489dbcad6b0d4a59304","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        Perform setup for Neutron tempest tests in multinode with DVR scenario"},{"line_number":196,"context_line":"    roles:"},{"line_number":197,"context_line":"      - zuul: openstack-dev/devstack"},{"line_number":198,"context_line":"    required-projects:"},{"line_number":199,"context_line":"      - openstack-infra/devstack-gate"},{"line_number":200,"context_line":"      - openstack/neutron"},{"line_number":201,"context_line":"      - openstack/neutron-tempest-plugin"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3f79a3b5_b00973dc","line":198,"updated":"2018-12-12 16:58:42.000000000","message":"For a \"normal\" project you\u0027d need to add something like\n\n- openstack/skydive\n\nhere, but not sure whether/how this can work with github.","commit_id":"cc42ecb4047621961d1497946bf00402ef9aadfb"}],"/COMMIT_MSG":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7642595fd6bec8f9369999ae7a212c4d446a4884","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Assaf Muller \u003camuller@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-12-19 07:59:36 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Add a Skydive based DVR-multinode test"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Skydive [1] is an open source network topology and protocols"},{"line_number":10,"context_line":"analyzer that gives you a comprehensive way to understand"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"3f79a3b5_42da111c","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":5},"updated":"2018-12-19 16:12:51.000000000","message":"On your next update you can remove the WIP I think this is far enough along now.","commit_id":"f50b4bb68d9ab7442e716f8722875d19af0d5168"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"eedfb36f756e8060ec516eec1bac749454945923","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Assaf Muller \u003camuller@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-12-19 07:59:36 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Add a Skydive based DVR-multinode test"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Skydive [1] is an open source network topology and protocols"},{"line_number":10,"context_line":"analyzer that gives you a comprehensive way to understand"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"3f79a3b5_6bafe97e","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":5},"in_reply_to":"3f79a3b5_42da111c","updated":"2018-12-19 16:51:10.000000000","message":"I just want to wait until the Skydive devstack plugin supports install-from-release, at which I\u0027ll be happy with this patch. I don\u0027t think we should merge until that happens, it\u0027ll just introduce more CI instability (Skydive make install failed today and yesterday, for example).","commit_id":"f50b4bb68d9ab7442e716f8722875d19af0d5168"}],"neutron_tempest_plugin/config.py":[{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"417eba2ee5eed4456ca9942a11ee0f91729e86f2","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                    \u0027tests.\u0027),"},{"line_number":94,"context_line":"    cfg.StrOpt(\u0027skydive_connection\u0027,"},{"line_number":95,"context_line":"               default\u003dNone,"},{"line_number":96,"context_line":"               help\u003d\u0027The connection string to Skydive if it is installed?\u0027),"},{"line_number":97,"context_line":"]"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"# TODO(amuller): Redo configuration options registration as part of the planned"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_f6e1ffcf","line":96,"range":{"start_line":96,"start_character":72,"end_line":96,"end_character":73},"updated":"2018-12-14 05:05:16.000000000","message":"minor nit: ? might not be required","commit_id":"68b87f442bc3c342c494c3205ac7b88c784b8007"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"69d2219abeb31d51814ca7c77022ea8c03c54638","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                    \u0027tests.\u0027),"},{"line_number":94,"context_line":"    cfg.StrOpt(\u0027skydive_connection\u0027,"},{"line_number":95,"context_line":"               default\u003dNone,"},{"line_number":96,"context_line":"               help\u003d\u0027The connection string to Skydive if it is installed?\u0027),"},{"line_number":97,"context_line":"]"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"# TODO(amuller): Redo configuration options registration as part of the planned"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_4182254d","line":96,"range":{"start_line":96,"start_character":72,"end_line":96,"end_character":73},"in_reply_to":"3f79a3b5_f6e1ffcf","updated":"2018-12-18 19:42:52.000000000","message":"Done","commit_id":"68b87f442bc3c342c494c3205ac7b88c784b8007"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d2a4928d2c45701df576c56772aa5798d7fb586c","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                    \u0027tests.\u0027),"},{"line_number":94,"context_line":"    cfg.StrOpt(\u0027skydive_connection\u0027,"},{"line_number":95,"context_line":"               default\u003dNone,"},{"line_number":96,"context_line":"               help\u003d\u0027The connection string to Skydive if it is installed\u0027),"},{"line_number":97,"context_line":"]"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"# TODO(amuller): Redo configuration options registration as part of the planned"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_012bcd31","line":96,"updated":"2018-12-18 20:33:07.000000000","message":"nit: missing trailing period","commit_id":"d0980358c6befbbf9f3b26fee105aa46c940f24e"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"d7cd722a57655a3a11ca7cc6e87120cefc3604a6","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                    \u0027tests.\u0027),"},{"line_number":94,"context_line":"    cfg.StrOpt(\u0027skydive_connection\u0027,"},{"line_number":95,"context_line":"               default\u003dNone,"},{"line_number":96,"context_line":"               help\u003d\u0027The connection string to Skydive if it is installed\u0027),"},{"line_number":97,"context_line":"]"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"# TODO(amuller): Redo configuration options registration as part of the planned"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_e47b3f7a","line":96,"in_reply_to":"3f79a3b5_012bcd31","updated":"2018-12-18 20:41:57.000000000","message":"Done","commit_id":"d0980358c6befbbf9f3b26fee105aa46c940f24e"}],"neutron_tempest_plugin/scenario/base.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d2a4928d2c45701df576c56772aa5798d7fb586c","unresolved":false,"context_lines":[{"line_number":376,"context_line":"    def list_availability_zones(self):"},{"line_number":377,"context_line":"        # List of availability zones"},{"line_number":378,"context_line":"        return self.os_admin.az_client.\\"},{"line_number":379,"context_line":"            list_availability_zones()[\u0027availabilityZoneInfo\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_a46307e0","line":379,"updated":"2018-12-18 20:33:07.000000000","message":"It was done in two lines originally to not use a \\ :p","commit_id":"d0980358c6befbbf9f3b26fee105aa46c940f24e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"a0f9efc390680ae32e374b3732026129d83ddfb8","unresolved":false,"context_lines":[{"line_number":376,"context_line":"    def list_availability_zones(self):"},{"line_number":377,"context_line":"        # List of availability zones"},{"line_number":378,"context_line":"        return self.os_admin.az_client.\\"},{"line_number":379,"context_line":"            list_availability_zones()[\u0027availabilityZoneInfo\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_553bbbc4","line":379,"in_reply_to":"3f79a3b5_848ccb81","updated":"2018-12-18 23:09:14.000000000","message":"https://docs.openstack.org/hacking/latest/user/hacking.html\n\n* It is preferred to wrap long lines in parentheses and not a backslash for line continuation.\n\n:p","commit_id":"d0980358c6befbbf9f3b26fee105aa46c940f24e"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"d7cd722a57655a3a11ca7cc6e87120cefc3604a6","unresolved":false,"context_lines":[{"line_number":376,"context_line":"    def list_availability_zones(self):"},{"line_number":377,"context_line":"        # List of availability zones"},{"line_number":378,"context_line":"        return self.os_admin.az_client.\\"},{"line_number":379,"context_line":"            list_availability_zones()[\u0027availabilityZoneInfo\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_848ccb81","line":379,"in_reply_to":"3f79a3b5_a46307e0","updated":"2018-12-18 20:41:57.000000000","message":"Yeah well, now I wrote the code, and I prefer a slash :)","commit_id":"d0980358c6befbbf9f3b26fee105aa46c940f24e"}],"neutron_tempest_plugin/scenario/test_flows.py":[{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"88c20b7da32c10b1bdf432ac6d23ea336474be56","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        server_id \u003d self.server[\u0027server\u0027][\u0027id\u0027]"},{"line_number":62,"context_line":"        server_host \u003d self.os_admin.servers_client.show_server("},{"line_number":63,"context_line":"            server_id)[\u0027server\u0027][\u0027OS-EXT-SRV-ATTR:host\u0027]"},{"line_number":64,"context_line":"        agents \u003d self.os_admin.network_client.list_l3_agents_hosting_router("},{"line_number":65,"context_line":"            router[\u0027router\u0027][\u0027id\u0027])"},{"line_number":66,"context_line":"        router_hosts \u003d [agent[\u0027host\u0027] for agent in agents[\u0027agents\u0027]]"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_86a89374","line":64,"updated":"2018-12-14 15:19:31.000000000","message":"Hmm ^ just a note, we don\u0027t implement that on OVN, starting by the fact that we don\u0027t have \"l3 agents\", we register some as gateway nodes, but not like \"l3 agents\".\n\n\nMay be we could figure out somehow the nodes that are nova hypervisors?, that would be more generic.","commit_id":"68b87f442bc3c342c494c3205ac7b88c784b8007"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"69d2219abeb31d51814ca7c77022ea8c03c54638","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        server_id \u003d self.server[\u0027server\u0027][\u0027id\u0027]"},{"line_number":62,"context_line":"        server_host \u003d self.os_admin.servers_client.show_server("},{"line_number":63,"context_line":"            server_id)[\u0027server\u0027][\u0027OS-EXT-SRV-ATTR:host\u0027]"},{"line_number":64,"context_line":"        agents \u003d self.os_admin.network_client.list_l3_agents_hosting_router("},{"line_number":65,"context_line":"            router[\u0027router\u0027][\u0027id\u0027])"},{"line_number":66,"context_line":"        router_hosts \u003d [agent[\u0027host\u0027] for agent in agents[\u0027agents\u0027]]"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_e1e01130","line":64,"in_reply_to":"3f79a3b5_86a89374","updated":"2018-12-18 19:42:52.000000000","message":"Miguel and I spoke about this via video - it may be possible to use the router\u0027s gateway or internal interface, to see where the port was scheduled to. That way we don\u0027t use the L3 agent API, which isn\u0027t implemented by networking-ovn. We can do this in a follow up patch.","commit_id":"68b87f442bc3c342c494c3205ac7b88c784b8007"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"417eba2ee5eed4456ca9942a11ee0f91729e86f2","unresolved":false,"context_lines":[{"line_number":72,"context_line":"            self.skipTest("},{"line_number":73,"context_line":"                \u0027test_distributed_traffic requires a multi node topology\u0027)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        c \u003d skydive_client.RESTClient("},{"line_number":76,"context_line":"            config.CONF.neutron_plugin_options.skydive_connection)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        # Create a capture on every device on every node"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_f6fa5f74","line":75,"range":{"start_line":75,"start_character":8,"end_line":75,"end_character":9},"updated":"2018-12-14 05:05:16.000000000","message":"can we change it to client?","commit_id":"68b87f442bc3c342c494c3205ac7b88c784b8007"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"69d2219abeb31d51814ca7c77022ea8c03c54638","unresolved":false,"context_lines":[{"line_number":72,"context_line":"            self.skipTest("},{"line_number":73,"context_line":"                \u0027test_distributed_traffic requires a multi node topology\u0027)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        c \u003d skydive_client.RESTClient("},{"line_number":76,"context_line":"            config.CONF.neutron_plugin_options.skydive_connection)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        # Create a capture on every device on every node"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_61d4014d","line":75,"range":{"start_line":75,"start_character":8,"end_line":75,"end_character":9},"in_reply_to":"3f79a3b5_f6fa5f74","updated":"2018-12-18 19:42:52.000000000","message":"Done","commit_id":"68b87f442bc3c342c494c3205ac7b88c784b8007"},{"author":{"_account_id":26882,"name":"Nicolas PLANEL","email":"nplanel@gmail.com"},"change_message_id":"07b73c86fb5206ad18affbe3418f02b5934ee568","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        capture_id \u003d c.capture_create("},{"line_number":80,"context_line":"            \"G.V().Has(\u0027Type\u0027, \u0027host\u0027).Out()\")[\u0027UUID\u0027]"},{"line_number":81,"context_line":"        self.addCleanup(c.capture_delete, capture_id)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        fip_ip \u003d self.fip[\u0027floating_ip_address\u0027]"},{"line_number":84,"context_line":"        self.ping_ip_address(fip_ip)"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_b1a71953","line":82,"updated":"2018-12-13 21:04:19.000000000","message":"you may to wait a short time aim to the capture to be started, or you can check the Count field by polling capture_list()[\u0027UUID\u0027][\u0027Count\u0027]\n\nNote : for he moment skydive python client miss capture_get(capture_id), but REST API have it\n\nOr you can ignore this if ping_ip_address() test is long enough","commit_id":"68b87f442bc3c342c494c3205ac7b88c784b8007"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"69d2219abeb31d51814ca7c77022ea8c03c54638","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        capture_id \u003d c.capture_create("},{"line_number":80,"context_line":"            \"G.V().Has(\u0027Type\u0027, \u0027host\u0027).Out()\")[\u0027UUID\u0027]"},{"line_number":81,"context_line":"        self.addCleanup(c.capture_delete, capture_id)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        fip_ip \u003d self.fip[\u0027floating_ip_address\u0027]"},{"line_number":84,"context_line":"        self.ping_ip_address(fip_ip)"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_a1e69947","line":82,"in_reply_to":"3f79a3b5_b1a71953","updated":"2018-12-18 19:42:52.000000000","message":"ping_ip_address will try to ping until it\u0027s successful with a long timeout, but once it\u0027s successful it\u0027ll ping only once. Are you saying that the Skydive Python client capture_create call above will return before Skydive actually puts the capture in place? In that case yeah it may be necessary to poll until the capture count increased, maybe before line 92?","commit_id":"68b87f442bc3c342c494c3205ac7b88c784b8007"},{"author":{"_account_id":26882,"name":"Nicolas PLANEL","email":"nplanel@gmail.com"},"change_message_id":"07b73c86fb5206ad18affbe3418f02b5934ee568","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        capture_hosts \u003d c.lookup("},{"line_number":93,"context_line":"            \"G.Flows().Has(\u0027Application\u0027, \u0027ICMPv4\u0027, \u0027Network.B\u0027, \u0027%s\u0027).\""},{"line_number":94,"context_line":"            \"CaptureNode().Values(\u0027Host\u0027).Dedup()\" % vm_ip)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        # Assert that we didn\u0027t see the ping on the host(s) where the"},{"line_number":97,"context_line":"        # router is scheduled to"},{"line_number":98,"context_line":"        for capture_host in capture_hosts:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_d15f3576","line":95,"updated":"2018-12-13 21:04:19.000000000","message":"may be a good idea to take a look at which interface(s) the packets has been seen as this should match vm_port","commit_id":"68b87f442bc3c342c494c3205ac7b88c784b8007"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"69d2219abeb31d51814ca7c77022ea8c03c54638","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        capture_hosts \u003d c.lookup("},{"line_number":93,"context_line":"            \"G.Flows().Has(\u0027Application\u0027, \u0027ICMPv4\u0027, \u0027Network.B\u0027, \u0027%s\u0027).\""},{"line_number":94,"context_line":"            \"CaptureNode().Values(\u0027Host\u0027).Dedup()\" % vm_ip)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        # Assert that we didn\u0027t see the ping on the host(s) where the"},{"line_number":97,"context_line":"        # router is scheduled to"},{"line_number":98,"context_line":"        for capture_host in capture_hosts:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_c1c4f595","line":95,"in_reply_to":"3f79a3b5_d15f3576","updated":"2018-12-18 19:42:52.000000000","message":"The goal of the test is to check which hosts saw the traffic. I purposefully didn\u0027t check interfaces (the capture in line 79 applies on all interfaces of all hosts).","commit_id":"68b87f442bc3c342c494c3205ac7b88c784b8007"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"417eba2ee5eed4456ca9942a11ee0f91729e86f2","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        for capture_host in capture_hosts:"},{"line_number":99,"context_line":"            self.assertNotIn(capture_host, router_hosts)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        # Assert that we did see the ping on the host where the VM lives"},{"line_number":102,"context_line":"        self.assertIn(server_host, capture_hosts)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_36269723","line":101,"range":{"start_line":101,"start_character":10,"end_line":101,"end_character":16},"updated":"2018-12-14 05:05:16.000000000","message":"Question :Should we add an assert for pings going to wrong VMs? Means VMs which are not linked to the router, but still got the ping ( due to some misconfiguration?)","commit_id":"68b87f442bc3c342c494c3205ac7b88c784b8007"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"69d2219abeb31d51814ca7c77022ea8c03c54638","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        for capture_host in capture_hosts:"},{"line_number":99,"context_line":"            self.assertNotIn(capture_host, router_hosts)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        # Assert that we did see the ping on the host where the VM lives"},{"line_number":102,"context_line":"        self.assertIn(server_host, capture_hosts)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_21b36938","line":101,"range":{"start_line":101,"start_character":10,"end_line":101,"end_character":16},"in_reply_to":"3f79a3b5_36269723","updated":"2018-12-18 19:42:52.000000000","message":"My own opinion is that that scenario is too outlandish to write a test against.","commit_id":"68b87f442bc3c342c494c3205ac7b88c784b8007"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d2a4928d2c45701df576c56772aa5798d7fb586c","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        # This test creates a VM using the admin client in order to be"},{"line_number":47,"context_line":"        # able to specify the target hypervisor. So, a few other resources"},{"line_number":48,"context_line":"        # have to be created in the admin project as well."},{"line_number":49,"context_line":"        self.keypair \u003d self.create_keypair("},{"line_number":50,"context_line":"            client\u003dself.os_admin.keypairs_client)"},{"line_number":51,"context_line":"        self.secgroup \u003d self.create_security_group("}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_212289b9","line":48,"updated":"2018-12-18 20:33:07.000000000","message":"This comment looks like it relates to _create_server_and_fip() ?  I don\u0027t think any of the below need the admin client, right?","commit_id":"d0980358c6befbbf9f3b26fee105aa46c940f24e"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"d7cd722a57655a3a11ca7cc6e87120cefc3604a6","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        # This test creates a VM using the admin client in order to be"},{"line_number":47,"context_line":"        # able to specify the target hypervisor. So, a few other resources"},{"line_number":48,"context_line":"        # have to be created in the admin project as well."},{"line_number":49,"context_line":"        self.keypair \u003d self.create_keypair("},{"line_number":50,"context_line":"            client\u003dself.os_admin.keypairs_client)"},{"line_number":51,"context_line":"        self.secgroup \u003d self.create_security_group("}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_2485b754","line":48,"in_reply_to":"3f79a3b5_212289b9","updated":"2018-12-18 20:41:57.000000000","message":"(per our IRC conversation), we actually do need the admin client here, otherwise Nova doesn\u0027t see these resources in the admin project.","commit_id":"d0980358c6befbbf9f3b26fee105aa46c940f24e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d2a4928d2c45701df576c56772aa5798d7fb586c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            \u0027security_groups\u0027: [{\u0027name\u0027: self.secgroup[\u0027name\u0027]}],"},{"line_number":67,"context_line":"            \u0027availability_zone\u0027: \u0027%s:%s\u0027 %"},{"line_number":68,"context_line":"            (self.list_availability_zones()[0][\u0027zoneName\u0027], hypervisor_name),"},{"line_number":69,"context_line":"        }"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        self.server \u003d self.create_server(**server_kwargs)"},{"line_number":72,"context_line":"        self.wait_for_server_active("}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_e4449f50","line":69,"updated":"2018-12-18 20:33:07.000000000","message":"Like you mentioned, this and above were taken from setup_network_and_server(), we can always do a follow-on refactor to not duplicate some code, but I would not try and do that here.","commit_id":"d0980358c6befbbf9f3b26fee105aa46c940f24e"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"d7cd722a57655a3a11ca7cc6e87120cefc3604a6","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            \u0027security_groups\u0027: [{\u0027name\u0027: self.secgroup[\u0027name\u0027]}],"},{"line_number":67,"context_line":"            \u0027availability_zone\u0027: \u0027%s:%s\u0027 %"},{"line_number":68,"context_line":"            (self.list_availability_zones()[0][\u0027zoneName\u0027], hypervisor_name),"},{"line_number":69,"context_line":"        }"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        self.server \u003d self.create_server(**server_kwargs)"},{"line_number":72,"context_line":"        self.wait_for_server_active("}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_4482334d","line":69,"in_reply_to":"3f79a3b5_e4449f50","updated":"2018-12-18 20:41:57.000000000","message":"Roger.","commit_id":"d0980358c6befbbf9f3b26fee105aa46c940f24e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d2a4928d2c45701df576c56772aa5798d7fb586c","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            network_id\u003dself.network[\u0027id\u0027],"},{"line_number":76,"context_line":"            device_id\u003dself.server[\u0027server\u0027][\u0027id\u0027])[\u0027ports\u0027][0]"},{"line_number":77,"context_line":"        self.fip \u003d self.create_floatingip("},{"line_number":78,"context_line":"            port\u003dself.port, client\u003dself.os_admin.network_client)"},{"line_number":79,"context_line":"        return self.server"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def _get_router_hypervisors(self, router):"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_e4f6df2c","line":78,"updated":"2018-12-18 20:33:07.000000000","message":"Does this need the admin client?","commit_id":"d0980358c6befbbf9f3b26fee105aa46c940f24e"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"d7cd722a57655a3a11ca7cc6e87120cefc3604a6","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            network_id\u003dself.network[\u0027id\u0027],"},{"line_number":76,"context_line":"            device_id\u003dself.server[\u0027server\u0027][\u0027id\u0027])[\u0027ports\u0027][0]"},{"line_number":77,"context_line":"        self.fip \u003d self.create_floatingip("},{"line_number":78,"context_line":"            port\u003dself.port, client\u003dself.os_admin.network_client)"},{"line_number":79,"context_line":"        return self.server"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def _get_router_hypervisors(self, router):"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_04e67b4a","line":78,"in_reply_to":"3f79a3b5_e4f6df2c","updated":"2018-12-18 20:41:57.000000000","message":"Yes, otherwise I got a visibility error.","commit_id":"d0980358c6befbbf9f3b26fee105aa46c940f24e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d2a4928d2c45701df576c56772aa5798d7fb586c","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            device_id\u003dself.server[\u0027server\u0027][\u0027id\u0027])[\u0027ports\u0027][0]"},{"line_number":77,"context_line":"        self.fip \u003d self.create_floatingip("},{"line_number":78,"context_line":"            port\u003dself.port, client\u003dself.os_admin.network_client)"},{"line_number":79,"context_line":"        return self.server"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def _get_router_hypervisors(self, router):"},{"line_number":82,"context_line":"        agents \u003d self.os_admin.network_client.list_l3_agents_hosting_router("}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_c44f2366","line":79,"updated":"2018-12-18 20:33:07.000000000","message":"Don\u0027t need the return value, caller doesn\u0027t use it.","commit_id":"d0980358c6befbbf9f3b26fee105aa46c940f24e"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"d7cd722a57655a3a11ca7cc6e87120cefc3604a6","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            device_id\u003dself.server[\u0027server\u0027][\u0027id\u0027])[\u0027ports\u0027][0]"},{"line_number":77,"context_line":"        self.fip \u003d self.create_floatingip("},{"line_number":78,"context_line":"            port\u003dself.port, client\u003dself.os_admin.network_client)"},{"line_number":79,"context_line":"        return self.server"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def _get_router_hypervisors(self, router):"},{"line_number":82,"context_line":"        agents \u003d self.os_admin.network_client.list_l3_agents_hosting_router("}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_a4e6a747","line":79,"in_reply_to":"3f79a3b5_c44f2366","updated":"2018-12-18 20:41:57.000000000","message":"Done","commit_id":"d0980358c6befbbf9f3b26fee105aa46c940f24e"}]}
