Ejemplo n.º 1
0
    def catch_api_proxy_environment_image_builds():

        environment_image_build_requests = request.json[
            "environment_image_build_requests"]

        for environment_image_build_request in environment_image_build_requests:
            environment_image_build_request[
                "project_path"] = project_uuid_to_path(
                    environment_image_build_request["project_uuid"])

        resp = api_proxy_environment_image_builds(
            environment_image_build_requests,
            app.config["ORCHEST_API_ADDRESS"])

        for environment_image_build_request in environment_image_build_requests:
            environment_uuid = environment_image_build_request[
                "environment_uuid"]
            project_uuid = environment_image_build_request["project_uuid"]
            env = get_environment(environment_uuid, project_uuid)
            analytics.send_event(
                app,
                analytics.Event.ENVIRONMENT_BUILD_START,
                {
                    "environment_uuid": environment_uuid,
                    "project_uuid": project_uuid,
                    "language": env.language,
                    "gpu_support": env.gpu_support,
                    "base_image": env.base_image,
                },
            )
        return resp.content, resp.status_code, resp.headers.items()
Ejemplo n.º 2
0
            def get(self, project_uuid, environment_uuid):
                environment = get_environment(environment_uuid, project_uuid)

                if environment is None:
                    return {"message": "Environment could not be found."}, 404
                else:
                    return environment_schema.dump(environment)
Ejemplo n.º 3
0
    def pipeline_set_notebook_kernels(pipeline_json, pipeline_directory,
                                      project_uuid):

        # for each step set correct notebook kernel if it exists

        steps = pipeline_json["steps"].keys()

        for key in steps:
            step = pipeline_json["steps"][key]

            if "ipynb" == step["file_path"].split(".")[-1]:

                notebook_path = os.path.join(pipeline_directory,
                                             step["file_path"])

                if os.path.isfile(notebook_path):

                    gateway_kernel = generate_gateway_kernel_name(
                        step["environment"])

                    with open(notebook_path, "r") as file:
                        notebook_json = json.load(file)

                    notebook_changed = False

                    if (notebook_json["metadata"]["kernelspec"]["name"] !=
                            gateway_kernel):
                        notebook_changed = True
                        notebook_json["metadata"]["kernelspec"][
                            "name"] = gateway_kernel

                    environment = get_environment(step["environment"],
                                                  project_uuid)

                    if environment is not None:
                        if (notebook_json["metadata"]["kernelspec"]
                            ["display_name"] != environment.name):
                            notebook_changed = True
                            notebook_json["metadata"]["kernelspec"][
                                "display_name"] = environment.name
                    else:
                        logging.warn(
                            "Could not find environment [%s] while setting notebook kernelspec for notebook %s."
                            % (step["environment"], notebook_path))

                    if notebook_changed:
                        with open(notebook_path, "w") as file:
                            file.write(json.dumps(notebook_json, indent=4))

                else:
                    logging.info(
                        "pipeline_set_notebook_kernels called on notebook_path that doesn't exist %s"
                        % notebook_path)
Ejemplo n.º 4
0
 def get(self, project_uuid, environment_uuid):
     return environment_schema.dump(
         get_environment(environment_uuid, project_uuid))