Apologies if this topic has been hashed to death - but I wanted to follow up to see if there is a simple/clever way to solve this problem. I too am writing custom modules for Xen and there's a lot of boilerplate code common to many such modules that would be better off in a common shared python file rather than exist in each module file. It would definitely be nice if this could be done declaratively within each module file rather than hacking module_utils or some such "unsanctioned" mechanism.
On Friday, February 21, 2014 4:38:31 PM UTC-6, Raphael Randschau wrote: > > Hey there, > > while working on [ansible-rails][1] I came across a problem I have not yet > been able to solve by just reading and interpreting the ansible source code: > > how can I share common dependencies between multiple, custom commands? > E.g. given the following role directory structure: > > /example > /example/library > /example/library/command_a > /example/library/command_b > /example/library/shared_utility.py > /example/library/__init__.py > > shared_utility.py contains classes used in both command_a AND command_b. > > The way I understand ansible right now is that when command_a is used > inside a playbook/ role it's source is expanded and copied to the server > (sie ModuleReplacer inside the ansible source). > However, due to this processing, I can't just import shared_utility, > because it's not copied to the remote server. > > My question now is this: how do I import shared code into ansible > commands? And equally important: how do I properly test these custom > commands without much hackery (I'm talking about good old unit tests in > this case!) > > Please advice - is this left out on purpose or just very badly documented > & hidden away? > > Thanks, > Raphael > > [1]:https://github.com/nicolai86/ansible-rails > -- 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 [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/df136584-a555-4039-b433-4d0f9e7ce391%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
