Merge "Enable --os-insecure CLI option"
This commit is contained in:
@@ -15,6 +15,7 @@ from keystoneclient.auth.identity import v3 as v3_auth
|
||||
from keystoneclient import discover
|
||||
from keystoneclient import exceptions as ks_exc
|
||||
from keystoneclient import session
|
||||
from oslo.utils import strutils
|
||||
import six.moves.urllib.parse as urlparse
|
||||
|
||||
from ceilometerclient.common import utils
|
||||
@@ -174,7 +175,8 @@ class AuthPlugin(auth.BaseAuthPlugin):
|
||||
'cacert': self.opts.get('cacert'),
|
||||
'cert': self.opts.get('cert'),
|
||||
'key': self.opts.get('key'),
|
||||
'insecure': self.opts.get('insecure'),
|
||||
'insecure': strutils.bool_from_string(
|
||||
self.opts.get('insecure')),
|
||||
'endpoint_type': self.opts.get('endpoint_type'),
|
||||
}
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@ class ClientTest(utils.BaseTestCase):
|
||||
'original_ip': None,
|
||||
'http': None,
|
||||
'region_name': None,
|
||||
'verify': None,
|
||||
'verify': True,
|
||||
'timings': None,
|
||||
'keyring_saver': None,
|
||||
'cert': None,
|
||||
|
||||
@@ -20,6 +20,7 @@ import six
|
||||
from testtools import matchers
|
||||
|
||||
from ceilometerclient import exc
|
||||
from ceilometerclient.openstack.common.apiclient import client as api_client
|
||||
from ceilometerclient import shell as ceilometer_shell
|
||||
from ceilometerclient.tests import utils
|
||||
from ceilometerclient.v2 import client as v2client
|
||||
@@ -169,3 +170,38 @@ class ShellTimeoutTest(ShellTestBase):
|
||||
expected_msg = ('ceilometer: error: argument --timeout: '
|
||||
'0 must be greater than 0')
|
||||
self._test_timeout('0', expected_msg)
|
||||
|
||||
|
||||
class ShellInsecureTest(ShellTestBase):
|
||||
|
||||
@mock.patch.object(api_client, 'HTTPClient')
|
||||
def test_insecure_true_ceilometer(self, mocked_client):
|
||||
self.make_env(FAKE_V2_ENV)
|
||||
args = ['--debug', '--os-insecure', 'true', 'alarm-list']
|
||||
self.assertIsNone(ceilometer_shell.main(args))
|
||||
args, kwargs = mocked_client.call_args
|
||||
self.assertEqual(False, kwargs.get('verify'))
|
||||
|
||||
@mock.patch.object(ks_session, 'Session')
|
||||
def test_insecure_true_keystone(self, mocked_session):
|
||||
mocked_session.side_effect = exc.HTTPUnauthorized("FAIL")
|
||||
self.make_env(FAKE_V2_ENV)
|
||||
args = ['--debug', '--os-insecure', 'true', 'alarm-list']
|
||||
self.assertRaises(exc.CommandError, ceilometer_shell.main, args)
|
||||
mocked_session.assert_called_with(verify=False, cert='')
|
||||
|
||||
@mock.patch.object(api_client, 'HTTPClient')
|
||||
def test_insecure_false_ceilometer(self, mocked_client):
|
||||
self.make_env(FAKE_V2_ENV)
|
||||
args = ['--debug', '--os-insecure', 'false', 'alarm-list']
|
||||
self.assertIsNone(ceilometer_shell.main(args))
|
||||
args, kwargs = mocked_client.call_args
|
||||
self.assertEqual(True, kwargs.get('verify'))
|
||||
|
||||
@mock.patch.object(ks_session, 'Session')
|
||||
def test_insecure_false_keystone(self, mocked_session):
|
||||
mocked_session.side_effect = exc.HTTPUnauthorized("FAIL")
|
||||
self.make_env(FAKE_V2_ENV)
|
||||
args = ['--debug', '--os-insecure', 'false', 'alarm-list']
|
||||
self.assertRaises(exc.CommandError, ceilometer_shell.main, args)
|
||||
mocked_session.assert_called_with(verify=True, cert='')
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from oslo.utils import strutils
|
||||
|
||||
from ceilometerclient import client as ceiloclient
|
||||
from ceilometerclient.openstack.common.apiclient import client
|
||||
from ceilometerclient.v2 import alarms
|
||||
@@ -54,12 +56,15 @@ class Client(object):
|
||||
if timeout <= 0:
|
||||
timeout = None
|
||||
|
||||
insecure = strutils.bool_from_string(kwargs.get('insecure'))
|
||||
verify = kwargs.get('verify', not insecure)
|
||||
|
||||
self.client = client.HTTPClient(
|
||||
auth_plugin=self.auth_plugin,
|
||||
region_name=kwargs.get('region_name'),
|
||||
endpoint_type=kwargs.get('endpoint_type'),
|
||||
original_ip=kwargs.get('original_ip'),
|
||||
verify=kwargs.get('verify'),
|
||||
verify=verify,
|
||||
cert=kwargs.get('cacert'),
|
||||
timeout=timeout,
|
||||
timings=kwargs.get('timings'),
|
||||
|
||||
Reference in New Issue
Block a user