RPC_backend / transport_url workover
- added rabbit_transport_url method to endpoints library usage i.e for block-storage will be node.default['openstack']['block-storage']['conf_secrets'] ['DEFAULT']['transport_url'] = rabbit_transport_url 'block-storage' Change-Id: I0a6da37e3f2b839590b6349fd906d47c5206fbb3
This commit is contained in:
parent
cd6fd327a3
commit
6401b89019
|
@ -30,6 +30,19 @@ module ::Openstack
|
|||
nil
|
||||
end
|
||||
|
||||
# Shortcut to get the transport_url for rabbitmq
|
||||
def rabbit_transport_url(service)
|
||||
mq_user = node['openstack']['mq'][service]['rabbit']['userid']
|
||||
mq_password = get_password 'user', mq_user
|
||||
mq_port = node['openstack']['endpoints']['mq']['port']
|
||||
vhost = node['openstack']['mq']['vhost']
|
||||
bind_mq = node['openstack']['bind_service']['mq']
|
||||
bind_mq_address = bind_address bind_mq
|
||||
url = "rabbit://#{mq_user}:#{mq_password}@#{bind_mq_address}:#{mq_port}"
|
||||
url += "/#{vhost}" unless vhost == '/'
|
||||
url
|
||||
end
|
||||
|
||||
# Shortcut to get the SQLAlchemy DB URI for a named service
|
||||
def db_uri(service, user, pass, is_slave = false) # rubocop:disable MethodLength, CyclomaticComplexity
|
||||
info = db(service)
|
||||
|
|
|
@ -99,6 +99,31 @@ describe 'openstack-common::default' do
|
|||
end
|
||||
end
|
||||
|
||||
describe 'transport_url' do
|
||||
it do
|
||||
allow(subject).to receive(:node).and_return(chef_run.node)
|
||||
allow(subject).to receive(:get_password)
|
||||
.with('user', 'guest')
|
||||
.and_return('mypass')
|
||||
expected = 'rabbit://guest:mypass@127.0.0.1:5672'
|
||||
expect(subject.rabbit_transport_url('compute')).to eq(expected)
|
||||
end
|
||||
|
||||
it do
|
||||
node.set['openstack']['mq']['service_type'] = 'rabbit'
|
||||
node.set['openstack']['mq']['compute']['rabbit']['userid'] = 'rabbit2'
|
||||
node.set['openstack']['endpoints']['mq']['port'] = 1234
|
||||
node.set['openstack']['bind_service']['mq']['host'] = '10.0.0.1'
|
||||
node.set['openstack']['mq']['vhost'] = 'anyhost'
|
||||
allow(subject).to receive(:node).and_return(chef_run.node)
|
||||
allow(subject).to receive(:get_password)
|
||||
.with('user', 'rabbit2')
|
||||
.and_return('mypass2')
|
||||
expected = 'rabbit://rabbit2:mypass2@10.0.0.1:1234/anyhost'
|
||||
expect(subject.rabbit_transport_url('compute')).to eq(expected)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#db' do
|
||||
it 'returns nil when no openstack.db not in node attrs' do
|
||||
allow(subject).to receive(:node).and_return({})
|
||||
|
|
Loading…
Reference in New Issue