def test_client_manager_properly_creates_httpclient_instance(self):
        self.mox.StubOutWithMock(HTTPClient, '__init__')
        HTTPClient.__init__(
            ca_cert=CA_CERT,
            # we are not really interested in other args
            auth_strategy=mox.IgnoreArg(),
            auth_url=mox.IgnoreArg(),
            endpoint_url=mox.IgnoreArg(),
            insecure=mox.IgnoreArg(),
            password=mox.IgnoreArg(),
            region_name=mox.IgnoreArg(),
            tenant_name=mox.IgnoreArg(),
            token=mox.IgnoreArg(),
            username=mox.IgnoreArg(),
            user_id=mox.IgnoreArg(),
            tenant_id=mox.IgnoreArg(),
            timeout=mox.IgnoreArg(),
            log_credentials=mox.IgnoreArg(),
            service_type=mox.IgnoreArg(),
            endpoint_type=mox.IgnoreArg()
        )
        self.mox.ReplayAll()

        version = {'network': '2.0'}
        ClientManager(ca_cert=CA_CERT,
                      api_version=version,
                      url=END_URL,
                      token=AUTH_TOKEN).neutron
        self.mox.VerifyAll()
Example #2
0
    def test_client_manager_properly_creates_httpclient_instance(self):
        self.mox.StubOutWithMock(HTTPClient, '__init__')
        HTTPClient.__init__(
            ca_cert=CA_CERT,
            # we are not really interested in other args
            auth_strategy=mox.IgnoreArg(),
            auth_url=mox.IgnoreArg(),
            auth_plugin=mox.IgnoreArg(),
            endpoint_url=mox.IgnoreArg(),
            insecure=mox.IgnoreArg(),
            password=mox.IgnoreArg(),
            region_name=mox.IgnoreArg(),
            tenant_name=mox.IgnoreArg(),
            token=mox.IgnoreArg(),
            username=mox.IgnoreArg(),
            user_id=mox.IgnoreArg(),
            tenant_id=mox.IgnoreArg(),
            timeout=mox.IgnoreArg(),
            log_credentials=mox.IgnoreArg(),
            service_type=mox.IgnoreArg(),
            endpoint_type=mox.IgnoreArg())
        self.mox.ReplayAll()

        version = {'network': '2.0'}
        ClientManager(ca_cert=CA_CERT,
                      api_version=version,
                      url=END_URL,
                      token=AUTH_TOKEN).neutron
        self.mox.VerifyAll()
Example #3
0
    def sync_with_ironic(self, auth_server, auth_port, auth_protocol,
                         auth_version, admin_user, admin_password,
                         admin_tenant_name, ironic_server_ip,
                         ironic_server_port):

        auth_url = '%s://%s:%s/%s' % (auth_protocol, auth_server, auth_port,
                                      auth_version)

        print auth_url

        httpclient = HTTPClient(username=admin_user,
                                project_name=admin_tenant_name,
                                password=admin_password,
                                auth_url=auth_url)

        httpclient.authenticate()

        ironic_url = 'http://%s:%s/v1/nodes/detail' % (ironic_server_ip,
                                                       ironic_server_port)
        auth_token = httpclient.auth_token
        headers = {'X-Auth-Token': str(auth_token)}

        resp = requests.get(ironic_url, headers=headers)

        resp_dict = resp.json()
        node_dict_list = resp_dict["nodes"]
        self.process_ironic_node_info(node_dict_list)
    def test_request_forbidden_is_returned_to_caller(self):
        rv_should_be = MyResp(403), 'forbidden message'
        HTTPClient.request(URL, METHOD,
                           headers=mox.IgnoreArg()).AndReturn(rv_should_be)
        self.mox.ReplayAll()

        self.assertEqual(rv_should_be, self.http._cs_request(URL, METHOD))
        self.mox.VerifyAll()
Example #5
0
    def setUp(self):
        super(TestHTTPClient, self).setUp()

        self.mox = mox.Mox()
        self.mox.StubOutWithMock(httplib2.Http, 'request')
        self.addCleanup(self.mox.UnsetStubs)

        self.http = HTTPClient(token=AUTH_TOKEN, endpoint_url=END_URL)
    def test_request_error(self):
        HTTPClient.request(URL, METHOD, headers=mox.IgnoreArg()).AndRaise(
            Exception('error msg'))
        self.mox.ReplayAll()

        self.assertRaises(exceptions.ConnectionFailed, self.http._cs_request,
                          URL, METHOD)
        self.mox.VerifyAll()
    def test_request_success(self):
        rv_should_be = MyResp(200), 'test content'

        HTTPClient.request(URL, METHOD,
                           headers=mox.IgnoreArg()).AndReturn(rv_should_be)
        self.mox.ReplayAll()

        self.assertEqual(rv_should_be, self.http._cs_request(URL, METHOD))
        self.mox.VerifyAll()
Example #8
0
    def test_request_forbidden_is_returned_to_caller(self):
        rv_should_be = MyResp(403), 'forbidden message'
        HTTPClient.request(
            URL, METHOD, headers=mox.IgnoreArg()
        ).AndReturn(rv_should_be)
        self.mox.ReplayAll()

        self.assertEqual(rv_should_be, self.http._cs_request(URL, METHOD))
        self.mox.VerifyAll()
    def test_request_unauthorized(self):
        rv_should_be = MyResp(401), 'unauthorized message'
        HTTPClient.request(URL, METHOD,
                           headers=mox.IgnoreArg()).AndReturn(rv_should_be)
        self.mox.ReplayAll()

        e = self.assertRaises(exceptions.Unauthorized, self.http._cs_request,
                              URL, METHOD)
        self.assertEqual('unauthorized message', e.message)
        self.mox.VerifyAll()
Example #10
0
    def test_request_success(self):
        rv_should_be = MyResp(200), 'test content'

        HTTPClient.request(
            URL, METHOD, headers=mox.IgnoreArg()
        ).AndReturn(rv_should_be)
        self.mox.ReplayAll()

        self.assertEqual(rv_should_be, self.http._cs_request(URL, METHOD))
        self.mox.VerifyAll()
Example #11
0
class TestHTTPClient(testtools.TestCase):
    def setUp(self):
        super(TestHTTPClient, self).setUp()

        self.mox = mox.Mox()
        self.mox.StubOutWithMock(HTTPClient, 'request')
        self.addCleanup(self.mox.UnsetStubs)

        self.http = HTTPClient(token=AUTH_TOKEN, endpoint_url=END_URL)

    def test_request_error(self):
        HTTPClient.request(
            URL, METHOD, headers=mox.IgnoreArg()
        ).AndRaise(Exception('error msg'))
        self.mox.ReplayAll()

        self.assertRaises(
            exceptions.ConnectionFailed,
            self.http._cs_request,
            URL, METHOD
        )
        self.mox.VerifyAll()

    def test_request_success(self):
        rv_should_be = MyResp(200), 'test content'

        HTTPClient.request(
            URL, METHOD, headers=mox.IgnoreArg()
        ).AndReturn(rv_should_be)
        self.mox.ReplayAll()

        self.assertEqual(rv_should_be, self.http._cs_request(URL, METHOD))
        self.mox.VerifyAll()

    def test_request_unauthorized(self):
        rv_should_be = MyResp(401), 'unauthorized message'
        HTTPClient.request(
            URL, METHOD, headers=mox.IgnoreArg()
        ).AndReturn(rv_should_be)
        self.mox.ReplayAll()

        e = self.assertRaises(exceptions.Unauthorized,
                              self.http._cs_request, URL, METHOD)
        self.assertEqual('unauthorized message', e.message)
        self.mox.VerifyAll()

    def test_request_forbidden_is_returned_to_caller(self):
        rv_should_be = MyResp(403), 'forbidden message'
        HTTPClient.request(
            URL, METHOD, headers=mox.IgnoreArg()
        ).AndReturn(rv_should_be)
        self.mox.ReplayAll()

        self.assertEqual(rv_should_be, self.http._cs_request(URL, METHOD))
        self.mox.VerifyAll()
Example #12
0
    def test_proper_exception_is_raised_when_cert_validation_fails(self):
        http = HTTPClient(token=AUTH_TOKEN, endpoint_url=END_URL)

        self.mox.StubOutWithMock(HTTPClient, 'request')
        HTTPClient.request(URL, METHOD, headers=mox.IgnoreArg()).AndRaise(
            requests.exceptions.SSLError)
        self.mox.ReplayAll()

        self.assertRaises(exceptions.SslCertificateValidationError,
                          http._cs_request, URL, METHOD)
        self.mox.VerifyAll()
Example #13
0
    def test_request_unauthorized(self):
        rv_should_be = MyResp(401), 'unauthorized message'
        HTTPClient.request(
            URL, METHOD, headers=mox.IgnoreArg()
        ).AndReturn(rv_should_be)
        self.mox.ReplayAll()

        e = self.assertRaises(exceptions.Unauthorized,
                              self.http._cs_request, URL, METHOD)
        self.assertEqual('unauthorized message', e.message)
        self.mox.VerifyAll()
Example #14
0
    def test_request_error(self):
        HTTPClient.request(
            URL, METHOD, headers=mox.IgnoreArg()
        ).AndRaise(Exception('error msg'))
        self.mox.ReplayAll()

        self.assertRaises(
            exceptions.ConnectionFailed,
            self.http._cs_request,
            URL, METHOD
        )
        self.mox.VerifyAll()
    def test_proper_exception_is_raised_when_cert_validation_fails(self):
        http = HTTPClient(token=AUTH_TOKEN, endpoint_url=END_URL)

        self.mox.StubOutWithMock(HTTPClient, 'request')
        HTTPClient.request(
            URL, METHOD, headers=mox.IgnoreArg()
        ).AndRaise(requests.exceptions.SSLError)
        self.mox.ReplayAll()

        self.assertRaises(
            exceptions.SslCertificateValidationError,
            http._cs_request,
            URL, METHOD
        )
        self.mox.VerifyAll()
class TestHTTPClient(testtools.TestCase):
    def setUp(self):
        super(TestHTTPClient, self).setUp()

        self.mox = mox.Mox()
        self.mox.StubOutWithMock(HTTPClient, 'request')
        self.addCleanup(self.mox.UnsetStubs)

        self.http = HTTPClient(token=AUTH_TOKEN, endpoint_url=END_URL)

    def test_request_error(self):
        HTTPClient.request(URL, METHOD, headers=mox.IgnoreArg()).AndRaise(
            Exception('error msg'))
        self.mox.ReplayAll()

        self.assertRaises(exceptions.ConnectionFailed, self.http._cs_request,
                          URL, METHOD)
        self.mox.VerifyAll()

    def test_request_success(self):
        rv_should_be = MyResp(200), 'test content'

        HTTPClient.request(URL, METHOD,
                           headers=mox.IgnoreArg()).AndReturn(rv_should_be)
        self.mox.ReplayAll()

        self.assertEqual(rv_should_be, self.http._cs_request(URL, METHOD))
        self.mox.VerifyAll()

    def test_request_unauthorized(self):
        rv_should_be = MyResp(401), 'unauthorized message'
        HTTPClient.request(URL, METHOD,
                           headers=mox.IgnoreArg()).AndReturn(rv_should_be)
        self.mox.ReplayAll()

        e = self.assertRaises(exceptions.Unauthorized, self.http._cs_request,
                              URL, METHOD)
        self.assertEqual('unauthorized message', e.message)
        self.mox.VerifyAll()

    def test_request_forbidden_is_returned_to_caller(self):
        rv_should_be = MyResp(403), 'forbidden message'
        HTTPClient.request(URL, METHOD,
                           headers=mox.IgnoreArg()).AndReturn(rv_should_be)
        self.mox.ReplayAll()

        self.assertEqual(rv_should_be, self.http._cs_request(URL, METHOD))
        self.mox.VerifyAll()
Example #17
0
class TestHTTPClient(testtools.TestCase):
    def setUp(self):
        super(TestHTTPClient, self).setUp()

        self.mox = mox.Mox()
        self.mox.StubOutWithMock(httplib2.Http, 'request')
        self.addCleanup(self.mox.UnsetStubs)

        self.http = HTTPClient(token=AUTH_TOKEN, endpoint_url=END_URL)

    def test_request_error(self):
        httplib2.Http.request(URL, METHOD, headers=mox.IgnoreArg()).AndRaise(
            Exception('error msg'))
        self.mox.ReplayAll()

        self.assertRaises(exceptions.ConnectionFailed, self.http._cs_request,
                          URL, METHOD)
        self.mox.VerifyAll()

    def test_request_success(self):
        rv_should_be = MyResp(200), 'test content'

        httplib2.Http.request(URL, METHOD,
                              headers=mox.IgnoreArg()).AndReturn(rv_should_be)
        self.mox.ReplayAll()

        self.assertEqual(rv_should_be, self.http._cs_request(URL, METHOD))
        self.mox.VerifyAll()
class TestHTTPClient(testtools.TestCase):
    def setUp(self):
        super(TestHTTPClient, self).setUp()

        self.mox = mox.Mox()
        self.mox.StubOutWithMock(httplib2.Http, 'request')
        self.addCleanup(self.mox.UnsetStubs)

        self.http = HTTPClient(token=AUTH_TOKEN, endpoint_url=END_URL)

    def test_request_error(self):
        httplib2.Http.request(
            URL, METHOD, headers=mox.IgnoreArg()
        ).AndRaise(Exception('error msg'))
        self.mox.ReplayAll()

        self.assertRaises(
            exceptions.ConnectionFailed,
            self.http._cs_request,
            URL, METHOD
        )
        self.mox.VerifyAll()

    def test_request_success(self):
        rv_should_be = MyResp(200), 'test content'

        httplib2.Http.request(
            URL, METHOD, headers=mox.IgnoreArg()
        ).AndReturn(rv_should_be)
        self.mox.ReplayAll()

        self.assertEqual(rv_should_be, self.http._cs_request(URL, METHOD))
        self.mox.VerifyAll()
    def setUp(self):
        super(TestHTTPClient, self).setUp()

        self.mox = mox.Mox()
        self.mox.StubOutWithMock(httplib2.Http, 'request')
        self.addCleanup(self.mox.UnsetStubs)

        self.http = HTTPClient(token=AUTH_TOKEN, endpoint_url=END_URL)
Example #20
0
    def _run(self, args_str=None, oper=''):
        self._args = None
        if not args_str:
            args_str = ' '.join(sys.argv[1:])
        self._parse_args(args_str)

        if self._quantum == None:
            httpclient = HTTPClient(
                username='******',
                tenant_name='demo',
                password='******',
                # region_name=self._region_name,
                auth_url='http://%s:5000/v2.0' % (self._args.api_server_ip))
            httpclient.authenticate()

            #OS_URL = httpclient.endpoint_url
            OS_URL = 'http://%s:9696/' % (self._args.api_server_ip)
            OS_TOKEN = httpclient.auth_token
            self._quantum = client.Client('2.0',
                                          endpoint_url=OS_URL,
                                          token=OS_TOKEN)

            self._vnc_lib = VncApi(username=self._args.admin_user,
                                   password=self._args.admin_password,
                                   tenant_name=self._args.admin_tenant_name,
                                   api_server_host=self._args.api_server_ip,
                                   api_server_port=self._args.api_server_port,
                                   api_server_url='/',
                                   auth_host=self._args.api_server_ip)

            self._proj_obj = self._vnc_lib.project_read(
                fq_name=['default-domain', 'default-project'])
            self._ipam_obj = self._vnc_lib.network_ipam_read(fq_name=[
                'default-domain', 'default-project', 'default-network-ipam'
            ])

        if self._args.oper == 'add':
            self._create_vn(self._args.vn_name, self._args.public_subnet)
        elif self._args.oper == 'del':
            self._delete_vn(self._args.vn_name)
        elif self._args.oper == 'add-list':
            self._create_vn_list(self._args.vn_list)
Example #21
0
    def _run(self, args_str=None, oper=''):
        self._args = None
        if not args_str:
            args_str = ' '.join(sys.argv[1:])
        self._parse_args(args_str)

        if self._quantum == None:
            httpclient = HTTPClient(username='******',
                                    tenant_name='demo',
                                    password='******',
                                    # region_name=self._region_name,
                                    auth_url='http://%s:5000/v2.0' % (self._args.api_server_ip))
            httpclient.authenticate()

            #OS_URL = httpclient.endpoint_url
            OS_URL = 'http://%s:9696/' % (self._args.api_server_ip)
            OS_TOKEN = httpclient.auth_token
            self._quantum = client.Client(
                '2.0', endpoint_url=OS_URL, token=OS_TOKEN)

            self._vnc_lib = VncApi(username=self._args.admin_user,
                                   password=self._args.admin_password,
                                   tenant_name=self._args.admin_tenant_name,
                                   api_server_host=self._args.api_server_ip,
                                   api_server_port=self._args.api_server_port,
                                   api_server_url='/',
                                   auth_host=self._args.api_server_ip)

            self._proj_obj = self._vnc_lib.project_read(
                fq_name=['default-domain', 'default-project'])
            self._ipam_obj = self._vnc_lib.network_ipam_read(
                fq_name=['default-domain', 'default-project', 'default-network-ipam'])

        if self._args.oper == 'add':
            self._create_vn(self._args.vn_name, self._args.public_subnet)
        elif self._args.oper == 'del':
            self._delete_vn(self._args.vn_name)
        elif self._args.oper == 'add-list':
            self._create_vn_list(self._args.vn_list)