def from_dict(cls: Type["AccessConfig"], config_dict: Dict[str, Any]) -> "AccessConfig": """Build an AccessConfig from a dict""" cache_creds = get_optional_bool_param("cache_creds", config_dict) if cache_creds is not None: accessor = Accessor.from_dict(config_dict, cache_creds=cache_creds) else: accessor = Accessor.from_dict(config_dict) return AccessConfig(accessor=accessor)
def from_dict_to_dict_with_cache(self): in_five_min_epoch = int(time.time()) + 5 * 60 data = { "multi_hop_accessors": [ { "role_session_name": "altimeter-mb-a", "access_steps": [ { "role_name": "OrganizationAccountAccessRole", "account_id": "123456789012", "external_id": "foo", }, { "role_name": "OrganizationAccountAccessRole", "account_id": None, "external_id": None, }, ], }, { "role_session_name": "altimeter-mb-b", "access_steps": [ { "role_name": "OrganizationAccountAccessRole", "account_id": "123456789012", "external_id": "foo", }, { "role_name": "OrganizationAccountAccessRole", "account_id": "12345678901", "external_id": "foo", }, { "role_name": "OrganizationAccountAccessRole", "account_id": None, "external_id": None, }, ], }, ], "credentials_cache": { "cache": { "123456789012:test_rn:test_rsn": { "access_key_id": "test_aki", "secret_access_key": "test_sak", "session_token": "test_st", "expiration": in_five_min_epoch, }, "123456789012:test_rn2:test_rsn2": { "access_key_id": "test_aki2", "secret_access_key": "test_sak2", "session_token": "test_st2", "expiration": in_five_min_epoch, }, } }, } self.assertDictEqual(data, Accessor.from_dict(data=data).to_dict())
def test_str(self): accessor = Accessor.from_dict(data=TEST_ACCESSOR_DICT) self.assertEqual( str(accessor), ("accessor:altimeter-mb-a:OrganizationAccountAccessRole@123456789012," "OrganizationAccountAccessRole@target," "accessor:altimeter-mb-b:OrganizationAccountAccessRole@123456789012," "OrganizationAccountAccessRole@123456789012," "OrganizationAccountAccessRole@target"), )
def test_from_dict(self): accessor = Accessor.from_dict(data=TEST_ACCESSOR_DICT) self.maxDiff = None self.assertDictEqual( accessor.to_dict(), { "multi_hop_accessors": [ { "role_session_name": "altimeter-mb-a", "access_steps": [ { "role_name": "OrganizationAccountAccessRole", "account_id": "123456789012", "external_id": "foo", }, { "role_name": "OrganizationAccountAccessRole", "account_id": None, "external_id": None, }, ], }, { "role_session_name": "altimeter-mb-b", "access_steps": [ { "role_name": "OrganizationAccountAccessRole", "account_id": "123456789012", "external_id": "foo", }, { "role_name": "OrganizationAccountAccessRole", "account_id": "123456789012", "external_id": "foo", }, { "role_name": "OrganizationAccountAccessRole", "account_id": None, "external_id": None, }, ], }, ], "credentials_cache": { "cache": {} }, }, )
def from_dict(cls: Type["AccountScanPlan"], account_scan_plan_dict: Dict[str, Any]) -> "AccountScanPlan": """Create an AccountScanPlan from a dict Args: account_scan_plan_dict: dict of AccountScanPlan data Returns: AccountScanPlan object """ account_ids = account_scan_plan_dict["account_ids"] regions = account_scan_plan_dict["regions"] accessor_dict = account_scan_plan_dict["accessor"] accessor = Accessor.from_dict(accessor_dict) return cls(account_ids=account_ids, regions=regions, accessor=accessor)
def from_dict_to_dict(self): data = { "multi_hop_accessors": [ { "role_session_name": "altimeter-mb-a", "access_steps": [ { "role_name": "OrganizationAccountAccessRole", "account_id": "123456789012", "external_id": "foo", }, { "role_name": "OrganizationAccountAccessRole", "account_id": None, "external_id": None, }, ], }, { "role_session_name": "altimeter-mb-b", "access_steps": [ { "role_name": "OrganizationAccountAccessRole", "account_id": "123456789012", "external_id": "foo", }, { "role_name": "OrganizationAccountAccessRole", "account_id": "123456789012", "external_id": "foo", }, { "role_name": "OrganizationAccountAccessRole", "account_id": None, "external_id": None, }, ], }, ], "credentials_cache": { "cache": {} }, } self.assertDictEqual(data, Accessor.from_dict(data=data).to_dict())