-
Notifications
You must be signed in to change notification settings - Fork 38
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
Clarify logs (expected to be URLs) and paging (use page_token). #30
Conversation
Also clarify that timestamps should be ISO 8601.
page of results. | ||
in: query | ||
required: false | ||
type: string | ||
- name: tag_search | ||
description: |- | ||
OPTIONAL | ||
For each key, if the key's value is empty string then match workflows that are tagged with | ||
this key regardless of value. | ||
Only return workflow submissions where this key is present in "tags" (regardless of tag value). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
making sure I understand:
a) we let you search for "key K exists", but don't provide any way to search for "key K has value V"
b) we let you search for a single key, but don't provide any way to search for "key J and/or K exist"
Is that right? If so, it seems like a reasonable place to start, but I could be talked into doing more or less depending on what our initial driver projects need.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't have strong feelings about this, I was just trying to reword it to make it clearer what behavior was being specified.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't care strongly either way but without claiming to speak for @mckinsel - what we've seen from the group he works with using our stuff is they want both K and K/V pair as K is sometimes used as a straight tag and K/V pair is used as a, well, K/V pair.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we need to support both search for "K exists" and "K with value" exists, then I think tag_search needs to allow specification of that. For example, tag_search is structure that contains "key" field (required if tag_search is specified) and "value" field (optional; if not present we only check key existence.
From my naive point of view, this seems a bit ornate. I'd like to understand the use case for "key + value" and why a simple set of string tags is not sufficient.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It'd also be helpful to clarify how these tags are related (if at all) to the "tags" field of WorkflowRequest
:
tags:
type: object
additionalProperties:
type: string
title: |-
OPTIONAL
A key-value map of arbitrary metadata outside the scope of the workflow_params but useful to track with this workflow request
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Meta comment: user kbergin made a comment and it’s been listed as pending for a few hours. Who can unblock this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://help.github.com/articles/reviewing-proposed-changes-in-a-pull-request/
Before you submit your review, your line comments are pending and only visible to you.
That might be what's going on?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh I bet you’re right. I was going to say, I’d never seen a setting requiring comment approvals.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So sorry for the meta-comment confusion!
👍 modulo if any changes are requested by drivers on the K/V issue |
@@ -75,24 +75,24 @@ paths: | |||
- name: page_size | |||
description: |- | |||
OPTIONAL | |||
Number of workflows to return in a page. | |||
The preferred number of workflow submissions to return in a page. | |||
The actual number of items returned is implementation dependent. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it is important for clients to know the maximum number of workflows they will need to handle in a response. That affects structure allocation. The number could be fewer, such as at the end of the listing, but shouldn't be more.
@@ -44,7 +44,7 @@ paths: | |||
/workflows: | |||
get: | |||
summary: |- | |||
List the workflows, this endpoint will list the workflows in order of oldest to newest. | |||
List submitted workflows. The ordering of this list is implementation dependent. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The implementation really has to provide some kind of ordering; maybe implementation-specific. Otherwise, the semantic below of returning to the "first" result has no meaning.
page of results. | ||
in: query | ||
required: false | ||
type: string | ||
- name: tag_search | ||
description: |- | ||
OPTIONAL | ||
For each key, if the key's value is empty string then match workflows that are tagged with | ||
this key regardless of value. | ||
Only return workflow submissions where this key is present in "tags" (regardless of tag value). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we need to support both search for "K exists" and "K with value" exists, then I think tag_search needs to allow specification of that. For example, tag_search is structure that contains "key" field (required if tag_search is specified) and "value" field (optional; if not present we only check key existence.
From my naive point of view, this seems a bit ornate. I'd like to understand the use case for "key + value" and why a simple set of string tags is not sufficient.
I'm going to pull the text changes related to tags (I was only trying to clarify what was there and not propose new behavior, but clearly we need to talk about it more) and we can discuss it separately. |
Be more precise based on feedback. Revert text changes related to tags, will be brought up in a separate PR.
Updated to remove text changes related tags and to reflect comments from @ddietterich |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few questions/clarifications, but otherwise looks fine to me.
in: query | ||
required: false | ||
type: integer | ||
format: int64 | ||
- name: page_token | ||
description: |- | ||
OPTIONAL | ||
Token to use to indicate where to start getting results. If unspecified, returns the first | ||
Token to use to indicate where to start getting results. If unspecified, return the first | ||
page of results. | ||
in: query | ||
required: false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does "page_token" need a type? I assume string (to match "next_page_token").
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It does have type: string
, I think you just missed it (it is on line 100, which is just below the context provided for this line comment).
than "page_size", but it may return fewer. Clients should | ||
not assume that if fewer than "page_size" items is | ||
returned that all items have been returned. The | ||
availability of additional pages is indicated by the value |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a "default" behavior for returning workflows when neither "page_size" or "page_token" are specified? Does the WES implementation itself specify a default page size?
Also, if 'Clients should not assume that if fewer than "page_size" items is returned that all items have been returned,' is the "system_state_counts" property in ServiceInfo
a more reliable way to check the total count of submitted workflows?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess it isn't clear, the intended default behavior is to start on the first page and the page size is arbitrary.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some points that could use a bit more clarification, but otherwise looks good.
stdout: | ||
type: string | ||
title: Sample of stdout (not guaranteed to be entire log) | ||
title: |- | ||
A URL to retrieve standard output logs of the workflow run or |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might be useful to provide client some indication of what protocol is required to access log URLs (e.g., http, gs, s3, etc.). I'm thinking that supported_filesystem_protocols
in ServiceInfo
should be a map instead of an array (e.g., {"workflows": ["http", "file"], "tasks": ["gs"], "logs": ["gs"]}
) — but I'll open a separate issue to discuss.
In terms of process, how do we wrap this up? I see approval from @geoffjentry and @jaeddy so I guess @mckinsel is supposed to also weigh in? |
Yes in terms of process -- Marcus, can you either say +1 or let us know
your concerns? (Or choose to defer to the other reviewers, which is also
fine.)
…On Mon, Jun 18, 2018 at 7:47 AM Peter Amstutz ***@***.***> wrote:
In terms of process, how do we wrap this up? I see approval from
@geoffjentry <https://github.com/geoffjentry> and @jaeddy
<https://github.com/jaeddy> so I guess @mckinsel
<https://github.com/mckinsel> is supposed to also weigh in?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#30 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AFjg3aQl67QWGqyUQzW2jo-3GAiJT7vLks5t972DgaJpZM4Ubau1>
.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, looks good to me.
Also clarify that timestamps should be ISO 8601.
Follow up from Toronto meeting.
Corresponding implementation here common-workflow-language/workflow-service#21
paging @geoffjentry @mckinsel @jaeddy @briandoconnor @dglazer