[Neutron]

Slawomir Kaplonski skaplons at redhat.com
Mon Dec 10 08:01:10 UTC 2018


Hi,

If You want to attach port/subnet to router, please don’t do this with „create_port()” method only - it’s not enough.
You should use add_interface_to_router() method if You are using Openstack SDK: https://github.com/openstack/openstacksdk/blob/master/openstack/network/v2/_proxy.py#L2441 or add_interface_router() method from neutron client: https://github.com/openstack/python-neutronclient/blob/d8cb1472c867d2a308e26abea0b0a01f1d6629a1/neutronclient/v2_0/client.py#L918

— 
Slawek Kaplonski
Senior software engineer
Red Hat

> Wiadomość napisana przez Bino Oetomo <bino at jogjacamp.co.id> w dniu 10.12.2018, o godz. 03:04:
> 
> Dear All,
> 
> As suggested by Slawek Kaplonski, I tried this.
> 
> -----------
> 
> >>> myrouter
> {'status': 'ACTIVE', 'external_gateway_info': {'network_id': 'd10dd06a-0425-49eb-a8ba-85abf55ac0f5', 'enable_snat': True, 'external_fixed_ips': [{'subnet_id': '4639e018-1cc1-49cc-89d4-4cad49bd4b89', 'ip_address': '10.10.10.2'}]}, 'availability_zone_hints': [], 'availability_zones': ['nova'], 'description': '', 'tags': [], 'tenant_id': 'c0b89f614b5a457cb5acef8fe8c2b320', 'created_at': '2018-12-07T07:24:41Z', 'admin_state_up': True, 'distributed': False, 'updated_at': '2018-12-07T07:58:02Z', 'project_id': 'c0b89f614b5a457cb5acef8fe8c2b320', 'flavor_id': None, 'revision_number': 10, 'routes': [], 'ha': False, 'id': 'a616dcc0-1f72-4424-9494-4d13b42445ee', 'name': 'Bino-rtr-01'}
> 
> ```>>> mynetworks=[n for n in netlist['networks'] if n['name'].startswith('Bino')]
> >>> mynetworks
> [{'provider:physical_network': 'viavlan', 'ipv6_address_scope': None, 'revision_number': 7, 'port_security_enabled': True, 'mtu': 1500, 'id': '942675f6-fd5e-4bb2-ba43-487be992ff4e', 'router:external': False, 'availability_zone_hints': [], 'availability_zones': ['nova'], 'ipv4_address_scope': None, 'shared': False, 'project_id': 'c0b89f614b5a457cb5acef8fe8c2b320', 'status': 'ACTIVE', 'subnets': ['5373bc35-a90f-4793-a912-801920e47769'], 'description': '', 'tags': [], 'updated_at': '2018-12-07T07:50:27Z', 'provider:segmentation_id': 2037, 'name': 'Bino-net-01', 'admin_state_up': True, 'tenant_id': 'c0b89f614b5a457cb5acef8fe8c2b320', 'created_at': '2018-12-07T07:28:00Z', 'provider:network_type': 'vlan'}, {'provider:physical_network': 'viavlan', 'ipv6_address_scope': None, 'revision_number': 6, 'port_security_enabled': True, 'mtu': 1500, 'id': 'dfc8ed54-106d-48d0-8b45-cbd3cf0fbb79', 'router:external': False, 'availability_zone_hints': [], 'availability_zones': ['nova'], 'ipv4_address_scope': None, 'shared': False, 'project_id': 'c0b89f614b5a457cb5acef8fe8c2b320', 'status': 'ACTIVE', 'subnets': ['c71a86a3-f9a8-4e60-828e-5d6f87e58ac9'], 'description': '', 'tags': [], 'updated_at': '2018-12-07T07:49:59Z', 'provider:segmentation_id': 2002, 'name': 'Bino-net-02', 'admin_state_up': True, 'tenant_id': 'c0b89f614b5a457cb5acef8fe8c2b320', 'created_at': '2018-12-07T07:29:52Z', 'provider:network_type': 'vlan'}]
> >>> print([n['name'] for n in mynetworks])
> ['Bino-net-01', 'Bino-net-02']
> >>> mynetwork=mynetworks[1]
> >>> mynetwork['name']
> 'Bino-net-02'
> >>> body_value = {
> ...    'port': {
> ...        'admin_state_up': True,
> ...        'device_id': myrouter['id'],
> ...        'name': 'Bino-rtr-01-02',
> ...        'network_id': mynetwork['id'],
> ...    }
> ... }
> >>> response = nt.create_port(body=body_value)
> >>> response
> {'port': {'allowed_address_pairs': [], 'extra_dhcp_opts': [], 'updated_at': '2018-12-10T01:44:10Z', 'device_owner': '', 'revision_number': 1, 'binding:profile': {}, 'port_security_enabled': True, 'fixed_ips': [{'subnet_id': 'c71a86a3-f9a8-4e60-828e-5d6f87e58ac9', 'ip_address': '192.168.202.6'}], 'id': 'a2a337af-3a37-4a9a-a4f1-ffaacdf9f881', 'security_groups': ['4bed540c-266d-4cc2-8225-3e02ccd89ff1'], 'binding:vif_details': {}, 'binding:vif_type': 'unbound', 'mac_address': 'fa:16:3e:05:aa:b5', 'project_id': 'c0b89f614b5a457cb5acef8fe8c2b320', 'status': 'DOWN', 'binding:host_id': '', 'description': '', 'tags': [], 'device_id': 'a616dcc0-1f72-4424-9494-4d13b42445ee', 'name': 'Bino-rtr-01-02', 'admin_state_up': True, 'network_id': 'dfc8ed54-106d-48d0-8b45-cbd3cf0fbb79', 'tenant_id': 'c0b89f614b5a457cb5acef8fe8c2b320', 'created_at': '2018-12-10T01:44:10Z', 'binding:vnic_type': 'normal'}}
> >>> response['port']['status']
> 'DOWN'
> ------
> 
> Looks like the port status still 'DOWN'.
> 
> Sincerely
> -bino-
> 
> 
> On Sat, Dec 8, 2018 at 9:42 PM Slawomir Kaplonski <skaplons at redhat.com> wrote:
> Hi,
> 
> You shouldn’t create port with router as device owner. If You want to connect port or subnet to router, there is proper method for that: https://developer.openstack.org/api-ref/network/v2/?expanded=add-interface-to-router-detail#add-interface-to-router
> 
>> Slawek Kaplonski
> Senior software engineer
> Red Hat
> 
> > Wiadomość napisana przez Bino Oetomo <bino at jogjacamp.co.id> w dniu 08.12.2018, o godz. 02:42:
> > 
> > Dear All.
> > 
> > I have no problem configuring network via Hosrizon-dasboard.
> > 
> > I start playing with python for some task.
> > I got succsess in creating network.
> > I create a router, with one interface connected to existing 'ext-network' .. success.
> > 
> > But I fail when I try to add a port to that router for connecting to existing internal network.
> > 
> > Here is part of my python shell.
> > 
> > --------------------
> > body_value = {
> > 
> >     
> > 'port': {
> > 
> >         
> > 'admin_state_up': True,
> > 
> >         
> > 'device_owner': 'network:router_interface',
> > 
> >         
> > 'device_id': 'a616dcc0-1f72-4424-9494-4d13b42445ee',
> > 
> >         
> > 'name': 'Bino-net-01-02',
> > 
> >         
> > 'network_id': 'dfc8ed54-106d-48d0-8b45-cbd3cf0fbb79',
> > 
> >         
> > 'binding:host_id': 'rocky-controller.mynet.net',
> > 
> >         
> > 'binding:profile': {},
> > 
> >         
> > 'binding:vnic_type': 'normal',
> > 
> >         
> > 'fixed_ips': [{
> > 
> >             
> > 'subnet_id': 'c71a86a3-f9a8-4e60-828e-5d6f87e58ac9',
> > 
> >             
> > 'ip_address': '192.168.202.254'
> > 
> >             
> > }],
> > 
> >     
> > }
> > }
> > 
> > 
> > response 
> > = nt.create_port(body=body_value)
> > 
> > response
> > 
> >   
> > {'port': {'allowed_address_pairs': [], 'extra_dhcp_opts': [], 'updated_at': '2018-12-07T08:10:24Z', 'device_owner': 'network:router_interface', 'revision_number': 1, 'port_security_enabled': False, 'binding:profile': {}, 'fixed_ips': [{'subnet_id': 'c71a86a3-f9a8-4e60-828e-5d6f87e58ac9', 'ip_address': '192.168.202.254'}], 'id': 'd02eb0f0-663f-423f-af4e-c969ccb9dc25', 'security_groups': [], 'binding:vif_details': {'port_filter': True, 'datapath_type': 'system', 'ovs_hybrid_plug': True}, 'binding:vif_type': 'ovs', 'mac_address': 'fa:16:3e:e2:9d:8f', 'project_id': 'c0b89f614b5a457cb5acef8fe8c2b320', 'status': 'DOWN', 'binding:host_id': 'rocky-controller.mynet.net', 'description': '', 'tags': [], 'device_id': 'a616dcc0-1f72-4424-9494-4d13b42445ee', 'name': 'Bino-net-01-02', 'admin_state_up': True, 'network_id': 'dfc8ed54-106d-48d0-8b45-cbd3cf0fbb79', 'tenant_id': 'c0b89f614b5a457cb5acef8fe8c2b320', 'created_at': '2018-12-07T08:10:24Z', 'binding:vnic_type': 'normal'}}
> > 
> > --------------------
> > 'status' always 'DOWN'.
> > 
> > Kindly please give me some clue to fix this problem
> > 
> > Note : Actualy I post same question on stackexchange : https://stackoverflow.com/questions/53665795/openstack-python-neutronclient-creating-port-but-down
> > 
> > Sincerely
> > -bino-
> 




More information about the openstack-discuss mailing list