All right, so I created a callback plugin which saves information 
automatically about each executed task to external database, to put it 
concisely it holds of lots of information about task execution (output, 
hostname etc) + other needed by users. 
For each task unique identifier (not Anisble TASKUUID) is also generated - 
it is a combination of few fields.  
That Custom UUID is being saved to that database as well. 

The idea is to not execute any tasks in that playbook(s) more than once, 
for this purpose Custom UUID should be checked. Tasks shouldn't be executed 
more than once on a server because of irreversible actions done by those 
external legacy scripts. (no comments on that, can't be changed for now) 

With when condition it would be problematic to check Custom_UUID for each 
task because it's not and can't be hardcoded (can differ).
So, my first thought was to create or rather enhance my callback plugin to 
GET data from DB to check whether this particular task has been already 
executed or not. 
If yes, it should be omitted.



poniedziałek, 2 listopada 2020 o 14:40:14 UTC+1 raub...@gmail.com 
napisał(a):

> On Mon, Nov 2, 2020 at 8:08 AM Luke C <lukash...@gmail.com> wrote:
> >
> > Thanks for the reply.
> > Yes I know ... :)
> >
> > The problem is that I want to have dynamic when conditions for huge 
> amount of tasks.
> > With standard when condition I would have to provide a particular static 
> condition for each task (which in fact are mostly external script 
> executions).
> > I thought it would be just easier and faster with additional callback 
> module.
> >
> I too am confused. I use when() to include an entire task file
> or just do a task. And I could swear I have whens that looked like
>
> when:
> - variable-I-populated-or-registered-a-few-lines-ago.stdout ==
> variable-I-populated-in-an-earlier-task-file-on-my-way-here.stdout
>
> > Kind regards
> > Luke
> >
> >
> > poniedziałek, 2 listopada 2020 o 13:57:43 UTC+1 brae...@gmail.com 
> napisał(a):
> >>
> >> On 11/2/20 1:49 PM, Luke C wrote:
> >> > Hey guys
> >> >
> >> > I would like to ask whether it's possible to SKIP task 
> programmatically, using python & callback module?
> >> >
> >> > I've been trying to do this for 3 days and I still don't know how.
> >> > Is there some special variable which I could use in 
> *v2_runner_on_start *or *v2_playbook_on_task_start* methods?
> >> >
> >> > I don't want to use ansible's when condition, task should be omitted 
> dynamically basing on the results gathered earlier.
> >> >
> >> > e.g.:
> >> > def v2_runner_on_start(self, host, task):
> >> > if self.checksomething():
> >> > print("Task should be omitted")
> >> > <OMIT TASK, DO NOT RUN IT>
> >> > else:
> >> > print("Yes, task should be executed, proceed")
> >> >
> >> >
> >>
> >> Do you know that Ansible's when conditions can be very well based on 
> results gathered earlier?
> >>
> >> Regards
> >> Racke
> >>
> >> >
> >> >
> >> > --
> >> > You received this message because you are subscribed to the Google 
> Groups "Ansible Project" group.
> >> > To unsubscribe from this group and stop receiving emails from it, 
> send an email to
> >> > ansible-proje...@googlegroups.com <mailto:
> ansible-proje...@googlegroups.com>.
> >> > To view this discussion on the web visit
> >> > 
> https://groups.google.com/d/msgid/ansible-project/34e2ed5a-2fad-40cf-a852-f94af07fd096n%40googlegroups.com
> >> > <
> https://groups.google.com/d/msgid/ansible-project/34e2ed5a-2fad-40cf-a852-f94af07fd096n%40googlegroups.com?utm_medium=email&utm_source=footer
> >.
> >>
> >>
> >> --
> >> Ecommerce and Linux consulting + Perl and web application programming.
> >> Debian and Sympa administration. Provisioning with Ansible.
> >
> > --
> > You received this message because you are subscribed to the Google 
> Groups "Ansible Project" group.
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to ansible-proje...@googlegroups.com.
> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/ansible-project/f1b9d8c6-f367-4c75-b812-226a4eb7b82bn%40googlegroups.com
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/da81770a-1ca3-4211-8f4b-98184d55a404n%40googlegroups.com.

Reply via email to