<div dir="ltr">There is currently work being done to facilitate turning off the requirement of volumes on a per datastore basis.  I don't know the exact timeline but the first piece of that is called "Capabilities" and is near merged.<div>
<br></div><div>You can follow that PR here <a href="https://review.openstack.org/#/c/83503/">https://review.openstack.org/#/c/83503/</a></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jun 6, 2014 at 5:29 AM, Mark Kirkwood <span dir="ltr"><<a href="mailto:mark.kirkwood@catalyst.net.nz" target="_blank">mark.kirkwood@catalyst.net.nz</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On 06/06/14 16:13, Heinonen, Johanna (NSN - FI/Espoo) wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br><div class="">
I tried the option b mentioned below. Device_path = None seemed to have no effect but the exception.<u></u>LocalStorageNotSpecified(<u></u>flavor=flavor_id) was raised (/usr/lib/python2.7/dist-<u></u>packages/trove/instance/<u></u>models.py). The same effect was with value False. The only way I could proceed was to explicitly replace ephemeral_support to False in the code (models.py. line 630->):<br>

<br>
<br>
#            if ephemeral_support and flavor.ephemeral == 0:<br>
                 if False and flavor.ephemeral == 0:<br>
                 raise exception.<u></u>LocalStorageNotSpecified(<u></u>flavor=flavor_id)<br>
<br>
<br>
Now I am able to start trove instance - almost. I am using custom made image (no cloudinit) where I have installed trove-guestagent and database.<br>
Nova starts the VM and I am able to log in to it. I see that the guest-agent process is started and connected to AMQP server. However, the trove instance stays forever in the BUILD state. I guess that the reason is that the instance does not send the instance id in the heartbeat message (Instance ID is None in the log trace below). What is the way that guest-agent could learn the instance uuid of its own? Should it be injected to the instance somehow?<br>

<br>
<br>
<br>
2014-06-05 23:10:07.155 14445 DEBUG trove.openstack.common.rpc.<u></u>amqp [-] received {u'_context_domain': None, u'_context_request_id': u'req-22f10ab2-98cc-4932-b533-<u></u>68c9d0633a18', u'args': {u'instance_id': None, u'payload': {u'service_status': u'running'}, u'sent': 1401988196.1104}, u'_context_read_only': False, u'_unique_id': u'<u></u>f082fab2d9c241cea5b776a84eeb73<u></u>20', u'_context_user_identity': u'admin - - - -', u'_context_show_deleted': False, u'_context_tenant': None, u'_context_auth_token': '<SANITIZED>', u'_context_project_domain': None, u'_context_is_admin': False, u'version': u'1.0', u'_context_marker': None, u'_context_instance_uuid': None, u'_context_user': u'admin', u'_context_user_domain': None, u'namespace': None, u'method': u'heartbeat', u'_context_limit': None} _safe_log /usr/lib/python2.7/dist-<u></u>packages/trove/openstack/<u></u>common/rpc/common.py:280<br>

2014-06-05 23:10:07.156 14445 DEBUG trove.openstack.common.rpc.<u></u>amqp [-] unpacked context: {'instance_uuid': None, 'read_only': False, 'domain': None, 'show_deleted': False, 'user_identity': u'admin - - - -', 'project_domain': None, 'auth_token': '<SANITIZED>', 'is_admin': False, 'user': u'admin', 'request_id': u'req-22f10ab2-98cc-4932-b533-<u></u>68c9d0633a18', 'marker': None, 'limit': None, 'user_domain': None, 'tenant': None} _safe_log /usr/lib/python2.7/dist-<u></u>packages/trove/openstack/<u></u>common/rpc/common.py:280<br>

2014-06-05 23:10:07.157 14445 DEBUG trove.conductor.manager [req-22f10ab2-98cc-4932-b533-<u></u>68c9d0633a18 admin - - - -] Instance ID: None heartbeat /usr/lib/python2.7/dist-<u></u>packages/trove/conductor/<u></u>manager.py:76<br>

2014-06-05 23:10:07.158 14445 DEBUG trove.conductor.manager [req-22f10ab2-98cc-4932-b533-<u></u>68c9d0633a18 admin - - - -] Payload: {u'service_status': u'running'} heartbeat /usr/lib/python2.7/dist-<u></u>packages/trove/conductor/<u></u>manager.py:77<br>

2014-06-05 23:10:07.161 14445 ERROR trove.openstack.common.rpc.<u></u>amqp [req-22f10ab2-98cc-4932-b533-<u></u>68c9d0633a18 admin - - - -] Exception during message handling<br>
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.<u></u>amqp Traceback (most recent call last):<br>
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.<u></u>amqp   File "/usr/lib/python2.7/dist-<u></u>packages/trove/openstack/<u></u>common/rpc/amqp.py", line 440, in _process_data<br>
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.<u></u>amqp     **args)<br>
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.<u></u>amqp   File "/usr/lib/python2.7/dist-<u></u>packages/trove/openstack/<u></u>common/rpc/dispatcher.py", line 172, in dispatch<br>
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.<u></u>amqp     result = getattr(proxyobj, method)(ctxt, **kwargs)<br>
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.<u></u>amqp   File "/usr/lib/python2.7/dist-<u></u>packages/trove/conductor/<u></u>manager.py", line 79, in heartbeat<br>
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.<u></u>amqp     instance_id=instance_id)<br>
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.<u></u>amqp   File "/usr/lib/python2.7/dist-<u></u>packages/trove/db/models.py", line 99, in find_by<br>
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.<u></u>amqp     cls.__name__)<br>
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.<u></u>amqp ModelNotFoundError: InstanceServiceStatus Not Found<br>
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.<u></u>amqp<br>
<br>
I am using the ubuntu1404 trove packages.<br>
<br>
</div></blockquote>
<br>
Yeah - just tried this out myself with similar results. Looks like things are setup to require cinder support.<br>
<br>
Now with regard to the ModelNotFoundError: InstanceServiceStatus you are seeing - this is probably because the file injection of /etc/guest_info is failing. This is vital as typical contents of this file are:<br>
<br>
[DEFAULT]<br>
guest_id=ddd97300-5976-4c41-<u></u>89b8-1d886cc4b531in<br>
datastore_manager=mysql<br>
tenant_id=<u></u>a9d3f1c6c7984856985b99a8185ece<u></u>12<br>
<br>
i.e in particular the guest uuid.<br>
<br>
I struggled with making sure that this file was injected successfully, and it seems that requiring a config drive in Nova is essential - e.g:<br>
<br>
$ sudo vi /etc/nova/nova-compute.conf<br>
[DEFAULT]<br>
compute_driver = libvirt.LibvirtDriver<br>
force_config_drive = always<br>
<br>
Also you need to check that the guest init for guestagent looks at this file e.g:<br>
(guest) $ cat /etc/init/trove-guestagent.<u></u>conf<br>
description "Trove Guest Agent"<br>
author "Thomas Goirand <<a href="mailto:zigo@debian.org" target="_blank">zigo@debian.org</a>>"<br>
<br>
start on runlevel [2345]<br>
stop on runlevel [!2345]<br>
<br>
respawn<br>
<br>
exec start-stop-daemon --start --chuid trove:trove \<br>
            --chdir /var/lib/trove --name trove-guestagent \<br>
            --exec /usr/bin/trove-guestagent -- --config-file=/etc/guest_info --config-file=/etc/trove/<u></u>trove-guestagent.conf --log-dir=/var/log/trove --logfile=guestagent.log<br>
<br>
<br>
Best wishes<div class="HOEnZb"><div class="h5"><br>
<br>
Mark<br>
<br>
______________________________<u></u>_________________<br>
Mailing list: <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" target="_blank">http://lists.openstack.org/<u></u>cgi-bin/mailman/listinfo/<u></u>openstack</a><br>
Post to     : <a href="mailto:openstack@lists.openstack.org" target="_blank">openstack@lists.openstack.org</a><br>
Unsubscribe : <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" target="_blank">http://lists.openstack.org/<u></u>cgi-bin/mailman/listinfo/<u></u>openstack</a><br>
</div></div></blockquote></div><br></div>