Got it. I created this JIRA issue for this:
https://issues.apache.org/jira/browse/ARIA-357


On Sat, Sep 2, 2017 at 7:00 PM, DeWayne Filppi <dewa...@cloudify.co> wrote:

> IMHO, ARIA needs to detect ( or attempt to detect ) such things, at least
> at install time if possible.
>
> On Sat, Sep 2, 2017 at 2:41 AM, Ran Ziv <r...@cloudify.co> wrote:
>
> > You're right. The plugin itself does declare specific versions for the
> > novaclient:
> > https://github.com/cloudify-cosmo/cloudify-openstack-
> > plugin/blob/2.0.1/setup.py
> > Yet those might not be used if you already have these dependencies
> > installed in your environment.
> >
> > Supposedly, you want to work with ARIA on its own virtualenv (i.e. not
> have
> > Openstack clients installed there manually), since all plugins that get
> > installed are isolated from one another yet do take your general ARIA
> > environment into account as constraints. Otherwise, a plugin installation
> > might have messed something else you had installed in your environment.
> > See here:
> > https://github.com/apache/incubator-ariatosca/blob/0.1.
> > 1/aria/orchestrator/plugin.py#L155
> >
> > I'm not sure an issue for this should be created, or at least if we
> create
> > one it should probably be for information, rather than something that
> > requires fixing, I think.
> >
> > -
> > Re ARIA not having an API for removing plugins - yup, that's missing at
> > this time.
> >
> >
> >
> >
> >
> > On Fri, Sep 1, 2017 at 9:35 PM, DeWayne Filppi <dewa...@cloudify.co>
> > wrote:
> >
> > > So the problem was that recent versions of the python-novaclient do not
> > > have the expected properties.  Alas, the plugin install ignored the
> fact
> > > that I had a non-compliant version (the latest), and just installed as
> > > normal.  Maybe this needs to be an issue with the plugin installer?
> > >
> > > On Fri, Sep 1, 2017 at 9:31 AM, DeWayne Filppi <dewa...@cloudify.co>
> > > wrote:
> > >
> > > > Alas, no change:
> > > >
> > > > 04:05:57 | I | nova_plugin.server.create | {u'args': OrderedDict(),
> > > > u'openstack_config': {'username': 'dewayne', 'tenant_name':
> > > > 'dewayne-tenant', 'password': 'viBKwW4E', 'auth_url': '
> > > > https://rackspace-api.gigaspaces.com:5000/v3'}} | EXCEPTION:
> 'Client'
> > > > object has no attribute 'images'
> > > >
> > > > Seems unrelated to ARIA.
> > > >
> > > >
> > > > On Fri, Sep 1, 2017 at 2:28 AM, Ran Ziv <r...@cloudify.co> wrote:
> > > >
> > > >> Shouldn't the Nova client actually have an "images" attribute?
> > > >>
> > > >> The plugin was tested in its 2.0.1 version, as can be seen on the
> > README
> > > >> here:
> > > >> https://github.com/cloudify-cosmo/aria-extension-cloudify
> > > >>
> > > >> Here's the plugin code diff between now (~2.2.0) and then:
> > > >> https://github.com/cloudify-cosmo/cloudify-openstack-plugin/
> > > >> compare/2.0.1-devel...master
> > > >>
> > > >> Can't really say I see anything that would cause this, but perhaps
> you
> > > >> should indeed try working with a 2.0.1 wagon.
> > > >> If that works let us know and we could possibly amend the plugin
> > adapter
> > > >> if
> > > >> needed.
> > > >>
> > > >>
> > > >>
> > > >> On Fri, Sep 1, 2017 at 5:41 AM, DeWayne Filppi <dewa...@cloudify.co
> >
> > > >> wrote:
> > > >>
> > > >> > I dug down quite a bit, and see that in
> > openstack_plugin_common.__init
> > > >> __
> > > >> > in
> > > >> > the cosmo_list method of the NovaClientWithSugar class, I wrapped
> a
> > > >> call to
> > > >> > getattr with a try:except and see.
> > > >> >
> > > >> > 02:22:47 | I | nova_plugin.server.create | {u'args':
> OrderedDict(),
> > > >> > u'openstack_config': {'username': 'dewayne', 'tenant_name':
> > > >> > 'dewayne-tenant', 'password': 'viBKwW4E', 'auth_url': '
> > > >> > https://rackspace-api.gigaspaces.com:5000/v3'}} |
> > > >> COSMO_EXCEPTION='Client'
> > > >> > object has no attribute 'images'
> > > >> >
> > > >> > Maybe somebody who wrote this logic can help. Basically, the logic
> > > take
> > > >> the
> > > >> > 'image' property, makes it plural, and then tries to find it in
> the
> > > >> client
> > > >> > class.  It doesn't find it and it blows up.  Maybe I've got a bad
> > > >> version
> > > >> > of the openstack plugin:  2.2.0
> > > >> >
> > > >> >
> > > >> > On Thu, Aug 31, 2017 at 12:53 AM, Ran Ziv <r...@cloudify.co>
> wrote:
> > > >> >
> > > >> > > Is this everything?
> > > >> > > It seems like this never reached the actual API call telling
> Nova
> > to
> > > >> > create
> > > >> > > a server, but rather failed in the section where image/flavor,
> > > >> keypair,
> > > >> > > security groups and nics are configured for the server
> > > >> > > ( see
> > > >> > > https://github.com/cloudify-cosmo/cloudify-openstack-
> > > >> > > plugin/blob/master/nova_plugin/server.py#L282
> > > >> > > )
> > > >> > >
> > > >> > > Unfortunately it seems like the trace from the plugin code
> hasn't
> > > >> reached
> > > >> > > the execution logs somehow (possibly something we've missed in
> the
> > > >> plugin
> > > >> > > adapter?), so I can't really say what's the exact problem.
> > > >> > > It should be fairly simple to debug though - the plugin code
> > should
> > > be
> > > >> > > extracted inside your ~/.aria/plugins dir, so you can easily
> debug
> > > the
> > > >> > > plugin code while it's running and find the real problem as it
> > > >> happens.
> > > >> > >
> > > >> > >
> > > >> > > On Wed, Aug 30, 2017 at 7:28 PM, DeWayne Filppi <
> > > dewa...@cloudify.co>
> > > >> > > wrote:
> > > >> > >
> > > >> > > > The log:
> > > >> > > >
> > > >> > > > Starting execution. Press Ctrl+C cancel
> > > >> > > > 16:13:43 | I | neutron_plugin.router.create | {u'args':
> > > >> OrderedDict(),
> > > >> > > > u'openstack_config': {'username': 'dewayne', 'tenant_name':
> > > >> > > > 'dewayne-tenant', 'password': 'xxxxxxx', 'auth_url': '
> > > >> > > > https://rackspace-api.gigaspaces.com:5000/v3'}} | router_1
> > > >> > > Standard.create
> > > >> > > > started...
> > > >> > > > 16:13:44 | I | neutron_plugin.network.create | {u'args':
> > > >> OrderedDict(),
> > > >> > > > u'openstack_config': {'username': 'dewayne', 'tenant_name':
> > > >> > > > 'dewayne-tenant', 'password': 'xxxxxxx', 'auth_url': '
> > > >> > > > https://rackspace-api.gigaspaces.com:5000/v3'}} | network_1
> > > >> > > > Standard.create
> > > >> > > > started...
> > > >> > > > 16:13:44 | I | nova_plugin.keypair.create | {u'args':
> > > OrderedDict(),
> > > >> > > > u'openstack_config': {'username': 'dewayne', 'tenant_name':
> > > >> > > > 'dewayne-tenant', 'password': 'xxxxxxx', 'auth_url': '
> > > >> > > > https://rackspace-api.gigaspaces.com:5000/v3'}} | keypair_1
> > > >> > > > Standard.create
> > > >> > > > started...
> > > >> > > > 16:13:51 | I | neutron_plugin.network.create | {u'args':
> > > >> OrderedDict(),
> > > >> > > > u'openstack_config': {'username': 'dewayne', 'tenant_name':
> > > >> > > > 'dewayne-tenant', 'password': 'xxxxxxx', 'auth_url': '
> > > >> > > > https://rackspace-api.gigaspaces.com:5000/v3'}} | network_1
> > > >> > > > Standard.create
> > > >> > > > successful
> > > >> > > > 16:13:51 | D | None | {} | network_1 Standard.configure has no
> > > >> > > > implementation
> > > >> > > > 16:13:51 | D | None | {} | network_1 Standard.start has no
> > > >> > implementation
> > > >> > > > 16:13:52 | I | nova_plugin.keypair.create | {u'args':
> > > OrderedDict(),
> > > >> > > > u'openstack_config': {'username': 'dewayne', 'tenant_name':
> > > >> > > > 'dewayne-tenant', 'password': 'xxxxxxx', 'auth_url': '
> > > >> > > > https://rackspace-api.gigaspaces.com:5000/v3'}} | Using
> > external
> > > >> > > resource
> > > >> > > > keypair: dfilppi-rs
> > > >> > > > 16:13:52 | I | nova_plugin.keypair.create | {u'args':
> > > OrderedDict(),
> > > >> > > > u'openstack_config': {'username': 'dewayne', 'tenant_name':
> > > >> > > > 'dewayne-tenant', 'password': 'xxxxxxx', 'auth_url': '
> > > >> > > > https://rackspace-api.gigaspaces.com:5000/v3'}} | keypair_1
> > > >> > > > Standard.create
> > > >> > > > successful
> > > >> > > > 16:13:52 | I | neutron_plugin.router.create | {u'args':
> > > >> OrderedDict(),
> > > >> > > > u'openstack_config': {'username': 'dewayne', 'tenant_name':
> > > >> > > > 'dewayne-tenant', 'password': 'xxxxxxx', 'auth_url': '
> > > >> > > > https://rackspace-api.gigaspaces.com:5000/v3'}} | router_1
> > > >> > > Standard.create
> > > >> > > > successful
> > > >> > > > 16:13:53 | D | None | {} | router_1 Standard.configure has no
> > > >> > > > implementation
> > > >> > > > 16:13:53 | D | None | {} | keypair_1 Standard.configure has no
> > > >> > > > implementation
> > > >> > > > 16:13:53 | D | None | {} | router_1 Standard.start has no
> > > >> > implementation
> > > >> > > > 16:13:54 | D | None | {} | keypair_1 Standard.start has no
> > > >> > implementation
> > > >> > > > 16:13:57 | I | neutron_plugin.subnet.create | {u'args':
> > > >> > > > OrderedDict([('cidr', u'172.16.0.0/16'), ('ip_version', 4)]),
> > > >> > > > u'openstack_config': {'username': 'dewayne', 'tenant_name':
> > > >> > > > 'dewayne-tenant', 'password': 'xxxxxxx', 'auth_url': '
> > > >> > > > https://rackspace-api.gigaspaces.com:5000/v3'}} | subnet_1
> > > >> > > Standard.create
> > > >> > > > started...
> > > >> > > > 16:14:02 | I | neutron_plugin.subnet.create | {u'args':
> > > >> > > > OrderedDict([('cidr', u'172.16.0.0/16'), ('ip_version', 4)]),
> > > >> > > > u'openstack_config': {'username': 'dewayne', 'tenant_name':
> > > >> > > > 'dewayne-tenant', 'password': 'xxxxxxx', 'auth_url': '
> > > >> > > > https://rackspace-api.gigaspaces.com:5000/v3'}} | subnet_1
> > > >> > > Standard.create
> > > >> > > > successful
> > > >> > > > 16:14:02 | D | None | {} | subnet_1->router_1
> > > >> > > > Configure.pre_configure_target has no implementation
> > > >> > > > 16:14:02 | D | None | {} | subnet_1->router_1
> > > >> > > > Configure.pre_configure_source has no implementation
> > > >> > > > 16:14:03 | D | None | {} | subnet_1 Standard.configure has no
> > > >> > > > implementation
> > > >> > > > 16:14:04 | D | None | {} | subnet_1->router_1
> > > >> > > > Configure.post_configure_source has no implementation
> > > >> > > > 16:14:04 | D | None | {} | subnet_1->router_1
> > > >> > > > Configure.post_configure_target has no implementation
> > > >> > > > 16:14:04 | D | None | {} | subnet_1 Standard.start has no
> > > >> > implementation
> > > >> > > > 16:14:05 | D | None | {} | subnet_1->router_1
> > Configure.add_source
> > > >> has
> > > >> > no
> > > >> > > > implementation
> > > >> > > > 16:14:07 | I | neutron_plugin.router.connect_subnet |
> > > >> > > > {u'openstack_config':
> > > >> > > > {'username': 'dewayne', 'tenant_name': 'dewayne-tenant',
> > > 'password':
> > > >> > > > 'xxxxxxx', 'auth_url': 'https://rackspace-api.gigaspa
> > > >> ces.com:5000/v3'
> > > >> > }}
> > > >> > > |
> > > >> > > > subnet_1->router_1 Configure.add_target started...
> > > >> > > > 16:14:12 | I | neutron_plugin.router.connect_subnet |
> > > >> > > > {u'openstack_config':
> > > >> > > > {'username': 'dewayne', 'tenant_name': 'dewayne-tenant',
> > > 'password':
> > > >> > > > 'xxxxxxx', 'auth_url': 'https://rackspace-api.gigaspa
> > > >> ces.com:5000/v3'
> > > >> > }}
> > > >> > > |
> > > >> > > > subnet_1->router_1 Configure.add_target successful
> > > >> > > > 16:14:15 | I | neutron_plugin.port.create | {u'args':
> > > OrderedDict(),
> > > >> > > > u'openstack_config': {'username': 'dewayne', 'tenant_name':
> > > >> > > > 'dewayne-tenant', 'password': 'xxxxxxx', 'auth_url': '
> > > >> > > > https://rackspace-api.gigaspaces.com:5000/v3'}} | port_1
> > > >> > Standard.create
> > > >> > > > started...
> > > >> > > > 16:14:20 | I | neutron_plugin.port.create | {u'args':
> > > OrderedDict(),
> > > >> > > > u'openstack_config': {'username': 'dewayne', 'tenant_name':
> > > >> > > > 'dewayne-tenant', 'password': 'xxxxxxx', 'auth_url': '
> > > >> > > > https://rackspace-api.gigaspaces.com:5000/v3'}} | port_1
> > > >> > Standard.create
> > > >> > > > successful
> > > >> > > > 16:14:21 | D | None | {} | port_1->subnet_1
> > > >> > > Configure.pre_configure_target
> > > >> > > > has no implementation
> > > >> > > > 16:14:21 | D | None | {} | port_1->subnet_1
> > > >> > > Configure.pre_configure_source
> > > >> > > > has no implementation
> > > >> > > > 16:14:22 | D | None | {} | port_1 Standard.configure has no
> > > >> > > implementation
> > > >> > > > 16:14:22 | D | None | {} | port_1->subnet_1
> > > >> Configure.post_configure_
> > > >> > > > target
> > > >> > > > has no implementation
> > > >> > > > 16:14:22 | D | None | {} | port_1->subnet_1
> > > >> Configure.post_configure_
> > > >> > > > source
> > > >> > > > has no implementation
> > > >> > > > 16:14:23 | D | None | {} | port_1 Standard.start has no
> > > >> implementation
> > > >> > > > 16:14:23 | D | None | {} | port_1->subnet_1
> Configure.add_source
> > > >> has no
> > > >> > > > implementation
> > > >> > > > 16:14:23 | D | None | {} | port_1->subnet_1
> Configure.add_target
> > > >> has no
> > > >> > > > implementation
> > > >> > > > 16:14:29 | I | nova_plugin.server.create | {u'args':
> > > OrderedDict(),
> > > >> > > > u'openstack_config': {'username': 'dewayne', 'tenant_name':
> > > >> > > > 'dewayne-tenant', 'password': 'xxxxxxx', 'auth_url': '
> > > >> > > > https://rackspace-api.gigaspaces.com:5000/v3'}} | vm_1
> > > >> Standard.create
> > > >> > > > started...
> > > >> > > > 16:14:32 | D | nova_plugin.server.create | {u'args':
> > > OrderedDict(),
> > > >> > > > u'openstack_config': {'username': 'dewayne', 'tenant_name':
> > > >> > > > 'dewayne-tenant', 'password': 'xxxxxxx', 'auth_url': '
> > > >> > > > https://rackspace-api.gigaspaces.com:5000/v3'}} | Instance
> > > >> > relationship
> > > >> > > > target instances: [{u'external_name': u'dfilppi-rs',
> > > u'tosca_name':
> > > >> > > > u'keypair', u'state': u'initial', u'tosca_id': 'keypair_1',
> > > >> > > u'external_id':
> > > >> > > > u'dfilppi-rs', u'external_type': 'keypair'},
> {u'external_name':
> > > >> > > > u'aria_helloworld_port', u'tosca_name': u'port', u'state':
> > > >> u'initial',
> > > >> > > > u'fixed_ip_address': u'172.16.0.5', u'tosca_id': 'port_1',
> > > >> > > u'mac_address':
> > > >> > > > u'fa:16:3e:76:9b:5f', u'external_id':
> > > >> > > > u'044a027b-1cdc-441b-b3fa-953818668f02', u'external_type':
> > > 'port'}]
> > > >> > > > 16:14:32 | D | nova_plugin.server.create | {u'args':
> > > OrderedDict(),
> > > >> > > > u'openstack_config': {'username': 'dewayne', 'tenant_name':
> > > >> > > > 'dewayne-tenant', 'password': 'xxxxxxx', 'auth_url': '
> > > >> > > > https://rackspace-api.gigaspaces.com:5000/v3'}} |
> > server.create()
> > > >> > server
> > > >> > > > before transformations: {'meta': {}, 'name':
> > > u'aria_helloworld_vm'}
> > > >> > > > 16:14:32 | E | nova_plugin.server.create | {u'args':
> > > OrderedDict(),
> > > >> > > > u'openstack_config': {'username': 'dewayne', 'tenant_name':
> > > >> > > > 'dewayne-tenant', 'password': 'xxxxxxx', 'auth_url': '
> > > >> > > > https://rackspace-api.gigaspaces.com:5000/v3'}} | vm_1
> > > >> Standard.create
> > > >> > > > failed
> > > >> > > > |Traceback (most recent call last):
> > > >> > > > |  File
> > > >> > > > "/home/vagrant/incubator-ariatosca/aria/orchestrator/
> > > >> > > > workflows/executor/process.py",
> > > >> > > > line 342, in _main
> > > >> > > > |    task_func(ctx=ctx, **operation_arguments)
> > > >> > > > |  File
> > > >> > > > "/home/vagrant/venv/lib/python2.7/site-packages/
> > > >> > > > adapters/context_adapter.py",
> > > >> > > > line 434, in wrapper
> > > >> > > > |    ctx.task.retry(str(e), retry_interval=e.retry_after)
> > > >> > > > |  File "/usr/lib64/python2.7/contextlib.py", line 36, in
> > > __exit__
> > > >> > > > |    raise RuntimeError("generator didn't stop after throw()")
> > > >> > > > |RuntimeError: generator didn't stop after throw()
> > > >> > > >
> > > >> > > >
> > > >> > > > On Wed, Aug 30, 2017 at 4:52 AM, Ran Ziv <r...@cloudify.co>
> > wrote:
> > > >> > > >
> > > >> > > > > I can't really make sense of this error message.
> > > >> > > > > Could you copy paste the full execution logs when running
> with
> > > >> > "-vvv"?
> > > >> > > > >
> > > >> > > > > The "openstack_config" property/input should have nothing to
> > do
> > > >> with
> > > >> > > the
> > > >> > > > > image/flavor assignment - The former only affects the
> > Openstack
> > > >> > client
> > > >> > > > > configuration, while the latter is set for a specific API
> > call.
> > > >> > > > >
> > > >> > > > >
> > > >> > > > >
> > > >> > > > > On Wed, Aug 30, 2017 at 2:38 AM, DeWayne Filppi <
> > > >> dewa...@cloudify.co
> > > >> > >
> > > >> > > > > wrote:
> > > >> > > > >
> > > >> > > > > > Here's the latest issue.  Got through all the networking
> > > config
> > > >> in
> > > >> > my
> > > >> > > > > > template, but the server instance doesn't start.  Not sure
> > if
> > > >> this
> > > >> > is
> > > >> > > > an
> > > >> > > > > > Openstack plugin issue, or Aria..  From the error message,
> > it
> > > >> > appears
> > > >> > > > > that
> > > >> > > > > > the image id and flavor don't even get into the call.
> Note
> > > >> that I
> > > >> > > had
> > > >> > > > to
> > > >> > > > > > explicitly set "openstack_config" in the operation inputs:
> > > >> > > > > >
> > > >> > > > > > 23:32:42 | E | nova_plugin.server.create | {u'args':
> > > >> OrderedDict(),
> > > >> > > > > > u'openstack_config': {'username': 'dewayne',
> 'tenant_name':
> > > >> > > > > > 'dewayne-tenant', 'password': 'xxxxxx', 'auth_url': '
> > > >> > > > > > https://rackspace-api.gigaspaces.com:5000/v3'}} | vm_1
> > > >> > > Standard.create
> > > >> > > > > > failed
> > > >> > > > > >         |Traceback (most recent call last):
> > > >> > > > > >         |  File
> > > >> > > > > > "/home/vagrant/incubator-ariatosca/aria/orchestrator/
> > > >> > > > > > workflows/executor/process.py",
> > > >> > > > > > line 342, in _main
> > > >> > > > > >         |    task_func(ctx=ctx, **operation_arguments)
> > > >> > > > > >         |  File
> > > >> > > > > > "/home/vagrant/venv/lib/python2.7/site-packages/
> > > >> > > > > > adapters/context_adapter.py",
> > > >> > > > > > line 434, in wrapper
> > > >> > > > > >         |    ctx.task.retry(str(e),
> > > >> retry_interval=e.retry_after)
> > > >> > > > > >         |  File "/usr/lib64/python2.7/contextlib.py",
> line
> > > 36,
> > > >> in
> > > >> > > > > __exit__
> > > >> > > > > >         |    raise RuntimeError("generator didn't stop
> after
> > > >> > > throw()")
> > > >> > > > > >         |RuntimeError: generator didn't stop after throw()
> > > >> > > > > >
> > > >> > > > > > The node template:
> > > >> > > > > >
> > > >> > > > > >     vm:
> > > >> > > > > >       type: aria.openstack.nodes.Server
> > > >> > > > > >       properties:
> > > >> > > > > >         image: { get_input: image }
> > > >> > > > > >         flavor: { get_input: flavor }
> > > >> > > > > >         create_if_missing: true
> > > >> > > > > >         resource_id: aria_helloworld_vm
> > > >> > > > > >         management_network_name: aria_helloworld_network
> > > >> > > > > >       requirements:
> > > >> > > > > >         - key_pair: keypair
> > > >> > > > > >         - port: port
> > > >> > > > > >       interfaces:
> > > >> > > > > >         Standard:
> > > >> > > > > >           create:
> > > >> > > > > >             inputs:
> > > >> > > > > >               openstack_config: { get_input:
> > openstack_config
> > > }
> > > >> > > > > >
> > > >> > > > >
> > > >> > > >
> > > >> > >
> > > >> >
> > > >>
> > > >
> > > >
> > >
> >
>

Reply via email to