* adding list_create_account_status to organization #3691 * removing todo comment Co-authored-by: Chris Walters <chriskwalters@hotmail.com>
This commit is contained in:
parent
f64532ed40
commit
def46b5130
@ -6416,7 +6416,7 @@
|
||||
|
||||
## organizations
|
||||
<details>
|
||||
<summary>70% implemented</summary>
|
||||
<summary>72% implemented</summary>
|
||||
|
||||
- [ ] accept_handshake
|
||||
- [X] attach_policy
|
||||
@ -6450,7 +6450,7 @@
|
||||
- [X] list_accounts_for_parent
|
||||
- [X] list_aws_service_access_for_organization
|
||||
- [X] list_children
|
||||
- [ ] list_create_account_status
|
||||
- [X] list_create_account_status
|
||||
- [X] list_delegated_administrators
|
||||
- [X] list_delegated_services_for_account
|
||||
- [ ] list_handshakes_for_account
|
||||
|
@ -459,6 +459,27 @@ class OrganizationsBackend(BaseBackend):
|
||||
)
|
||||
return account.create_account_status
|
||||
|
||||
def list_create_account_status(self, **kwargs):
|
||||
requested_states = kwargs.get("States")
|
||||
if not requested_states:
|
||||
requested_states = ["IN_PROGRESS", "SUCCEEDED", "FAILED"]
|
||||
accountStatuses = []
|
||||
for account in self.accounts:
|
||||
create_account_status = account.create_account_status["CreateAccountStatus"]
|
||||
if create_account_status["State"] in requested_states:
|
||||
accountStatuses.append(create_account_status)
|
||||
token = kwargs.get("NextToken")
|
||||
if token:
|
||||
start = int(token)
|
||||
else:
|
||||
start = 0
|
||||
max_results = int(kwargs.get("MaxResults", 123))
|
||||
accounts_resp = accountStatuses[start : start + max_results]
|
||||
next_token = None
|
||||
if max_results and len(accountStatuses) > (start + max_results):
|
||||
next_token = str(len(accounts_resp))
|
||||
return dict(CreateAccountStatuses=accounts_resp, NextToken=next_token)
|
||||
|
||||
def list_accounts(self):
|
||||
return dict(Accounts=[account.describe() for account in self.accounts])
|
||||
|
||||
|
@ -77,6 +77,11 @@ class OrganizationsResponse(BaseResponse):
|
||||
)
|
||||
)
|
||||
|
||||
def list_create_account_status(self):
|
||||
return json.dumps(
|
||||
self.organizations_backend.list_create_account_status(**self.request_params)
|
||||
)
|
||||
|
||||
def list_accounts(self):
|
||||
return json.dumps(self.organizations_backend.list_accounts())
|
||||
|
||||
|
@ -352,6 +352,69 @@ def test_list_children_exception():
|
||||
ex.response["Error"]["Message"].should.equal("You specified an invalid value.")
|
||||
|
||||
|
||||
@mock_organizations
|
||||
def test_list_create_account_status():
|
||||
client = boto3.client("organizations", region_name="us-east-1")
|
||||
client.create_organization(FeatureSet="ALL")["Organization"]
|
||||
response = client.list_create_account_status()
|
||||
createAccountStatuses = response["CreateAccountStatuses"]
|
||||
createAccountStatuses.should.have.length_of(1)
|
||||
validate_create_account_status(createAccountStatuses[0])
|
||||
|
||||
request_id = client.create_account(AccountName=mockname, Email=mockemail)[
|
||||
"CreateAccountStatus"
|
||||
]["Id"]
|
||||
response = client.list_create_account_status()
|
||||
createAccountStatuses = response["CreateAccountStatuses"]
|
||||
createAccountStatuses.should.have.length_of(2)
|
||||
for createAccountStatus in createAccountStatuses:
|
||||
validate_create_account_status(createAccountStatus)
|
||||
|
||||
|
||||
@mock_organizations
|
||||
def test_list_create_account_status_succeeded():
|
||||
client = boto3.client("organizations", region_name="us-east-1")
|
||||
client.create_organization(FeatureSet="ALL")["Organization"]
|
||||
requiredStates = ["SUCCEEDED"]
|
||||
response = client.list_create_account_status(States=requiredStates)
|
||||
createAccountStatuses = response["CreateAccountStatuses"]
|
||||
createAccountStatuses.should.have.length_of(1)
|
||||
validate_create_account_status(createAccountStatuses[0])
|
||||
|
||||
|
||||
@mock_organizations
|
||||
def test_list_create_account_status_in_progress():
|
||||
client = boto3.client("organizations", region_name="us-east-1")
|
||||
client.create_organization(FeatureSet="ALL")["Organization"]
|
||||
requiredStates = ["IN_PROGRESS"]
|
||||
response = client.list_create_account_status(States=requiredStates)
|
||||
createAccountStatuses = response["CreateAccountStatuses"]
|
||||
createAccountStatuses.should.have.length_of(0)
|
||||
|
||||
|
||||
@mock_organizations
|
||||
def test_get_paginated_list_create_account_status():
|
||||
client = boto3.client("organizations", region_name="us-east-1")
|
||||
client.create_organization(FeatureSet="ALL")["Organization"]
|
||||
for i in range(5):
|
||||
request_id = client.create_account(AccountName=mockname, Email=mockemail)[
|
||||
"CreateAccountStatus"
|
||||
]["Id"]
|
||||
response = client.list_create_account_status(MaxResults=2)
|
||||
createAccountStatuses = response["CreateAccountStatuses"]
|
||||
createAccountStatuses.should.have.length_of(2)
|
||||
for createAccountStatus in createAccountStatuses:
|
||||
validate_create_account_status(createAccountStatus)
|
||||
next_token = response["NextToken"]
|
||||
next_token.should_not.be.none
|
||||
response2 = client.list_create_account_status(NextToken=next_token)
|
||||
createAccountStatuses.extend(response2["CreateAccountStatuses"])
|
||||
createAccountStatuses.should.have.length_of(6)
|
||||
assert "NextToken" not in response2.keys()
|
||||
for createAccountStatus in createAccountStatuses:
|
||||
validate_create_account_status(createAccountStatus)
|
||||
|
||||
|
||||
# Service Control Policies
|
||||
policy_doc01 = dict(
|
||||
Version="2012-10-17",
|
||||
|
Loading…
Reference in New Issue
Block a user