Skip to content
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

Save GraphQL queries to easily re-run from a REST API #3

Closed
jedelman8 opened this issue Feb 24, 2021 · 1 comment · Fixed by #75
Closed

Save GraphQL queries to easily re-run from a REST API #3

jedelman8 opened this issue Feb 24, 2021 · 1 comment · Fixed by #75
Assignees
Labels
type: feature Introduction of new or enhanced functionality to the application
Milestone

Comments

@jedelman8
Copy link
Contributor

jedelman8 commented Feb 24, 2021

Proposed Functionality

Support ability to create, update, and delete GraphQL queries in the UI and API.

Use Case

As a user, I want a way to save and re-run common GraphQL queries from an API endpoint. I also want to be able to easily execute saved queries within GraphiQL.

Database Changes

Yes - will likely require a model for saving GraphQL queries to the DB - maybe just a JSONField?

External Dependencies

None.

@jedelman8 jedelman8 added this to the v1.1.0 milestone Feb 24, 2021
andy-wm-arthur pushed a commit to dolthub/nautobot that referenced this issue Mar 2, 2021
- Web UI combines all content previously offered under each feature
- Custom Job files should be placed in new $CUSTOM_JOBS_ROOT configurable
  directory; for now we will also discover files in $SCRIPTS_ROOT and
  $REPORTS_ROOT but those are deprecated.
- User-facing Script, BaseScript, and Report classes are still present for
  backwards compatibility, but are just thin wrappers around new CustomJob
  class.
- Django ORM stub Script and Report classes have been removed and replaced
  with new CustomJob stub model.
  - Migration automatically updates any legacy JobResult records with the new
    ContentType value.
  - Migration also updates differing legacy Script and Report JobResult data
    records to a common format.
- /scripts/ and /reports/ UI, API endpoints are removed, replaced by
  /custom-jobs/
- Combined and updated documentation for Scripts/Reports.
- manage.py runreport has been replaced with manage.py runjob
  - This currently does NOT have support for user-specified parameters other
    than the commit flag.
- Previously only the latest JobResult for each Script/Report was retained
  (older records were auto-deleted); now records are retained indefinitely.
  - Added a web UI view for listing and filtering CustomJob JobResult records,
    although it's fairly primitive at present.
  - UI gracefully handles records where the underlying job file cannot be
    found (has been moved or deleted)
andy-wm-arthur pushed a commit to dolthub/nautobot that referenced this issue Mar 2, 2021
Merge reports and scripts functionality, add support for multiple results per custom job. Fixes nautobot#3.
@glennmatthews glennmatthews added the type: feature Introduction of new or enhanced functionality to the application label Mar 19, 2021
@carbonarok
Copy link
Contributor

Test comment for issue assignment

@jedelman8 jedelman8 added this to To do in Release v1.1.0 via automation Apr 26, 2021
@glennmatthews glennmatthews moved this from To do to Review in progress in Release v1.1.0 Apr 29, 2021
glennmatthews pushed a commit that referenced this issue Jun 29, 2021
* Adds `nautobot-server celery` management command

- Commented out `nautobot.setup()` call from `nautobot/core/management/commands/celery.py` and adds more context as to why it's not called there.
- Updated `celery_worker` to use `nautobot-server celery` inside of `development/docker-compose.yml`
  - Remove `-A` flag from docker-compose for worker
glennmatthews added a commit that referenced this issue Aug 27, 2021
* base celery install

* initial cutover of core to celery

* celery testing updates

* migrate to custom nautobot_json serializer

* refactored models to use custom nautobot versions

* Apply suggestions from code review

Co-authored-by: Jathan McCollum <jathan@gmail.com>

* more PR feedback

* resolve poetry.lock conflict

* task updates

* pr feedback

* update testing

* merge conflicts

* Apply suggestions from code review

Co-authored-by: Glenn Matthews <glenn.matthews@networktocode.com>

* approval queue workflows

* Various fixes for running celery in Docker dev environment

* Adds `nautobot-server celery` management command (#3)

* Adds `nautobot-server celery` management command

- Commented out `nautobot.setup()` call from `nautobot/core/management/commands/celery.py` and adds more context as to why it's not called there.
- Updated `celery_worker` to use `nautobot-server celery` inside of `development/docker-compose.yml`
  - Remove `-A` flag from docker-compose for worker

* Fixed git datasource tests.

* Linting fixes

* Scheduled Job detail view and delete view (#624)

* Various fixes for running celery in Docker dev environment

* Add detail view for ScheduledJob model

* Add ability to delete ScheduledJob records

* Linting

* UI fixes

* Reorder Jobs menu group

* Get celery beat running successfully in development docker environment

* Set last_run_at to fix an issue with recurring jobs never starting

* Black

* Add filtering to job result table views

* Add API views for scheduled jobs

* Remove task prefetching (not a foreign key)

* Add scheduling to the job api

* Move schedule creation to view

* Use serializer correctly

* Avoid double execution of jobs

* Make result not required in JobDetailSerializer

* Validate job schedule received by API

* update scheduledjob detail

* incorporate feedback into job details

* Incorporate feedback by @glennmatthews

Co-authored-by: Glenn Matthews <glenn.matthews@networktocode.com>

* Incorporate feedback by @glennmatthews

Co-authored-by: Glenn Matthews <glenn.matthews@networktocode.com>

* Incorporate feedback by @glennmatthews

Co-authored-by: Glenn Matthews <glenn.matthews@networktocode.com>

* incorporate feedback by @glennmatthews

* use pk as key on delete button

* Use items accessor in scheduled job template

* Move user inputs to own table in scheduled job view

* No details for user inputs in scheduled job template

* document beat worker

* address multiple code review concerns:

- add comment for handleDetailPostAction
- move NestedJobScheduleSerializer to nested_serializers.py
- remove name uniqueness constraint

* Add migration to relax name constraints on scheduled jobs

* Add name of the schedule to schedule description

* Wrap button template code as suggested by @glennmatthews

Co-authored-by: Glenn Matthews <glenn.matthews@networktocode.com>

* Rename scheduled jobs queue tables

* Add empty User Inputs placeholder

* Rename Scheduled Job nav menu item

* Serialize job data correctly

* Serialize job data correctly

* Add placeholder to scheduled job detail view

* Add better labels to scheduled job  detail view

* Address comments from another code review

* Address comments from code review

* squash scheduled job migrations

* Use right link in navigation for scheduled jobs

* Address comments from code review

* Address comments from code review

* Multiple changes:

- Use name from serializer on a job schedule if it is set
- Reorder nested extras serializers alphabetically

* Make Nested ScheduledJob serializer more idiomatic

* Make name and start_time on nested serializer not required

* Add job approvals api

* Fix URI scheme on approval queue list

* Add force parameter to job approval api

* Renumbered and rethreaded migration

* Readd celery beat docker info that got lost during merge

* More idiomatic url_path for dry_run endpoint

Co-authored-by: John Anderson <lampwins@gmail.com>
Co-authored-by: Jathan McCollum <jathan@gmail.com>
Co-authored-by: Glenn Matthews <glenn.matthews@networktocode.com>
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 10, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
type: feature Introduction of new or enhanced functionality to the application
Projects
No open projects
Release v1.1.0
Review in progress
Development

Successfully merging a pull request may close this issue.

4 participants