def set_session_credentials(arguments, configs_dict) -> None: configuration = AWSAPIConfigurationPolicy() configuration.configuration_file_full_path = "~/Desktop/tmp/configuration_values.py" configuration.init_from_file() accounts = CommonUtils.load_object_from_module(configuration.accounts_file, "main") AWSAccount.set_aws_account(accounts[configuration.aws_api_account]) session = SessionsManager.connect_session() credentials = session.get_credentials() credentials = credentials.get_frozen_credentials() ret = f"\n\n[{arguments.profile_name}]" ret += f"\naws_access_key_id = {credentials.access_key}" ret += f"\naws_secret_access_key = {credentials.secret_key}" ret += f"\naws_session_token = {credentials.token}" with open("~/.aws/credentials") as file_handler: contents = file_handler.read() if arguments.profile_name in contents: start_index = contents.index(f"[{arguments.profile_name}]") try: end_index = contents.index("[", start_index + 1) tail_string = "\n\n" + contents[end_index:].strip("\n") except ValueError: tail_string = "" new_contents = contents[:start_index].strip("\n") + ret + tail_string with open("~/.aws/credentials", "w+") as file_handler: file_handler.write(new_contents) else: with open("~/.aws/credentials", "a+") as file_handler: file_handler.write(ret)
def publish(arguments) -> None: accounts = CommonUtils.load_object_from_module(arguments.accounts_file, "main") AWSAccount.set_aws_account(accounts[arguments.account]) SNSClient().raw_publish(arguments.topic_arn, arguments.subject, arguments.message)
from unittest.mock import Mock from horey.aws_api.base_entities.aws_account import AWSAccount from horey.aws_api.aws_services_entities.ec2_launch_template import EC2LaunchTemplate configuration_values_file_full_path = os.path.join( os.path.dirname(os.path.abspath(__file__)), "h_logger_configuration_values.py") logger = get_logger( configuration_values_file_full_path=configuration_values_file_full_path) accounts_file_full_path = os.path.abspath( os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "ignore", "aws_api_managed_accounts.py")) accounts = CommonUtils.load_object_from_module(accounts_file_full_path, "main") AWSAccount.set_aws_account(accounts["1111"]) AWSAccount.set_aws_region(accounts["1111"].regions['us-west-2']) mock_values_file_path = os.path.abspath( os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "ignore", "mock_values.py")) mock_values = CommonUtils.load_object_from_module(mock_values_file_path, "main") def test_init_ec2_client(): assert isinstance(EC2Client(), EC2Client) DICT_CREATE_SECURITY_GROUP_REQUEST = { "Description": "sg-test-group",
import json import os import sys import pdb sys.path.insert(0, os.path.abspath("../src")) sys.path.insert(0, "~/private/IP/ip") sys.path.insert(0, "~/private/aws_api/ignore") sys.path.insert(0, "~/private/aws_api/src/base_entities") from terraform_parser import TerraformParser import ignore_me import logging logger = logging.Logger(__name__) from horey.aws_api.base_entities.aws_account import AWSAccount tested_account = ignore_me.acc_prod_eu AWSAccount.set_aws_account(tested_account) terraform_parser = TerraformParser( "~/private/aws_api/ignore/prod_eu_tf_state.json") def test_parse_to_objects(): terraform_parser.parse_to_objects() test_parse_to_objects()
import os import pdb from horey.aws_api.aws_clients.route53_client import Route53Client from horey.aws_api.aws_api_configuration_policy import AWSAPIConfigurationPolicy from horey.h_logger import get_logger from horey.common_utils.common_utils import CommonUtils from horey.aws_api.base_entities.aws_account import AWSAccount logger = get_logger() configuration = AWSAPIConfigurationPolicy() configuration.configuration_file_full_path = os.path.abspath( os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "..", "..", "ignore", "aws_api_configuration_values.py")) configuration.init_from_file() accounts = CommonUtils.load_object_from_module(configuration.accounts_file, "main") AWSAccount.set_aws_account(accounts[configuration.aws_api_account]) def test_init_route53_client(): assert isinstance(Route53Client(), Route53Client) if __name__ == "__main__": test_init_route53_client()
import sys import pdb import argparse import json import ignore_me from codeartifact_client import CodeartifactClient import logging logger = logging.Logger(__name__) from horey.aws_api.base_entities.aws_account import AWSAccount from horey.common_utils.actions_manager import ActionsManager AWSAccount.set_aws_account(ignore_me.acc_mgmt) action_manager = ActionsManager() # region create_key def create_domain_parser(): description = "Create codeartifact domain" parser = argparse.ArgumentParser(description=description) parser.add_argument("--name", required=True, type=str, help="Domain name") parser.add_argument("--encryption_key_alias", required=True, type=str, help="Key to use") return parser def create_domain(arguments) -> None: CodeartifactClient().create_domain(arguments.name, arguments.encryption_key_alias) action_manager.register_action("create_domain", create_domain_parser, create_domain)
import sys import pdb import argparse import json import ignore_me from ecr_client import ECRClient import logging logger = logging.Logger(__name__) from horey.aws_api.base_entities.aws_account import AWSAccount from horey.common_utils.actions_manager import ActionsManager AWSAccount.set_aws_account(ignore_me.acc_default) action_manager = ActionsManager() # region get_authorization_information def get_authorization_information_parser(): description = "Fetch authorization ECR repository information and write it to file" parser = argparse.ArgumentParser(description=description) parser.add_argument("--output_file_name", required=False, type=str, default="aws_auth_info.json", help="Name of the output file") return parser def get_authorization_information(arguments) -> None: lst_info = ECRClient().get_authorization_info()