In the type for it to make sense and be consistent with the usual semantics
I think you'd have to make it some kind of valid ensurable state. For
example, let people specify ensure=present_if_in_rightscale or some better
state name.

That also suggests to options like ensure=$is_rightscale or other
fact-based approaches, where the fact is either true or undef. That would
probably work.

It doesn't make a lot of sense to me to build a type that doesn't fail if I
say ensure=present and it can't be present, regardless of why not. Hence
why I'd say approach it from the perspective of what you're trying to
ensure.

A noop provider could exist that would fail on ensure=present but succeed
on ensure=something_else_or_maybe_undef.
On May 23, 2014 11:16 AM, "Matt Wise" <[email protected]> wrote:

> Thats definitely one way to do it... and in fact, I may do that today if I
> can't come up with another solution. I'd prefer to do it in the actual
> provider, but I could see how this is arguably cleaner. Before I do that
> though, is there no clean way to do this inside the Type or Provider?
>
> Matt Wise
> Sr. Systems Architect
> Nextdoor.com
>
>
> On Fri, May 23, 2014 at 11:12 AM, Reid Vandewiele <[email protected]>wrote:
>
>> How about just create a utility define to go with your custom type? E.g.
>> create an rs_tag::conditional define, then use that instead of the rs_tag
>> type directly. You can put the conditional logic in the define and it's
>> about as clean as it gets. You also don't have to muck about with the logic
>> at the provider level.
>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "Puppet Developers" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/puppet-dev/GWFjYkHT-e8/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/puppet-dev/de388f38-9daf-4725-aea7-b06b315b30d2%40googlegroups.com
>> .
>> 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 "Puppet Developers" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/puppet-dev/GWFjYkHT-e8/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-dev/CAOHkZxMoNN6s-m0y4jgrZe9OgVP6%2BN%3DV4uQvwFA7DrObMfqD-w%40mail.gmail.com<https://groups.google.com/d/msgid/puppet-dev/CAOHkZxMoNN6s-m0y4jgrZe9OgVP6%2BN%3DV4uQvwFA7DrObMfqD-w%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 
"Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-dev/CAHNFGkPCZHtfRoBB8rSt6ugj13yzkj7JQAbAqT0HQaK1SeJj-w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to