js7-client-python 2.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- js7/__init__.py +8 -0
- js7/api/joc/http/v_2_8_2/agent/cluster/confirm_node_loss.py +36 -0
- js7/api/joc/http/v_2_8_2/agent/cluster/switchover.py +36 -0
- js7/api/joc/http/v_2_8_2/agent/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/agents.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/cluster/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/cluster/deploy.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/cluster/revoke.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/cluster/store.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/export.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/import.py +74 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/cluster/deploy.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/cluster/revoke.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/cluster/store.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/cluster/subagents/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/cluster/subagents/disable.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/cluster/subagents/enable.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/cluster/subagents/reset.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/cluster/subagents/store.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/deploy.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/disable.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/enable.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/revoke.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/store.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/reset.py +36 -0
- js7/api/joc/http/v_2_8_2/authentication/auth.py +32 -0
- js7/api/joc/http/v_2_8_2/authentication/joc_cockpit_permissions.py +28 -0
- js7/api/joc/http/v_2_8_2/authentication/login.py +35 -0
- js7/api/joc/http/v_2_8_2/authentication/logout.py +28 -0
- js7/api/joc/http/v_2_8_2/configuration/configuration.py +36 -0
- js7/api/joc/http/v_2_8_2/configuration/save.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/abort.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/abort_and_restart.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/cluster/appoint_nodes.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/cluster/confirm_node_loss.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/cluster/switchover.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/components.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/controller.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/register.py +42 -0
- js7/api/joc/http/v_2_8_2/controller/restart.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/terminate.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/test.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/unregister.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/orders/cancel.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/orders/copy.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/orders/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/orders/generate.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/orders/modify.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/orders/orders.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/orders/submit.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/projections/calendar.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/projections/dates.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/projections/recreate.py +28 -0
- js7/api/joc/http/v_2_8_2/daily_plan/submissions/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/account/change_password.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/account/permissions.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/account/rename.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/account/store.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/accounts/accounts.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/accounts/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/accounts/disable.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/accounts/enable.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/accounts/reset_password.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/blocked_account/store.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/blocked_accounts/blocked_accounts.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/blocked_accounts/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/folder/folder.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/folder/rename.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/folders/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/folders/folders.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/folders/store.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/identity_service/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/identity_service/identity_service.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/identity_service/rename.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/identity_service/store.py +42 -0
- js7/api/joc/http/v_2_8_2/iam/identity_services/identity_services.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/permission/permission.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/permission/rename.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/permissions/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/permissions/permissions.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/permissions/store.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/role/rename.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/role/role.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/role/store.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/roles/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/roles/roles.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/changes/changes.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/dependencies.py +33 -0
- js7/api/joc/http/v_2_8_2/inventory/deployment/deploy.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/deployment/import_deploy.py +66 -0
- js7/api/joc/http/v_2_8_2/inventory/deployment/revoke.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/export/export.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/export/folder.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/import_objects.py +88 -0
- js7/api/joc/http/v_2_8_2/inventory/releasables/recall/folder.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/releasables/recall/recall.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/release.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/remove/folder.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/remove/remove.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/add.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/checkout.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/clone.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/commit.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/credentials/add.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/credentials/credentials.py +28 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/credentials/remove.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/pull.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/push.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/read.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/store.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/update.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/revalidate/folder.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/store.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/trash/delete/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/trash/delete/folder.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/trash/restore.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/validate.py +42 -0
- js7/api/joc/http/v_2_8_2/joc/cluster/restart.py +36 -0
- js7/api/joc/http/v_2_8_2/joc/cluster/run.py +36 -0
- js7/api/joc/http/v_2_8_2/joc/cluster/switch_member.py +36 -0
- js7/api/joc/http/v_2_8_2/joc/license.py +28 -0
- js7/api/joc/http/v_2_8_2/joc/proxies/restart.py +36 -0
- js7/api/joc/http/v_2_8_2/joc/version.py +28 -0
- js7/api/joc/http/v_2_8_2/joc/versions.py +36 -0
- js7/api/joc/http/v_2_8_2/orders/add.py +33 -0
- js7/api/joc/http/v_2_8_2/orders/cancel.py +33 -0
- js7/api/joc/http/v_2_8_2/orders/confirm.py +36 -0
- js7/api/joc/http/v_2_8_2/orders/continue.py +36 -0
- js7/api/joc/http/v_2_8_2/orders/history.py +36 -0
- js7/api/joc/http/v_2_8_2/orders/orders.py +36 -0
- js7/api/joc/http/v_2_8_2/orders/remove_when_terminated.py +33 -0
- js7/api/joc/http/v_2_8_2/orders/resume.py +36 -0
- js7/api/joc/http/v_2_8_2/orders/suspend.py +36 -0
- js7/api/joc/http/v_2_8_2/settings/settings.py +28 -0
- js7/api/joc/http/v_2_8_2/settings/store.py +36 -0
- js7/api/joc/http/v_2_8_2/tasks/history.py +36 -0
- js7/api/joc/http/v_2_8_2/workflow/transition.py +36 -0
- js7/api/joc/http/v_2_8_2/workflow/workflow.py +36 -0
- js7/api/joc/http/v_2_8_2/workflows/resume.py +36 -0
- js7/api/joc/http/v_2_8_2/workflows/skip.py +36 -0
- js7/api/joc/http/v_2_8_2/workflows/stop.py +36 -0
- js7/api/joc/http/v_2_8_2/workflows/suspend.py +36 -0
- js7/api/joc/http/v_2_8_2/workflows/unskip.py +36 -0
- js7/api/joc/http/v_2_8_2/workflows/unstop.py +36 -0
- js7/api/joc/http/v_2_8_2/workflows/workflows.py +36 -0
- js7/api/joc/interface/dispatcher.py +76 -0
- js7/api/joc/interface/interface.py +8 -0
- js7/api/joc/interface/resolver.py +75 -0
- js7/client/action/agent/confirm_node_loss_agent_action.py +75 -0
- js7/client/action/agent/delete_subagent_action.py +77 -0
- js7/client/action/agent/delete_subagent_clusters_action.py +75 -0
- js7/client/action/agent/deploy_cluster_agents_action.py +75 -0
- js7/client/action/agent/deploy_standalone_agents_action.py +75 -0
- js7/client/action/agent/deploy_subagent_clusters_action.py +75 -0
- js7/client/action/agent/disable_standalone_agents_action.py +75 -0
- js7/client/action/agent/disable_subagents_action.py +75 -0
- js7/client/action/agent/enable_standalone_agents_action.py +75 -0
- js7/client/action/agent/enable_subagents_action.py +75 -0
- js7/client/action/agent/export_agents_action.py +101 -0
- js7/client/action/agent/get_agents_status_action.py +55 -0
- js7/client/action/agent/import_agents_action.py +139 -0
- js7/client/action/agent/remove_agent_action.py +79 -0
- js7/client/action/agent/reset_agents_action.py +79 -0
- js7/client/action/agent/reset_subagent_action.py +79 -0
- js7/client/action/agent/revoke_cluster_agents_action.py +75 -0
- js7/client/action/agent/revoke_standalone_agents_action.py +75 -0
- js7/client/action/agent/revoke_subagent_clusters_action.py +75 -0
- js7/client/action/agent/store_cluster_agents_action.py +99 -0
- js7/client/action/agent/store_standalone_agents_action.py +87 -0
- js7/client/action/agent/store_subagent_clusters_action.py +83 -0
- js7/client/action/agent/store_subagents_action.py +97 -0
- js7/client/action/agent/switchover_agent_action.py +75 -0
- js7/client/action/controller/appoint_nodes_controller_action.py +67 -0
- js7/client/action/controller/cancel_and_restart_controller_action.py +72 -0
- js7/client/action/controller/cancel_controller_action.py +71 -0
- js7/client/action/controller/confirm_cluster_node_loss_action.py +68 -0
- js7/client/action/controller/get_controller_components_action.py +41 -0
- js7/client/action/controller/get_controller_status_action.py +72 -0
- js7/client/action/controller/register_controller_action.py +93 -0
- js7/client/action/controller/restart_controller_action.py +72 -0
- js7/client/action/controller/switchover_controller_cluster_action.py +67 -0
- js7/client/action/controller/terminate_controller_action.py +72 -0
- js7/client/action/controller/test_controller_instance_action.py +65 -0
- js7/client/action/controller/unregister_controller_action.py +68 -0
- js7/client/action/daily_plan/cancel_orders_action.py +59 -0
- js7/client/action/daily_plan/copy_orders_action.py +108 -0
- js7/client/action/daily_plan/create_projections_action.py +24 -0
- js7/client/action/daily_plan/delete_orders_action.py +80 -0
- js7/client/action/daily_plan/delete_submissions_action.py +83 -0
- js7/client/action/daily_plan/generate_orders_action.py +121 -0
- js7/client/action/daily_plan/get_calendar_projections_action.py +59 -0
- js7/client/action/daily_plan/get_orders_action.py +70 -0
- js7/client/action/daily_plan/get_projection_dates_action.py +59 -0
- js7/client/action/daily_plan/modify_orders_action.py +130 -0
- js7/client/action/daily_plan/submit_orders_action.py +79 -0
- js7/client/action/helper/decrypt_action.py +82 -0
- js7/client/action/helper/encrypt_action.py +87 -0
- js7/client/action/iam/block_account_action.py +71 -0
- js7/client/action/iam/change_account_password_action.py +96 -0
- js7/client/action/iam/disable_accounts_action.py +75 -0
- js7/client/action/iam/enable_accounts_action.py +75 -0
- js7/client/action/iam/get_account_permissions_action.py +75 -0
- js7/client/action/iam/get_accounts_action.py +76 -0
- js7/client/action/iam/get_blocked_accounts_action.py +76 -0
- js7/client/action/iam/get_folder_permissions_action.py +112 -0
- js7/client/action/iam/get_identity_service_settings_action.py +70 -0
- js7/client/action/iam/get_identity_services_action.py +102 -0
- js7/client/action/iam/get_permissions_action.py +113 -0
- js7/client/action/iam/get_roles_action.py +57 -0
- js7/client/action/iam/remove_accounts_action.py +75 -0
- js7/client/action/iam/remove_folder_permissions_action.py +91 -0
- js7/client/action/iam/remove_identity_service_action.py +67 -0
- js7/client/action/iam/remove_permissions_action.py +88 -0
- js7/client/action/iam/remove_roles_action.py +75 -0
- js7/client/action/iam/rename_account_action.py +83 -0
- js7/client/action/iam/rename_folder_permissions_action.py +100 -0
- js7/client/action/iam/rename_identity_service_action.py +75 -0
- js7/client/action/iam/rename_permission_action.py +103 -0
- js7/client/action/iam/rename_role_action.py +83 -0
- js7/client/action/iam/reset_account_passwords_action.py +75 -0
- js7/client/action/iam/set_folder_permissions_action.py +96 -0
- js7/client/action/iam/set_permissions_action.py +91 -0
- js7/client/action/iam/store_account_action.py +69 -0
- js7/client/action/iam/store_identity_service_action.py +75 -0
- js7/client/action/iam/store_identity_service_settings_action.py +74 -0
- js7/client/action/iam/store_role_action.py +79 -0
- js7/client/action/iam/unblock_accounts_action.py +67 -0
- js7/client/action/inventory/deploy_configurations_action.py +138 -0
- js7/client/action/inventory/export_configurations_action.py +203 -0
- js7/client/action/inventory/export_folders_action.py +160 -0
- js7/client/action/inventory/get_change_dependencies_action.py +161 -0
- js7/client/action/inventory/get_changes_action.py +59 -0
- js7/client/action/inventory/get_git_credentials_action.py +29 -0
- js7/client/action/inventory/git_add_action.py +72 -0
- js7/client/action/inventory/git_checkout_action.py +88 -0
- js7/client/action/inventory/git_clone_action.py +84 -0
- js7/client/action/inventory/git_commit_action.py +80 -0
- js7/client/action/inventory/git_pull_action.py +72 -0
- js7/client/action/inventory/git_push_action.py +76 -0
- js7/client/action/inventory/import_configurations_action.py +153 -0
- js7/client/action/inventory/import_deploy_configurations_action.py +188 -0
- js7/client/action/inventory/read_from_local_repository_action.py +67 -0
- js7/client/action/inventory/recall_folder_action.py +89 -0
- js7/client/action/inventory/recall_released_configuration_action.py +75 -0
- js7/client/action/inventory/release_configuartions_action.py +89 -0
- js7/client/action/inventory/remove_configurations_action.py +77 -0
- js7/client/action/inventory/remove_configurations_from_trash_action.py +80 -0
- js7/client/action/inventory/remove_folder_action.py +67 -0
- js7/client/action/inventory/remove_folder_from_trash_action.py +69 -0
- js7/client/action/inventory/remove_git_credentials_action.py +53 -0
- js7/client/action/inventory/remove_repository_configuration_action.py +84 -0
- js7/client/action/inventory/restore_configuration_from_trash_action.py +84 -0
- js7/client/action/inventory/revalidate_folder_action.py +46 -0
- js7/client/action/inventory/revoke_configurations_action.py +86 -0
- js7/client/action/inventory/store_configuration_action.py +79 -0
- js7/client/action/inventory/store_git_credentials_action.py +99 -0
- js7/client/action/inventory/store_repository_configuration_action.py +124 -0
- js7/client/action/inventory/update_repository_configuration_action.py +85 -0
- js7/client/action/inventory/validate_configuration_action.py +58 -0
- js7/client/action/joc/get_components_versions_action.py +57 -0
- js7/client/action/joc/get_license_info_action.py +22 -0
- js7/client/action/joc/get_settings_action.py +19 -0
- js7/client/action/joc/get_version_action.py +17 -0
- js7/client/action/joc/restart_proxies_action.py +50 -0
- js7/client/action/joc/restart_service_action.py +74 -0
- js7/client/action/joc/run_service_action.py +74 -0
- js7/client/action/joc/store_settings_action.py +62 -0
- js7/client/action/joc/switch_over_action.py +89 -0
- js7/client/action/order/add_orders_action.py +115 -0
- js7/client/action/order/cancel_orders_action.py +93 -0
- js7/client/action/order/confirm_orders_action.py +86 -0
- js7/client/action/order/continue_orders_action.py +86 -0
- js7/client/action/order/get_order_history_action.py +84 -0
- js7/client/action/order/get_orders_action.py +83 -0
- js7/client/action/order/remove_terminated_orders_action.py +86 -0
- js7/client/action/order/resume_orders_action.py +102 -0
- js7/client/action/order/suspend_orders_action.py +97 -0
- js7/client/action/task/get_task_history_info_action.py +88 -0
- js7/client/action/workflow/get_workflow_versions_action.py +131 -0
- js7/client/action/workflow/resume_workflows_action.py +76 -0
- js7/client/action/workflow/set_workflow_version_as_current_action.py +86 -0
- js7/client/action/workflow/skip_job_instructions_action.py +83 -0
- js7/client/action/workflow/stop_job_instructions_action.py +83 -0
- js7/client/action/workflow/suspend_workflows_action.py +76 -0
- js7/client/action/workflow/unskip_job_instructions_action.py +83 -0
- js7/client/action/workflow/unstop_job_instructions_action.py +79 -0
- js7/client/auth/auth_provider.py +109 -0
- js7/client/auth/login.py +34 -0
- js7/client/auth/logout.py +22 -0
- js7/client/client.py +250 -0
- js7/client/context.py +40 -0
- js7/client/feature/agent/agent.py +26 -0
- js7/client/feature/agent/deploy.py +134 -0
- js7/client/feature/agent/manage.py +363 -0
- js7/client/feature/agent/operate.py +577 -0
- js7/client/feature/controller/controller.py +19 -0
- js7/client/feature/controller/manage.py +214 -0
- js7/client/feature/controller/operate.py +274 -0
- js7/client/feature/daily_plan/daily_plan.py +14 -0
- js7/client/feature/daily_plan/manage.py +179 -0
- js7/client/feature/daily_plan/operate.py +354 -0
- js7/client/feature/iam/iam.py +14 -0
- js7/client/feature/iam/manage.py +1311 -0
- js7/client/feature/inventory/inventory.py +13 -0
- js7/client/feature/inventory/manage.py +943 -0
- js7/client/feature/inventory/manage_repository.py +533 -0
- js7/client/feature/joc/joc.py +18 -0
- js7/client/feature/joc/manage.py +102 -0
- js7/client/feature/joc/operate.py +185 -0
- js7/client/feature/order/manage.py +79 -0
- js7/client/feature/order/operate.py +346 -0
- js7/client/feature/order/order.py +18 -0
- js7/client/feature/task/task.py +54 -0
- js7/client/feature/workflow/manage.py +54 -0
- js7/client/feature/workflow/operate.py +336 -0
- js7/client/feature/workflow/workflow.py +19 -0
- js7/java/lib/3rd-party/bcpg-jdk15to18-1.78.1.jar +0 -0
- js7/java/lib/3rd-party/bcpkix-jdk15to18-1.78.1.jar +0 -0
- js7/java/lib/3rd-party/bcprov-jdk15to18-1.78.1.jar +0 -0
- js7/java/lib/3rd-party/bcutil-jdk15to18-1.78.1.jar +0 -0
- js7/java/lib/3rd-party/commons-io-2.15.1.jar +0 -0
- js7/java/lib/3rd-party/commons-lang3-3.14.0.jar +0 -0
- js7/java/lib/3rd-party/jackson-core-2.14.2.jar +0 -0
- js7/java/lib/3rd-party/jackson-databind-2.14.2.jar +0 -0
- js7/java/lib/3rd-party/jackson-dataformat-xml-2.14.2.jar +0 -0
- js7/java/lib/3rd-party/jakarta.annotation-api-2.1.1.jar +0 -0
- js7/java/lib/3rd-party/javax.activation-api-1.2.0.jar +0 -0
- js7/java/lib/3rd-party/jaxb-api-2.4.0-b180830.0359.jar +0 -0
- js7/java/lib/3rd-party/org.apache.logging.log4j.log4j-api-2.23.1.jar +0 -0
- js7/java/lib/3rd-party/org.apache.logging.log4j.log4j-core-2.23.1.jar +0 -0
- js7/java/lib/3rd-party/org.apache.logging.log4j.log4j-slf4j2-impl-2.23.1.jar +0 -0
- js7/java/lib/3rd-party/org.slf4j.slf4j-api-2.0.13.jar +0 -0
- js7/java/lib/3rd-party/stax2-api-4.2.1.jar +0 -0
- js7/java/lib/3rd-party/woodstox-core-6.5.0.jar +0 -0
- js7/java/lib/sos/sos-commons-encryption-2.7.3.jar +0 -0
- js7/java/lib/sos/sos-commons-exception-2.7.3.jar +0 -0
- js7/java/lib/sos/sos-commons-sign-2.7.3.jar +0 -0
- js7/java/lib/sos/sos-webservices-json-2.7.3.jar +0 -0
- js7/model/__init__.py +132 -0
- js7/model/configuration/auth_configuration.py +24 -0
- js7/model/configuration/client_configuration.py +6 -0
- js7/model/configuration/http_configuration.py +10 -0
- js7/model/error/http/joc_exceptions.py +151 -0
- js7/model/private/api/endpoint.py +30 -0
- js7/model/private/http/joc/joc_v_2_8_2.py +3666 -0
- js7/model/public/client/common/__init__.py +27 -0
- js7/model/public/client/common/accounts.py +21 -0
- js7/model/public/client/common/audit_log.py +8 -0
- js7/model/public/client/common/changes.py +18 -0
- js7/model/public/client/common/configurations.py +53 -0
- js7/model/public/client/common/cycle.py +12 -0
- js7/model/public/client/common/git_credentials.py +12 -0
- js7/model/public/client/common/identity_service.py +14 -0
- js7/model/public/client/common/schedule_time.py +50 -0
- js7/model/public/client/common/store_agents.py +96 -0
- js7/model/public/client/enum/__init__.py +19 -0
- js7/model/public/client/enum/object_types.py +48 -0
- js7/model/public/client/enum/operation_type.py +11 -0
- js7/model/public/client/enum/order_priority.py +9 -0
- js7/model/public/client/filter/__init__.py +35 -0
- js7/model/public/client/filter/daily_plan_order_filters.py +255 -0
- js7/model/public/client/filter/element/__init__.py +3 -0
- js7/model/public/client/filter/element/folder.py +6 -0
- js7/model/public/client/filter/element/workflow_id.py +10 -0
- js7/model/public/client/filter/export_filter.py +52 -0
- js7/model/public/client/filter/export_folders_filter.py +34 -0
- js7/model/public/client/filter/get_order_filter.py +59 -0
- js7/model/public/client/filter/order_history_filter.py +113 -0
- js7/model/public/client/filter/resume_order_filter.py +45 -0
- js7/model/public/client/filter/suspend_order_filter.py +44 -0
- js7/model/public/client/filter/tasks_filter.py +50 -0
- js7/model/public/client/input/__init__.py +2 -0
- js7/model/public/client/input/add_order.py +50 -0
- js7/service/http_service.py +206 -0
- js7/util/bytes_converter/bytes_to_archive_bytes.py +52 -0
- js7/util/bytes_converter/bytes_to_file.py +12 -0
- js7/util/bytes_converter/files_to_bytes.py +52 -0
- js7/util/bytes_converter/read_bytes_archive_files_to_bytes.py +69 -0
- js7/util/bytes_converter/sign_to_bytes.py +106 -0
- js7/util/check_matching_version.py +20 -0
- js7/util/detect_archive_type.py +37 -0
- js7/util/str_converter/order_id_to_order_name.py +5 -0
- js7/validator/http/joc_http_status_validator.py +155 -0
- js7_client_python-2.0.1.0.dist-info/LICENSE +674 -0
- js7_client_python-2.0.1.0.dist-info/METADATA +763 -0
- js7_client_python-2.0.1.0.dist-info/RECORD +389 -0
- js7_client_python-2.0.1.0.dist-info/WHEEL +5 -0
- js7_client_python-2.0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.public.client.common.schedule_time import ScheduleTime
|
|
5
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
6
|
+
from ....model.public.client.filter.get_order_filter import GetOrderFilter
|
|
7
|
+
from ....model.public.client.input.add_order import Order, PlanID
|
|
8
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
9
|
+
OrdersFilterV as OrdersFilterV_V_2_8_2,
|
|
10
|
+
OrderStateText as OrderStateText_V_2_8_2,
|
|
11
|
+
OrdersV as OrdersV_V_2_8_2
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
from ....util.check_matching_version import check_matching_version
|
|
15
|
+
from ....util.str_converter.order_id_to_order_name import order_id_to_order_name
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def get_orders_action(*, context: Context, controller_id: str, filter: GetOrderFilter) -> List[Order]:
|
|
19
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
20
|
+
request_data = _build_v_2_8_2_request(controller_id=controller_id, filter=filter)
|
|
21
|
+
else:
|
|
22
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
23
|
+
|
|
24
|
+
# Calls the dispatcher for the matching JOC version
|
|
25
|
+
result = context.joc_api.dispatch(endpoint_id="orders", call=EndpointCall(
|
|
26
|
+
http_service=context.http_service,
|
|
27
|
+
access_token=context.auth_provider.login(),
|
|
28
|
+
payload=request_data,
|
|
29
|
+
options=None,
|
|
30
|
+
))
|
|
31
|
+
|
|
32
|
+
if isinstance(result, OrdersV_V_2_8_2):
|
|
33
|
+
return [
|
|
34
|
+
Order(
|
|
35
|
+
arguments=o.arguments,
|
|
36
|
+
block_position=o.position,
|
|
37
|
+
end_positions=o.end_positions,
|
|
38
|
+
force_job_admission=False,
|
|
39
|
+
open_closed_plan=False,
|
|
40
|
+
order_name = order_id_to_order_name(o.order_id),
|
|
41
|
+
plan_id=PlanID(
|
|
42
|
+
notice_space_key=o.plan_id.notice_space_key,
|
|
43
|
+
plan_schema_id=o.plan_id.plan_schema_id
|
|
44
|
+
) if o.plan_id else None,
|
|
45
|
+
priority=o.priority,
|
|
46
|
+
scheduled_for=ScheduleTime.normalize(o.scheduled_for),
|
|
47
|
+
start_position=None,
|
|
48
|
+
tags=o.tags,
|
|
49
|
+
workflow_path=o.workflow_id.path or "" if o.workflow_id else ""
|
|
50
|
+
)
|
|
51
|
+
for o in result.orders
|
|
52
|
+
] if result.orders else []
|
|
53
|
+
|
|
54
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
55
|
+
|
|
56
|
+
#---------------------#
|
|
57
|
+
# Build 2.8.2 request #
|
|
58
|
+
#---------------------#
|
|
59
|
+
def _build_v_2_8_2_request(*, controller_id: str, filter: GetOrderFilter) -> OrdersFilterV_V_2_8_2:
|
|
60
|
+
# Validates controller_id
|
|
61
|
+
if not controller_id:
|
|
62
|
+
raise ValueError("'controller_id' is required.")
|
|
63
|
+
|
|
64
|
+
# Build: States
|
|
65
|
+
res_states = [
|
|
66
|
+
OrderStateText_V_2_8_2(state) # Raises ValueError() if invalid.
|
|
67
|
+
for state in filter.states
|
|
68
|
+
] if filter.states else None
|
|
69
|
+
|
|
70
|
+
# Result
|
|
71
|
+
return OrdersFilterV_V_2_8_2(
|
|
72
|
+
controller_id=controller_id,
|
|
73
|
+
compact=filter.compact,
|
|
74
|
+
limit=filter.limit,
|
|
75
|
+
order_ids=filter.order_ids,
|
|
76
|
+
order_tags=filter.order_tags,
|
|
77
|
+
regex=filter.regex,
|
|
78
|
+
state_date_from=filter.state_date_from,
|
|
79
|
+
state_date_to=filter.state_date_to,
|
|
80
|
+
states=res_states,
|
|
81
|
+
without_workflow_tags=filter.without_workflow_tags,
|
|
82
|
+
workflow_tags=filter.workflow_tags
|
|
83
|
+
)
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
from typing import List, Optional
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.public.client.common.audit_log import AuditLog
|
|
5
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
6
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
7
|
+
ModifyOrdersBase as ModifyOrdersBase_V_2_8_2,
|
|
8
|
+
OK as OK_V_2_8_2,
|
|
9
|
+
WorkflowID as WorkflowID_V_2_8_2,
|
|
10
|
+
AuditParams as AuditParams_V_2_8_2
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
from ....util.check_matching_version import check_matching_version
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def remove_terminated_orders_action(
|
|
17
|
+
*,
|
|
18
|
+
context: Context,
|
|
19
|
+
controller_id: str,
|
|
20
|
+
order_ids: Optional[List[str]],
|
|
21
|
+
workflow_paths: Optional[List[str]],
|
|
22
|
+
audit_log: Optional[AuditLog]
|
|
23
|
+
) -> bool:
|
|
24
|
+
|
|
25
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
26
|
+
request_data = _build_v_2_8_2_request(
|
|
27
|
+
controller_id=controller_id,
|
|
28
|
+
order_ids=order_ids,
|
|
29
|
+
workflow_paths=workflow_paths,
|
|
30
|
+
audit_log=audit_log
|
|
31
|
+
)
|
|
32
|
+
else:
|
|
33
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
34
|
+
|
|
35
|
+
# Calls the dispatcher for the matching JOC version
|
|
36
|
+
result = context.joc_api.dispatch(endpoint_id="orders/remove_when_terminated", call=EndpointCall(
|
|
37
|
+
http_service=context.http_service,
|
|
38
|
+
access_token=context.auth_provider.login(),
|
|
39
|
+
payload=request_data,
|
|
40
|
+
options=None,
|
|
41
|
+
))
|
|
42
|
+
|
|
43
|
+
if isinstance(result, OK_V_2_8_2):
|
|
44
|
+
return bool(result.ok)
|
|
45
|
+
|
|
46
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
47
|
+
|
|
48
|
+
#---------------------#
|
|
49
|
+
# Build 2.8.2 request #
|
|
50
|
+
#---------------------#
|
|
51
|
+
def _build_v_2_8_2_request(
|
|
52
|
+
*,
|
|
53
|
+
controller_id: str,
|
|
54
|
+
order_ids: Optional[List[str]],
|
|
55
|
+
workflow_paths: Optional[List[str]],
|
|
56
|
+
audit_log: Optional[AuditLog]
|
|
57
|
+
) -> ModifyOrdersBase_V_2_8_2:
|
|
58
|
+
|
|
59
|
+
# Validate: controller_id
|
|
60
|
+
if not controller_id:
|
|
61
|
+
raise ValueError("'controller_id' is required.")
|
|
62
|
+
|
|
63
|
+
# Validate: Any of order_ids or workflow_paths
|
|
64
|
+
if not (order_ids or workflow_paths):
|
|
65
|
+
raise ValueError("At least one of 'order_ids' or 'workflow_paths' must be provided.")
|
|
66
|
+
|
|
67
|
+
# Build: audit_log
|
|
68
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
69
|
+
ticket_link=audit_log.ticket_link,
|
|
70
|
+
comment=audit_log.comment,
|
|
71
|
+
time_spent=audit_log.time_spent
|
|
72
|
+
) if audit_log else None
|
|
73
|
+
|
|
74
|
+
# Build: res_workflow_ids
|
|
75
|
+
res_workflow_ids = [
|
|
76
|
+
WorkflowID_V_2_8_2(path=path)
|
|
77
|
+
for path in workflow_paths
|
|
78
|
+
] if workflow_paths else None
|
|
79
|
+
|
|
80
|
+
# Result
|
|
81
|
+
return ModifyOrdersBase_V_2_8_2(
|
|
82
|
+
controller_id=controller_id,
|
|
83
|
+
order_ids=order_ids,
|
|
84
|
+
workflow_ids=res_workflow_ids,
|
|
85
|
+
audit_log=res_audit_log
|
|
86
|
+
)
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.public.client.common.audit_log import AuditLog
|
|
5
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
6
|
+
from ....model.public.client.filter.resume_order_filter import ResumeOrderFilter
|
|
7
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
8
|
+
OK as OK_V_2_8_2,
|
|
9
|
+
WorkflowID as WorkflowID_V_2_8_2,
|
|
10
|
+
AuditParams as AuditParams_V_2_8_2,
|
|
11
|
+
ResumeOrders as ResumeOrders_V_2_8_2,
|
|
12
|
+
Folder as Folder_V_2_8_2,
|
|
13
|
+
OrderStateText as OrderStateText_V_2_8_2
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
from ....util.check_matching_version import check_matching_version
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def resume_orders_action(
|
|
20
|
+
*,
|
|
21
|
+
context: Context,
|
|
22
|
+
controller_id: str,
|
|
23
|
+
filter: ResumeOrderFilter,
|
|
24
|
+
audit_log: Optional[AuditLog]
|
|
25
|
+
) -> bool:
|
|
26
|
+
|
|
27
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
28
|
+
request_data = _build_v_2_8_2_request(
|
|
29
|
+
controller_id=controller_id,
|
|
30
|
+
filter=filter,
|
|
31
|
+
audit_log=audit_log
|
|
32
|
+
)
|
|
33
|
+
else:
|
|
34
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
35
|
+
|
|
36
|
+
# Calls the dispatcher for the matching JOC version
|
|
37
|
+
result = context.joc_api.dispatch(endpoint_id="orders/resume", call=EndpointCall(
|
|
38
|
+
http_service=context.http_service,
|
|
39
|
+
access_token=context.auth_provider.login(),
|
|
40
|
+
payload=request_data,
|
|
41
|
+
options=None,
|
|
42
|
+
))
|
|
43
|
+
|
|
44
|
+
if isinstance(result, OK_V_2_8_2):
|
|
45
|
+
return bool(result.ok)
|
|
46
|
+
|
|
47
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
48
|
+
|
|
49
|
+
#---------------------#
|
|
50
|
+
# Build 2.8.2 request #
|
|
51
|
+
#---------------------#
|
|
52
|
+
def _build_v_2_8_2_request(
|
|
53
|
+
*,
|
|
54
|
+
controller_id: str,
|
|
55
|
+
filter: ResumeOrderFilter,
|
|
56
|
+
audit_log: Optional[AuditLog]
|
|
57
|
+
) -> ResumeOrders_V_2_8_2:
|
|
58
|
+
|
|
59
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
60
|
+
ticket_link=audit_log.ticket_link,
|
|
61
|
+
comment=audit_log.comment,
|
|
62
|
+
time_spent=audit_log.time_spent
|
|
63
|
+
) if audit_log else None
|
|
64
|
+
|
|
65
|
+
# Build: res_workflow_ids
|
|
66
|
+
res_workflow_ids = [
|
|
67
|
+
WorkflowID_V_2_8_2(
|
|
68
|
+
path=id.workflow_path,
|
|
69
|
+
version_id=id.version_id
|
|
70
|
+
)
|
|
71
|
+
for id in filter.workflow_ids
|
|
72
|
+
] if filter.workflow_ids else None
|
|
73
|
+
|
|
74
|
+
# Build: folders
|
|
75
|
+
res_folders = [
|
|
76
|
+
Folder_V_2_8_2(
|
|
77
|
+
folder=folder.folder_path,
|
|
78
|
+
recursive=folder.recursive
|
|
79
|
+
)
|
|
80
|
+
for folder in filter.folders
|
|
81
|
+
] if filter.folders else None
|
|
82
|
+
|
|
83
|
+
# Build: States
|
|
84
|
+
res_states = [
|
|
85
|
+
OrderStateText_V_2_8_2(state) # Raises ValueError() if invalid.
|
|
86
|
+
for state in filter.states
|
|
87
|
+
] if filter.states else None
|
|
88
|
+
|
|
89
|
+
# Result
|
|
90
|
+
return ResumeOrders_V_2_8_2(
|
|
91
|
+
controller_id=controller_id,
|
|
92
|
+
order_ids=filter.order_ids,
|
|
93
|
+
workflow_ids=res_workflow_ids,
|
|
94
|
+
folders=res_folders,
|
|
95
|
+
states=res_states,
|
|
96
|
+
force=filter.force,
|
|
97
|
+
from_current_block=filter.from_current_block,
|
|
98
|
+
position=filter.position,
|
|
99
|
+
variables=filter.variables,
|
|
100
|
+
cycle_end_time=filter.cycle_end_time,
|
|
101
|
+
audit_log=res_audit_log
|
|
102
|
+
)
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.public.client.common.audit_log import AuditLog
|
|
5
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
6
|
+
from ....model.public.client.filter.suspend_order_filter import SuspendOrderFilter
|
|
7
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
8
|
+
OK as OK_V_2_8_2,
|
|
9
|
+
WorkflowID as WorkflowID_V_2_8_2,
|
|
10
|
+
AuditParams as AuditParams_V_2_8_2,
|
|
11
|
+
SuspendOrders as SuspendOrders_V_2_8_2,
|
|
12
|
+
Folder as Folder_V_2_8_2,
|
|
13
|
+
OrderStateText as OrderStateText_V_2_8_2
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
from ....util.check_matching_version import check_matching_version
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def suspend_orders_action(*, context: Context, controller_id: str, filter: SuspendOrderFilter, audit_log: Optional[AuditLog]) -> bool:
|
|
20
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
21
|
+
request_data = _build_v_2_8_2_request(
|
|
22
|
+
controller_id=controller_id,
|
|
23
|
+
filter=filter,
|
|
24
|
+
audit_log=audit_log
|
|
25
|
+
)
|
|
26
|
+
else:
|
|
27
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
28
|
+
|
|
29
|
+
# Calls the dispatcher for the matching JOC version
|
|
30
|
+
result = context.joc_api.dispatch(endpoint_id="orders/suspend", call=EndpointCall(
|
|
31
|
+
http_service=context.http_service,
|
|
32
|
+
access_token=context.auth_provider.login(),
|
|
33
|
+
payload=request_data,
|
|
34
|
+
options=None,
|
|
35
|
+
))
|
|
36
|
+
|
|
37
|
+
if isinstance(result, OK_V_2_8_2):
|
|
38
|
+
return bool(result.ok)
|
|
39
|
+
|
|
40
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
41
|
+
|
|
42
|
+
#---------------------#
|
|
43
|
+
# Build 2.8.2 request #
|
|
44
|
+
#---------------------#
|
|
45
|
+
def _build_v_2_8_2_request(
|
|
46
|
+
*,
|
|
47
|
+
controller_id: str,
|
|
48
|
+
filter: SuspendOrderFilter,
|
|
49
|
+
audit_log: Optional[AuditLog]
|
|
50
|
+
) -> SuspendOrders_V_2_8_2:
|
|
51
|
+
|
|
52
|
+
# Build: res_audit_log
|
|
53
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
54
|
+
ticket_link=audit_log.ticket_link,
|
|
55
|
+
comment=audit_log.comment,
|
|
56
|
+
time_spent=audit_log.time_spent
|
|
57
|
+
) if audit_log else None
|
|
58
|
+
|
|
59
|
+
# Build: res_workflow_ids
|
|
60
|
+
res_workflow_ids = [
|
|
61
|
+
WorkflowID_V_2_8_2(
|
|
62
|
+
path=id.workflow_path,
|
|
63
|
+
version_id=id.version_id
|
|
64
|
+
)
|
|
65
|
+
for id in filter.workflow_ids
|
|
66
|
+
] if filter.workflow_ids else None
|
|
67
|
+
|
|
68
|
+
# Build: folders
|
|
69
|
+
res_folders = [
|
|
70
|
+
Folder_V_2_8_2(
|
|
71
|
+
folder=folder.folder_path,
|
|
72
|
+
recursive=folder.recursive
|
|
73
|
+
)
|
|
74
|
+
for folder in filter.folders
|
|
75
|
+
] if filter.folders else None
|
|
76
|
+
|
|
77
|
+
# Build: States
|
|
78
|
+
res_states = [
|
|
79
|
+
OrderStateText_V_2_8_2(state) # Raises ValueError() if invalid.
|
|
80
|
+
for state in filter.states
|
|
81
|
+
] if filter.states else None
|
|
82
|
+
|
|
83
|
+
# Result
|
|
84
|
+
return SuspendOrders_V_2_8_2(
|
|
85
|
+
controller_id=controller_id,
|
|
86
|
+
order_ids=filter.order_ids,
|
|
87
|
+
workflow_ids=res_workflow_ids,
|
|
88
|
+
folders=res_folders,
|
|
89
|
+
states=res_states,
|
|
90
|
+
date_from=filter.date_from,
|
|
91
|
+
date_to=filter.date_to,
|
|
92
|
+
time_zone=filter.timezone,
|
|
93
|
+
reset=filter.reset,
|
|
94
|
+
kill=filter.kill,
|
|
95
|
+
deep=filter.deep,
|
|
96
|
+
audit_log=res_audit_log
|
|
97
|
+
)
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.public.client.filter.tasks_filter import TasksFilter
|
|
5
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
6
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
7
|
+
JobsFilter as JobsFilter_V_2_8_2,
|
|
8
|
+
TaskHistory as TaskHistory_V_2_8_2,
|
|
9
|
+
Folder as Folder_V_2_8_2,
|
|
10
|
+
HistoryState as HistoryState_V_2_8_2,
|
|
11
|
+
HistoryStateText as HistoryStateText_V_2_8_2,
|
|
12
|
+
JobCriticality as JobCriticality_V_2_8_2
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
from ....util.check_matching_version import check_matching_version
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def get_task_history_info_action(*, context: Context, controller_id: str, filter: TasksFilter) -> Dict[str, Any]:
|
|
19
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
20
|
+
request_data = _build_v_2_8_2_request(
|
|
21
|
+
controller_id=controller_id,
|
|
22
|
+
timezone=context.client_config.timezone,
|
|
23
|
+
filter=filter
|
|
24
|
+
)
|
|
25
|
+
else:
|
|
26
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
27
|
+
|
|
28
|
+
# Calls the dispatcher for the matching JOC version
|
|
29
|
+
result = context.joc_api.dispatch(endpoint_id="tasks/history", call=EndpointCall(
|
|
30
|
+
http_service=context.http_service,
|
|
31
|
+
access_token=context.auth_provider.login(),
|
|
32
|
+
payload=request_data,
|
|
33
|
+
options=None,
|
|
34
|
+
))
|
|
35
|
+
|
|
36
|
+
if isinstance(result, TaskHistory_V_2_8_2):
|
|
37
|
+
return result.model_dump(mode="json").get("history") or {}
|
|
38
|
+
|
|
39
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
40
|
+
|
|
41
|
+
#---------------------#
|
|
42
|
+
# Build 2.8.2 request #
|
|
43
|
+
#---------------------#
|
|
44
|
+
def _build_v_2_8_2_request(
|
|
45
|
+
*,
|
|
46
|
+
controller_id: str,
|
|
47
|
+
timezone: str,
|
|
48
|
+
filter: TasksFilter
|
|
49
|
+
) -> JobsFilter_V_2_8_2:
|
|
50
|
+
|
|
51
|
+
# Validate: controller_id: str
|
|
52
|
+
if not controller_id:
|
|
53
|
+
raise ValueError("'controller_id' is required.")
|
|
54
|
+
|
|
55
|
+
return JobsFilter_V_2_8_2(
|
|
56
|
+
controller_id=controller_id,
|
|
57
|
+
time_zone=timezone,
|
|
58
|
+
|
|
59
|
+
date_from=filter.date_from.isoformat() if filter.date_from else None,
|
|
60
|
+
date_to=filter.date_to.isoformat() if filter.date_to else None,
|
|
61
|
+
completed_date_from=filter.completed_date_from.isoformat() if filter.completed_date_from else None,
|
|
62
|
+
completed_date_to=filter.completed_date_to.isoformat() if filter.completed_date_to else None,
|
|
63
|
+
|
|
64
|
+
job_name=filter.job_name,
|
|
65
|
+
workflow_name=filter.workflow_name,
|
|
66
|
+
workflow_path=filter.workflow_paths,
|
|
67
|
+
|
|
68
|
+
folders=[
|
|
69
|
+
Folder_V_2_8_2(folder=f.folder_path, recursive=f.recursive)
|
|
70
|
+
for f in filter.folders
|
|
71
|
+
] if filter.folders else None,
|
|
72
|
+
|
|
73
|
+
history_states=[
|
|
74
|
+
HistoryState_V_2_8_2(text=HistoryStateText_V_2_8_2(h)) # Raises ValueError() if invalid.
|
|
75
|
+
for h in filter.history_states
|
|
76
|
+
] if filter.history_states else None,
|
|
77
|
+
|
|
78
|
+
criticalities=[
|
|
79
|
+
JobCriticality_V_2_8_2(c) # Raises ValueError() if invalid.
|
|
80
|
+
for c in filter.criticalities
|
|
81
|
+
] if filter.criticalities else None,
|
|
82
|
+
|
|
83
|
+
exclude_jobs=None,
|
|
84
|
+
history_ids=None,
|
|
85
|
+
jobs=None,
|
|
86
|
+
task_ids=None,
|
|
87
|
+
limit=None,
|
|
88
|
+
)
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
from typing import Dict
|
|
2
|
+
from pathlib import PurePosixPath
|
|
3
|
+
|
|
4
|
+
from ...context import Context
|
|
5
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
6
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
7
|
+
WorkflowID as WorkflowID_V_2_8_2,
|
|
8
|
+
WorkflowFilter as WorkflowFilter_V_2_8_2,
|
|
9
|
+
Workflow as Workflow_V_2_8_2,
|
|
10
|
+
WorkflowsFilter as WorkflowsFilter_V_2_8_2,
|
|
11
|
+
Workflows as Workflows_V_2_8_2,
|
|
12
|
+
Folder as Folder_V_2_8_2
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
from ....util.check_matching_version import check_matching_version
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# Returns: { Version ID: Path }
|
|
19
|
+
def get_workflow_versions_action(
|
|
20
|
+
*,
|
|
21
|
+
context: Context,
|
|
22
|
+
controller_id: str,
|
|
23
|
+
workflow_path: str,
|
|
24
|
+
exclude_current_version: bool,
|
|
25
|
+
) -> Dict[str, str]:
|
|
26
|
+
|
|
27
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
28
|
+
result = _build_v_2_8_2_request(
|
|
29
|
+
ctx=context,
|
|
30
|
+
controller_id=controller_id,
|
|
31
|
+
workflow_path=workflow_path
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
return _build_v_2_8_2_response(
|
|
35
|
+
response=result,
|
|
36
|
+
exclude_current_version=exclude_current_version,
|
|
37
|
+
filter_workflow_path=workflow_path
|
|
38
|
+
)
|
|
39
|
+
else:
|
|
40
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
41
|
+
|
|
42
|
+
#---------------------#
|
|
43
|
+
# Build 2.8.2 request #
|
|
44
|
+
#---------------------#
|
|
45
|
+
def _build_v_2_8_2_request(
|
|
46
|
+
*,
|
|
47
|
+
ctx: Context,
|
|
48
|
+
controller_id: str,
|
|
49
|
+
workflow_path: str,
|
|
50
|
+
) -> Workflows_V_2_8_2:
|
|
51
|
+
|
|
52
|
+
# Validate: controller_id
|
|
53
|
+
if not controller_id:
|
|
54
|
+
raise ValueError("'controller_id' is required.")
|
|
55
|
+
|
|
56
|
+
# Validate: workflow_path
|
|
57
|
+
if not workflow_path:
|
|
58
|
+
raise ValueError("'workflow_path' is required.")
|
|
59
|
+
|
|
60
|
+
# Request: /workflow
|
|
61
|
+
res_workflow = ctx.joc_api.dispatch(endpoint_id="workflow", call=EndpointCall(
|
|
62
|
+
http_service=ctx.http_service,
|
|
63
|
+
access_token=ctx.auth_provider.login(),
|
|
64
|
+
payload=WorkflowFilter_V_2_8_2(
|
|
65
|
+
controller_id=controller_id,
|
|
66
|
+
workflow_id=WorkflowID_V_2_8_2(
|
|
67
|
+
path=workflow_path,
|
|
68
|
+
version_id=None
|
|
69
|
+
),
|
|
70
|
+
compact=False
|
|
71
|
+
),
|
|
72
|
+
options=None,
|
|
73
|
+
))
|
|
74
|
+
|
|
75
|
+
if not isinstance(res_workflow, Workflow_V_2_8_2):
|
|
76
|
+
raise RuntimeError(f"Unexpected response type: {type(res_workflow).__name__}")
|
|
77
|
+
|
|
78
|
+
# Request: /workflows
|
|
79
|
+
if not (res_workflow.workflow and res_workflow.workflow.path):
|
|
80
|
+
raise ValueError("'workflow.path' missing in response.")
|
|
81
|
+
|
|
82
|
+
res_workflows = ctx.joc_api.dispatch(endpoint_id="workflows", call=EndpointCall(
|
|
83
|
+
http_service=ctx.http_service,
|
|
84
|
+
access_token=ctx.auth_provider.login(),
|
|
85
|
+
payload=WorkflowsFilter_V_2_8_2(
|
|
86
|
+
controller_id=controller_id,
|
|
87
|
+
folders=[Folder_V_2_8_2(
|
|
88
|
+
folder=str(PurePosixPath(res_workflow.workflow.path).parent),
|
|
89
|
+
recursive=False
|
|
90
|
+
)],
|
|
91
|
+
compact=False,
|
|
92
|
+
|
|
93
|
+
),
|
|
94
|
+
options=None,
|
|
95
|
+
))
|
|
96
|
+
|
|
97
|
+
if not isinstance(res_workflows, Workflows_V_2_8_2):
|
|
98
|
+
raise RuntimeError(f"Unexpected response type: {type(res_workflow).__name__}")
|
|
99
|
+
|
|
100
|
+
return res_workflows
|
|
101
|
+
|
|
102
|
+
#----------------------#
|
|
103
|
+
# Build 2.8.2 response #
|
|
104
|
+
#----------------------#
|
|
105
|
+
def _build_v_2_8_2_response(
|
|
106
|
+
*,
|
|
107
|
+
response: Workflows_V_2_8_2,
|
|
108
|
+
exclude_current_version: bool,
|
|
109
|
+
filter_workflow_path: str
|
|
110
|
+
) -> Dict[str, str]:
|
|
111
|
+
res: Dict[str, str] = {}
|
|
112
|
+
|
|
113
|
+
# Returns empty dictionary if no workflows found
|
|
114
|
+
if not response.workflows:
|
|
115
|
+
return res
|
|
116
|
+
|
|
117
|
+
for w in response.workflows:
|
|
118
|
+
# Remove: Not matching workflows paths
|
|
119
|
+
if w.path != filter_workflow_path:
|
|
120
|
+
continue
|
|
121
|
+
|
|
122
|
+
# Filter: exclude_current_version
|
|
123
|
+
if exclude_current_version and w.is_current_version:
|
|
124
|
+
continue
|
|
125
|
+
|
|
126
|
+
if not (w.version_id and w.path):
|
|
127
|
+
continue
|
|
128
|
+
|
|
129
|
+
res[w.version_id] = w.path
|
|
130
|
+
|
|
131
|
+
return res
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
from typing import List, Optional
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.public.client.common.audit_log import AuditLog
|
|
5
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
6
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
7
|
+
OK as OK_V_2_8_2,
|
|
8
|
+
AuditParams as AuditParams_V_2_8_2,
|
|
9
|
+
ModifyWorkflows as ModifyWorkflows_V_2_8_2
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
from ....util.check_matching_version import check_matching_version
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def resume_workflows_action(
|
|
16
|
+
*,
|
|
17
|
+
context: Context,
|
|
18
|
+
controller_id: str,
|
|
19
|
+
workflow_paths: List[str],
|
|
20
|
+
audit_log: Optional[AuditLog]
|
|
21
|
+
) -> bool:
|
|
22
|
+
|
|
23
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
24
|
+
request_data = _build_v_2_8_2_request(
|
|
25
|
+
controller_id=controller_id,
|
|
26
|
+
workflow_paths=workflow_paths,
|
|
27
|
+
audit_log=audit_log
|
|
28
|
+
)
|
|
29
|
+
else:
|
|
30
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
31
|
+
|
|
32
|
+
# Calls the dispatcher for the matching JOC version
|
|
33
|
+
result = context.joc_api.dispatch(endpoint_id="workflows/resume", call=EndpointCall(
|
|
34
|
+
http_service=context.http_service,
|
|
35
|
+
access_token=context.auth_provider.login(),
|
|
36
|
+
payload=request_data,
|
|
37
|
+
options=None,
|
|
38
|
+
))
|
|
39
|
+
|
|
40
|
+
if isinstance(result, OK_V_2_8_2):
|
|
41
|
+
return bool(result.ok)
|
|
42
|
+
|
|
43
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
44
|
+
|
|
45
|
+
#---------------------#
|
|
46
|
+
# Build 2.8.2 request #
|
|
47
|
+
#---------------------#
|
|
48
|
+
def _build_v_2_8_2_request(
|
|
49
|
+
*,
|
|
50
|
+
controller_id: str,
|
|
51
|
+
workflow_paths: List[str],
|
|
52
|
+
audit_log: Optional[AuditLog]
|
|
53
|
+
) -> ModifyWorkflows_V_2_8_2:
|
|
54
|
+
|
|
55
|
+
# Validate: controller_id
|
|
56
|
+
if not controller_id:
|
|
57
|
+
raise ValueError("'controller_id' is required.")
|
|
58
|
+
|
|
59
|
+
# Validate: workflow_path
|
|
60
|
+
if not workflow_paths:
|
|
61
|
+
raise ValueError("At least one workflow path in 'workflow_paths' is required.")
|
|
62
|
+
|
|
63
|
+
# Build: audit_log
|
|
64
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
65
|
+
ticket_link=audit_log.ticket_link,
|
|
66
|
+
comment=audit_log.comment,
|
|
67
|
+
time_spent=audit_log.time_spent
|
|
68
|
+
) if audit_log else None
|
|
69
|
+
|
|
70
|
+
# Result
|
|
71
|
+
return ModifyWorkflows_V_2_8_2(
|
|
72
|
+
controller_id=controller_id,
|
|
73
|
+
workflow_paths=workflow_paths,
|
|
74
|
+
all=False,
|
|
75
|
+
audit_log=res_audit_log
|
|
76
|
+
)
|