Yeah:
Arguments:
process: {} (map)
Sub-process configuration.
script_path: 'connect.sh' (string)
Relative path to the executable file.
openstack_config: {'username': 'NOT SET'} (map)
On Fri, Aug 25, 2017 at 3:31 PM, Tal Liron <[email protected]> wrote:
> And you're saying that also in "aria services show -f" you see that it's
> NOT SET?
>
> On Fri, Aug 25, 2017 at 5:29 PM, DeWayne Filppi <[email protected]>
> wrote:
>
> > Never mind, figured it out from the code. Here's the simplified
> template:
> >
> > tosca_definitions_version: tosca_simple_yaml_1_0
> >
> >
> > imports:
> > - aria-1.0
> >
> > dsl_definitions:
> > openstack_config: &openstack_config
> > username: dewayne
> >
> > data_types:
> > config:
> > properties:
> > username:
> > type: string
> > default: 'NOT SET'
> >
> > relationship_types:
> > subnet_connected_to_router:
> > derived_from: ConnectsTo
> > interfaces:
> > Configure:
> > add_target:
> > implementation: connect.sh
> > inputs:
> > openstack_config:
> > type: config
> > required: true
> > default: {}
> >
> > node_types:
> > router:
> > derived_from: tosca.nodes.Root
> >
> > subnet:
> > derived_from: tosca.nodes.Root
> > requirements:
> > - router:
> > capability: tosca.capabilities.Node
> > node: router
> > relationship: subnet_connected_to_router
> >
> > topology_template:
> >
> > node_templates:
> >
> > router:
> > type: router
> >
> > subnet:
> > type: subnet
> > requirements:
> > - router:
> > node: router
> > relationship:
> > type: subnet_connected_to_router
> > interfaces:
> > Configure:
> > add_target:
> > inputs:
> > openstack_config: *openstack_config
> >
> >
> > There is a script in the same directory referred to "connect.sh":
> >
> > #!/bin/sh
> >
> > ctx logger info "HERE $openstack_config"
> >
> >
> > When "install" is run, the output of the log statement is "NOT SET" (the
> > default). Even though I have overridden it (should be "dewayne").
> >
> >
> >
> > On Fri, Aug 25, 2017 at 3:06 PM, DeWayne Filppi <[email protected]>
> > wrote:
> >
> > > For the simplified example I need to provide a shell script or python
> > > script that dumps the inputs passed to the operation impl. Not sure
> how
> > > that's done in ARIA. IOW, I don't know how to refer to inputs, and
> don't
> > > see any example.
> > >
> > > On Fri, Aug 25, 2017 at 2:17 PM, Tal Liron <[email protected]> wrote:
> > >
> > >> That you supply where? Override where? What is the error? Sorry
> DeWayne,
> > >> very hard for me to follow your explanation. We really need a complete
> > >> simple example here and the exact errors that you get.
> > >>
> > >> On Fri, Aug 25, 2017 at 4:06 PM, DeWayne Filppi <[email protected]>
> > >> wrote:
> > >>
> > >> > Yes, in my case the relationship bewteen the subnet and router
> > >> (add_target)
> > >> > is executed properly. The problem is that the "openstack_config"
> > input
> > >> > that I supply is not passed as an input. When I run 'aria service
> > show
> > >> > -f', it is clear that my override is ignore and default (all empty
> > >> strings)
> > >> > is used.
> > >> >
> > >> > On Fri, Aug 25, 2017 at 2:02 PM, Tal Liron <[email protected]> wrote:
> > >> >
> > >> > > Is my attempt not what you meant? Was your error different?
> > >> > >
> > >> > > On Fri, Aug 25, 2017 at 4:01 PM, DeWayne Filppi <
> > [email protected]>
> > >> > > wrote:
> > >> > >
> > >> > > > OK. You want something not tied to Openstack, probably with
> just
> > >> two
> > >> > > > nodes. Will do.
> > >> > > >
> > >> > > > On Fri, Aug 25, 2017 at 1:55 PM, Tal Liron <[email protected]>
> > wrote:
> > >> > > >
> > >> > > > > DeWayne, this is still not very minimal, and I don't
> understand
> > >> what
> > >> > > > "dies"
> > >> > > > > means. Could you please provide the error?
> > >> > > > >
> > >> > > > > Here's my stab at a minimal example, please let me know if
> it's
> > >> what
> > >> > > you
> > >> > > > > got:
> > >> > > > >
> > >> > > > > tosca_definitions_version: tosca_simple_yaml_1_0
> > >> > > > >
> > >> > > > > relationship_types:
> > >> > > > >
> > >> > > > > MyRelationship:
> > >> > > > > interfaces:
> > >> > > > > Configure:
> > >> > > > > add_target:
> > >> > > > > inputs:
> > >> > > > > my_input:
> > >> > > > > type: string
> > >> > > > >
> > >> > > > > node_types:
> > >> > > > >
> > >> > > > > MyNode:
> > >> > > > > requirements:
> > >> > > > > - my_requirement:
> > >> > > > > capability: tosca.capabilities.Container
> > >> > > > > relationship: MyRelationship
> > >> > > > >
> > >> > > > > topology_template:
> > >> > > > >
> > >> > > > > node_templates:
> > >> > > > > my_node:
> > >> > > > > type: MyNode
> > >> > > > > requirements:
> > >> > > > > - my_requirement:
> > >> > > > > relationship:
> > >> > > > > interfaces:
> > >> > > > > Configure:
> > >> > > > > add_target:
> > >> > > > > inputs:
> > >> > > > > my_input: test
> > >> > > > >
> > >> > > > > The above gave me this exception:
> > >> > > > >
> > >> > > > > AttributeError: 'NoneType' object has no attribute '_name'
> > >> > > > > File "/home/emblemparade/ariatosca/aria/parser/consumption/
> > >> > > > consumer.py",
> > >> > > > > line 73, in consume
> > >> > > > > consumer.consume()
> > >> > > > > File "/home/emblemparade/ariatosca/aria/parser/consumption/
> > >> > > > modeling.py",
> > >> > > > > line 36, in consume
> > >> > > > > self.context.presentation.presenter._get_model(self.
> > context)
> > >> > > > > File "/home/emblemparade/ariatosca/aria/utils/caching.py",
> > line
> > >> > 84,
> > >> > > in
> > >> > > > > __call__
> > >> > > > > return_value = self.func(*args, **kwargs)
> > >> > > > > File
> > >> > > > > "/home/emblemparade/ariatosca/extensions/aria_extension_
> > >> > > > > tosca/simple_v1_0/presenter.py",
> > >> > > > > line 82, in _get_model
> > >> > > > > return create_service_template_model(context)
> > >> > > > > File
> > >> > > > > "/home/emblemparade/ariatosca/extensions/aria_extension_
> > >> > > > > tosca/simple_v1_0/modeling/__init__.py",
> > >> > > > > line 123, in create_service_template_model
> > >> > > > > fix_node_template_model(context, model, node_template)
> > >> > > > > File
> > >> > > > > "/home/emblemparade/ariatosca/extensions/aria_extension_
> > >> > > > > tosca/simple_v1_0/modeling/__init__.py",
> > >> > > > > line 209, in fix_node_template_model
> > >> > > > > requirement))
> > >> > > > > File
> > >> > > > > "/home/emblemparade/ariatosca/extensions/aria_extension_
> > >> > > > > tosca/simple_v1_0/modeling/__init__.py",
> > >> > > > > line 293, in create_requirement_template_model
> > >> > > > > create_relationship_template_model(context,
> > service_template,
> > >> > > > > relationship)
> > >> > > > > File
> > >> > > > > "/home/emblemparade/ariatosca/extensions/aria_extension_
> > >> > > > > tosca/simple_v1_0/modeling/__init__.py",
> > >> > > > > line 318, in create_relationship_template_model
> > >> > > > > relationship.interfaces)
> > >> > > > > File
> > >> > > > > "/home/emblemparade/ariatosca/extensions/aria_extension_
> > >> > > > > tosca/simple_v1_0/modeling/__init__.py",
> > >> > > > > line 621, in create_interface_template_models
> > >> > > > > interface = create_interface_template_model(context,
> > >> > > > service_template,
> > >> > > > > interface)
> > >> > > > > File
> > >> > > > > "/home/emblemparade/ariatosca/extensions/aria_extension_
> > >> > > > > tosca/simple_v1_0/modeling/__init__.py",
> > >> > > > > line 354, in create_interface_template_model
> > >> > > > > interface_type =
> > >> > > > > service_template.interface_types.get_descendant(
> > >> > interface_type._name)
> > >> > > > > Validation issues:
> > >> > > > > 0: 'NoneType' object has no attribute '_name'
> > >> > > > > AttributeError: 'NoneType' object has no attribute
> '_name'
> > >> > > > >
> > >> > > > >
> > >> > > > > On Fri, Aug 25, 2017 at 3:28 PM, DeWayne Filppi <
> > >> [email protected]
> > >> > >
> > >> > > > > wrote:
> > >> > > > >
> > >> > > > > > tosca_definitions_version: tosca_simple_yaml_1_0
> > >> > > > > >
> > >> > > > > > imports:
> > >> > > > > > -
> > >> > > > > > https://raw.githubusercontent.com/cloudify-cosmo/aria-
> > >> > > > > > extension-cloudify/master/plugins/openstack/plugin.yaml
> > >> > > > > > - aria-1.0
> > >> > > > > >
> > >> > > > > > dsl_definitions:
> > >> > > > > > openstack_config: &openstack_config
> > >> > > > > > username:
> > >> > > > > > password:
> > >> > > > > > tenant_name:
> > >> > > > > > auth_url:
> > >> > > > > >
> > >> > > > > > topology_template:
> > >> > > > > >
> > >> > > > > > node_templates:
> > >> > > > > >
> > >> > > > > > router:
> > >> > > > > > type: aria.openstack.nodes.Router
> > >> > > > > > properties:
> > >> > > > > > external_network: gateway_net
> > >> > > > > > create_if_missing: true
> > >> > > > > > resource_id: aria_helloworld_rtr
> > >> > > > > > interfaces:
> > >> > > > > > Standard:
> > >> > > > > > create:
> > >> > > > > > inputs:
> > >> > > > > > openstack_config: *openstack_config
> > >> > > > > >
> > >> > > > > > network:
> > >> > > > > > type: aria.openstack.nodes.Network
> > >> > > > > > properties:
> > >> > > > > > resource_id: aria_helloworld_network
> > >> > > > > > create_if_missing: true
> > >> > > > > > interfaces:
> > >> > > > > > Standard:
> > >> > > > > > create:
> > >> > > > > > inputs:
> > >> > > > > > openstack_config: *openstack_config
> > >> > > > > >
> > >> > > > > > subnet:
> > >> > > > > > type: aria.openstack.nodes.Subnet
> > >> > > > > > properties:
> > >> > > > > > resource_id: aria_helloworld_subnet
> > >> > > > > > create_if_missing: true
> > >> > > > > > interfaces:
> > >> > > > > > Standard:
> > >> > > > > > create:
> > >> > > > > > inputs:
> > >> > > > > > openstack_config: *openstack_config
> > >> > > > > > requirements:
> > >> > > > > > - router:
> > >> > > > > > node: router
> > >> > > > > > relationship:
> > >> > > > > > type: aria.openstack.subnet_
> connected_to_router
> > >> > > > > > interfaces:
> > >> > > > > > Configure:
> > >> > > > > > add_target:
> > >> > > > > > inputs:
> > >> > > > > > openstack_config: *openstack_config
> > >> > > > > > - network: network
> > >> > > > > >
> > >> > > > > > Dies in add_target of subnet_connected_to_router because
> > default
> > >> > > > (empty)
> > >> > > > > > openstack_config input being used rather than the
> override. I
> > >> > didn't
> > >> > > > put
> > >> > > > > > the "implementation" line in because doing so has no effect.
> > >> > > > > >
> > >> > > > > >
> > >> > > > > >
> > >> > > > > > On Fri, Aug 25, 2017 at 1:03 PM, Tal Liron <[email protected]
> >
> > >> > wrote:
> > >> > > > > >
> > >> > > > > > > Could you create a minimal YAML file that demonstrates
> this
> > >> > problem
> > >> > > > so
> > >> > > > > we
> > >> > > > > > > can reproduce it? It could be a bug.
> > >> > > > > > >
> > >> > > > > > > On Fri, Aug 25, 2017 at 2:48 PM, DeWayne Filppi <
> > >> > > [email protected]
> > >> > > > >
> > >> > > > > > > wrote:
> > >> > > > > > >
> > >> > > > > > > > I don't know if this is a clue or not, but I modified
> the
> > >> > > > > > > > relationship: aria.openstack.subnet_
> connected_to_router,
> > >> in
> > >> > the
> > >> > > > > aria
> > >> > > > > > > > openstack plugin.yaml to require the 'openstack_config'
> > >> input
> > >> > for
> > >> > > > the
> > >> > > > > > > > Configure.add_target operation (and got rid of the
> > default).
> > >> > > > > > Afterwards,
> > >> > > > > > > > any attempt to validate this:
> > >> > > > > > > >
> > >> > > > > > > > subnet:
> > >> > > > > > > > type: aria.openstack.nodes.Subnet
> > >> > > > > > > > properties:
> > >> > > > > > > > resource_id: aria_helloworld_subnet
> > >> > > > > > > > create_if_missing: true
> > >> > > > > > > > interfaces:
> > >> > > > > > > > Standard:
> > >> > > > > > > > create:
> > >> > > > > > > > inputs:
> > >> > > > > > > > openstack_config: { get_input:
> > >> openstack_config }
> > >> > > > > > > > requirements:
> > >> > > > > > > > - router:
> > >> > > > > > > > node: router
> > >> > > > > > > > relationship:
> > >> > > > > > > > type: aria.openstack.subnet_connecte
> > >> d_to_router
> > >> > > > > > > > interfaces:
> > >> > > > > > > > Configure:
> > >> > > > > > > > add_target:
> > >> > > > > > > > inputs:
> > >> > > > > > > > openstack_config: { get_input:
> > >> > > > > openstack_config }
> > >> > > > > > > >
> > >> > > > > > > > Fails with the error : Validation issues:
> > >> > > > > > > > 4: interface definition "Configure" does not assign a
> > >> value
> > >> > to
> > >> > > a
> > >> > > > > > > required
> > >> > > > > > > > operation input "add_target.openstack_config" in
> > >> "relationship"
> > >> > > > > > > >
> > >> > > > > > > > Which is further confirmation that the input isn't seen,
> > and
> > >> > > > normally
> > >> > > > > > the
> > >> > > > > > > > default gets used (empty strings). I don't see examples
> > >> > anywhere
> > >> > > > > that
> > >> > > > > > > show
> > >> > > > > > > > how to properly override the interface inside a
> > relationship
> > >> > > > inside a
> > >> > > > > > > > requirement.
> > >> > > > > > > >
> > >> > > > > > > >
> > >> > > > > > > > On Fri, Aug 25, 2017 at 10:57 AM, Tal Liron <
> > >> [email protected]>
> > >> > > > wrote:
> > >> > > > > > > >
> > >> > > > > > > > > "implementation" is a required field in the TOSCA
> spec,
> > so
> > >> > you
> > >> > > > must
> > >> > > > > > > > specify
> > >> > > > > > > > > it even if it is the same.
> > >> > > > > > > > >
> > >> > > > > > > > > On Fri, Aug 25, 2017 at 12:47 PM, DeWayne Filppi <
> > >> > > > > > [email protected]>
> > >> > > > > > > > > wrote:
> > >> > > > > > > > >
> > >> > > > > > > > > > It appears that this issue *was* fixed by repeating
> > the
> > >> > > > > > > implementation
> > >> > > > > > > > > key
> > >> > > > > > > > > > in the add_target block. Intuitively, I would
> expect
> > >> that
> > >> > > > > fields I
> > >> > > > > > > > > didn't
> > >> > > > > > > > > > override would be untouched, but apparently not.
> > >> > > > > > > > > >
> > >> > > > > > > > > > On Thu, Aug 24, 2017 at 4:59 PM, Tal Liron <
> > >> > [email protected]>
> > >> > > > > > wrote:
> > >> > > > > > > > > >
> > >> > > > > > > > > > > Did you read the wiki? ARIA will send those
> > specially
> > >> > > > formatted
> > >> > > > > > > > > > > dependencies as arguments to the @operation
> > function.
> > >> > > > > > > > > > >
> > >> > > > > > > > > > > It would help to see your complete example, as I
> > don't
> > >> > know
> > >> > > > > what
> > >> > > > > > > > you're
> > >> > > > > > > > > > > doing and not doing anymore. Could you throw it
> > into a
> > >> > > GitHub
> > >> > > > > > repo
> > >> > > > > > > > > > perhaps?
> > >> > > > > > > > > > >
> > >> > > > > > > > > > > On Thu, Aug 24, 2017 at 6:53 PM, DeWayne Filppi <
> > >> > > > > > > [email protected]
> > >> > > > > > > > >
> > >> > > > > > > > > > > wrote:
> > >> > > > > > > > > > >
> > >> > > > > > > > > > > > 'dependencies' is a child of implementation in
> the
> > >> > spec.
> > >> > > > I
> > >> > > > > > > don't
> > >> > > > > > > > > > think
> > >> > > > > > > > > > > > it's going to do anything for me anyway. I just
> > >> want
> > >> > to
> > >> > > > pass
> > >> > > > > > > > > > > > openstack_config to the add_target operation as
> > >> inputs.
> > >> > > > > > > > > > > >
> > >> > > > > > > > > > > > On Thu, Aug 24, 2017 at 4:28 PM, Tal Liron <
> > >> > > > [email protected]>
> > >> > > > > > > > wrote:
> > >> > > > > > > > > > > >
> > >> > > > > > > > > > > > > What is the error?
> > >> > > > > > > > > > > > >
> > >> > > > > > > > > > > > > On Thu, Aug 24, 2017 at 6:22 PM, DeWayne
> Filppi
> > <
> > >> > > > > > > > > [email protected]
> > >> > > > > > > > > > >
> > >> > > > > > > > > > > > > wrote:
> > >> > > > > > > > > > > > >
> > >> > > > > > > > > > > > > > actually "dependencies" fails validation.
> > >> > > > > > > > > > > > > >
> > >> > > > > > > > > > > > > > On Thu, Aug 24, 2017 at 4:08 PM, Tal Liron <
> > >> > > > > > [email protected]>
> > >> > > > > > > > > > wrote:
> > >> > > > > > > > > > > > > >
> > >> > > > > > > > > > > > > > > Oops, sorry, this is the syntax:
> > >> > > > > > > > > > > > > > >
> > >> > > > > > > > > > > > > > > interfaces:
> > >> > > > > > > > > > > > > > > Configure:
> > >> > > > > > > > > > > > > > > add_target:
> > >> > > > > > > > > > > > > > > primary: my_script.sh
> > >> > > > > > > > > > > > > > > dependencies:
> > >> > > > > > > > > > > > > > > - "openstack_config > { get_input:
> > >> > > > > > openstack_config
> > >> > > > > > > > }"
> > >> > > > > > > > > > > > > > >
> > >> > > > > > > > > > > > > > > On Thu, Aug 24, 2017 at 6:00 PM, Tal
> Liron <
> > >> > > > > > > [email protected]>
> > >> > > > > > > > > > > wrote:
> > >> > > > > > > > > > > > > > >
> > >> > > > > > > > > > > > > > > > A few syntax problems:
> > >> > > > > > > > > > > > > > > >
> > >> > > > > > > > > > > > > > > > 1. It looks like you don't have any
> > >> operation
> > >> > > > > > > > implementation,
> > >> > > > > > > > > > > which
> > >> > > > > > > > > > > > > is
> > >> > > > > > > > > > > > > > a
> > >> > > > > > > > > > > > > > > > required field. (What do you expect the
> > >> inputs
> > >> > to
> > >> > > > be
> > >> > > > > > sent
> > >> > > > > > > > > to?)
> > >> > > > > > > > > > > > > > > > 2. Also, you are not naming the input.
> It
> > >> > should
> > >> > > be
> > >> > > > > > > > "inputs:
> > >> > > > > > > > > {
> > >> > > > > > > > > > > > > > > > my_input_name: { get_input:
> > >> openstack_config }
> > >> > }"
> > >> > > > > > > > > > > > > > > > 3. But #2 won't work because you can't
> > just
> > >> add
> > >> > > > > inputs
> > >> > > > > > in
> > >> > > > > > > > > this
> > >> > > > > > > > > > > > case,
> > >> > > > > > > > > > > > > > > > because they are not declared at the
> > >> interface
> > >> > > > type.
> > >> > > > > > > > > > > > > > > >
> > >> > > > > > > > > > > > > > > > Assuming you do have an implementation,
> > you
> > >> > could
> > >> > > > you
> > >> > > > > > try
> > >> > > > > > > > > > passing
> > >> > > > > > > > > > > > it
> > >> > > > > > > > > > > > > > > using
> > >> > > > > > > > > > > > > > > > execution configuration:
> > >> > > > > > > > > > > > > > > >
> > >> > > > > > > > > > > > > > > > https://cwiki.apache.org/
> > >> > > > > confluence/display/ARIATOSCA/
> > >> > > > > > > > > > > > > > > > Execution+Configuration
> > >> > > > > > > > > > > > > > > >
> > >> > > > > > > > > > > > > > > > Try something like this:
> > >> > > > > > > > > > > > > > > >
> > >> > > > > > > > > > > > > > > > interfaces:
> > >> > > > > > > > > > > > > > > > Configure:
> > >> > > > > > > > > > > > > > > > add_target:
> > >> > > > > > > > > > > > > > > > primary: my_script.sh
> > >> > > > > > > > > > > > > > > > dependencies:
> > >> > > > > > > > > > > > > > > > - openstack_config: { get_input:
> > >> > > > > > > openstack_config }
> > >> > > > > > > > > > > > > > > >
> > >> > > > > > > > > > > > > > > > On Thu, Aug 24, 2017 at 5:49 PM, DeWayne
> > >> > Filppi <
> > >> > > > > > > > > > > > [email protected]
> > >> > > > > > > > > > > > > >
> > >> > > > > > > > > > > > > > > > wrote:
> > >> > > > > > > > > > > > > > > >
> > >> > > > > > > > > > > > > > > >> In the ARIA usage of the plugin, I need
> > to
> > >> > pass
> > >> > > > > > > > > > openstack_config
> > >> > > > > > > > > > > > > > > >> explicitly
> > >> > > > > > > > > > > > > > > >> to every operation. Since the
> > >> relationships
> > >> > are
> > >> > > > > > > implicit,
> > >> > > > > > > > > how
> > >> > > > > > > > > > > do
> > >> > > > > > > > > > > > I
> > >> > > > > > > > > > > > > > > >> accomplish this? Currently I get
> errors
> > >> when
> > >> > > > trying
> > >> > > > > > to
> > >> > > > > > > > > > connect
> > >> > > > > > > > > > > a
> > >> > > > > > > > > > > > > > subnet
> > >> > > > > > > > > > > > > > > >> to
> > >> > > > > > > > > > > > > > > >> a router. I've tried overriding the
> > >> > > relationship
> > >> > > > > > like
> > >> > > > > > > > so:
> > >> > > > > > > > > > > > > > > >>
> > >> > > > > > > > > > > > > > > >> subnet:
> > >> > > > > > > > > > > > > > > >> type: aria.openstack.nodes.Subnet
> > >> > > > > > > > > > > > > > > >> properties:
> > >> > > > > > > > > > > > > > > >> resource_id:
> > aria_helloworld_subnet
> > >> > > > > > > > > > > > > > > >> create_if_missing: true
> > >> > > > > > > > > > > > > > > >> interfaces:
> > >> > > > > > > > > > > > > > > >> Standard:
> > >> > > > > > > > > > > > > > > >> create:
> > >> > > > > > > > > > > > > > > >> inputs:
> > >> > > > > > > > > > > > > > > >> openstack_config: {
> > >> get_input:
> > >> > > > > > > > > openstack_config
> > >> > > > > > > > > > }
> > >> > > > > > > > > > > > > > > >> requirements:
> > >> > > > > > > > > > > > > > > >> - router:
> > >> > > > > > > > > > > > > > > >> node: router
> > >> > > > > > > > > > > > > > > >> relationship:
> > >> > > > > > > > > > > > > > > >> type:
> > aria.openstack.subnet_
> > >> > > > > > > > > connected_to_router
> > >> > > > > > > > > > > > > > > >> interfaces:
> > >> > > > > > > > > > > > > > > >> Configure:
> > >> > > > > > > > > > > > > > > >> add_target:
> > >> > > > > > > > > > > > > > > >> inputs: {
> get_input:
> > >> > > > > > > openstack_config
> > >> > > > > > > > }
> > >> > > > > > > > > > > > > > > >> - network: network
> > >> > > > > > > > > > > > > > > >>
> > >> > > > > > > > > > > > > > > >> Note the router requirement. Does this
> > >> syntax
> > >> > > > look
> > >> > > > > > > > correct?
> > >> > > > > > > > > > > > > Spoiler:
> > >> > > > > > > > > > > > > > > >> openstack_config never makes it to the
> > >> plugin.
> > >> > > > > > > > > > > > > > > >>
> > >> > > > > > > > > > > > > > > >> DeWayne
> > >> > > > > > > > > > > > > > > >>
> > >> > > > > > > > > > > > > > > >
> > >> > > > > > > > > > > > > > > >
> > >> > > > > > > > > > > > > > >
> > >> > > > > > > > > > > > > >
> > >> > > > > > > > > > > > >
> > >> > > > > > > > > > > >
> > >> > > > > > > > > > >
> > >> > > > > > > > > >
> > >> > > > > > > > >
> > >> > > > > > > >
> > >> > > > > > >
> > >> > > > > >
> > >> > > > >
> > >> > > >
> > >> > >
> > >> >
> > >>
> > >
> > >
> >
>