Exemple #1
0
    def post(self, rule_name):
        data = self.load_params(["image", "input_path", "notebook"])
        if data is None:
            return

        params = data.get("parameters", {})
        if isinstance(params, str):
            params = json.loads(params)

        kwargs = dict(
            rule_name=rule_name,
            image=data["image"],
            input_path=data["input_path"],
            output_prefix=data.get("output_prefix", None),
            notebook=data["notebook"],
            parameters=params,
            role=data.get("role", None),
            schedule=data.get("schedule", None),
            event_pattern=data.get("event_pattern", None),
        )
        instance_type = data.get("instance_type", None)
        if instance_type:
            kwargs["instance_type"] = instance_type

        try:
            run.schedule(**kwargs)
            self.json_response(dict(rule_name=rule_name))
        except botocore.exceptions.ClientError as e:
            self.client_error_response(e)
        except botocore.exceptions.BotoCoreError as e:
            self.botocore_error_response(e)
def schedule(args):
    params = process_params(args.p)
    if args.notebook.startswith("s3://"):
        input_path = args.notebook
        notebook = os.path.basename(args.notebook)
    else:
        input_path = None
        notebook = args.notebook

    extra_fns = []
    if args.extra:
        extra_fns.append(base_extras(load_extra(args.extra)))
    if args.emr:
        extra_fns.append(emr.add_emr_cluster(args.emr))

    run.schedule(
        rule_name=args.name,
        schedule=args.at,
        event_pattern=args.event,
        image=args.image,
        input_path=input_path,
        output_prefix=args.output_prefix,
        notebook=notebook,
        parameters=params,
        role=args.role,
        instance_type=args.instance,
        extra_fns=extra_fns,
    )
Exemple #3
0
def schedule(args):
    params = process_params(args.p)
    if args.notebook.startswith("s3://"):
        input_path = args.notebook
        notebook = os.path.basename(args.notebook)
    else:
        input_path = None
        notebook = args.notebook

    run.schedule(
        rule_name=args.name,
        schedule=args.at,
        event_pattern=args.event,
        image=args.image,
        input_path=input_path,
        output_prefix=args.output_prefix,
        notebook=notebook,
        parameters=params,
        role=args.role,
        instance_type=args.instance,
    )