diff --git a/app/models/manageiq/providers/nuage/manager_mixin.rb b/app/models/manageiq/providers/nuage/manager_mixin.rb index d93153cd81..44146b1ef0 100644 --- a/app/models/manageiq/providers/nuage/manager_mixin.rb +++ b/app/models/manageiq/providers/nuage/manager_mixin.rb @@ -17,7 +17,7 @@ def raw_connect(username, password, endpoint_opts) end def auth_url(protocol, server, port, version) - scheme = protocol == "ssl-with-validation" ? "https" : "http" + scheme = %w(ssl ssl-with-validation).include?(protocol) ? "https" : "http" URI::Generic.build(:scheme => scheme, :host => server, :port => port, :path => "/nuage/api/#{version}").to_s end end diff --git a/spec/models/manageiq/providers/nuage/network_manager_spec.rb b/spec/models/manageiq/providers/nuage/network_manager_spec.rb index 3dc1a15247..f295c847b5 100644 --- a/spec/models/manageiq/providers/nuage/network_manager_spec.rb +++ b/spec/models/manageiq/providers/nuage/network_manager_spec.rb @@ -17,6 +17,12 @@ @ems.connect end + it 'connects over secure channel without validation' do + @ems.security_protocol = 'ssl' + expect(ManageIQ::Providers::Nuage::NetworkManager::VsdClient).to receive(:new).with("https://host:8000/nuage/api/v5_0", "testuser", "secret") + @ems.connect + end + it 'connects over secure channel' do @ems.security_protocol = 'ssl-with-validation' expect(ManageIQ::Providers::Nuage::NetworkManager::VsdClient).to receive(:new).with("https://host:8000/nuage/api/v5_0", "testuser", "secret") @@ -144,6 +150,10 @@ expect(described_class.auth_url(nil, 'hostname', 8443, 'v5')).to eq('http://hostname:8443/nuage/api/v5') end + it 'builds insecure ssl URL' do + expect(described_class.auth_url('ssl', 'hostname', 8443, 'v5')).to eq('https://hostname:8443/nuage/api/v5') + end + it 'builds secure URL' do expect(described_class.auth_url('ssl-with-validation', 'hostname', 8443, 'v5')).to eq('https://hostname:8443/nuage/api/v5') end