8000 Add FlowRun Item and Endpoints. by jorwoods · Pull Request #884 · tableau/server-client-python · GitHub
[go: up one dir, main page]

Skip to content

Add FlowRun Item and Endpoints. #884

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

Merged
merged 14 commits into from
Oct 19, 2021
Merged

Conversation

jorwoods
Copy link
Contributor

Adds support to the package for getting flow run status, as well as the ability to cancel flow runs.

@jorwoods
Copy link
Contributor Author

The API documentation incorrectly has the response XML including an attribute of flow id instead of what it really returns, flowId.

https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_flow.htm#get_flow_run

@jorwoods
Copy link
Contributor Author

Adds required endpoints and items for #860

Copy link
Collaborator
@t8y8 t8y8 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor changes but looks good

logger = logging.getLogger("tableau.endpoint.flowruns")


class FlowRuns(QuerysetEndpoint):
Copy link
< 8000 /details>
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know we've already merged some endpoints in as Queryset endpoints, but I've been skeptical of the approach -- I worry about needing more and more combinations of endpoint types, rather than just relying on helper methods or wrappers (like Pager).

The ship has sailed, but we should probably decide what route we want to go and convert all the endpoints at once

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Queryset methods I think are a nice convenience functionality for building up RequestOptions in a way that is a little more intuitive and fluent. I set it as the superclass for FlowRuns since I was working under the presumption that usually an individual querying the site will care more about getting runs for a specific flow and in a specific order than just generally querying all flows.

def from_response(cls, resp, ns):
all_flowrun_items = list()
parsed_response = ET.fromstring(resp)
all_flowrun_xml = itertools.chain(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not super familiar with flow runs -- is this because we have two versions of response or something?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, the Get Flow Run and Get Flow Runs endpoints seem to return different XML. (The documentation is also a little wrong about the XML document returned. It returns flowId and not flow id.

https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_flow.htm#get_flow_run

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dzucker-tab FYI re

The documentation is also a little wrong about the XML document returned. It returns flowId and not flow id.

@vogelsgesang
Copy link
Collaborator

@jorwoods could you please rebase this pull request on latest development?
There are some (hopefully trivial) conflicts. Besides that, I think the wait_for_job method should be refactored to also use the ExponentialBackoffTimer class introduced by #903

@jorwoods jorwoods force-pushed the jorwoods/flowruns branch 2 times, most recently from 43d7c2d to b9a77ba Compare October 7, 2021 01:03
@jorwoods
Copy link
Contributor Author
jorwoods commented Oct 7, 2021

@vogelsgesang It seems the asset XMLs for testing the jobs.wait_for_job weren't present when I fetched the latest changes. I don't see them in #903 either.

@vogelsgesang
Copy link
Collaborator

🤦 yes, I forgot to run git add on them... I pushed a commit to fix this, the development branch tests run fine again (except for Python 3.5, but Python 3.5 is end-of-life anyway, so I will open a separate pull request to remove support for it)

@jorwoods jorwoods requested a review from t8y8 October 7, 2021 13:29
Copy link
Collaborator
@t8y8 t8y8 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

return flow_run
elif flow_run.status == "Failed":
raise FlowRunFailedException(flow_run)
elif flow_run.status in ["Canceled", "Cancelled"]:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does Server really return it spelled both ways?!

@ovinis ovinis merged commit 428eb55 into tableau:development Oct 19, 2021
@jorwoods jorwoods deleted the jorwoods/flowruns branch November 17, 2021 01:03
jorwoods added a commit to jorwoods/server-client-python that referenced this pull request Jan 28, 2022
commit ed940a2
Author: Jac <jacalata@users.noreply.github.com>
Date:   Thu Jan 27 20:16:31 2022 -0800

    make tests run even if code style fails (tableau#980)

commit fb49f31
Author: jorwoods <jorwoods@users.noreply.github.com>
Date:   Thu Jan 27 21:54:31 2022 -0600

    Jorwoods/type hint flows (tableau#937)

    * Type hint Flows

    * Type hint request_factory for flows

    * Add ConnectionItem type hints on to Flow publish request

    * Clean up flows publish signature

    * Fix flow update_permissions type hint

    * Fix update_permissions type hint

    * Add workbook.hidden_views type hint

    * Update permissions only accepts an iterable

    * Fix formatting

commit f40d4bc
Author: jorwoods <jorwoods@users.noreply.github.com>
Date:   Thu Jan 27 21:47:53 2022 -0600

    Jorwoods/type hint favorites (tableau#936)

    * Type hint Favorites

    * Type hint FavoriteRequest

commit 4d0142d
Author: jorwoods <jorwoods@users.noreply.github.com>
Date:   Thu Jan 27 21:45:14 2022 -0600

    Jorwoods/type hint data alert (tableau#934)

    * Type hint data alerts

    * Type hint DataAlertRequest

    * Remove type annotations from Frequency namespace

    * Update test_dataalert.py

commit b836f33
Author: Brian Cantoni <bcantoni@salesforce.com>
Date:   Thu Jan 27 19:29:50 2022 -0800

    WIP: Enable Black for CI and add as dependency (tableau#935)

    * Enable Black for CI and add as dependency

    * Bulk reformat with Black, line length 120

    Co-authored-by: Jac Fitzgerald <jac.fitzgerald@salesforce.com>

commit ad57851
Author: jorwoods <jorwoods@users.noreply.github.com>
Date:   Thu Nov 11 15:55:01 2021 -0600

    Jorwoods/type hint revisions (tableau#956)

    Add type hints and tests for workbook and data source revisions

commit bb0feb8
Author: elsherif <selsherif@tableau.com>
Date:   Wed Nov 10 01:21:16 2021 +0100

    Add support to datasource and workbook revisions (tableau#931)

    * add support to datasource and workbook revisions (get all item revisions / downlad item by revision number)

    * ad
A93C
d type hints

    * remove wrong type hints

commit 31d420f
Author: Stephen Mitchell <scum@mac.com>
Date:   Tue Nov 9 01:02:14 2021 -0500

    Clean up hidden_views by making it an attribute of WorkbookItem (tableau#617)

    * Clean up hidden views and make it an attribute of workbookitem

    * Pycodestyle error fix for one letter variable

    Co-authored-by: Jac <jacalata@users.noreply.github.com>
    Co-authored by: Stephen Mitchell https://github.com/scuml

commit 7443f68
Author: jorwoods <jorwoods@users.noreply.github.com>
Date:   Sun Nov 7 05:57:42 2021 -0600

    Add type hints to `Job` (tableau#939)

commit c8170ae
Author: Tyler Doyle <doyle.tyler@gmail.com>
Date:   Mon Nov 1 20:36:17 2021 -0400

    Fix slack once and for all (tableau#946)

    The red X keeps coming back so I'd like to mark this as allowably fail-able -- that way the innards of Slack/OAuth/Tableau credentials don't keep polluting test run reports :)

commit 946469c
Author: jorwoods <jorwoods@users.noreply.github.com>
Date:   Mon Nov 1 14:33:22 2021 -0500

    Type hinting on Datasources and Workbooks (tableau#804)

    Adds types to function signatures for Workbook and Data Source endpoints.
    Co-authored-by: Jordan Woods <Jordan.Woods@mkcorp.com>

commit feed39c
Author: Brian Cantoni <bcantoni@tableau.com>
Date:   Tue Oct 26 08:04:10 2021 -0700

    Switch to release Python 3.10 release for CI (tableau#927)

    * Switch to release Python 3.10 release for CI

commit 4007d3d
Author: Jac <jacalata@users.noreply.github.com>
Date:   Fri Oct 22 19:06:20 2021 -0700

    Jac/publish samples (tableau#918)

    * add publish-samples option to create/update project

commit a899a95
Author: mmuttreja-tableau <87720143+mmuttreja-tableau@users.noreply.github.com>
Date:   Thu Oct 21 12:10:37 2021 -0400

    Adjusting changelog to include  missing updates for release 0.17 (tableau#922)

commit f81039a
Merge: fefd6f1 46bbe2e
Author: mmuttreja-tableau <87720143+mmuttreja-tableau@users.noreply.github.com>
Date:   Wed Oct 20 17:43:50 2021 -0400

    Merge pull request tableau#921 from tableau/development

    Merging Development to Main branch for releasing v 0.17

commit 46bbe2e
Author: mmuttreja-tableau <87720143+mmuttreja-tableau@users.noreply.github.com>
Date:   Wed Oct 20 17:26:45 2021 -0400

    Update contributors and Changelog for Release 0.17 (tableau#920)

    * Update CONTRIBUTORS.md & changelog for v 0.17

    Update contributors & changelog for v 0.17

commit 428eb55
Author: jorwoods <jorwoods@users.noreply.github.com>
Date:   Tue Oct 19 12:32:51 2021 -0500

    Add FlowRun Item and Endpoints. (tableau#884)

    * Add tests for fetching flow runs

    * Implement basics of FlowRuns

    * Add tests for cancel flow run

    * Make FlowRuns a Queryset endpoint for easier filtering

    * Add test for flow refresh endpoint

    * Align to naming conventions

    * Apply name change consistently

    * Change flowrun_id into flow_run_id

    * Add wait_for_job to FlowRun

    * Tag wait_for_job with version number

    * Rewrite flow_run to use ExponentialBackoffTimer

    * Test flow run wait with backoff

    * Remove 3.5 from test matrix

    * Standardize spelling of cancelled

    Co-authored-by: Jordan Woods <Jordan.Woods@mkcorp.com>

commit fefd6f1
Merge: 1d8a9be 0845b7b
Author: Jac <jacalata@users.noreply.github.com>
Date:   Thu Sep 2 17:49:07 2021 -0700

    Merge pull request tableau#880 from tableau/upgrade-slack-action

    Upgrade to newer Slack action provider

commit 0845b7b
Author: Brian Cantoni <bcantoni@tableau.com>
Date:   Wed Sep 1 14:22:53 2021 -0700

    Upgrade to newer Slack action provider

commit 1d8a9be
Merge: 5cbfc34 770d48a
Author: Ovini Nanayakkara <44311587+ovinis@users.noreply.github.com>
Date:   Fri Jul 16 12:42:30 2021 -0400

    Merge pull request tableau#864 from tableau/development

    Merging Development to Main branch

commit 5cbfc34
Merge: ec3cc50 ffefd80
Author: Jac <jacalata@users.noreply.github.com>
Date:   Wed Jun 23 23:33:47 2021 -0700

    Merge pull request tableau#851 from tableau/jacalata-patch-1

    Create slack.yml action

commit ffefd80
Author: Jac <jacalata@users.noreply.github.com>
Date:   Mon May 24 13:34:07 2021 -0700

    whitespace change to re-try PR

commit 0c4fd4a
Author: Jac <jacalata@users.noreply.github.com>
Date:   Mon May 24 13:15:49 2021 -0700

    Create slack.yml

    Created a new action from https://github.com/marketplace/actions/send-message-to-slack
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants
0