Exemple #1
0
    def test_create_raises_UnknownServiceError(self):
        _test_node_properties = {
            'use_external_resource': False,
            'client_config': CLIENT_CONFIG
        }
        _test_runtime_properties = {
            'resource_config': {}
        }
        _ctx = self.get_mock_ctx(
            'test_create_UnknownServiceError',
            test_properties=_test_node_properties,
            test_runtime_properties=_test_runtime_properties,
            type_hierarchy=SUBNET_GROUP_TH
        )
        current_ctx.set(_ctx)

        resource_config = {'SubnetIds': ['test_subnet_id_1']}
        with self.assertRaises(UnknownServiceError) as error:
            subnet_group.create(ctx=_ctx,
                                resource_config=resource_config, iface=None)

        self.assertEqual(
            str(error.exception),
            "Unknown service: 'rds'. Valid service names are: ['rds']"
        )

        self.fake_boto.assert_called_with('rds', aws_access_key_id='xxx',
                                          aws_secret_access_key='yyy',
                                          region_name='aq-testzone-1')
    def test_create(self):
        _ctx = self.get_mock_ctx(
            'test_create',
            test_properties=NODE_PROPERTIES,
            test_runtime_properties=RUNTIME_PROPERTIES,
            type_hierarchy=SUBNET_GROUP_TH,
            ctx_operation_name='cloudify.interfaces.lifecycle.configure',
        )

        current_ctx.set(_ctx)

        self.fake_client.describe_db_subnet_groups = MagicMock(
            return_value={
                'DBSubnetGroups': [{
                    'SubnetGroupStatus': 'Complete',
                    'DBSubnetGroup': {
                        'DBSubnetGroupName': 'zzzzzz-subnet-group',
                        'DBSubnetGroupArn': 'DBSubnetGroupArn',
                        'SubnetIds': SUBNET_IDS
                    }
                }]
            })

        self.fake_client.create_db_subnet_group = MagicMock(
            return_value={
                'DBSubnetGroup': {
                    'DBSubnetGroupName': 'zzzzzz-subnet-group',
                    'DBSubnetGroupArn': 'DBSubnetGroupArn',
                    'SubnetIds': SUBNET_IDS
                }
            })

        subnet_group.create(ctx=_ctx, resource_config=None, iface=None)

        self.fake_boto.assert_called_with('rds', **CLIENT_CONFIG)
        self.fake_client.create_db_subnet_group.assert_called_with(
            DBSubnetGroupDescription='MySQL5.7 Subnet Group',
            DBSubnetGroupName='zzzzzz-subnet-group',
            SubnetIds=SUBNET_IDS)
        self.fake_client.describe_db_subnet_groups.assert_called_with(
            DBSubnetGroupName='zzzzzz-subnet-group')

        self.assertEqual(
            _ctx.instance.runtime_properties, {
                'aws_resource_arn': 'DBSubnetGroupArn',
                'aws_resource_id': 'zzzzzz-subnet-group',
                'resource_config': {
                    'DBSubnetGroupDescription': 'MySQL5.7 Subnet Group',
                    'DBSubnetGroupName': 'zzzzzz-subnet-group',
                    'SubnetIds': SUBNET_IDS
                },
                'create_response': {
                    'SubnetGroupStatus': 'Complete',
                    'DBSubnetGroup': {
                        'DBSubnetGroupName': 'zzzzzz-subnet-group',
                        'DBSubnetGroupArn': 'DBSubnetGroupArn',
                        'SubnetIds': ['subnet-xxxxxxxx', 'subnet-yyyyyyyy']
                    }
                }
            })
    def test_create(self):
        _ctx = self.get_mock_ctx(
            'test_create',
            test_properties=NODE_PROPERTIES,
            test_runtime_properties=RUNTIME_PROPERTIES,
            type_hierarchy=SUBNET_GROUP_TH,
            ctx_operation_name='cloudify.interfaces.lifecycle.configure',
        )

        current_ctx.set(_ctx)

        self.fake_client.describe_db_subnet_groups = MagicMock(
            return_value={'DBSubnetGroups': [{
                'SubnetGroupStatus': 'Complete',
                'DBSubnetGroup': {
                    'DBSubnetGroupName': 'zzzzzz-subnet-group',
                    'DBSubnetGroupArn': 'DBSubnetGroupArn',
                    'SubnetIds': SUBNET_IDS
                }
            }]}
        )

        self.fake_client.create_db_subnet_group = MagicMock(
            return_value={'DBSubnetGroup': {
                'DBSubnetGroupName': 'zzzzzz-subnet-group',
                'DBSubnetGroupArn': 'DBSubnetGroupArn',
                'SubnetIds': SUBNET_IDS}
            }
        )

        subnet_group.create(ctx=_ctx,
                            resource_config=None,
                            iface=None)

        self.fake_boto.assert_called_with(
            'rds', **CLIENT_CONFIG
        )
        self.fake_client.create_db_subnet_group.assert_called_with(
            DBSubnetGroupDescription='MySQL5.7 Subnet Group',
            DBSubnetGroupName='zzzzzz-subnet-group',
            SubnetIds=SUBNET_IDS
        )
        self.fake_client.describe_db_subnet_groups.assert_called_with(
            DBSubnetGroupName='zzzzzz-subnet-group'
        )

        self.assertEqual(
            _ctx.instance.runtime_properties, {
                'aws_resource_arn': 'DBSubnetGroupArn',
                'aws_resource_id': 'zzzzzz-subnet-group',
                'resource_config': {
                    'DBSubnetGroupDescription':
                                    'MySQL5.7 Subnet Group',
                    'DBSubnetGroupName': 'zzzzzz-subnet-group',
                    'SubnetIds': SUBNET_IDS
                },
                'create_response': {
                    'SubnetGroupStatus': 'Complete',
                    'DBSubnetGroup': {
                        'DBSubnetGroupName': 'zzzzzz-subnet-group',
                        'DBSubnetGroupArn': 'DBSubnetGroupArn',
                        'SubnetIds': ['subnet-xxxxxxxx', 'subnet-yyyyyyyy']
                    }
                }
            }
        )