Esempio n. 1
0
class DataCollectorCloudWatchEventTarget(CloudWatchEventTargetResource):
    rule = DataCollectorEventRule.get_output_attr('name')
    arn = SubmitJobLambdaFunction.get_output_attr('arn')
    target_id = 'DataCollectorTarget'  # Unique identifier
    target_input = json.dumps({
        'jobName': "AWS-Data-Collector",
        'jobUuid': "pacman-aws-inventory-jar-with-dependencies",
        'jobType': "jar",
        'jobDesc': "AWS-Data-Collection",
        'environmentVariables': [
            {'name': "REDSHIFT_INFO", 'value': RedshiftCluster.get_redshift_info()},
            {'name': "REDSHIFT_URL", 'value': RedshiftCluster.get_redshift_url()}
        ],
        'params': [
            {'encrypt': False, 'key': "package_hint", 'value': "com.tmobile.cso.pacman"},
            {'encrypt': False, 'key': "accountinfo", 'value': AwsAccount.get_output_attr('account_id')},
            {'encrypt': False, 'key': "base-account", 'value': AwsAccount.get_output_attr('account_id')},
            {'encrypt': False, 'key': "discovery-role", 'value': BaseRole.get_output_attr('name')},
            {'encrypt': False, 'key': "s3", 'value': BucketStorage.get_output_attr('bucket')},
            {'encrypt': False, 'key': "s3-data", 'value': "inventory"},  # TODO: need to be changed with s3obj class
            {'encrypt': False, 'key': "s3-processed", 'value': "backup"},
            {'encrypt': False, 'key': "s3-role", 'value': BaseRole.get_output_attr('name')},
            {'encrypt': False, 'key': "s3-region", 'value': AwsRegion.get_output_attr('name')},
            {'encrypt': False, 'key': "file-path", 'value': "/home/ec2-user/data"},
            {'encrypt': False, 'key': "base-region", 'value': AwsRegion.get_output_attr('name')}
        ]
    })
Esempio n. 2
0
 def get_container_definitions_without_env_vars(self, container_name):
     return {
         'name': container_name,
         "image":
         self.ui_image if container_name == 'nginx' else self.api_image,
         "essential": True,
         "entrypoint": ["sh", "-c"],
         "command": ["sh /entrypoint.sh"],
         "portMappings": [{
             "containerPort": 80,
             "hostPort": 80
         }],
         "memory": 1024,
         "networkMode": "awsvpc",
         "logConfiguration": {
             "logDriver": "awslogs",
             "options": {
                 "awslogs-group":
                 self.ui_cw_log_group
                 if container_name == 'nginx' else self.api_cw_log_group,
                 "awslogs-region":
                 AwsRegion.get_output_attr('name'),
                 "awslogs-stream-prefix":
                 Settings.RESOURCE_NAME_PREFIX + "-" + container_name
             }
         }
     }
Esempio n. 3
0
    def get_provisioners(self):
        script = os.path.join(get_terraform_scripts_dir(),
                              'sql_replace_placeholder.py')
        db_user_name = MySQLDatabase.get_input_attr('username')
        db_password = MySQLDatabase.get_input_attr('password')
        db_host = MySQLDatabase.get_output_attr('endpoint')
        local_execs = [{
            'local-exec': {
                'command': script,
                'environment': {
                    'AWS_REGION': AwsRegion.get_output_attr('name'),
                    'AWS_ACCOUNT_ID': AwsAccount.get_output_attr('account_id'),
                    'ES_HOST': ESDomain.get_http_url(),
                    'ES_PORT': ESDomain.get_es_port(),
                    'SQL_FILE_PATH': self.dest_file
                },
                'interpreter': [Settings.PYTHON_INTERPRETER]
            }
        }]

        return local_execs
Esempio n. 4
0
 def get_admin_container_env_vars(self):
     return [{
         'name': "JAR_FILE",
         'value': "pacman-api-admin.jar"
     }, {
         'name': "CONFIG_PASSWORD",
         'value': self.CONFIG_PASSWORD
     }, {
         'name': "CONFIG_SERVER_URL",
         'value': self.CONFIG_SERVER_URL
     }, {
         'name': "ES_CLUSTER_NAME",
         'value': self.ES_CLUSTER_NAME
     }, {
         'name': "ES_HEIMDALL_HOST_NAME",
         'value': self.ES_HEIMDALL_HOST_NAME
     }, {
         'name': "ES_HEIMDALL_PORT",
         'value': self.ES_HEIMDALL_PORT
     }, {
         'name': "ES_HOST_NAME",
         'value': self.ES_HOST_NAME
     }, {
         'name': "ES_PORT",
         'value': self.ES_PORT
     }, {
         'name': "LOGGING_ES_HOST_NAME",
         'value': self.LOGGING_ES_HOST_NAME
     }, {
         'name': "LOGGING_ES_PORT",
         'value': self.LOGGING_ES_PORT
     }, {
         'name': "PACMAN_HOST_NAME",
         'value': self.PACMAN_HOST_NAME
     }, {
         'name': "RDS_PASSWORD",
         'value': self.RDS_PASSWORD
     }, {
         'name': "RDS_URL",
         'value': self.RDS_URL
     }, {
         'name': "RDS_USERNAME",
         'value': self.RDS_USERNAME
     }, {
         'name': "ES_UPDATE_HOST",
         'value': self.ES_UPDATE_HOST
     }, {
         'name': "ES_UPDATE_PORT",
         'value': self.ES_UPDATE_PORT
     }, {
         'name': "ES_UPDATE_CLUSTER_NAME",
         'value': self.ES_UPDATE_CLUSTER_NAME
     }, {
         'name': "SECURITY_USERNAME",
         'value': "admin"
     }, {
         'name': "SECURITY_PASSWORD",
         'value': "admin@123"
     }, {
         'name': "ACCESS_KEY",
         'value': "test_key_1"
     }, {
         'name': "SECRET_KEY",
         'value': "test_key_2"
     }, {
         'name': "DOMAIN_URL",
         'value': ApplicationLoadBalancer.get_api_server_url('admin')
     }, {
         'name': "ADMIN_SERVER",
         'value': "http://localhost/pacmonitor"
     }, {
         'name': "ROLE_ARN",
         'value': ECSRole.get_output_attr('arn')
     }, {
         'name':
         "JOB_FUNCTION_NAME",
         'value':
         SubmitJobLambdaFunction.get_input_attr('function_name')
     }, {
         'name': "JOB_FUNCTION_ARN",
         'value': SubmitJobLambdaFunction.get_output_attr('arn')
     }, {
         'name': "JOB_LAMBDA_REGION",
         'value': AwsRegion.get_output_attr('name')
     }, {
         'name': "JOB_BUCKET_REGION",
         'value': AwsRegion.get_output_attr('name')
     }, {
         'name':
         "RULE_FUNCTION_NAME",
         'value':
         RuleEngineLambdaFunction.get_input_attr('function_name')
     }, {
         'name': "RULE_FUNCTION_ARN",
         'value': RuleEngineLambdaFunction.get_output_attr('arn')
     }, {
         'name': "RULE_BUCKET_REGION",
         'value': AwsRegion.get_output_attr('name')
     }, {
         'name': "RULE_LAMBDA_REGION",
         'value': AwsRegion.get_output_attr('name')
     }, {
         'name': "RULE_JOB_BUCKET_NAME",
         'value': BucketStorage.get_output_attr('bucket')
     }]
Esempio n. 5
0
    def get_provisioners(self):
        script = os.path.join(get_terraform_scripts_dir(), 'sql_replace_placeholder.py')
        db_user_name = MySQLDatabase.get_input_attr('username')
        db_password = MySQLDatabase.get_input_attr('password')
        db_host = MySQLDatabase.get_output_attr('endpoint')
        local_execs = [
            {
                'local-exec': {
                    'command': script,
                    'environment': {
                        'SQL_FILE_PATH': self.dest_file,
                        'ENV_region': AwsRegion.get_output_attr('name'),
                        'ENV_account': AwsAccount.get_output_attr('account_id'),
                        'ENV_eshost': ESDomain.get_http_url(),
                        'ENV_esport': ESDomain.get_es_port(),
                        'ENV_LOGGING_ES_HOST_NAME': ESDomain.get_output_attr('endpoint'),
                        'ENV_LOGGING_ES_PORT': str(ESDomain.get_es_port()),
                        'ENV_ES_HOST_NAME': ESDomain.get_output_attr('endpoint'),
                        'ENV_ES_PORT': str(ESDomain.get_es_port()),
                        'ENV_ES_CLUSTER_NAME': ESDomain.get_input_attr('domain_name'),
                        'ENV_ES_PORT_ADMIN': str(ESDomain.get_es_port()),
                        'ENV_ES_HEIMDALL_HOST_NAME': ESDomain.get_output_attr('endpoint'),
                        'ENV_ES_HEIMDALL_PORT': str(ESDomain.get_es_port()),
                        'ENV_ES_HEIMDALL_CLUSTER_NAME': ESDomain.get_input_attr('domain_name'),
                        'ENV_ES_HEIMDALL_PORT_ADMIN': str(ESDomain.get_es_port()),
                        'ENV_ES_UPDATE_HOST': ESDomain.get_output_attr('endpoint'),
                        'ENV_ES_UPDATE_PORT': str(ESDomain.get_es_port()),
                        'ENV_ES_UPDATE_CLUSTER_NAME': ESDomain.get_input_attr('domain_name'),
                        'ENV_PACMAN_HOST_NAME': ApplicationLoadBalancer.get_http_url(),
                        'ENV_RDS_URL': MySQLDatabase.get_rds_db_url(),
                        'ENV_RDS_USERNAME': MySQLDatabase.get_input_attr('username'),
                        'ENV_RDS_PASSWORD': MySQLDatabase.get_input_attr('password'),
                        'ENV_JOB_BUCKET_REGION': AwsRegion.get_output_attr('name'),
                        'ENV_RULE_JOB_BUCKET_NAME': BucketStorage.get_output_attr('bucket'),
                        'ENV_JOB_LAMBDA_REGION': AwsRegion.get_output_attr('name'),
                        'ENV_JOB_FUNCTION_NAME': SubmitJobLambdaFunction.get_input_attr('function_name'),
                        'ENV_JOB_FUNCTION_ARN': SubmitJobLambdaFunction.get_output_attr('arn'),
                        'ENV_RULE_BUCKET_REGION': AwsRegion.get_output_attr('name'),
                        'ENV_RULE_JOB_BUCKET_NAME': BucketStorage.get_output_attr('bucket'),
                        'ENV_RULE_LAMBDA_REGION': AwsRegion.get_output_attr('name'),
                        'ENV_RULE_FUNCTION_NAME': RuleEngineLambdaFunction.get_input_attr('function_name'),
                        'ENV_RULE_FUNCTION_ARN': RuleEngineLambdaFunction.get_output_attr('arn'),
                        'ENV_CLOUD_INSIGHTS_TOKEN_URL': "http://localhost",
                        'ENV_CLOUD_INSIGHTS_COST_URL': "http://localhost",
                        'ENV_SVC_CORP_USER_ID': "testid",
                        'ENV_SVC_CORP_PASSWORD': "******",
                        'ENV_CERTIFICATE_FEATURE_ENABLED': "false",
                        'ENV_PATCHING_FEATURE_ENABLED': "false",
                        'ENV_VULNERABILITY_FEATURE_ENABLED': str(Settings.get('ENABLE_VULNERABILITY_FEATURE', False)).lower(),
                        'ENV_MAIL_SERVER': Settings.MAIL_SERVER,
                        'ENV_PACMAN_S3': "pacman-email-templates",
                        'ENV_DATA_IN_DIR': "inventory",
                        'ENV_DATA_BKP_DIR': "backup",
                        'ENV_PAC_ROLE': BaseRole.get_input_attr('name'),
                        'ENV_BASE_REGION': AwsRegion.get_output_attr('name'),
                        'ENV_DATA_IN_S3': BucketStorage.get_output_attr('bucket'),
                        'ENV_BASE_ACCOUNT': AwsAccount.get_output_attr('account_id'),
                        'ENV_PAC_RO_ROLE': BaseRole.get_input_attr('name'),
                        'ENV_MAIL_SERVER_PORT': Settings.MAIL_SERVER_PORT,
                        'ENV_MAIL_PROTOCOL': Settings.MAIL_PROTOCOL,
                        'ENV_MAIL_SERVER_USER': Settings.MAIL_SERVER_USER,
                        'ENV_MAIL_SERVER_PWD': Settings.MAIL_SERVER_PWD,
                        'ENV_MAIL_SMTP_AUTH': Settings.MAIL_SMTP_AUTH,
                        'ENV_MAIL_SMTP_SSL_ENABLE': Settings.MAIL_SMTP_SSL_ENABLE,
                        'ENV_MAIL_SMTP_SSL_TEST_CONNECTION': Settings.MAIL_SMTP_SSL_TEST_CONNECTION,
                        'ENV_PACMAN_LOGIN_USER_NAME': "*****@*****.**",
                        'ENV_PACMAN_LOGIN_PASSWORD': "******",
                        'ENV_CONFIG_CREDENTIALS': "dXNlcjpwYWNtYW4=",
                        'ENV_CONFIG_SERVICE_URL': ApplicationLoadBalancer.get_http_url() + "/api/config/rule/prd/latest",
                        'ENV_PACBOT_AUTOFIX_RESOURCEOWNER_FALLBACK_MAILID': Settings.get('USER_EMAIL_ID', ""),
                        'ENV_QUALYS_INFO': Settings.get('QUALYS_INFO', ""),
                        'ENV_QUALYS_API_URL': Settings.get('QUALYS_API_URL', "")
                    },
                    'interpreter': [Settings.PYTHON_INTERPRETER]
                }
            }
        ]

        return local_execs