Esempio n. 1
0
    def test_no_registration_if_profile_does_not_exist(self):
        session = mock.Mock()
        session.get_component.side_effect = ProfileNotFound(profile='unknown')

        assumerole.inject_assume_role_provider_cache(
            session, event_name='building-command-table.foo')

        credential_provider = session.get_component.return_value
        self.assertFalse(credential_provider.get_provider.called)
Esempio n. 2
0
    def test_no_registration_if_profile_does_not_exist(self):
        session = mock.Mock()
        session.get_component.side_effect = ProfileNotFound(
            profile='unknown')

        assumerole.inject_assume_role_provider_cache(
            session, event_name='building-command-table.foo')

        credential_provider = session.get_component.return_value
        self.assertFalse(credential_provider.get_provider.called)
Esempio n. 3
0
 def test_assume_role_provider_injected(self):
     session = mock.Mock()
     assumerole.inject_assume_role_provider_cache(
         session, event_name='building-command-table.foo')
     session.get_component.assert_called_with('credential_provider')
     credential_provider = session.get_component.return_value
     get_provider = credential_provider.get_provider
     get_provider.assert_called_with('assume-role')
     self.assertIsInstance(get_provider.return_value.cache,
                           assumerole.JSONFileCache)
Esempio n. 4
0
 def test_assume_role_provider_injected(self):
     session = mock.Mock()
     assumerole.inject_assume_role_provider_cache(
         session, event_name='building-command-table.foo')
     session.get_component.assert_called_with('credential_provider')
     credential_provider = session.get_component.return_value
     get_provider = credential_provider.get_provider
     get_provider.assert_called_with('assume-role')
     self.assertIsInstance(get_provider.return_value.cache,
                           assumerole.JSONFileCache)
Esempio n. 5
0
    def test_assume_role_provider_injected(self):
        mock_assume_role = mock.Mock(spec=AssumeRoleProvider)
        mock_web_identity = mock.Mock(spec=AssumeRoleWithWebIdentityProvider)
        providers = {
            'assume-role': mock_assume_role,
            'assume-role-with-web-identity': mock_web_identity,
        }
        mock_resolver = mock.Mock(spec=CredentialResolver)
        mock_resolver.get_provider = providers.get
        session = mock.Mock(spec=Session)
        session.get_component.return_value = mock_resolver

        assumerole.inject_assume_role_provider_cache(
            session, event_name='building-command-table.foo')
        session.get_component.assert_called_with('credential_provider')
        self.assertIsInstance(mock_assume_role.cache, assumerole.JSONFileCache)
        self.assertIsInstance(
            mock_web_identity.cache,
            assumerole.JSONFileCache,
        )
Esempio n. 6
0
import botocore.session
import botocore.credentials

session = botocore.session.get_session()

if hasattr(botocore.credentials, 'JSONFileCache'):
    cli_cache = os.path.join(os.path.expanduser('~'), '.aws/cli/cache')
    try:
        session.get_component('credential_provider').get_provider('assume-role').cache = botocore.credentials.JSONFileCache(cli_cache)
    except botocore.exceptions.ProfileNotFound as e:
        sys.exit(e)
else:
    # workaround old awscli without https://github.com/boto/botocore/pull/1157
    from awscli.customizations.assumerole import inject_assume_role_provider_cache
    from awscli.customizations.scalarparse import add_scalar_parsers
    inject_assume_role_provider_cache(session)
    add_scalar_parsers(session)

try:
    credentials = session.get_credentials()
    if credentials is None:
        sys.exit('Unable to locate AWS credentials.')
    frozen_credentials = credentials.get_frozen_credentials()
except KeyboardInterrupt as e:
    sys.exit(e)
except botocore.exceptions.ParamValidationError as e:
    sys.exit(e)
except botocore.exceptions.ProfileNotFound as e:
    sys.exit(e)
except botocore.exceptions.ClientError as e:
    sys.exit(e)