def update_account_alias(self): """ Update the account alias. Args: None Returns: (String, String) Account ID, Account Alias """ account_id, account_alias = get_account_alias_from_role_arn( self._role_arn) with AccountAliasAccessor(account_id, self._schema) as alias_accessor: alias_accessor.set_account_alias(account_alias) accounts = get_account_names_by_organization(self._role_arn) for account in accounts: acct_id = account.get('id') acct_alias = account.get('name') if acct_id and acct_alias: with AccountAliasAccessor(acct_id, self._schema) as alias_accessor: alias_accessor.set_account_alias(acct_alias) return account_id, account_alias
def test_get_account_alias_from_role_arn_no_session(self, mock_get_role_session): """Test get_account_alias_from_role_arn is functional.""" mock_session = mock_get_role_session.return_value mock_client = mock_session.client mock_client.return_value.list_account_aliases.side_effect = ClientError({}, "Error") mock_account_id = "111111111111" role_arn = f"arn:aws:iam::{mock_account_id}:role/CostManagement" account_id, account_alias = utils.get_account_alias_from_role_arn(role_arn) self.assertEqual(mock_account_id, account_id) self.assertEqual(mock_account_id, account_alias)
def test_get_account_alias_from_role_arn(self): """Test get_account_alias_from_role_arn is functional.""" mock_account_id = "111111111111" role_arn = f"arn:aws:iam::{mock_account_id}:role/CostManagement" mock_alias = "test-alias" session = Mock() mock_client = Mock() mock_client.list_account_aliases.return_value = {"AccountAliases": [mock_alias]} session.client.return_value = mock_client account_id, account_alias = utils.get_account_alias_from_role_arn(role_arn, session) self.assertEqual(mock_account_id, account_id) self.assertEqual(mock_alias, account_alias)
def test_get_account_alias_from_role_arn_no_session( self, mock_get_role_session): mock_session = mock_get_role_session.return_value mock_client = mock_session.client mock_client.return_value.list_account_aliases.side_effect = ClientError( {}, 'Error') mock_account_id = '111111111111' role_arn = 'arn:aws:iam::{}:role/CostManagement'.format( mock_account_id) account_id, account_alias = utils.get_account_alias_from_role_arn( role_arn) self.assertEqual(mock_account_id, account_id) self.assertEqual(mock_account_id, account_alias)
def test_get_account_alias_from_role_arn(self): mock_account_id = '111111111111' role_arn = 'arn:aws:iam::{}:role/CostManagement'.format( mock_account_id) mock_alias = 'test-alias' session = Mock() mock_client = Mock() mock_client.list_account_aliases.return_value = { 'AccountAliases': [mock_alias] } session.client.return_value = mock_client account_id, account_alias = utils.get_account_alias_from_role_arn( role_arn, session) self.assertEqual(mock_account_id, account_id) self.assertEqual(mock_alias, account_alias)
def test_get_account_alias_from_role_arn_no_policy(self, mock_get_role_session): """Test get_account_alias_from_role_arn is functional when there are no policies.""" mock_session = mock_get_role_session.return_value mock_client = mock_session.client mock_client.return_value.list_account_aliases.side_effect = ClientError( {}, 'Error') mock_account_id = '111111111111' role_arn = 'arn:aws:iam::{}:role/CostManagement'.format( mock_account_id) account_id, account_alias = utils.get_account_alias_from_role_arn( role_arn, mock_session) self.assertEqual(mock_account_id, account_id) self.assertEqual(mock_account_id, account_alias)
def update_account_alias(self): """ Update the account alias. Args: None Returns: (String, String) Account ID, Account Alias """ account_id, account_alias = get_account_alias_from_role_arn( self._role_arn) with AccountAliasAccessor(account_id, self._schema) as alias_accessor: alias_accessor.set_account_alias(account_alias) alias_accessor.commit() return account_id, account_alias