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

Added lower bound for run_action wait timeout. #13477

Merged
merged 7 commits into from Nov 8, 2021
Merged

Added lower bound for run_action wait timeout. #13477

merged 7 commits into from Nov 8, 2021

Conversation

juanmanuel-tirado
Copy link
Contributor

The juju run_action has a param wait=10ms that sets a timeout to stop the active waiting. This PR simply adds a lower timeout limitation of 1ms to avoid ridiculous situations where the user sets the wait param to be one nanosecond or similar.

This branch limits this timeout to be at least 1 millisecond.

Checklist

  • Requires a pylibjuju change
  • Added integration tests for the PR
  • Added or updated doc.go related to packages changed
  • Comments answer the question of why design decisions were made

QA steps

juju bootstrap microk8s test
juju deploy hello-kubecon
juju run-action hello-kubecon/0 pull-site --wait=700ns
ERROR timeout must greater or equal than 1 ms
juju run-action hello-kubecon/0 pull-site --wait=1ms
{}
ERROR timeout reached
juju run-action hello-kubecon/0 pull-site --wait=5s
unit-hello-kubecon-0:
  UnitId: hello-kubecon/0
  id: "55"
  results:
    result: site pulled
  status: completed
  timing:
    completed: 2021-11-04 15:46:58 +0000 UTC
    enqueued: 2021-11-04 15:46:57 +0000 UTC
    started: 2021-11-04 15:46:57 +0000 UTC

Documentation changes

Juju documentation must be changed to mention this limitation. https://juju.is/docs/olm/working-with-actions

juanmanuel-tirado and others added 2 commits November 8, 2021 14:49
Co-authored-by: Achilleas Anagnostopoulos <achilleas.imap.mbox@gmail.com>
@juanmanuel-tirado
Copy link
Contributor Author

!!merge!!

@juanmanuel-tirado juanmanuel-tirado merged commit ea15e5f into juju:2.9 Nov 8, 2021
@juanmanuel-tirado juanmanuel-tirado deleted the JUJU-130_remove_ns_option branch November 8, 2021 16:37
jujubot added a commit that referenced this pull request Nov 11, 2021
#13491

The wait flag allows you to specify no-time arguments for run action,
which then allows you to wait forever (it prevents a timer from running).
Also, passing `wait=true` is semantically the same.

The problem with the last changes is it prevented the use of this and
error'd out with the timeout being too small. The fix is to expose if
the flag is in the forever mode.

## QA steps

See: #13477

```sh
$ juju bootstrap microk8s test
$ juju deploy hello-kubecon
$ juju run-action hello-kubecon/0 pull-site --wait
unit-hello-kubecon-0:
 UnitId: hello-kubecon/0
 id: "55"
 results:
 result: site pulled
 status: completed
 timing:
 completed: 2021-11-04 15:46:58 +0000 UTC
 enqueued: 2021-11-04 15:46:57 +0000 UTC
 started: 2021-11-04 15:46:57 +0000 UTC
```
@wallyworld wallyworld mentioned this pull request Nov 26, 2021
jujubot added a commit that referenced this pull request Nov 26, 2021
#13528

Merge 2.9

#13461 Enhanced logging detail when starting side-car agents
#13462 Context queue
#13464 Improve run hook error when charm is missing
#13468 Skip check for microk8s user group on macOS
#13472 Update to latest version of Pebble (exec terminal/interactive params)
#13448 add multi-part yaml support to GetChanges for the bundle facade
#13465 [JUJU-112] manifests and blobs api for registries
#13460 Allow NotifyTarget to return an error
#13482 [JUJU-136] enable juju_machine_lock to display unit machine lock status.
#13477 Added lower bound for run_action wait timeout.
#13490 [JUJU-121] Adds support for auto create of instance profiles.
#13425 [2.9] Expose supported features in show model output
#13426 Remove deprecated juju cli flags
#13422 Provision OpenStack instances with NICs for bindings
#13423 Fix add-machine command help for zones constraint
#13424 Fixed a typo in README.md
#13513 [JUJU-223] Fix panic when retrieving application config
#13517 [JUJU-227] Stop the CAAS storage provisioner worker if the application is dead;
#13519 [JUJU-240] Use the storage prefix when selecting pvcs for sidecar charms
#13520 [JUJU-245] Do not error with permission denied if a controller tries to access removed storage
#13523 Logging for link-layer device updates
#13501 [JUJU-197] Raft lease retries with exceeded dropped
#13514 [JUJU-230] Add additional unit test for WatchAllModels api
#13512 [JUJU-208] Lease Diff
#13515 Remove unused ExportModel method
#13516 [JUJU-235] Remove bogus attachment dead warnings
#13518 [JUJU-237] Fix the failure to update homebrew on none juju/juju
#13498 [JUJU-113] Refactor upgrade controller command
#13502 [JUJU-199] Remove an an old legacy cmr fallback and add upgrade step
#13506 [JUJU-207] Apply synchronously, respond asynchronously
#13508 [JUJU-176] Fix mongo service enable by using start not restart.
#13510 [JUJU-221] Fix vol attachment life asserts for force remove
#13511 [JUJU-215] Ignore notfound error from fetching pod status for updating unit status;
#13500 [JUJU-192] Use yaml.safe_load instead of yaml.load
#13503 [JUJU-202] Lease manager test fix and trace logging
#13504 [JUJU-195] Format logs for mongo version more nicely
#13505 [JUJU-193] [2.9] Populate supported assumes features for k8s provider
#13480 Added Jammy series as supported.
#13488 [JUJU-117] Don't bake defaults when updating config.
#13492 [JUJU-180] Correct affected unit reporting in upgrade-series
#13495 [JUJU-186] Raft client logging levels
#13496 [JUJU-187] Improve the help text for --keep-broken flag
#13493 [JUJU-185] Use the correct ingress resource version for the k8s cluster
#13491 [JUJU-178] Preserve old semantics for run-action concerning wait argument
#13489 [JUJU-177] Check for available disk space before doing a juju backup

```
# Conflicts:
# apiserver/facades/agent/provisioner/provisioninginfo_test.go
# apiserver/facades/client/application/application.go
# apiserver/facades/client/application/application_unit_test.go
# apiserver/facades/client/backups/create.go
# apiserver/facades/client/client/client.go
# apiserver/facades/client/client/client_test.go
# apiserver/facades/client/client/statushistory_test.go
# cmd/juju/action/runaction.go
# cmd/juju/action/runaction_test.go
# cmd/juju/action/waitflag.go
# cmd/juju/commands/upgrademodel.go
# cmd/juju/commands/upgrademodel_test.go
# cmd/jujud/agent/agenttest/agent.go
# go.mod
# go.sum
# mongo/mongo.go
# provider/azure/environ.go
# provider/azure/export_test.go
# provider/azure/storage.go
# provider/azure/storage_test.go
# scripts/win-installer/setup.iss
# snap/snapcraft.yaml
# state/backups/backups.go
# state/backups/backups_test.go
# state/backups/db.go
# state/backups/db_dump_test.go
# state/backups/export_test.go
# state/backups/files_test.go
# version/version.go
```

## QA steps

See PRs

[JUJU-112]: https://warthogs.atlassian.net/browse/JUJU-112?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[JUJU-136]: https://warthogs.atlassian.net/browse/JUJU-136?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[JUJU-121]: https://warthogs.atlassian.net/browse/JUJU-121?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[JUJU-223]: https://warthogs.atlassian.net/browse/JUJU-223?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[JUJU-227]: https://warthogs.atlassian.net/browse/JUJU-227?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants