This isn't directly related to this thread but it was discussed earlier so it was the best place for it.
I created a filter that converts a yaml dict to a powershell hash. I'm trying to write some tests for it but I'm not sure how to run just my specific test. The file playbook and vars are at ansible/test/integration/roles/test_powershell_filter/ and the filter is at ansible/lib/ansible/runner/filter_plugins. Test playbook: https://gist.github.com/perzizzle/8fb875895b218772eede Test variables https://gist.github.com/perzizzle/dc73025a2232f2da9b88 Filter https://gist.github.com/perzizzle/117a6b139e2a97194d5f When I run "make tests" a whole bunch of them succeed but one fails related to postgres. Is it possible to run just my one test I've created? Thanks, On Wednesday, February 4, 2015 at 1:44:00 AM UTC-6, Chris Church wrote: > > Hi Michael, > > I had submitted a PR (https://github.com/ansible/ansible/pull/9602) -- > I'll see if I can get that merged soon. > > > On Mon, Jan 26, 2015 at 2:47 PM, Michael Perzel <[email protected] > <javascript:>> wrote: > >> I ended up creating a new filter that could transform >> >> >> installArguments: >> >> key: value >> >> key2: value2 >> >> and return “@{'key2'='value2';'key'='value';}” I can share if anyone is >> interested. >> >> I just upgraded to ansible 1.8 and made your fix to powershell.py and >> winrm.py manually again. Is there any target version to get this into the >> main branch? I poked around in github but couldn't find way to see if you >> had submitted a pull request for this. >> >> >> On Thursday, November 6, 2014 at 5:26:49 PM UTC-6, Chris Church wrote: >>> >>> Absolutely, just haven't had a chance to get back to Windows-related >>> things this week. >>> >>> On Thu, Nov 6, 2014 at 4:37 PM, Michael Perzel <[email protected]> >>> wrote: >>> >>>> Are you going to submit a pull request for this into devel? It >>>> definitely solved my issue. >>>> >>>> On Saturday, October 25, 2014 2:23:55 PM UTC-5, Chris Church wrote: >>>>> >>>>> Could you create a gist (https://gist.github.com/) with the relevant >>>>> lines from your inventory variables, playbook and script (removing any >>>>> sensitive information)? I'm not quite able to piece together a full >>>>> example of what you're running from the email thread. >>>>> >>>>> My branch is based on devel; I just created another branch based on >>>>> 1.7.2 with the splatting changes applied: https://github.com/cc >>>>> hurch/ansible/tree/powershell_splatting_v172 >>>>> <https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fcchurch%2Fansible%2Ftree%2Fpowershell_splatting_v172&sa=D&sntz=1&usg=AFQjCNELYa0RJWKIxEmXb2bqZVp5y1NogA> >>>>> >>>>> >>>>> >>>>> >>>>> On Fri, Oct 24, 2014 at 6:12 PM, Michael Perzel <[email protected]> >>>>> wrote: >>>>> >>>>>> I tried taking your changes but it failed with: >>>>>> <Objs Version="1.1.0.1" xmlns="http://schemas.microsof >>>>>> t.com/powershell/2004/04"><S S="Error">C:\Users\ansible\App >>>>>> Data\Local\Temp\ansible-tmp-1414187414.25-97343749557638\de_x000D__x000A_</S><S >>>>>> >>>>>> S="Error">ployLauncher.ps1 : A positional parameter cannot be found that >>>>>> accepts _x000D__x000A_</S><S S="Error">argument >>>>>> 'False'._x000D__x000A_</S><S S="Error">At line:1 >>>>>> char:1_x000D__x000A_</S><S >>>>>> S="Error">+ & _x000D__x000A_</S><S S="Error">C:\Users\ansible\App >>>>>> Data\Local\Temp\ansible-tmp-1414187414.25-97343749557638\\ >>>>>> _x000D__x000A_</S><S S="Error">..._x000D__x000A_</S><S S="Error">+ >>>>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>>>>> ~~~~~~~~~~~~~~~~~_x000D__x000A_</S><S S="Error">~~~_x000D__x000A_</S><S >>>>>> S="Error"> + CategoryInfo : InvalidArgument: (:) [deployLauncher.ps1], >>>>>> Param _x000D__x000A_</S><S S="Error"> >>>>>> eterBindingException_x000D__x000A_</S><S >>>>>> S="Error"> + FullyQualifiedErrorId : PositionalParameterNotFound,de >>>>>> ployLauncher.ps1_x000D__x000A_</S><S S="Error"> >>>>>> _x000D__x000A_</S></Objs> >>>>>> >>>>>> Looking at the diff between your code and mine there's a few other >>>>>> differences. I'm running 1.7.2, I assume your branched off something >>>>>> newer.I'll see if I can sort through the issue. >>>>>> >>>>>> Thanks >>>>>> >>>>>> On Friday, October 24, 2014 3:52:39 PM UTC-5, Michael Perzel wrote: >>>>>>> >>>>>>> Your idea with jinja filter is what I originally tried to get >>>>>>> working. I never managed it but I think its the ideal solution >>>>>>> (converting >>>>>>> yaml hash to a powershell one). >>>>>>> >>>>>>> If I follow your patch you added a parameter that controls whether >>>>>>> or not arguments get quoted (and set it to false for powershell >>>>>>> scripts)? >>>>>>> I'm not particularly worried about nefarious activity within our system >>>>>>> so >>>>>>> this could work for us. >>>>>>> >>>>>>> On Friday, October 24, 2014 12:52:52 AM UTC-5, Chris Church wrote: >>>>>>>> >>>>>>>> That method of passing arguments is apparently called "splatting" ( >>>>>>>> http://technet.microsoft.com/en-us/magazine/gg675931.aspx). >>>>>>>> >>>>>>>> I have a branch where I've been able to get it working: >>>>>>>> >>>>>>>> https://github.com/cchurch/ansible/tree/powershell_splatting >>>>>>>> >>>>>>>> >>>>>>>> I've also added integration tests to show examples of it in use: >>>>>>>> >>>>>>>> https://github.com/cchurch/ansible/blob/powershell_splatting >>>>>>>> /test/integration/roles/test_win_script/tasks/main.yml#L50 >>>>>>>> >>>>>>>> >>>>>>>> I also considered the idea of a Jinja2 filter to convert a >>>>>>>> YAML/JSON data structure to this format to allow for defining your >>>>>>>> arguments as you would any other variables: >>>>>>>> >>>>>>>> build_args: >>>>>>>> >>>>>>>> key1: value1 >>>>>>>> >>>>>>>> key2: value2 >>>>>>>> >>>>>>>> >>>>>>>> You could then run your task as: >>>>>>>> >>>>>>>> script: dostuff.ps1 {{ build_args|splattify }} >>>>>>>> >>>>>>>> >>>>>>>> Would you (or any other Windows users) be interested in this >>>>>>>> approach? >>>>>>>> >>>>>>>> >>>>>>>> On Wed, Oct 22, 2014 at 10:28 AM, Michael Perzel < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> I'll look into this. My work around thus far is using a template >>>>>>>>> for my deploy script. Instead of passing the deploy script arguments, >>>>>>>>> I >>>>>>>>> just assign them at the top: >>>>>>>>> >>>>>>>>> $build = {{ build }} >>>>>>>>> $pass = {{ password }} >>>>>>>>> $arguments = @{ {{ arguments }} } >>>>>>>>> >>>>>>>>> This then becomes: >>>>>>>>> >>>>>>>>> $build = 42 >>>>>>>>> $pass = password >>>>>>>>> $arguments = @{ key1=value1; key2= value2 } >>>>>>>>> >>>>>>>>> Using the template has given me complete control over the syntax. >>>>>>>>> In our paradigm we have an entirely generic "deploy" powershell >>>>>>>>> script that >>>>>>>>> stages files, unzips them and similar things. It then calls an >>>>>>>>> "install" >>>>>>>>> script that handles all the app specific items. The install scripts >>>>>>>>> are >>>>>>>>> bundled with the specific app. >>>>>>>>> >>>>>>>>> On Wednesday, October 22, 2014 8:38:11 AM UTC-5, J Hawkesworth >>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> I don't have a direct answer for this - rightly or wrongly the >>>>>>>>>>> ps1 scripts I have so far don't take any arguments - I consider >>>>>>>>>>> them to be >>>>>>>>>>> specific to my roles and at the moment they embed some details that >>>>>>>>>>> it >>>>>>>>>>> would probably be best to have as parameters. However, it looks to >>>>>>>>>>> me like >>>>>>>>>>> your deployLauncher.ps1 really wants to be a very general purpose >>>>>>>>>>> deployment tool and maybe it would be better off as an ansible >>>>>>>>>>> module. >>>>>>>>>>> That way you could perhaps take advantage of ansible's existing >>>>>>>>>>> syntax for >>>>>>>>>>> specifying module arguments. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> As an aside I believe @Trond Hindenes has a win_package module in >>>>>>>>>> the works which might do some of what you want. >>>>>>>>>> >>>>>>>>> -- >>>>>>>>> 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/388179f6-4 >>>>>>>>> 48e-44e7-967f-94e400dc4514%40googlegroups.com >>>>>>>>> <https://groups.google.com/d/msgid/ansible-project/388179f6-448e-44e7-967f-94e400dc4514%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> >>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>> 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/ba6b122a-1fa5-48c6-9b1d-a8a2f67083ef% >>>>>> 40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/ansible-project/ba6b122a-1fa5-48c6-9b1d-a8a2f67083ef%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> -- >>>> 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/118759f9-df6f-4805-886d- >>>> 00a250457019%40googlegroups.com >>>> <https://groups.google.com/d/msgid/ansible-project/118759f9-df6f-4805-886d-00a250457019%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> 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] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/ansible-project/35495c72-0da0-42f9-b854-4ab8f049ccdd%40googlegroups.com >> >> <https://groups.google.com/d/msgid/ansible-project/35495c72-0da0-42f9-b854-4ab8f049ccdd%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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/db5bd592-8018-4bf7-971d-6f8652fd9737%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
