def _get_action()

in ec2stack/controllers/default.py [0:0]


def _get_action(action):
    """
    Finds the associated function for each action.

    @param action: Action to be looked up.
    @return: Function associated with specified action.
    @raise Ec2stackError: Action is not found.
    """
    actions = {
        'AttachVolume': volumes.attach_volume,
        'AuthorizeSecurityGroupEgress':
        security_groups.authenticate_security_group_egress,
        'AuthorizeSecurityGroupIngress':
        security_groups.authenticate_security_group_ingress,
        'CreateKeyPair': keypairs.create_keypair,
        'CreateSecurityGroup': security_groups.create_security_group,
        'CreateSnapshot': snapshots.create_snapshot,
        'CreateTags': tags.create_tags,
        'CreateVolume': volumes.create_volume,
        'CreateVpc': vpcs.create_vpc,
        'DeleteKeyPair': keypairs.delete_keypair,
        'DeleteSecurityGroup': security_groups.delete_security_group,
        'DeleteSnapshot': snapshots.delete_snapshot,
        'DeleteTags': tags.delete_tags,
        'DeleteVolume': volumes.delete_volume,
        'DeleteVpc': vpcs.delete_vpc,
        'DescribeAvailabilityZones': zones.describe_zones,
        'DescribeImageAttribute': images.describe_image_attribute,
        'DescribeImages': images.describe_images,
        'DescribeInstanceAttribute': instances.describe_instance_attribute,
        'DescribeInstances': instances.describe_instances,
        'DescribeKeyPairs': keypairs.describe_keypairs,
        'DescribeSecurityGroups': security_groups.describe_security_groups,
        'DescribeSnapshots': snapshots.describe_snapshots,
        'DescribeTags': tags.describe_tags,
        'DescribeVolumes': volumes.describe_volumes,
        'DescribeVpcs': vpcs.describe_vpcs,
        'DetachVolume': volumes.detach_volume,
        'GetPasswordData': passwords.get_password_data,
        'ImportKeyPair': keypairs.import_keypair,
        'RebootInstances': instances.reboot_instance,
        'RegisterSecretKey': register_secret_key,
        'RemoveSecretKey': remove_secret_key,
        'RevokeSecurityGroupEgress':
        security_groups.revoke_security_group_egress,
        'RevokeSecurityGroupIngress':
        security_groups.revoke_security_group_ingress,
        'RunInstances': instances.run_instance,
        'StartInstances': instances.start_instance,
        'StopInstances': instances.stop_instance,
        'TerminateInstances': instances.terminate_instance,
    }

    if action in actions:
        return actions[action]
    else:
        raise Ec2stackError(
            '400',
            'InvalidAction',
            'The action %s is not valid for this web service' % action
        )