-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Part 4: Clarify /req/job-management/definition-get-op #455
Comments
The idea was initially to return the definition used to instantiate the job ( What do you think? |
I agree. Default should be the |
Because jobs are submitted using a |
OAP jobs might be, openEO no. There it's |
Exactly. This is why a separate endpoint (or the same using another Accept header) is proposed. This way, we don't need to depend on a specific embedding of |
Yeah, that's what I proposed. That doesn't necessarily need a separate pre-defined endpoint though. Not sure whether we agree or disagree right now 😅 |
If |
If the job contains a non-deployed workflow (such as OAP Part 3 Nested Processes), then there is no such thing as a reference In that case, it MUST be embedded in the job status as So yeah, we agree if the JSON schema allows both variants. |
I had the following in mind (only illustrated for OGC API - Processes). For the sample creation request below:
The expected response would look like:
We can remove the Also, rather than adding the header properties directly in the
It looks very similar to what we used in "Table 43 — Parts of InputReference data structure" of WPS 1.0.0 (OGC 05-007r7). It is mentioned the following definition for the
At that time, we also used the Re-using the
This |
I wouldn't include the This example also illustrates why Embedding a job-execution content under |
I don't really understand the issue here. My proposal was: We have an optional "process" property of type object in the job description object and whenever it's a json object you can embed it. It's optional though and if the process is NOT an object, you just add a link to the job description object, like:
I think that should be able to capture all cases. I haven't seen any reason yet why this wouldn't work. Any thoughts? |
The link is fine. I'm not really fond of |
No, process graphs alone are worthless, the process has additional metadata that may be needed in addition to the graph. We can't prevent that the process will be something different. |
So, if I understand correctly, openEO's definition is something along the lines of "process-graph + configs = process" ? If my interpretation is correct, I can understand openEO's use of |
No, it's more the execution graph (which includes inputs/input references) and the process metadata. They are one unit, similar to CWL, I think. The thing is, in openEO processes that a server define and processes that a user define share the same schema and as such are both processes. Processes are pretty self-contained, i.e. there are no separate inputs/headers although there might be other related entities such as jobs, which have additional "config" such as title, plan and environment config (e.g. memory, cpu). Not 100% sure what you mean by config. Example: Server provides (pre-defined) processes add, divide, multiply and subtract. A users chains that to a custom process that's called NDVI and submit's it as (user-defined) process for execution. |
That's good. It is the same in OAP.
I meant exactly what you mentioned, such as job title/plan/environment that slightly affects the process. The process itself is mostly agnostic to this "config", but could be affected by them (eg: number of CPUs affected will impact processing speed, or maybe parallelization). All in all, to my understanding, OAP and openEO both have similar behavior. Some form of "execution graph" is populated by actual inputs references (submitted by the user) and relevant processes. Therefore, this is exactly why I feel job using a CWL does NOT correspond to that "execution graph" either. It is at workflow definition (how the inputs/output should be chained), but the effective inputs submitted with the job input values are not yet specified at that point. Therefore, embedding the CWL in |
Somewhat, but it's not quite as in OAP. In openEO the input values are part of the process execution graph, there are no separate input values which you could submit. And if your process has parameters, you need to encode them in another process where the inputs again are part of the process execution graph. ;-) Might a bit confusing for you without a concrete example, I guess? The config is not part of that. That's part of the job, e.g. Job:
Process (this is one atomic unit and shall never be split into pieces):
If you define something like the following, you can only store it as UDP, not execute it as job. Process (this is one atomic unit and shall never be split into pieces):
To execute it, you'd again have somethine like
(Disclaimer: Simplified example) |
These descriptions are clear. What I'm still not sure is inside the If it is similar to: {
"id": "{jobId}",
"status": "running",
"process": {
"my_other_process": {
"process_id": "my_process",
"arguments": { "X": -5 },
"result": true
}
}
} This is what I find "misleading", since If, instead, the job status response |
It would contain the Example from the API spec: https://api.openeo.org/#tag/Data-Processing/operation/describe-job Might be a good idea to hop on a short call to clarify this in all details, I feel like in text it's much more difficult to get to the details comparet to going through some example in a screenshare... |
Originally posted by @m-mohr in #437 (comment)
The text was updated successfully, but these errors were encountered: