U vi #@shdZddlZddlmZddlmZmZmZmZm Z m Z m Z m Z m Z mZddlmZGdddeZdS)z Process and analyze your data with tasks in the InfluxDB task engine. Use tasks (scheduled Flux queries) to input a data stream and then analyze, modify, and act on the data accordingly. N)List) TasksServiceTaskTaskCreateRequestTaskUpdateRequest LabelResponse LabelMappingAddResourceMemberRequestBody RunManuallyRunLogEvent) _Paginatedc@seZdZdZddZedddZddZd d ZdLee ed d dZ e e e e edddZ edddZe e e e edddZe dddZeedddZeedddZeedd d!Zd"d#Ze e ed$d%d&Ze e d'd(d)Ze dd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zed6dd7d8Z e e e!d9d:d;Z"e e ed<d9d=d>Z#dMe e$d?d@dAZ%e e dBdCdDZ&e e dBdEdFZ'e ed<dGdHdIZ(dJdKZ)d S)NTasksApiz,Implementation for '/api/v2/tasks' endpoint.cCs||_t|j|_dS)zInitialize defaults.N)Z_influxdb_clientrZ api_client_service)selfinfluxdb_clientrQ/opt/alt/python38/lib/python3.8/site-packages/influxdb_client/client/tasks_api.py__init__szTasksApi.__init__)returncCs|j|}|S)zRetrieve a task.)rZ get_tasks_id)rtask_idtaskrrrfind_task_by_ids zTasksApi.find_task_by_idcKs|jjf|jS)aList all tasks up to set limit (max 500). :key str name: only returns tasks with the specified name :key str after: returns tasks after specified ID :key str user: filter tasks to a specific user ID :key str org: filter tasks to a specific organization name :key str org_id: filter tasks to a specific organization ID :key int limit: the number of tasks to return :return: Tasks )r get_taskstasksrkwargsrrr find_taskss zTasksApi.find_taskscKst|jjddjf|S)aIterate over all tasks with pagination. :key str name: only returns tasks with the specified name :key str after: returns tasks after specified ID :key str user: filter tasks to a specific user ID :key str org: filter tasks to a specific organization name :key str org_id: filter tasks to a specific organization ID :key int limit: the number of tasks in one page :return: Tasks iterator cSs|jS)N)r)responserrr4z*TasksApi.find_tasks_iter..)r rrZ find_iterrrrrfind_tasks_iter)s zTasksApi.find_tasks_iterN)rtask_create_requestrcCsP|dk r|j|S|dk rDt|j|j|j|j|jd}|j|dSt ddS)zCreate a new task.N)fluxorg_idorg descriptionstatus)r"z,task or task_create_request must be not None) rZ post_tasksrr#r$r%r&r' create_task ValueError)rrr"requestrrrr(6s  zTasksApi.create_task)namer#r$rcCsftd||d|d}d}|dk r.|d7}||7}|dk rN|d7}|d|d7}d|||}||_|S) Nractive)idr+r$r'r#zevery: zcron: "z%{} option task = {{name: "{}", {}}})rformatr#)r+r#everycronr$rZ repetitionZflux_with_optionsrrr _create_taskCszTasksApi._create_taskcCs||||d|j}||S)z1Create a new task with every repetition schedule.N)r3r-r()rr+r#r1Z organizationrrrrcreate_task_everyVszTasksApi.create_task_every)r+r#r2r$rcCs|j||||dd}||S)z0Create a new task with cron repetition schedule.N)r+r#r2r$r1)r3r()rr+r#r2r$rrrrcreate_task_cron[szTasksApi.create_task_cronrcCs|dk r|jj|dSdS)zDelete a task.Nr6)rZdelete_tasks_idrrrrr delete_task`szTasksApi.delete_task)rrcCs0t|j|j|j|j|j|jd}|j|j|dS)Update a task.)r#r&r1r2r'offsetrtask_update_request) rr#r&r1r2r'r:update_task_requestr-)rrreqrrr update_taskes zTasksApi.update_task)r<rcCs|jj||dS)r9r;)rZpatch_tasks_id)rrr<rrrr=lszTasksApi.update_task_requestcCsXtd|j|j|j|jdd}||}|jrT||j}|jD]}| |j|jq>|S)z Clone a task.rr,)r-r+r$r%r#r') rr+r$r%r#r(r- get_labelslabels add_label)rrZclonedcreatedrAlabelrrr clone_taskps   zTasksApi.clone_taskcCs|jj|dS)zList all labels for a task.r6)rZget_tasks_id_labelsr7rrrr@{szTasksApi.get_labels)label_idrrcCst|d}|jj||dS)zAdd a label to a task.)rF)r label_mapping)rrZpost_tasks_id_labels)rrFrrGrrrrBs zTasksApi.add_label)rFrcCs|jj||dS)zDelete a label from a task.)rrF)rZdelete_tasks_id_labels_id)rrFrrrr delete_labelszTasksApi.delete_labelcCs|jj|djS)zList all task members.r6)rZget_tasks_id_membersusersr7rrr get_membersszTasksApi.get_memberscCst|d}|jj||dS)zAdd a member to a task.r-rZ add_resource_member_request_body)r rZpost_tasks_id_members)r member_idruserrrr add_members zTasksApi.add_membercCs|jj||dS)zRemove a member from a task.Zuser_idr)rZdelete_tasks_id_members_id)rrMrrrr delete_memberszTasksApi.delete_membercCs|jj|djS)zList all owners of a task.r6)rZget_tasks_id_ownersrIr7rrr get_ownersszTasksApi.get_ownerscCst|d}|jj||dS)zAdd an owner to a task.rKrL)r rZpost_tasks_id_owners)rowner_idrrNrrr add_owners zTasksApi.add_ownercCs|jj||dS)zRemove an owner from a task.rP)rZdelete_tasks_id_owners_id)rrSrrrr delete_ownerszTasksApi.delete_ownerr cKs|jjfd|i|jS)a~ Retrieve list of run records for a task. :param task_id: task id :key str after: returns runs after specified ID :key int limit: the number of runs to return :key datetime after_time: filter runs to those scheduled after this time, RFC3339 :key datetime before_time: filter runs to those scheduled before this time, RFC3339 r)rZget_tasks_id_runsruns)rrrrrrget_runss zTasksApi.get_runs)rrun_idrcCs|jj||dS)z Get run record for specific task and run id. :param task_id: task id :param run_id: run id :return: Run for specified task and run id rrX)rZget_tasks_id_runs_idrrrXrrrget_runszTasksApi.get_runr cCs|jj||djS)zRetrieve all logs for a run.rY)rZget_tasks_id_runs_id_logseventsrZrrr get_run_logsszTasksApi.get_run_logs)r scheduled_forcCst|d}|jj||dS)z Manually start a run of the task now overriding the current schedule. :param task_id: :param scheduled_for: planned execution )r^)r run_manually)r rZpost_tasks_id_runs)rrr^rrrrr_s zTasksApi.run_manuallyrYcCs|jj||dS)zb Retry a task run. :param task_id: task id :param run_id: run id rY)rZpost_tasks_id_runs_id_retryrZrrr retry_runszTasksApi.retry_runcCs|jj||dS)za Cancel a currently running run. :param task_id: :param run_id: rY)rZdelete_tasks_id_runs_idrZrrr cancel_runszTasksApi.cancel_run)rrcCs|jj|djS)zP Retrieve all logs for a task. :param task_id: task id r6)rZget_tasks_id_logsr\r7rrrget_logsszTasksApi.get_logscCs |j|dS)zList all tasks by user.)rN)r)rZ task_user_idrrrfind_tasks_by_userszTasksApi.find_tasks_by_user)NN)N)*__name__ __module__ __qualname____doc__rrrrr!rr( staticmethodstrr3r4r5r8r?rr=rEr@rrBrHrJrOrQrRrTrUrrWr r[r]datetimer_rarbrcrdrrrrrs>         r)rhrktypingrrrrrrrrr r r r Zinfluxdb_client.client._pagesr objectrrrrrs  0