Esempio n. 1
0
import hc2002.transform as xf
import hc2002.translation as xl
from hc2002.validation import at_most_one_of, in_, match, one_of, \
        one_or_more, prefix, validate, validate_keys, validate_values, \
        tolerant_dict

logger = logging.getLogger(__name__)
logger.addHandler(logging.NullHandler())

_block_device = [
    dict,
    validate_values({
        'source':       one_of(
                            match('no-device'),
                            match('ephemeral[0-9]'),
                            match('snap-[a-fA-F0-9]+')),
        'size':         int,
        'iops':         int,
        'disposable':   bool,
    }),
]

_scheduled_group_action = {
    'count':        int,
    'min-count':    int,
    'max-count':    int,
    'start-time':   datetime.datetime,
    'end-time':     datetime.datetime,
    'recurrence':   basestring,
}
Esempio n. 2
0
File: role.py Progetto: tlan/hc2000
        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()

_policy_effects = { 'allow': 'Allow', 'deny': 'Deny' }

def _translate_role_policy(policy):
    policy_statements = []
    for effect, statements in policy.iteritems():
        effect = effect.capitalize()
Esempio n. 3
0
import hc2002.translation as xl
from hc2002.validation import at_most_one_of, in_, match, one_of, \
        one_or_more, prefix, validate, validate_keys, validate_values, \
        tolerant_dict

logger = logging.getLogger(__name__)
logger.addHandler(logging.NullHandler())

_block_device = [
    dict,
    validate_values({
        'source':
        one_of(match('no-device'), match('ephemeral[0-9]'),
               match('snap-[a-fA-F0-9]+')),
        'size':
        int,
        'iops':
        int,
        'disposable':
        bool,
    }),
]

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