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)
示例#2
0
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)
示例#3
0
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()
示例#5
0
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()
示例#6
0
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)
示例#7
0
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()