'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, }), ], )), }), ])
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()
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),
'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),
'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, }), ], ) ), }), ])