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">+ &amp; _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.

Reply via email to