26
26
- Return specific task.
27
27
aliases: ['upid', 'name']
28
28
type: str
29
+ source:
30
+ description:
31
+ - Source of tasks to be considered.
32
+ type: str
33
+ choices: ['archive', 'active', 'all']
34
+ default: archive
29
35
extends_documentation_fragment:
30
36
- community.proxmox.proxmox.actiongroup_proxmox
31
37
- community.proxmox.proxmox.documentation
35
41
36
42
37
43
EXAMPLES = r"""
38
- - name: List tasks on node01
44
+ - name: List finished tasks on node01
39
45
community.proxmox.proxmox_tasks_info:
40
46
api_host: proxmoxhost
41
47
api_user: root@pam
45
51
node: node01
46
52
register: result
47
53
54
+ - name: List active tasks on node02
55
+ community.proxmox.proxmox_tasks_info:
56
+ api_host: proxmoxhost
57
+ api_user: root@pam
58
+ api_password: '{{ password | default(omit) }}'
59
+ api_token_id: '{{ token_id | default(omit) }}'
60
+ api_token_secret: '{{ token_secret | default(omit) }}'
61
+ node: node02
62
+ source: active
63
+ register: result
64
+
48
65
- name: Retrieve information about specific tasks on node01
49
66
community.proxmox.proxmox_tasks_info:
50
67
api_host: proxmoxhost
122
139
123
140
124
141
class ProxmoxTaskInfoAnsible (ProxmoxAnsible ):
125
- def get_task (self , upid , node ):
126
- tasks = self .get_tasks (node )
142
+ def get_task (self , upid , node , source ):
143
+ tasks = self .get_tasks (node , source )
127
144
for task in tasks :
128
145
if task .info ['upid' ] == upid :
129
146
return [task ]
130
147
131
- def get_tasks (self , node ):
132
- tasks = self .proxmox_api .nodes (node ).tasks .get ()
148
+ def get_tasks (self , node , source ):
149
+ tasks = self .proxmox_api .nodes (node ).tasks .get (source = source )
133
150
return [ProxmoxTask (task ) for task in tasks ]
134
151
135
152
@@ -149,6 +166,7 @@ def proxmox_task_info_argument_spec():
149
166
return dict (
150
167
task = dict (type = 'str' , aliases = ['upid' , 'name' ], required = False ),
151
168
node = dict (type = 'str' , required = True ),
169
+ source = dict (default = 'archive' , choices = ['archive' , 'active' , 'all' ]),
152
170
)
153
171
154
172
@@ -167,10 +185,11 @@ def main():
167
185
proxmox = ProxmoxTaskInfoAnsible (module )
168
186
upid = module .params ['task' ]
169
187
node = module .params ['node' ]
188
+ source = module .params ['source' ]
170
189
if upid :
171
- tasks = proxmox .get_task (upid = upid , node = node )
190
+ tasks = proxmox .get_task (upid = upid , node = node , source = source )
172
191
else :
173
- tasks = proxmox .get_tasks (node = node )
192
+ tasks = proxmox .get_tasks (node = node , source = source )
174
193
if tasks is not None :
175
194
result ['proxmox_tasks' ] = [task .info for task in tasks ]
176
195
module .exit_json (** result )
0 commit comments