Exemplo n.º 1
0
    def test_transform_yaml_user_data_key(self):
        input = {
            "application_id": "stackName",
            "application_version": "imageVersion",
            "environment": {
                "SSO_KEY": "mySsoKey",
                "QUEUE_URL": {"ref": "myQueueUrl"}
            }
        }
        expected = {'Fn::Base64':
                        {'Fn::Join': ['\n', [
                            {'Fn::Join': [': ', ['application_id', 'stackName']]},
                            {'Fn::Join': [': ', ['application_version', 'imageVersion']]},
                            'environment:',
                            {'Fn::Join': [': ', ['  QUEUE_URL', {'ref': 'myQueueUrl'}]]},
                            {'Fn::Join': [': ', ['  SSO_KEY', 'mySsoKey']]}]]
                         }
                    }

        key, value = CloudFormationTemplateTransformer.transform_yaml_user_data_key('@YamlUserData@', input)

        self.assertEqual("UserData", key)
        self.assertEqual(expected, value)
Exemplo n.º 2
0
    def test_transform_yaml_user_data_key(self):
        input = {
            "application_id": "stackName",
            "application_version": "imageVersion",
            "environment": {
                "SSO_KEY": "mySsoKey",
                "QUEUE_URL": {
                    "ref": "myQueueUrl"
                }
            }
        }
        expected = {
            'Fn::Base64': {
                'Fn::Join': [
                    '\n',
                    [{
                        'Fn::Join': [': ', ['application_id', 'stackName']]
                    }, {
                        'Fn::Join':
                        [': ', ['application_version', 'imageVersion']]
                    }, 'environment:', {
                        'Fn::Join':
                        [': ', ['  QUEUE_URL', {
                            'ref': 'myQueueUrl'
                        }]]
                    }, {
                        'Fn::Join': [': ', ['  SSO_KEY', 'mySsoKey']]
                    }]
                ]
            }
        }

        key, value = CloudFormationTemplateTransformer.transform_yaml_user_data_key(
            '@YamlUserData@', input)

        self.assertEqual("UserData", key)
        self.assertEqual(expected, value)
    def test_transform_yaml_user_data_key(self):
        input = {
            "application_id": "stackName",
            "application_version": "imageVersion",
            "environment": {
                "SSO_KEY": "mySsoKey",
                "QUEUE_URL": {
                    "ref": "myQueueUrl"
                }
            }
        }
        expected = {
            "Fn::Base64": {
                "Fn::Join": [
                    "\n",
                    [{
                        "Fn::Join": [": ", ["application_id", "stackName"]]
                    }, {
                        "Fn::Join":
                        [": ", ["application_version", "imageVersion"]]
                    }, "environment:", {
                        "Fn::Join": [": ", ["  SSO_KEY", "mySsoKey"]]
                    }, {
                        "Fn::Join":
                        [": ", ["  QUEUE_URL", {
                            "ref": "myQueueUrl"
                        }]]
                    }]
                ]
            }
        }

        key, value = CloudFormationTemplateTransformer.transform_yaml_user_data_key(
            '@YamlUserData@', input)
        self.assertEqual("UserData", key)
        six.assertCountEqual(self, expected, value)
    def test_transform_yaml_user_data_key(self):
        input = {
            "application_id": "stackName",
            "application_version": "imageVersion",
            "environment": {
                "SSO_KEY": "mySsoKey",
                "QUEUE_URL": {"ref": "myQueueUrl"}
            }
        }
        expected = {
            "Fn::Base64": {
                "Fn::Join": [
                    "\n",
                    [
                        {
                            "Fn::Join": [
                                ": ",
                                [
                                    "application_id",
                                    "stackName"
                                ]
                            ]
                        },
                        {
                            "Fn::Join": [
                                ": ",
                                [
                                    "application_version",
                                    "imageVersion"
                                ]
                            ]
                        },
                        "environment:",
                        {
                            "Fn::Join": [
                                ": ",
                                [
                                    "  SSO_KEY",
                                    "mySsoKey"
                                ]
                            ]
                        },
                        {
                            "Fn::Join": [
                                ": ",
                                [
                                    "  QUEUE_URL",
                                    {
                                        "ref": "myQueueUrl"
                                    }
                                ]
                            ]
                        }
                    ]
                ]
            }
        }

        key, value = CloudFormationTemplateTransformer.transform_yaml_user_data_key('@YamlUserData@', input)
        self.assertEqual("UserData", key)
        six.assertCountEqual(self, expected, value)
Exemplo n.º 5
0
    def test_transform_yaml_user_data_key(self):
        input = {
            'docker-compose': {
                'services': {
                    'db': {
                        'environment': {
                            'MYSQL_DATABASE': 'wordpress',
                            'MYSQL_PASSWORD': '******',
                            'MYSQL_ROOT_PASSWORD': '******',
                            'MYSQL_USER': '******'
                        },
                        'image': 'mysql:5.7',
                        'restart': 'always',
                        'volumes': ['db_data:/var/lib/mysql']
                    },
                    'wordpress': {
                        'depends_on': ['db'],
                        'environment': {
                            'WORDPRESS_DB_HOST': 'db:3306',
                            'WORDPRESS_DB_PASSWORD': '******'
                        },
                        'image': {
                            'fn::join':
                            [':', ['wordpress', {
                                'ref': 'wp_version'
                            }]]
                        },
                        'ports': ['8000:80'],
                        'restart': 'always'
                    }
                },
                'version': '2',
                'volumes': 'db_data'
            },
            'healthchecks': [{
                'http': {
                    'port': 8000
                }
            }, {
                'AwsElb': {
                    'loadbalancer_name': {
                        'Ref': 'my-alb'
                    }
                }
            }],
            'pre_start': [{
                'AwsEcrLogin': {
                    'account_id': 123456789123,
                    'region': 'eu-west-1'
                }
            }],
            'signals': [{
                'AwsCfn': {
                    'logical_resource_id': {
                        'fn::getatt': ['my-asg', 'arn']
                    },
                    'region': 'eu-west-1',
                    'stack_name': 'my-stack'
                }
            }]
        }

        expected = {
            "Fn::Base64": {
                "Fn::Join": [
                    "\n",
                    [
                        "docker-compose:", "  services:", "    db:",
                        "      environment:",
                        "        MYSQL_DATABASE: 'wordpress'",
                        "        MYSQL_PASSWORD: '******'",
                        "        MYSQL_ROOT_PASSWORD: '******'",
                        "        MYSQL_USER: '******'",
                        "      image: 'mysql:5.7'", "      restart: 'always'",
                        "      volumes:", "        - 'db_data:/var/lib/mysql'",
                        "    wordpress:", "      depends_on:",
                        "        - 'db'", "      environment:",
                        "        WORDPRESS_DB_HOST: 'db:3306'",
                        "        WORDPRESS_DB_PASSWORD: '******'",
                        "      image:", {
                            "Fn::Join": [
                                "",
                                [
                                    "        ", {
                                        "fn::join": [
                                            ":",
                                            [
                                                "wordpress", {
                                                    "ref": "wp_version"
                                                }
                                            ]
                                        ]
                                    }
                                ]
                            ]
                        }, "      ports:", "        - '8000:80'",
                        "      restart: 'always'", "  version: '2'",
                        "  volumes: 'db_data'", "healthchecks:", "  - http:",
                        "    port: 8000", "  - AwsElb:",
                        "    loadbalancer_name:", {
                            "Fn::Join": ["", ["      ", {
                                "Ref": "my-alb"
                            }]]
                        }, "pre_start:", "  - AwsEcrLogin:"******"    account_id: 123456789123",
                        "    region: 'eu-west-1'", "signals:", "  - AwsCfn:",
                        "    logical_resource_id:", {
                            "Fn::Join": [
                                "",
                                ["      ", {
                                    "fn::getatt": ["my-asg", "arn"]
                                }]
                            ]
                        }, "    region: 'eu-west-1'",
                        "    stack_name: 'my-stack'"
                    ]
                ]
            }
        }

        key, value = CloudFormationTemplateTransformer.transform_yaml_user_data_key(
            "@YamlUserData@", input)
        print(json.dumps(value, indent=4))
        self.assertEqual("UserData", key)
        self.assertEqual(expected, value)