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, )
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, )