Exemple #1
0
        'mode': file_mode,
        'owner': basestring,
        'group': basestring,
        'uid': int,
        'gid': int,
    }),
    at_most_one_of('content', 'source', 'target'),
    at_most_one_of('owner', 'uid'),
    at_most_one_of('group', 'gid'),
]

validator = one_or_more([
    tolerant_dict({
        'destination': absolute_path,
    }),
    _file_attributes,
    tolerant_dict({
        'files':
        one_or_more(
            one_of(
                basestring,
                [
                    _file_attributes,
                    tolerant_dict({
                        'filename': path,
                    }),
                ],
            )),
    }),
])
Exemple #2
0
import boto
import boto.exception
import json

import hc2002.aws.iam
from hc2002.validation import absolute_path, in_, one_or_more, validate, \
        validate_keys, validate_values

_role_policy = one_or_more({
    'action': one_or_more(basestring),
    'resource': one_or_more(basestring),
    'condition': dict,
})

validator = {
    'name': basestring,
    'path': absolute_path,
    'policy': [
        dict,
        validate_values([
            dict,
            validate_keys(in_('allow', 'deny')),
            validate_values(_role_policy),
        ]),
    ],
}

def _setup_iam_connection():
    global iam
    iam = hc2002.aws.iam.get_connection()
Exemple #3
0
        bool,
    }),
]

_scheduled_group_action = {
    'count': int,
    'min-count': int,
    'max-count': int,
    'start-time': datetime.datetime,
    'end-time': datetime.datetime,
    'recurrence': basestring,
}

_notification_configuration = {
    'topic': basestring,
    'type': one_or_more(basestring),
}

_instance_dict = {
    'instance-type': basestring,
    'ebs-optimized': bool,
    'block-devices': _block_device,
    'image': basestring,
    'kernel': basestring,
    'ramdisk': basestring,
    'min-count': int,
    'max-count': int,
    'count': int,
    'tags': dict,
    'key': basestring,
    'role': one_or_more(basestring),
Exemple #4
0
        'disposable':   bool,
    }),
]

_scheduled_group_action = {
    'count':        int,
    'min-count':    int,
    'max-count':    int,
    'start-time':   datetime.datetime,
    'end-time':     datetime.datetime,
    'recurrence':   basestring,
}

_notification_configuration = {
    'topic':    basestring,
    'type':     one_or_more(basestring),
}

_instance_dict = {
    'instance-type':        basestring,
    'ebs-optimized':        bool,
    'block-devices':        _block_device,
    'image':                basestring,
    'kernel':               basestring,
    'ramdisk':              basestring,
    'min-count':            int,
    'max-count':            int,
    'count':                int,
    'tags':                 dict,
    'key':                  basestring,
    'role':                 one_or_more(basestring),
Exemple #5
0
        'source':   url,
        'target':   path,

        'mode':     file_mode,

        'owner':    basestring,
        'group':    basestring,
        'uid':      int,
        'gid':      int,
    }),
    at_most_one_of('content', 'source', 'target'),
    at_most_one_of('owner', 'uid'),
    at_most_one_of('group', 'gid'),
]

validator = one_or_more([
    tolerant_dict({ 'destination': absolute_path, }),
    _file_attributes,
    tolerant_dict({
        'files': one_or_more(
            one_of(
                basestring,
                [
                    _file_attributes,
                    tolerant_dict({ 'filename': path, }),
                ],
            )
        ),
    }),
])