Example #1
0
def validate_params(module, service, operation_name, args, **awsparams):
    profile = awsparams.get('profile_name')

    session = Session(profile=profile)

    if service not in session.get_available_services():
        module.fail_json(msg='Invalid Service Name: {0}'.format(service))

    service_model = session.get_service_model(service)
    op_names = list(service_model.operation_names)
    if operation_name not in op_names:
        module.fail_json(
            msg='Invalid Operation Name: {0} for Service: {1}'.format(
                operation_name, service))

    op_model = service_model.operation_model(operation_name)
    shape_members = dict(op_model.input_shape.members)
    required_members = list(op_model.input_shape.required_members)

    if 'DryRun' not in shape_members:
        args.pop('DryRun')

    bad_params = set(args.keys()) - set(shape_members.keys())
    if bad_params:
        module.fail_json(
            msg='Invalid Argument(s): {0} for Service Operation: {1}'.format(
                ", ".join(bad_params), operation_name))

    missing_params = set(required_members) - set(args.keys())
    if missing_params:
        module.fail_json(
            msg='Missing Required Argument(s): {0} for Service Operation: {1}'.
            format(", ".join(missing_params), operation_name))

    return args
Example #2
0
 def test_tagged_union_member_name_does_not_coincide_with_unknown_key(self):
     # This test ensures that operation models do not use SDK_UNKNOWN_MEMBER
     # as a member name. Thereby reserving SDK_UNKNOWN_MEMBER for the parser to
     # set as a key on the reponse object. This is necessary when the client
     # encounters a member that it is unaware of or not modeled.
     session = Session()
     for service_name in session.get_available_services():
         service_model = session.get_service_model(service_name)
         for shape_name in service_model.shape_names:
             shape = service_model.shape_for(shape_name)
             if hasattr(shape, 'is_tagged_union') and shape.is_tagged_union:
                 self.assertNotIn('SDK_UNKNOWN_MEMBER', shape.members)
def _all_services():
    session = Session()
    service_names = session.get_available_services()
    for service_name in service_names:
        yield session.get_service_model(service_name)
Example #4
0
import argparse
import jinja2


def striphtml(data):
    p = re.compile(r'<.*?>')
    return p.sub('', data)


def convert(name):
    s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
    return re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower()


session = Session()
allservices = session.get_available_services()

parser = argparse.ArgumentParser(description="Generate aws stackstorm actions")
parser.add_argument('-d',
                    '--outputdir',
                    default="actions",
                    help="base output directory")
parser.add_argument('-s',
                    '--service',
                    default=None,
                    help="service to generate actions for (eg s3)")
parser.add_argument('-v',
                    '--version',
                    required=True,
                    help="pack version to generate")
args = parser.parse_args()
Example #5
0
# print "outputdir: %s" % outputdir
# print "myservice: %s" % myservice

try:
    os.stat(outputdir)
except:  # noqa: E722
    os.mkdir(outputdir)

templateLoader = jinja2.FileSystemLoader(searchpath="templates")
templateEnv = jinja2.Environment(loader=templateLoader)

session = Session()

if myservice is None:
    myservices = session.get_available_services()
else:
    myservices = [myservice]

for myservice in myservices:
    print "%s:" % myservice

    try:
        mysrv = session.get_service_model(myservice)
    except botocore.exceptions.UnknownServiceError as e:
        print "\n%s\n" % e
        sys.exit(1)

    for op in mysrv.operation_names:  # pylint: disable=not-an-iterable
        allvars = {}
        allvars['paramsreq'] = []
Example #6
0
def _all_services():
    session = Session()
    service_names = session.get_available_services()
    return [session.get_service_model(name) for name in service_names]