← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1939680] [NEW] Neutron - set "dns_domain" for existing network is passively failing when Designate DNS extension is not enabled for Neutron

 

You have been subscribed to a public bug:

###  Scenario ###
Deploy Devstack without enabling DNS extension, using the attached localrc file.
Create network, subnet, Dns Zone and try to update the network with “dns_domain”:

stack@seal08:~/devstack$ openstack
(openstack) zone create example.com. --email example@xxxxxxxxxxx
(openstack) zone list --all
(openstack) network create net1
(openstack) subnet create subnet1 --network net1 --subnet-range 192.0.2.0/24
(openstack) network list  
(openstack) network set --dns-domain example.com. f9b1ff63-6ad4-4569-8d6c-6d17ed34014b

### Expected result ###
Set "dns_domain" command should fail, as no DNS is enabled.

### Actual Result ###
"network set" command is PASS, but in fact it's passively failing as no "dns_domain" is set and it's None

(openstack) network show f9b1ff63-6ad4-4569-8d6c-6d17ed34014b
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | UP                                   |
| availability_zone_hints   |                                      |
| availability_zones        |                                      |
| created_at                | 2021-08-12T11:04:29Z                 |
| description               |                                      |
| dns_domain                | None                                 |
| id                        | f9b1ff63-6ad4-4569-8d6c-6d17ed34014b |
| ipv4_address_scope        | None                                 |
| ipv6_address_scope        | None                                 |
| is_default                | None                                 |
| is_vlan_transparent       | None                                 |
| mtu                       | 1442                                 |
| name                      | net1                                 |
| port_security_enabled     | True                                 |
| project_id                | 1318c4bf4aeb4f9892502f25875ae293     |
| provider:network_type     | geneve                               |
| provider:physical_network | None                                 |
| provider:segmentation_id  | 44396                                |
| qos_policy_id             | None                                 |
| revision_number           | 3                                    |
| router:external           | Internal                             |
| segments                  | None                                 |
| shared                    | False                                |
| status                    | ACTIVE                               |
| subnets                   | afe01181-c299-44a3-ba94-328e0ebaed11 |
| tags                      |                                      |
| updated_at                | 2021-08-12T11:05:46Z                 |
+---------------------------+--------------------------------------+


Here are some details with (-vvv verbosity):
stack@seal08:~/devstack$ 
stack@seal08:~/devstack$ openstack network set --dns-domain example.com.  1749f7dd-e4b9-478b-bd28-a3dd7c539bd3 -vvv
START with options: network set --dns-domain example.com. 1749f7dd-e4b9-478b-bd28-a3dd7c539bd3 -vvv
options: Namespace(access_key='', access_secret='***', access_token='***', access_token_endpoint='', access_token_type='', application_credential_id='', application_credential_name='', application_credential_secret='***', auth_methods='', auth_type='', auth_url='http://10.35.64.8/identity', cacert=None, cert='', client_id='', client_secret='***', cloud='', code='', consumer_key='', consumer_secret='***', debug=False, default_domain='default', default_domain_id='', default_domain_name='', deferred_help=False, discovery_endpoint='', domain_id='', domain_name='', endpoint='', identity_provider='', identity_provider_url='', insecure=None, interface='public', key='', log_file=None, openid_scope='', os_beta_command=False, os_compute_api_version='', os_dns_api_version='2', os_identity_api_version='3', os_image_api_version='', os_key_manager_api_version='1', os_network_api_version='', os_object_api_version='', os_placement_api_version='1', os_project_id=None, os_project_name=None, os_volume_api_version='', passcode='', password='***', profile='', project_domain_id='default', project_domain_name='', project_id='', project_name='admin', protocol='', redirect_uri='', region_name='RegionOne', remote_project_domain_id='', remote_project_domain_name='', remote_project_id='', remote_project_name='', service_provider='', service_provider_endpoint='', service_provider_entity_id='', system_scope='', timing=False, token='***', trust_id='', user_domain_id='default', user_domain_name='', user_id='', username='admin', verbose_level=4, verify=None)
Auth plugin password selected
auth_config_hook(): {'api_timeout': None, 'verify': True, 'cacert': None, 'cert': None, 'key': None, 'baremetal_status_code_retries': '5', 'baremetal_introspection_status_code_retries': '5', 'image_status_code_retries': '5', 'disable_vendor_agent': {}, 'interface': 'public', 'floating_ip_source': 'neutron', 'image_api_use_tasks': False, 'image_format': 'qcow2', 'message': '', 'network_api_version': '2', 'object_store_api_version': '1', 'secgroup_source': 'neutron', 'status': 'active', 'auth': {'user_domain_id': 'default', 'project_domain_id': 'default', 'project_name': 'admin'}, 'verbose_level': 4, 'deferred_help': False, 'region_name': 'RegionOne', 'default_domain': 'default', 'timing': False, 'auth_url': 'http://10.35.64.8/identity', 'username': 'admin', 'password': '***', 'beta_command': False, 'identity_api_version': '3', 'placement_api_version': '1', 'dns_api_version': '2', 'key_manager_api_version': '1', 'auth_type': 'password', 'networks': []}
defaults: {'api_timeout': None, 'verify': True, 'cacert': None, 'cert': None, 'key': None, 'auth_type': 'password', 'baremetal_status_code_retries': 5, 'baremetal_introspection_status_code_retries': 5, 'image_status_code_retries': 5, 'disable_vendor_agent': {}, 'interface': None, 'floating_ip_source': 'neutron', 'image_api_use_tasks': False, 'image_format': 'qcow2', 'message': '', 'network_api_version': '2', 'object_store_api_version': '1', 'secgroup_source': 'neutron', 'status': 'active'}
cloud cfg: {'api_timeout': None, 'verify': True, 'cacert': None, 'cert': None, 'key': None, 'baremetal_status_code_retries': '5', 'baremetal_introspection_status_code_retries': '5', 'image_status_code_retries': '5', 'disable_vendor_agent': {}, 'interface': 'public', 'floating_ip_source': 'neutron', 'image_api_use_tasks': False, 'image_format': 'qcow2', 'message': '', 'network_api_version': '2', 'object_store_api_version': '1', 'secgroup_source': 'neutron', 'status': 'active', 'auth': {'user_domain_id': 'default', 'project_domain_id': 'default', 'project_name': 'admin'}, 'verbose_level': 4, 'deferred_help': False, 'region_name': 'RegionOne', 'default_domain': 'default', 'timing': False, 'auth_url': 'http://10.35.64.8/identity', 'username': 'admin', 'password': '***', 'beta_command': False, 'identity_api_version': '3', 'placement_api_version': '1', 'dns_api_version': '2', 'key_manager_api_version': '1', 'auth_type': 'password', 'networks': []}
compute API version 2.1, cmd group openstack.compute.v2
identity API version 3, cmd group openstack.identity.v3
image API version 2, cmd group openstack.image.v2
network API version 2, cmd group openstack.network.v2
object_store API version 1, cmd group openstack.object_store.v1
volume API version 3, cmd group openstack.volume.v3
neutronclient API version 2, cmd group openstack.neutronclient.v2
placement API version 1, cmd group openstack.placement.v1
dns API version 2, cmd group openstack.dns.v2
/usr/local/lib/python3.8/dist-packages/barbicanclient/__init__.py:57: UserWarning: The secrets module is moved to barbicanclient/v1 directory, direct import of barbicanclient.secrets will be deprecated. Please import barbicanclient.v1.secrets instead.
  warnings.warn("The %s module is moved to barbicanclient/v1 "
key_manager API version 1, cmd group openstack.key_manager.v1
command: network set -> openstackclient.network.v2.network.SetNetwork (auth=True)
Auth plugin password selected
auth_config_hook(): {'api_timeout': None, 'verify': True, 'cacert': None, 'cert': None, 'key': None, 'baremetal_status_code_retries': '5', 'baremetal_introspection_status_code_retries': '5', 'image_status_code_retries': '5', 'disable_vendor_agent': {}, 'interface': 'public', 'floating_ip_source': 'neutron', 'image_api_use_tasks': False, 'image_format': 'qcow2', 'message': '', 'network_api_version': '2', 'object_store_api_version': '1', 'secgroup_source': 'neutron', 'status': 'active', 'auth': {'user_domain_id': 'default', 'project_domain_id': 'default', 'project_name': 'admin'}, 'additional_user_agent': [('osc-lib', '2.4.1')], 'verbose_level': 4, 'deferred_help': False, 'region_name': 'RegionOne', 'default_domain': 'default', 'timing': False, 'auth_url': 'http://10.35.64.8/identity', 'username': 'admin', 'password': '***', 'beta_command': False, 'identity_api_version': '3', 'placement_api_version': '1', 'dns_api_version': '2', 'key_manager_api_version': '1', 'auth_type': 'password', 'networks': []}
Using auth plugin: password
Using parameters {'auth_url': 'http://10.35.64.8/identity', 'project_name': 'admin', 'project_domain_id': 'default', 'username': 'admin', 'user_domain_id': 'default', 'password': '***'}
Get auth_ref
REQ: curl -g -i -X GET http://10.35.64.8/identity -H "Accept: application/json" -H "User-Agent: openstacksdk/0.58.0 keystoneauth1/4.3.1 python-requests/2.26.0 CPython/3.8.10"
Starting new HTTP connection (1): 10.35.64.8:80
http://10.35.64.8:80 "GET /identity HTTP/1.1" 300 269
RESP: [300] Connection: close Content-Length: 269 Content-Type: application/json Date: Thu, 12 Aug 2021 10:23:54 GMT Location: http://10.35.64.8/identity/v3/ Server: Apache/2.4.41 (Ubuntu) Vary: X-Auth-Token x-openstack-request-id: req-7f5231d9-db05-4569-97cd-f1f8d8e538e7
RESP BODY: {"versions": {"values": [{"id": "v3.14", "status": "stable", "updated": "2020-04-07T00:00:00Z", "links": [{"rel": "self", "href": "http://10.35.64.8/identity/v3/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}]}]}}
GET call to http://10.35.64.8/identity used request id req-7f5231d9-db05-4569-97cd-f1f8d8e538e7
Making authentication request to http://10.35.64.8/identity/v3/auth/tokens
Resetting dropped connection: 10.35.64.8
http://10.35.64.8:80 "POST /identity/v3/auth/tokens HTTP/1.1" 201 2601
{"token": {"methods": ["password"], "user": {"domain": {"id": "default", "name": "Default"}, "id": "e512007d3ceb4ca6ba7d929d854d6e73", "name": "admin", "password_expires_at": null}, "audit_ids": ["xvquFzqWSTSSGJ-IVT-aEQ"], "expires_at": "2021-08-12T11:23:55.000000Z", "issued_at": "2021-08-12T10:23:55.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "89351aba4a0245f7ae35743cf9293731", "name": "admin"}, "is_domain": false, "roles": [{"id": "878281a829e947b5a733672330eb4bc6", "name": "admin"}, {"id": "4ba277b9720742f0822560b9d8b51c0d", "name": "reader"}, {"id": "e9efcd9d81fc4b8f81939272ecd465f7", "name": "member"}], "catalog": [{"endpoints": [{"id": "b70cd1cdcb8a4734b84f0b45292e41e3", "interface": "public", "region_id": "RegionOne", "url": "http://10.35.64.8/compute/v2.1";, "region": "RegionOne"}], "id": "214ae70e9abe4687af52df9688acaa72", "type": "compute", "name": "nova"}, {"endpoints": [{"id": "0af5f7c3f0f04c5da0d474753542420a", "interface": "public", "region_id": "RegionOne", "url": "http://10.35.64.8/identity";, "region": "RegionOne"}, {"id": "b03dc09329cf41bcad253eced66509ef", "interface": "admin", "region_id": "RegionOne", "url": "http://10.35.64.8/identity";, "region": "RegionOne"}], "id": "4a704259550d43c782a6312c4e244886", "type": "identity", "name": "keystone"}, {"endpoints": [{"id": "0d1069290dee4f60bfefae84d5475810", "interface": "public", "region_id": "RegionOne", "url": "http://10.35.64.8/placement";, "region": "RegionOne"}], "id": "4ca525e0606b4de29d20b43272abda14", "type": "placement", "name": "placement"}, {"endpoints": [{"id": "a58b6ba134fa4593953ff77ba3aa8756", "interface": "public", "region_id": "RegionOne", "url": "http://10.35.64.8:9696/";, "region": "RegionOne"}], "id": "56c08179db6c443ea1281d25c8dcd8d3", "type": "network", "name": "neutron"}, {"endpoints": [{"id": "e31a0ba6ef0148f29566267113213694", "interface": "public", "region_id": "RegionOne", "url": "http://10.35.64.8/dns";, "region": "RegionOne"}], "id": "89bb49f9a5a846a7a00405817d4d3282", "type": "dns", "name": "designate"}, {"endpoints": [{"id": "1fb48753c2154aecbe586d6167d1c6a7", "interface": "public", "region_id": "RegionOne", "url": "http://10.35.64.8/image";, "region": "RegionOne"}], "id": "a84cfeb4d9754245ae57d2f6bef5dcea", "type": "image", "name": "glance"}, {"endpoints": [{"id": "cb79cfc1b5fc4cef9461f503346cb6bf", "interface": "public", "region_id": "RegionOne", "url": "http://10.35.64.8/compute/v2/89351aba4a0245f7ae35743cf9293731";, "region": "RegionOne"}], "id": "ea9257ee5e2b4c7f90e7cc133c6c71e3", "type": "compute_legacy", "name": "nova_legacy"}]}}
run(Namespace(default=False, description=None, disable=False, disable_port_security=False, dns_domain='example.com.', enable=None, enable_port_security=False, external=False, internal=False, mtu=None, name=None, network='1749f7dd-e4b9-478b-bd28-a3dd7c539bd3', no_default=False, no_qos_policy=False, no_share=False, no_tag=False, physical_network=None, provider_network_type=None, qos_policy=None, segmentation_id=None, share=None, tags=None))
Network client initialized using OpenStack SDK: <openstack.network.v2._proxy.Proxy object at 0x7f7e41ffa0a0>
REQ: curl -g -i -X GET http://10.35.64.8:9696/v2.0/networks/1749f7dd-e4b9-478b-bd28-a3dd7c539bd3 -H "User-Agent: openstacksdk/0.58.0 keystoneauth1/4.3.1 python-requests/2.26.0 CPython/3.8.10" -H "X-Auth-Token: {SHA256}0b366d0d7824a66262cce8503d03539f1652189c3c34726454ca00ae14112422"
Starting new HTTP connection (1): 10.35.64.8:9696
http://10.35.64.8:9696 "GET /v2.0/networks/1749f7dd-e4b9-478b-bd28-a3dd7c539bd3 HTTP/1.1" 200 659
RESP: [200] Connection: keep-alive Content-Length: 659 Content-Type: application/json Date: Thu, 12 Aug 2021 10:23:55 GMT X-Openstack-Request-Id: req-827a2e49-8435-4c90-8316-2f84da9982b6
RESP BODY: {"network":{"id":"1749f7dd-e4b9-478b-bd28-a3dd7c539bd3","name":"net1","tenant_id":"89351aba4a0245f7ae35743cf9293731","admin_state_up":true,"mtu":1442,"status":"ACTIVE","subnets":["b7870888-7216-4f17-8aec-e1ecf29a6f8e"],"shared":false,"availability_zone_hints":[],"availability_zones":[],"ipv4_address_scope":null,"ipv6_address_scope":null,"router:external":false,"description":"","port_security_enabled":true,"tags":[],"created_at":"2021-08-11T09:55:47Z","updated_at":"2021-08-11T09:56:16Z","revision_number":2,"project_id":"89351aba4a0245f7ae35743cf9293731","provider:network_type":"geneve","provider:physical_network":null,"provider:segmentation_id":39538}}
GET call to network for http://10.35.64.8:9696/v2.0/networks/1749f7dd-e4b9-478b-bd28-a3dd7c539bd3 used request id req-827a2e49-8435-4c90-8316-2f84da9982b6
REQ: curl -g -i -X PUT http://10.35.64.8:9696/v2.0/networks/1749f7dd-e4b9-478b-bd28-a3dd7c539bd3 -H "Content-Type: application/json" -H "User-Agent: openstacksdk/0.58.0 keystoneauth1/4.3.1 python-requests/2.26.0 CPython/3.8.10" -H "X-Auth-Token: {SHA256}0b366d0d7824a66262cce8503d03539f1652189c3c34726454ca00ae14112422" -d '{"network": {"dns_domain": "example.com."}}'
http://10.35.64.8:9696 "PUT /v2.0/networks/1749f7dd-e4b9-478b-bd28-a3dd7c539bd3 HTTP/1.1" 200 659
RESP: [200] Connection: keep-alive Content-Length: 659 Content-Type: application/json Date: Thu, 12 Aug 2021 10:23:55 GMT X-Openstack-Request-Id: req-20be4550-489e-4f8a-8efd-11fe0a4ea604
RESP BODY: {"network":{"id":"1749f7dd-e4b9-478b-bd28-a3dd7c539bd3","name":"net1","tenant_id":"89351aba4a0245f7ae35743cf9293731","admin_state_up":true,"mtu":1442,"status":"ACTIVE","subnets":["b7870888-7216-4f17-8aec-e1ecf29a6f8e"],"shared":false,"availability_zone_hints":[],"availability_zones":[],"ipv4_address_scope":null,"ipv6_address_scope":null,"router:external":false,"description":"","port_security_enabled":true,"tags":[],"created_at":"2021-08-11T09:55:47Z","updated_at":"2021-08-11T09:56:16Z","revision_number":2,"project_id":"89351aba4a0245f7ae35743cf9293731","provider:network_type":"geneve","provider:physical_network":null,"provider:segmentation_id":39538}}
PUT call to network for http://10.35.64.8:9696/v2.0/networks/1749f7dd-e4b9-478b-bd28-a3dd7c539bd3 used request id req-20be4550-489e-4f8a-8efd-11fe0a4ea604
clean_up SetNetwork: 
END return value: 0


Note: 
After redeploying Devstack with DNS enabled, it means enabling "q-dns" in localrc:

# Neutron
ENABLED_SERVICES+=,q-svc,neutron,q-dns

everything works as expected and "dns_domain" is properly set:
stack@seal08:~/devstack$ openstack zone list --all
+--------------------------------------+----------------------------------+--------------+---------+------------+--------+--------+
| id                                   | project_id                       | name         | type    |     serial | status | action |
+--------------------------------------+----------------------------------+--------------+---------+------------+--------+--------+
| f6922edf-611f-4ba2-9bd8-e40eb7cade7d | 89351aba4a0245f7ae35743cf9293731 | example.com. | PRIMARY | 1628670413 | ACTIVE | NONE   |
+--------------------------------------+----------------------------------+--------------+---------+------------+--------+--------+
stack@seal08:~/devstack$
stack@seal08:~/devstack$
stack@seal08:~/devstack$ openstack network list      
 
+--------------------------------------+----------------------------------+----------------------------------------------------------------------------+
| ID                                   | Name                             | Subnets                                                                    |
+--------------------------------------+----------------------------------+----------------------------------------------------------------------------+
| 65dd5e84-33c6-4b70-aad9-64c6f2f72d6d | private                          | 03bb2ab9-1bff-4fea-ae6b-04506cab5122, c65d6919-6c3f-4c7a-a888-1a60d7366f12 |
| 8f7ec778-a6f2-4358-abb3-2d3b880870fa | tempest-test-network--1234138305 | fd6e1a7c-eefb-49d8-8f0f-9e22ac070608                                       |
| bf2e9b00-a52f-44a3-8369-9cf132276ebd | public                           | 4a253538-673d-41cc-b3e6-928cdb19c762, 7a5e6ccd-f46a-4551-a3e9-b8df36428ce4 |
| d38e2fed-f784-47e8-b0f1-dddb56e27905 | shared                           | d02072b0-b3bc-47d9-b82a-e305ee1c3e92                                       |
+--------------------------------------+----------------------------------+----------------------------------------------------------------------------+
stack@seal08:~/devstack$
stack@seal08:~/devstack$ openstack network set --dns-domain example.com.  8f7ec778-a6f2-4358-abb3-2d3b880870fa -v
START with options: network set --dns-domain example.com. 8f7ec778-a6f2-4358-abb3-2d3b880870fa -v
/usr/local/lib/python3.8/dist-packages/barbicanclient/__init__.py:57: UserWarning: The secrets module is moved to barbicanclient/v1 directory, direct import of barbicanclient.secrets will be deprecated. Please import barbicanclient.v1.secrets instead.
  warnings.warn("The %s module is moved to barbicanclient/v1 "
command: network set -> openstackclient.network.v2.network.SetNetwork (auth=True)
Using auth plugin: password
END return value: 0
stack@seal08:~/devstack$
stack@seal08:~/devstack$
stack@seal08:~/devstack$ openstack network show 8f7ec778-a6f2-4358-abb3-2d3b880870fa
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | UP                                   |
| availability_zone_hints   |                                      |
| availability_zones        |                                      |
| created_at                | 2021-08-11T09:37:06Z                 |
| description               |                                      |
| dns_domain                | None                                 |
| id                        | 8f7ec778-a6f2-4358-abb3-2d3b880870fa |
| ipv4_address_scope        | None                                 |
| ipv6_address_scope        | None                                 |
| is_default                | None                                 |
| is_vlan_transparent       | None                                 |
| mtu                       | 1442                                 |
| name                      | tempest-test-network--1234138305     |
| port_security_enabled     | True                                 |
| project_id                | f4cd701eb82a46c28918886ad1594b7c     |
| provider:network_type     | geneve                               |
| provider:physical_network | None                                 |
| provider:segmentation_id  | 19626                                |
| qos_policy_id             | None                                 |
| revision_number           | 2                                    |
| router:external           | Internal                             |
| segments                  | None                                 |
| shared                    | False                                |
| status                    | ACTIVE                               |
| subnets                   | fd6e1a7c-eefb-49d8-8f0f-9e22ac070608 |
| tags                      |                                      |
| updated_at                | 2021-08-11T09:37:07Z                 |
+---------------------------+--------------------------------------+

** Affects: neutron
     Importance: Undecided
         Status: New

-- 
Neutron - set "dns_domain" for existing network is passively failing when Designate DNS extension is not enabled for Neutron
https://bugs.launchpad.net/bugs/1939680
You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron.


References