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
Example #2
0
    def test_get_account_names_by_organization_no_session(self, mock_get_role_session):
        """Test get_account_names_by_organization gets nothing if there are no sessions."""
        mock_session = mock_get_role_session.return_value
        mock_client = mock_session.client
        mock_client.return_value.get_paginator.side_effect = ClientError({}, "Error")

        mock_account_id = "111111111111"
        role_arn = f"arn:aws:iam::{mock_account_id}:role/CostManagement"

        accounts = utils.get_account_names_by_organization(role_arn)
        self.assertEqual(accounts, [])
Example #3
0
    def test_get_account_names_by_organization_no_session(
            self, mock_get_role_session):
        mock_session = mock_get_role_session.return_value
        mock_client = mock_session.client
        mock_client.return_value.get_paginator.side_effect = ClientError(
            {}, 'Error')

        mock_account_id = '111111111111'
        role_arn = 'arn:aws:iam::{}:role/CostManagement'.format(
            mock_account_id)

        accounts = utils.get_account_names_by_organization(role_arn)
        self.assertEqual(accounts, [])
Example #4
0
    def test_get_account_names_by_organization(self):
        """Test get_account_names_by_organization is functional."""
        mock_account_id = "111111111111"
        role_arn = f"arn:aws:iam::{mock_account_id}:role/CostManagement"
        mock_alias = "test-alias"
        expected = [{"id": mock_account_id, "name": mock_alias}]

        session = Mock()
        mock_client = Mock()
        mock_paginator = Mock()
        paginated_results = [{"Accounts": [{"Id": mock_account_id, "Name": mock_alias}]}]
        mock_paginator.paginate.return_value = paginated_results
        mock_client.get_paginator.return_value = mock_paginator
        session.client.return_value = mock_client
        accounts = utils.get_account_names_by_organization(role_arn, session)
        self.assertEqual(accounts, expected)
Example #5
0
    def test_get_account_names_by_organization(self):
        mock_account_id = '111111111111'
        role_arn = 'arn:aws:iam::{}:role/CostManagement'.format(
            mock_account_id)
        mock_alias = 'test-alias'
        expected = [{'id': mock_account_id, 'name': mock_alias}]

        session = Mock()
        mock_client = Mock()
        mock_paginator = Mock()
        paginated_results = [{
            'Accounts': [{
                'Id': mock_account_id,
                'Name': mock_alias
            }]
        }]
        mock_paginator.paginate.return_value = paginated_results
        mock_client.get_paginator.return_value = mock_paginator
        session.client.return_value = mock_client
        accounts = utils.get_account_names_by_organization(role_arn, session)
        self.assertEqual(accounts, expected)