>
> My question is whether the dict equivalent example I gave that you quote 
> below should also work - but then there might be confusion between which 
> parameters are role runtime variables and which are installationtime 
> variables  (although using a prefix like role_install_ should reduce the 
> likelihood of clashes)
>

I think that it should work. As I posted earlier I am trying to manage 
internal roles that are not shared through Ansible Galaxy and I need to be 
able to specify internal role dependencies. BTW, currently, there is a 
*hack* that I found but I would prefer to not use:

dependencies:
  - src: https://git.example.com/repos/horrible-role-name.git
    scm: git
    name: role-friendly-name
    role: role-friendly-name
    this-is-a-variable: x

On Monday, August 18, 2014 3:49:06 PM UTC+3, Will Thames wrote:

> I’m not sure pip has the same problem, which is effectively that 
> dependency declarations are useful at both install time and at run time
>
> In the below example ‘this_is_a_role_variable’ is a variable that gets 
> passed to the role when it is run (and dependencies are run before the role 
> itself is run, as explained in the Roles Dependencies section in the docs) 
> rather than a variable used at installation time. The other parameters are 
> all used for installation only.
>
> Currently dependencies are installed through a similar installation 
> mechanism as the roles file - so if when installing a role from the roles 
> file, it comes across a dependency, it can install that too. So a 
> non-galaxy role dependency can be specified using:
>
> dependencies:
>   - role: “git+http://git.example.com/reponame.git,v1.0,friendlyname”
>
> My question is whether the dict equivalent example I gave that you quote 
> below should also work - but then there might be confusion between which 
> parameters are role runtime variables and which are installationtime 
> variables  (although using a prefix like role_install_ should reduce the 
> likelihood of clashes)
>
> But if you’re saying that users have to manage their own dependencies when 
> using non galaxy roles, then perhaps I need do no more - hopefully my 
> solution works for installing non galaxy dependencies through the roles 
> dependencies mechanism.
>
> Apologies if it’s still no clearer.
>
> Will
>
>
>
> On 18 Aug 2014, at 22:35, Michael DeHaan <mic...@ansible.com <javascript:>> 
> wrote:
>
> I'd follow pip's example here, PyPi understands dependencies, which is the 
> galaxy analog.
>
> Outside of that, there are no deps (right?)
>
> "dependencies:
> - { role: friendly_role_name,
>      this_is_a_role_variable: x,
>      role_install_src: “git+http://url”,
>      role_install_version: v1.0 }"
>
> I'm not understanding this part, currently in meta.yml it's not required 
> for anything like "this_is_a_role_variable" to be defined.    I also think 
> all that would be required is whether to install dependencies, i.e. a 
> simple boolean
>
> - role: username.rolename
>   dependencies: True # can set to False for galaxy roles, non-galaxy roles 
> this is always off and cannot be controlled.
>
> etc?
>
> Then it should assume to fetch them from galaxy, because there is no other 
> index of role deps.
>
>
>
>
> On Mon, Aug 18, 2014 at 7:35 AM, Will Thames <wi...@thames.id.au 
> <javascript:>> wrote:
>
>> This is now working for the roles file in YAML format.
>>
>> It doesn’t work so well for role dependencies - we’d probably need to 
>> declare some special variables for that. 
>>
>> At the moment the YAML file format is
>>
>> - src: “git+http://git.example.com/repos/horrible-role-name”
>>   name: “nice-role-name”
>>   version: v1.0
>>
>> You can also use scm: git (or hg) instead of the git+ / hg+ - the end 
>> result is the same. 
>>
>> For this to work with role dependencies it would need to be obvious what 
>> are role_vars and what are settings for installing dependencies (perhaps 
>> prepend role_install to distinguish the two? - I haven’t implemented this 
>> at all, figure I should gather thoughts on requirements first. 
>>
>> Something like 
>>
>> dependencies:
>> - { role: friendly_role_name,
>>      this_is_a_role_variable: x,
>>      role_install_src: “git+http://url”,
>>      role_install_version: v1.0 }
>>
>> On 17 Aug 2014, at 23:00, Michael DeHaan <mic...@ansible.com 
>> <javascript:>> wrote:
>>
>> "I also don’t particularly propose rewriting what I’ve done so far given 
>> that it’s backwards compatible"
>>
>> This would be fine with me.
>>
>> "I would prefer not to support a mixed format roles file - how about if 
>> the filename ends ‘.yml’ or ‘.yaml’ we treat it as yaml, otherwise use the 
>> existing format."
>>
>> +1
>>
>> This could be applied on top.
>>
>>
>>
>>
>> On Sun, Aug 17, 2014 at 3:21 AM, Will Thames <wi...@thames.id.au 
>> <javascript:>> wrote:
>>
>>> My implementation only uses three fields, in an order that is backward 
>>> compatible with the existing roles file, and I’m not sure what the other 
>>> proposed fields would be.
>>>
>>> However, I like the YAML idea if only because it would work much more 
>>> nicely with the dependencies section of meta/main.yml too.
>>>
>>> I would prefer not to support a mixed format roles file - how about if 
>>> the filename ends ‘.yml’ or ‘.yaml’ we treat it as yaml, otherwise use the 
>>> existing format.
>>>
>>> I also don’t particularly propose rewriting what I’ve done so far given 
>>> that it’s backwards compatible - any change would be to support the yaml 
>>> notation in addition (which would also be extensible to any of the other 
>>> proposed fields I’ve forgotten about).
>>>
>>> Will
>>>
>>> On 17 Aug 2014, at 00:52, Michael DeHaan <mic...@ansible.com 
>>> <javascript:>> wrote:
>>>
>>> Positional fields could be a problem, we already have a proposal for 
>>> like 5 of them, and in different cases it's now seaming like they are in 
>>> different orders.  I think we need to reset here.  If we're proliferating 
>>> on fields, here is what I propose.
>>>
>>> * (A) continue to support the existing syntax for the galaxy-username, 
>>> version
>>>
>>> * (B) use a list of YAML hashes for the approved syntax, and update the 
>>> documentation
>>>
>>> * (C) go down the YAML path if the first non-space character is a "-"
>>>
>>> Perhaps it looks roughly like this:
>>>
>>> ----
>>>
>>> - repo: git+ssh://
>>>   role_name: blippy
>>>   version: ...
>>>
>>> - galaxy: username.rolename
>>>   recursive: false
>>>
>>> - galaxy: username.rolename2
>>>   version: 1.2.3
>>>
>>> - galaxy: username.rolename_is_terrible
>>>   role_name: save_as_this
>>>
>>> ??
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>  
>>>
>>>
>>> On Fri, Aug 15, 2014 at 8:07 AM, Will Thames <wi...@thames.id.au 
>>> <javascript:>> wrote:
>>>
>>>> Ok, friendly role names now allowed as third field.
>>>>
>>>> Added bonus of installing roles from URLs without SCM (think nexus, 
>>>> artefactory or just e.g. direct bitbucket/github/stash download URLs)
>>>>
>>>> Integration tests and unit tests to demonstrate that these improvements 
>>>> seem to work as expected.
>>>>
>>>> Will
>>>>
>>>>
>>>> On Friday, August 15, 2014 10:22:44 AM UTC+10, Will Thames wrote:
>>>>
>>>>> Perhaps we could make role name an optional third field - so if you do 
>>>>> want role_name but not role_version, just leave role_version blank i.e. 
>>>>> git+
>>>>> http://git.server/bad-role-name,,nice-role-name
>>>>>
>>>>> The reason for making it the third field is that I don't want to break 
>>>>> existing roles files and I don't want the parsing for SCM roles to be 
>>>>> fundamentally different to the galaxy roles.
>>>>>
>>>>> I don't particularly wish this to block the take-up of this pull 
>>>>> request, but I'm happy enough to implement it if the above seems a 
>>>>> reasonable approach.
>>>>>
>>>>> Will
>>>>>
>>>>> On Friday, August 15, 2014 3:03:36 AM UTC+10, Ivaylo Bratoev wrote:
>>>>>
>>>>>> I can think a few cases where being able to control local role folder 
>>>>>> names would make things cleaner. For example: referencing repos with the 
>>>>>> same name in the end, too long or obscure repo names, etc.
>>>>>> None of this is a blocker that would stop us from using this feature. 
>>>>>> I am looking forward to having this in the main branch and in a official 
>>>>>> release.
>>>>>>
>>>>>> On Thursday, August 14, 2014 3:10:29 PM UTC+3, Michael DeHaan wrote:
>>>>>>
>>>>>>> " would just add one more requirement - being able to overwrite the 
>>>>>>> role-name and rely on the git repo name exclusively. Idea for syntax if 
>>>>>>> you 
>>>>>>> want to keep the *role_name/url, role_version* format:"
>>>>>>>
>>>>>>> While interesting, we don't want to do this because we already have 
>>>>>>> ",version" used for describing roles in a way that  is not specific. 
>>>>>>>  Further, I don't think those URLs technically support comments in the 
>>>>>>> case 
>>>>>>> of ssh://, so that seems like something we'd want to avoid.
>>>>>>>
>>>>>>> We can go with git+https://url,version
>>>>>>>
>>>>>>> I'm happy with that.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Aug 14, 2014 at 12:17 AM, Ivaylo Bratoev <
>>>>>>> ivaylo....@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi guys,
>>>>>>>>
>>>>>>>> I am currently investigating different options for managing roles 
>>>>>>>> and looking forward to having this in Ansible itself. My requirements 
>>>>>>>> are 
>>>>>>>> similar - having roles shared (and versioned) in private git repos, 
>>>>>>>> referenced from playbooks in other repos.
>>>>>>>> The solution you are discussing here sounds like in the right 
>>>>>>>> direction. I would just add one more requirement - being able to 
>>>>>>>> overwrite 
>>>>>>>> the role-name and rely on the git repo name exclusively. Idea for 
>>>>>>>> syntax if 
>>>>>>>> you want to keep the *role_name/url, role_version* format:
>>>>>>>> git+https://git.acme.com/ansible/role-logstash.git#alias=logstash
>>>>>>>>
>>>>>>>> This would reference the role from the private repo but use the 
>>>>>>>> name 'logstash' instead of 'role-logstash'.
>>>>>>>>
>>>>>>>> If you are OK to change the format to *role_name, scm, url *the 
>>>>>>>> syntax suggested by Sam would work well for us:
>>>>>>>> logstash,git,https://git.acme.com/ansible/role-logstash.git
>>>>>>>>
>>>>>>>> Ivo
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thursday, August 14, 2014 3:37:03 AM UTC+3, Will Thames wrote:
>>>>>>>>
>>>>>>>>>  I'm happy enough with this approach but how do we apply that to 
>>>>>>>>> role dependencies. 
>>>>>>>>>
>>>>>>>>> In my git test role I provide a git dependency:
>>>>>>>>> https://bitbucket.org/willthames/git-ansible-galaxy/src/1e58
>>>>>>>>> ef87f234926caaf5e6b1f2c5378d90f476b1/meta/main.yml?at=master
>>>>>>>>>
>>>>>>>>> This works with the ansible-galaxy in the pull request but would 
>>>>>>>>> not as it stands without some form of scm detection. 
>>>>>>>>>
>>>>>>>>> On reflection, I think I'd be happiest with the scm+url suggestion 
>>>>>>>>> - this would eliminate the need for scm detection and keep the 
>>>>>>>>> role_name/url, role_version format of the rolesfile
>>>>>>>>> role_name would continue to be derived from the repo name.
>>>>>>>>>
>>>>>>>>> From Sam's example, this would then look more like this (not 100% 
>>>>>>>>> happy with git+git but it's nicer than handling the special case). 
>>>>>>>>>
>>>>>>>>> # Custom roles using various protocols
>>>>>>>>> git+ssh://g...@git.acme.com:ansible/role-disa-stig-rhel6.git,1.0
>>>>>>>>> git+https://git.acme.com/ansible/role-kibana.git
>>>>>>>>> git+git://g...@git.acme.com:ansible/role-logstash.git
>>>>>>>>>
>>>>>>>>> This would end up with roles called e.g. role-logstash, which 
>>>>>>>>> might not be what you want, but I would prefer to keep the rolesfile 
>>>>>>>>> simple.
>>>>>>>>>
>>>>>>>>> Will
>>>>>>>>>
>>>>>>>>> On Thursday, August 14, 2014 12:59:43 AM UTC+10, Michael DeHaan 
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> +1
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Wed, Aug 13, 2014 at 10:57 AM, Sam Doran <sam....@me.com> 
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> I like your syntax suggestion. That seems to fit more with the 
>>>>>>>>>>> ansible project. I agree that specifying the protocol would be a 
>>>>>>>>>>> good idea.
>>>>>>>>>>>
>>>>>>>>>>> Here's what it might look like:
>>>>>>>>>>>
>>>>>>>>>>> # Galaxy roles
>>>>>>>>>>> adham.helal.authentication
>>>>>>>>>>> agios.nginx-unicorn,1.3
>>>>>>>>>>>
>>>>>>>>>>> # Custom roles using various protocols
>>>>>>>>>>> disa-stig-rhel6,git,ssh://g...@git.acme.com:ansible/role-disa
>>>>>>>>>>> -stig-rhel6.git,1.0kibana,git,https://git.acme.com:ansible/role-kibana.git
>>>>>>>>>>>  
>>>>>>>>>>> logstash,git,git://g...@git.acme.com:ansible/role-logstash.git 
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> -- 
>>>>>>>>>>> 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 post to this group, send email to ansible...@googlegroups.com
>>>>>>>>>>> .
>>>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>>>> https://groups.google.com/d/msgid/ansible-project/2946b30e-
>>>>>>>>>>> e772-44af-9592-f0fec3f8da30%40googlegroups.com 
>>>>>>>>>>> <https://groups.google.com/d/msgid/ansible-project/2946b30e-e772-44af-9592-f0fec3f8da30%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 ansible-proje...@googlegroups.com.
>>>>>>>> To post to this group, send email to ansible...@googlegroups.com.
>>>>>>>> To view this discussion on the web visit 
>>>>>>>> https://groups.google.com/d/msgid/ansible-project/
>>>>>>>> af2e9ef3-19e1-4379-a6b8-439936841e7d%40googlegroups.com 
>>>>>>>> <https://groups.google.com/d/msgid/ansible-project/af2e9ef3-19e1-4379-a6b8-439936841e7d%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 ansible-proje...@googlegroups.com <javascript:>.
>>>> To post to this group, send email to ansible...@googlegroups.com 
>>>> <javascript:>.
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/ansible-project/0520bf55-0dc0-4a3b-9c27-5d15da78a289%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/ansible-project/0520bf55-0dc0-4a3b-9c27-5d15da78a289%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 a topic in the 
>>> Google Groups "Ansible Project" group.
>>> To unsubscribe from this topic, visit 
>>> https://groups.google.com/d/topic/ansible-project/TawjChwaV08/unsubscribe
>>> .
>>> To unsubscribe from this group and all its topics, send an email to 
>>> ansible-proje...@googlegroups.com <javascript:>.
>>>
>>> To post to this group, send email to ansible...@googlegroups.com 
>>> <javascript:>.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgxP4WCqUf4MbhytOO-A%3DfiTnn8Dtz%2BHUhxJ3RD%2BTNQB5Q%40mail.gmail.com
>>>  
>>> <https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgxP4WCqUf4MbhytOO-A%3DfiTnn8Dtz%2BHUhxJ3RD%2BTNQB5Q%40mail.gmail.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 ansible-proje...@googlegroups.com <javascript:>.
>>> To post to this group, send email to ansible...@googlegroups.com 
>>> <javascript:>.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/ansible-project/B9D82A46-0916-4747-8323-5A9309F12251%40thames.id.au
>>>  
>>> <https://groups.google.com/d/msgid/ansible-project/B9D82A46-0916-4747-8323-5A9309F12251%40thames.id.au?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 a topic in the 
>> Google Groups "Ansible Project" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/ansible-project/TawjChwaV08/unsubscribe
>> .
>> To unsubscribe from this group and all its topics, send an email to 
>> ansible-proje...@googlegroups.com <javascript:>.
>> To post to this group, send email to ansible...@googlegroups.com 
>> <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgxsMac6wEVHNVHTZimWaZVCR93rX0eO8qdVJgsiEUxznQ%40mail.gmail.com
>>  
>> <https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgxsMac6wEVHNVHTZimWaZVCR93rX0eO8qdVJgsiEUxznQ%40mail.gmail.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 ansible-proje...@googlegroups.com <javascript:>.
>> To post to this group, send email to ansible...@googlegroups.com 
>> <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ansible-project/4DEBED3F-10A0-401F-B067-749AA58CA13B%40thames.id.au
>>  
>> <https://groups.google.com/d/msgid/ansible-project/4DEBED3F-10A0-401F-B067-749AA58CA13B%40thames.id.au?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 a topic in the 
> Google Groups "Ansible Project" group.
> To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/ansible-project/TawjChwaV08/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to 
> ansible-proje...@googlegroups.com <javascript:>.
> To post to this group, send email to ansible...@googlegroups.com 
> <javascript:>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgysLnzHtfENrdCRYBRnBzK6HsU2brNrxFBLQECGP0cV8w%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgysLnzHtfENrdCRYBRnBzK6HsU2brNrxFBLQECGP0cV8w%40mail.gmail.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 ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/e8d48d23-2681-428c-90ca-ba9a1b6b0a86%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to