Use new common specific_endpoint routines
Now that admin_endpoint, public_endpoint, and internal_endpoint in the common library are working, these are the changes to use them in the openstack-network recipes. Note that some calls to 'endpoint' that can't have separate admin, internal, public endpoints. (E.g. network-api-bind, network-linuxbridge, network-openvswitch, etc.) Those will continue to use the general endpoint routine. Partial-Bug: 1412919 Change-Id: Ia08983f6f8da8a96da22969cdb660b44f82780d6
This commit is contained in:
parent
91fef493e5
commit
2918234a39
|
@ -4,6 +4,7 @@ This file is used to list changes made in each version of cookbook-openstack-net
|
||||||
## 10.1.1
|
## 10.1.1
|
||||||
* Removed all files not needed by the neutron cookbook
|
* Removed all files not needed by the neutron cookbook
|
||||||
* Add radvd to neutron_l3_packages to support ipv6
|
* Add radvd to neutron_l3_packages to support ipv6
|
||||||
|
* Use common specific_endpoint routines (bug 1412919)
|
||||||
|
|
||||||
## 10.1.0
|
## 10.1.0
|
||||||
* Add support for Neutron VPN Service
|
* Add support for Neutron VPN Service
|
||||||
|
|
|
@ -116,8 +116,8 @@ elsif mq_service_type == 'qpid'
|
||||||
mq_password = get_password 'user', node['openstack']['mq']['network']['qpid']['username']
|
mq_password = get_password 'user', node['openstack']['mq']['network']['qpid']['username']
|
||||||
end
|
end
|
||||||
|
|
||||||
identity_endpoint = endpoint 'identity-api'
|
identity_endpoint = internal_endpoint 'identity-internal'
|
||||||
identity_admin_endpoint = endpoint 'identity-admin'
|
identity_admin_endpoint = admin_endpoint 'identity-admin'
|
||||||
auth_uri = ::URI.decode identity_endpoint.to_s
|
auth_uri = ::URI.decode identity_endpoint.to_s
|
||||||
|
|
||||||
auth_uri = auth_uri_transform identity_endpoint.to_s, node['openstack']['network']['api']['auth']['version']
|
auth_uri = auth_uri_transform identity_endpoint.to_s, node['openstack']['network']['api']['auth']['version']
|
||||||
|
@ -149,7 +149,7 @@ service 'neutron-server' do
|
||||||
end
|
end
|
||||||
|
|
||||||
# Nova interactions
|
# Nova interactions
|
||||||
nova_endpoint = endpoint 'compute-api'
|
nova_endpoint = internal_endpoint 'compute-api'
|
||||||
# TODO(MRV): Need to allow for this in common.
|
# TODO(MRV): Need to allow for this in common.
|
||||||
# Neutron will append the admin_tenant_id for these nova interaction calls,
|
# Neutron will append the admin_tenant_id for these nova interaction calls,
|
||||||
# remove the tenant_id so we don't end up with two of them on the url.
|
# remove the tenant_id so we don't end up with two of them on the url.
|
||||||
|
|
|
@ -28,12 +28,14 @@ class ::Chef::Recipe
|
||||||
include ::Openstack
|
include ::Openstack
|
||||||
end
|
end
|
||||||
|
|
||||||
identity_admin_endpoint = endpoint 'identity-admin'
|
identity_admin_endpoint = admin_endpoint 'identity-admin'
|
||||||
|
|
||||||
bootstrap_token = get_secret 'openstack_identity_bootstrap_token'
|
bootstrap_token = get_secret 'openstack_identity_bootstrap_token'
|
||||||
auth_uri = ::URI.decode identity_admin_endpoint.to_s
|
auth_uri = ::URI.decode identity_admin_endpoint.to_s
|
||||||
|
|
||||||
api_endpoint = endpoint 'network-api'
|
admin_api_endpoint = admin_endpoint 'network-api'
|
||||||
|
public_api_endpoint = public_endpoint 'network-api'
|
||||||
|
internal_api_endpoint = internal_endpoint 'network-api'
|
||||||
|
|
||||||
service_pass = get_password 'service', 'openstack-network'
|
service_pass = get_password 'service', 'openstack-network'
|
||||||
service_tenant_name = node['openstack']['network']['service_tenant_name']
|
service_tenant_name = node['openstack']['network']['service_tenant_name']
|
||||||
|
@ -55,9 +57,9 @@ openstack_identity_register 'Register Network Endpoint' do
|
||||||
bootstrap_token bootstrap_token
|
bootstrap_token bootstrap_token
|
||||||
service_type node['openstack']['network']['service_type']
|
service_type node['openstack']['network']['service_type']
|
||||||
endpoint_region node['openstack']['network']['region']
|
endpoint_region node['openstack']['network']['region']
|
||||||
endpoint_adminurl api_endpoint.to_s
|
endpoint_adminurl admin_api_endpoint.to_s
|
||||||
endpoint_internalurl api_endpoint.to_s
|
endpoint_internalurl internal_api_endpoint.to_s
|
||||||
endpoint_publicurl api_endpoint.to_s
|
endpoint_publicurl public_api_endpoint.to_s
|
||||||
|
|
||||||
action :create_endpoint
|
action :create_endpoint
|
||||||
end
|
end
|
||||||
|
|
|
@ -24,7 +24,7 @@ include_recipe 'openstack-network'
|
||||||
|
|
||||||
platform_options = node['openstack']['network']['platform']
|
platform_options = node['openstack']['network']['platform']
|
||||||
|
|
||||||
identity_endpoint = endpoint 'identity-api'
|
identity_endpoint = internal_endpoint 'identity-internal'
|
||||||
service_pass = get_password 'service', 'openstack-network'
|
service_pass = get_password 'service', 'openstack-network'
|
||||||
metadata_secret = get_secret node['openstack']['network']['metadata']['secret_name']
|
metadata_secret = get_secret node['openstack']['network']['metadata']['secret_name']
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,90 @@ describe 'openstack-network::identity_registration' do
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'with different admin url values' do
|
||||||
|
admin_url = 'https://admin.host:123/admin_path'
|
||||||
|
general_url = 'http://general.host:456/general_path'
|
||||||
|
|
||||||
|
# Set the general endpoint
|
||||||
|
node.set['openstack']['endpoints']['network-api']['uri'] = general_url
|
||||||
|
# Set the admin endpoint override
|
||||||
|
node.set['openstack']['endpoints']['admin']['network-api']['uri'] = admin_url
|
||||||
|
expect(chef_run).to create_endpoint_openstack_identity_register(
|
||||||
|
'Register Network Endpoint'
|
||||||
|
).with(
|
||||||
|
auth_uri: 'http://127.0.0.1:35357/v2.0',
|
||||||
|
bootstrap_token: 'bootstrap-token',
|
||||||
|
service_type: 'network',
|
||||||
|
endpoint_region: 'RegionOne',
|
||||||
|
endpoint_adminurl: admin_url,
|
||||||
|
endpoint_internalurl: general_url,
|
||||||
|
endpoint_publicurl: general_url
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'with different public url values' do
|
||||||
|
public_url = 'https://public.host:789/public_path'
|
||||||
|
general_url = 'http://general.host:456/general_path'
|
||||||
|
|
||||||
|
# Set the general endpoint
|
||||||
|
node.set['openstack']['endpoints']['network-api']['uri'] = general_url
|
||||||
|
# Set the public endpoint override
|
||||||
|
node.set['openstack']['endpoints']['public']['network-api']['uri'] = public_url
|
||||||
|
expect(chef_run).to create_endpoint_openstack_identity_register(
|
||||||
|
'Register Network Endpoint'
|
||||||
|
).with(
|
||||||
|
auth_uri: 'http://127.0.0.1:35357/v2.0',
|
||||||
|
bootstrap_token: 'bootstrap-token',
|
||||||
|
service_type: 'network',
|
||||||
|
endpoint_region: 'RegionOne',
|
||||||
|
endpoint_adminurl: general_url,
|
||||||
|
endpoint_internalurl: general_url,
|
||||||
|
endpoint_publicurl: public_url
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'with different internal url values' do
|
||||||
|
internal_url = 'http://internal.host:456/internal_path'
|
||||||
|
general_url = 'http://general.host:456/general_path'
|
||||||
|
|
||||||
|
# Set the general endpoint
|
||||||
|
node.set['openstack']['endpoints']['network-api']['uri'] = general_url
|
||||||
|
# Set the internal endpoint override
|
||||||
|
node.set['openstack']['endpoints']['internal']['network-api']['uri'] = internal_url
|
||||||
|
expect(chef_run).to create_endpoint_openstack_identity_register(
|
||||||
|
'Register Network Endpoint'
|
||||||
|
).with(
|
||||||
|
auth_uri: 'http://127.0.0.1:35357/v2.0',
|
||||||
|
bootstrap_token: 'bootstrap-token',
|
||||||
|
service_type: 'network',
|
||||||
|
endpoint_region: 'RegionOne',
|
||||||
|
endpoint_adminurl: general_url,
|
||||||
|
endpoint_internalurl: internal_url,
|
||||||
|
endpoint_publicurl: general_url
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'with different internal,public, and admin url values' do
|
||||||
|
admin_url = 'https://admin.host:123/admin_path'
|
||||||
|
internal_url = 'http://internal.host:456/internal_path'
|
||||||
|
public_url = 'https://public.host:789/public_path'
|
||||||
|
|
||||||
|
node.set['openstack']['endpoints']['internal']['network-api']['uri'] = internal_url
|
||||||
|
node.set['openstack']['endpoints']['public']['network-api']['uri'] = public_url
|
||||||
|
node.set['openstack']['endpoints']['admin']['network-api']['uri'] = admin_url
|
||||||
|
|
||||||
|
expect(chef_run).to create_endpoint_openstack_identity_register(
|
||||||
|
'Register Network Endpoint'
|
||||||
|
).with(
|
||||||
|
auth_uri: 'http://127.0.0.1:35357/v2.0',
|
||||||
|
bootstrap_token: 'bootstrap-token',
|
||||||
|
service_type: 'network',
|
||||||
|
endpoint_region: 'RegionOne',
|
||||||
|
endpoint_adminurl: admin_url,
|
||||||
|
endpoint_internalurl: internal_url,
|
||||||
|
endpoint_publicurl: public_url
|
||||||
|
)
|
||||||
|
end
|
||||||
it 'with custom region override' do
|
it 'with custom region override' do
|
||||||
node.set['openstack']['network']['region'] = 'netRegion'
|
node.set['openstack']['network']['region'] = 'netRegion'
|
||||||
|
|
||||||
|
|
|
@ -121,21 +121,21 @@ shared_context 'endpoint-stubs' do
|
||||||
allow_any_instance_of(Chef::Recipe).to receive(:endpoint)
|
allow_any_instance_of(Chef::Recipe).to receive(:endpoint)
|
||||||
.with('network-api-bind')
|
.with('network-api-bind')
|
||||||
.and_return(double(host: 'network_host', port: 'network_port'))
|
.and_return(double(host: 'network_host', port: 'network_port'))
|
||||||
allow_any_instance_of(Chef::Recipe).to receive(:endpoint)
|
allow_any_instance_of(Chef::Recipe).to receive(:internal_endpoint)
|
||||||
.with('compute-api')
|
.with('compute-api')
|
||||||
.and_return(double(
|
.and_return(double(
|
||||||
scheme: 'compute_scheme',
|
scheme: 'compute_scheme',
|
||||||
host: 'compute_host',
|
host: 'compute_host',
|
||||||
port: 'compute_port'))
|
port: 'compute_port'))
|
||||||
allow_any_instance_of(Chef::Recipe).to receive(:endpoint)
|
allow_any_instance_of(Chef::Recipe).to receive(:admin_endpoint)
|
||||||
.with('identity-admin')
|
.with('identity-admin')
|
||||||
.and_return(double(
|
.and_return(double(
|
||||||
host: 'identity_host',
|
host: 'identity_host',
|
||||||
port: 'identity_port',
|
port: 'identity_port',
|
||||||
scheme: 'identity_scheme',
|
scheme: 'identity_scheme',
|
||||||
to_s: 'identity_uri'))
|
to_s: 'identity_uri'))
|
||||||
allow_any_instance_of(Chef::Recipe).to receive(:endpoint)
|
allow_any_instance_of(Chef::Recipe).to receive(:internal_endpoint)
|
||||||
.with('identity-api')
|
.with('identity-internal')
|
||||||
.and_return('identity_endpoint_value')
|
.and_return('identity_endpoint_value')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue