Esempio n. 1
0
    def test_get_session_without_auth_url(self):
        """test_get_session_without_auth_url check that we could not retrieve a session without auth_url"""

        osclients = OpenStackClients()
        osclients.auth_url = None

        # Checking v3
        try:
            osclients.get_session()
        except Exception as ex:
            self.assertRaises(ex)

        # Checking v2
        osclients.use_v3 = False
        try:
            osclients.get_session()
        except Exception as ex:
            self.assertRaises(ex)
Esempio n. 2
0
    def test_get_session_using_token(self):
        """test creating a session using a token instead of a password"""

        osclients = OpenStackClients()

        osclients.set_token('faketoken')
        session = osclients.get_session()
        self.assertIsInstance(session, keystoneclient.session.Session)
        self.assertTrue(type(session.auth) == keystoneclient.auth.identity.v3.token.Token)
Esempio n. 3
0
    def test_get_session_without_auth_url(self):
        """test_get_session_without_auth_url check that we could not retrieve a session without auth_url"""

        osclients = OpenStackClients()
        osclients.auth_url = None

        # Checking v3
        try:
            osclients.get_session()
        except Exception as ex:
            self.assertRaises(ex)

        # Checking v2
        osclients.use_v3 = False
        try:
            osclients.get_session()
        except Exception as ex:
            self.assertRaises(ex)
Esempio n. 4
0
    def test_get_session_without_username_nor_token(self):
        """test_get_session_without_username check that we could not retrieve a session without username"""

        osclients = OpenStackClients()

        osclients.set_credential("", self.OS_PASSWORD, tenant_id=self.OS_TENANT_ID)

        # Checking v3
        try:
            osclients.get_session()
        except Exception as ex:
            self.assertRaises(ex)

        # Checking v2
        osclients.use_v3 = False
        try:
            osclients.get_session()
        except Exception as ex:
            self.assertRaises(ex)
Esempio n. 5
0
    def test_get_session_using_token(self):
        """test creating a session using a token instead of a password"""

        osclients = OpenStackClients()

        osclients.set_token('faketoken')
        session = osclients.get_session()
        self.assertIsInstance(session, keystoneclient.session.Session)
        self.assertTrue(
            type(session.auth) == keystoneclient.auth.identity.v3.token.Token)
Esempio n. 6
0
    def test_get_session_with_different_auth_url(self):
        """test_get_session_without_auth_url check that we could retrieve a session with auth_url formats"""

        auth_url_v2_1 = "http://cloud.lab.fi-ware.org:4731/v2.0"
        auth_url_v2_2 = "http://cloud.lab.fi-ware.org:4731/v2.0/"

        auth_url_v3_1 = "http://cloud.lab.fi-ware.org:4731/v3"
        auth_url_v3_2 = "http://cloud.lab.fi-ware.org:4731/v3/"

        osclients = OpenStackClients()

        # Checking v3
        osclients.auth_url = auth_url_v2_1
        session = osclients.get_session()
        self.assertIsInstance(session, keystoneclient.session.Session)

        session.invalidate()
        osclients._session_v3 = None

        osclients.auth_url = auth_url_v2_2
        session = osclients.get_session()
        self.assertIsInstance(session, keystoneclient.session.Session)

        session.invalidate()
        osclients._session_v3 = None

        # Checking v2
        osclients.use_v3 = False
        osclients.auth_url = auth_url_v3_1
        session = osclients.get_session()
        self.assertIsInstance(session, keystoneclient.session.Session)

        session.invalidate()
        osclients._session_v2 = None

        osclients.auth_url = auth_url_v3_2
        session = osclients.get_session()
        self.assertIsInstance(session, keystoneclient.session.Session)

        session.invalidate()
        osclients._session_v2 = None
Esempio n. 7
0
    def test_get_session_with_different_auth_url(self):
        """test_get_session_without_auth_url check that we could retrieve a session with auth_url formats"""

        auth_url_v2_1 = "http://cloud.lab.fi-ware.org:4731/v2.0"
        auth_url_v2_2 = "http://cloud.lab.fi-ware.org:4731/v2.0/"

        auth_url_v3_1 = "http://cloud.lab.fi-ware.org:4731/v3"
        auth_url_v3_2 = "http://cloud.lab.fi-ware.org:4731/v3/"

        osclients = OpenStackClients()

        # Checking v3
        osclients.auth_url = auth_url_v2_1
        session = osclients.get_session()
        self.assertIsInstance(session, keystoneclient.session.Session)

        session.invalidate()
        osclients._session_v3 = None

        osclients.auth_url = auth_url_v2_2
        session = osclients.get_session()
        self.assertIsInstance(session, keystoneclient.session.Session)

        session.invalidate()
        osclients._session_v3 = None

        # Checking v2
        osclients.use_v3 = False
        osclients.auth_url = auth_url_v3_1
        session = osclients.get_session()
        self.assertIsInstance(session, keystoneclient.session.Session)

        session.invalidate()
        osclients._session_v2 = None

        osclients.auth_url = auth_url_v3_2
        session = osclients.get_session()
        self.assertIsInstance(session, keystoneclient.session.Session)

        session.invalidate()
        osclients._session_v2 = None
Esempio n. 8
0
    def test_get_session_without_username_nor_token(self):
        """test_get_session_without_username check that we could not retrieve a session without username"""

        osclients = OpenStackClients()

        osclients.set_credential("",
                                 self.OS_PASSWORD,
                                 tenant_id=self.OS_TENANT_ID)

        # Checking v3
        try:
            osclients.get_session()
        except Exception as ex:
            self.assertRaises(ex)

        # Checking v2
        osclients.use_v3 = False
        try:
            osclients.get_session()
        except Exception as ex:
            self.assertRaises(ex)
Esempio n. 9
0
class TestOSClientsOverrideEndpoint(TestCase):
    """Class to test the endpoint override feature"""

    def setUp(self):
        d = defaultdict(list)
        d['catalog'].append(service)
        self.access = d
        self.osclients = OpenStackClients()
        self.url = 'http://fake.org:9090'
        self.original_url = service['endpoints'][1]['url']

    def restore_catalog(self):
        """restore catalog"""
        service['endpoints'][1]['url'] = self.original_url

    def tearDown(self):
        """restore objects"""
        self.restore_catalog()

    def override_endpoint(self):
        """method that override the endpoint"""
        self.osclients.override_endpoint('object-store', 'Spain2', 'admin', self.url)

    def assertOverrideEndpoint(self):
        """check that the override has been done"""
        self.assertEquals(self.osclients.get_admin_endpoint('object-store', 'Spain2'), self.url)

    def test_override_endpoint_session(self):
        """test that invoking override endpoint does not create a session"""
        self.override_endpoint()

        self.assertFalse(self.osclients._session_v2)
        self.assertFalse(self.osclients._session_v3)

    def test_override_endpoint(self):
        """check that a session catalog is overriden"""
        mock = MagicMock()
        config = {'auth.get_access.return_value': self.access}
        mock.configure_mock(**config)
        self.osclients._session_v3 = mock
        self.override_endpoint()
        self.assertOverrideEndpoint()

    @patch('fiwareskuld.utils.osclients.session')
    def test_override_endpoint_multiple(self, mock):
        """test that override works with an already created session and then
        with a new one without invoking the method again"""
        config = {'Session.return_value.auth.get_access.return_value': self.access}
        mock.configure_mock(**config)
        session = self.osclients.get_session()
        self.override_endpoint()
        self.assertOverrideEndpoint()

        # invalidate and create a new session; ensure than catalog is again
        # the original. Setting a new token invalidate the session. The new
        # one is created at the invocation of get_admin_endpoint.
        self.restore_catalog()
        self.osclients.set_token('faketoken')

        # check again
        self.assertOverrideEndpoint()
Esempio n. 10
0
class TestOSClientsOverrideEndpoint(TestCase):
    """Class to test the endpoint override feature"""
    def setUp(self):
        d = defaultdict(list)
        d['catalog'].append(service)
        self.access = d
        self.osclients = OpenStackClients()
        self.url = 'http://fake.org:9090'
        self.original_url = service['endpoints'][1]['url']

    def restore_catalog(self):
        """restore catalog"""
        service['endpoints'][1]['url'] = self.original_url

    def tearDown(self):
        """restore objects"""
        self.restore_catalog()

    def override_endpoint(self):
        """method that override the endpoint"""
        self.osclients.override_endpoint('object-store', 'Spain2', 'admin',
                                         self.url)

    def assertOverrideEndpoint(self):
        """check that the override has been done"""
        self.assertEquals(
            self.osclients.get_admin_endpoint('object-store', 'Spain2'),
            self.url)

    def test_override_endpoint_session(self):
        """test that invoking override endpoint does not create a session"""
        self.override_endpoint()

        self.assertFalse(self.osclients._session_v2)
        self.assertFalse(self.osclients._session_v3)

    def test_override_endpoint(self):
        """check that a session catalog is overriden"""
        mock = MagicMock()
        config = {'auth.get_access.return_value': self.access}
        mock.configure_mock(**config)
        self.osclients._session_v3 = mock
        self.override_endpoint()
        self.assertOverrideEndpoint()

    @patch('fiwareskuld.utils.osclients.session')
    def test_override_endpoint_multiple(self, mock):
        """test that override works with an already created session and then
        with a new one without invoking the method again"""
        config = {
            'Session.return_value.auth.get_access.return_value': self.access
        }
        mock.configure_mock(**config)
        session = self.osclients.get_session()
        self.override_endpoint()
        self.assertOverrideEndpoint()

        # invalidate and create a new session; ensure than catalog is again
        # the original. Setting a new token invalidate the session. The new
        # one is created at the invocation of get_admin_endpoint.
        self.restore_catalog()
        self.osclients.set_token('faketoken')

        # check again
        self.assertOverrideEndpoint()