Merge "Enable --os-insecure CLI option"

This commit is contained in:
Jenkins
2015-01-07 18:41:02 +00:00
committed by Gerrit Code Review
4 changed files with 46 additions and 3 deletions

View File

@@ -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'),
}

View File

@@ -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,

View File

@@ -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='')

View File

@@ -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'),