Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

DevStack Installation Error: Found no valid images to use!

Hi there,

I am trying to install DevStack using the kilo-eol tag on Ubuntu 16.04 (also tried on Ubuntu 14.04, same problem). The reason I am using the kilo-eol version is because I am trying to use a research project plugin for Nova that only supports Kilo.

Most of the installation runs fine, but I run into the error described in the question title:

2017-01-31 22:24:29.458 | ++ declare -a images
2017-01-31 22:24:29.458 | ++ is_service_enabled glance
2017-01-31 22:24:29.460 | ++ return 0
2017-01-31 22:24:29.461 | ++ read -r IMAGE_NAME IMAGE_UUID
2017-01-31 22:24:29.461 | +++ glance image-list --status=active
2017-01-31 22:24:29.461 | +++ awk '-F|' '!/^(+--)|ID|aki|ari/ { print $3,$2 }'
2017-01-31 22:24:30.386 | ++ case "${#images[*]}" in
2017-01-31 22:24:30.386 | ++ echo 'Found no valid images to use!'
2017-01-31 22:24:30.386 | Found no valid images to use!
2017-01-31 22:24:30.386 | ++ exit 1
2017-01-31 22:24:30.386 | + exit_trap
2017-01-31 22:24:30.386 | + local r=1
2017-01-31 22:24:30.386 | ++ jobs -p
2017-01-31 22:24:30.387 | + jobs=
2017-01-31 22:24:30.387 | + [[ -n '' ]]
2017-01-31 22:24:30.387 | + kill_spinner
2017-01-31 22:24:30.387 | + '[' '!' -z '' ']'
2017-01-31 22:24:30.387 | + [[ 1 -ne 0 ]]
2017-01-31 22:24:30.387 | + echo 'Error on exit'
2017-01-31 22:24:30.387 | Error on exit
2017-01-31 22:24:30.387 | + generate-subunit 1485895108 6362 fail
2017-01-31 22:24:30.636 | + [[ -z /opt/stack/logs ]]
2017-01-31 22:24:30.636 | + /home/stack/devstack/tools/worlddump.py -d /opt/stack/logs
2017-01-31 22:24:30.692 | + exit 1
stack@michael-XPS-15-ubuntu:~/devstack

I can see what is going wrong; Glance is being used to find active images, but there are none. There are none, because if I login to Horizon, and go to the Images page, I can see the three Cirros images, but they are stuck in "Queued" state indefinetly; as such they are not active.

Further back in the stack.sh output, I can see the glance calls to upload the Cirros images, and they return ok (with the image status "Queued" as well.

I took a look at the glance-api log in /opt/stack/logs/g-api.log, and indeed, I am seeing three blocks of errors; one for each of the three Cirros images I assume. It is a Python Resource Not Found exception, generated by a 404 response received by glance/common/client.py. Here is one of them, along with some other DEBUG messages before and after the exception - it is the same for each image:

2017-01-31 22:23:03.723 DEBUG keystoneclient.auth.identity.v3.base [-] Making authentication request to http://127.0.0.1:35357/v3/auth/tokens from (pid=29401) get_auth_ref /usr/local/lib/python2.7/dist-packages/keystoneclient/auth/identity/v3/base.py:171
2017-01-31 22:23:03.794 DEBUG keystoneclient.session [-] REQ: curl -g -i --cacert "/opt/stack/data/ca-bundle.pem" -X GET http://127.0.0.1:35357/ -H "Accept: application/json" -H "User-Agent: python-keystoneclient" from (pid=29401) _http_log_request /usr/local/lib/python2.7/dist-packages/keystoneclient/session.py:196
2017-01-31 22:23:03.796 DEBUG keystoneclient.session [-] RESP: [300] content-length: 589 vary: X-Auth-Token keep-alive: timeout=5, max=98 server: Apache/2.4.18 (Ubuntu) connection: Keep-Alive date: Tue, 31 Jan 2017 22:23:03 GMT content-type: application/json 
RESP BODY: {"versions": {"values": [{"status": "stable", "updated": "2015-03-30T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}], "id": "v3.4", "links": [{"href": "http://127.0.0.1:35357/v3/", "rel": "self"}]}, {"status": "stable", "updated": "2014-04-17T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v2.0+json"}], "id": "v2.0", "links": [{"href": "http://127.0.0.1:35357/v2.0/", "rel": "self"}, {"href": "http://docs.openstack.org/", "type": "text/html", "rel": "describedby"}]}]}}
 from (pid=29401) _http_log_response /usr/local/lib/python2.7/dist-packages/keystoneclient/session.py:2262017-01-31 22:23:03.797 DEBUG keystoneclient.session [-] REQ: curl -g -i --cacert "/opt/stack/data/ca-bundle.pem" -X GET http://127.0.0.1:35357/v3/auth/tokens -H "X-Subject-Token: {SHA1}213280db360d2b6ca27c6056df58b8e14dc413f0" -H "User-Agent: python-keystoneclient" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}86bddd423bac4566792c94754710785e090c9f52" from (pid=29401) _http_log_request /usr/local/lib/python2.7/dist-packages/keystoneclient/session.py:196
2017-01-31 22:23:03.831 DEBUG keystoneclient.session [-] RESP: [200] content-length: 4752 x-subject-token: {SHA1}213280db360d2b6ca27c6056df58b8e14dc413f0 vary: X-Auth-Token keep-alive: timeout=5, max=97 server: Apache/2.4.18 (Ubuntu) connection: Keep-Alive date: Tue, 31 Jan 2017 22:23:03 GMT content-type: application/json x-openstack-request-id: req-7b553ddd-367d-47b0-a6b2-b02820ce333f 
RESP BODY: {"token": {"methods": ["password", "token"], "roles": [{"id": "43c1688c8f6e41378dae7b8cb99438e2", "name": "admin"}], "expires_at": "2017-01-31T23:21:49.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "8f792f8fab8f42bd8ef33848ae67fe26", "name": "admin"}, "catalog": "<removed>", "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "7dc51272e7e54848b09ab3faa0a258ff", "name": "admin"}, "audit_ids": ["Y3VqKoiCTsO6cMixAJ2N3g"], "issued_at": "2017-01-31T22:21:50.004199"}}
 from (pid=29401) _http_log_response /usr/local/lib/python2.7/dist-packages/keystoneclient/session.py:226
2017-01-31 22:23:03.836 DEBUG oslo_policy.openstack.common.fileutils [req-307c4c75-6f70-4ea0-ab82-66d3a7b8afcd 7dc51272e7e54848b09ab3faa0a258ff 8f792f8fab8f42bd8ef33848ae67fe26] Reloading cached file /etc/glance/policy.json from (pid=29401) read_cached_file /usr/local/lib/python2.7/dist-packages/oslo_policy/openstack/common/fileutils.py:64
2017-01-31 22:23:03.836 DEBUG oslo_policy.policy [req-307c4c75-6f70-4ea0-ab82-66d3a7b8afcd 7dc51272e7e54848b09ab3faa0a258ff 8f792f8fab8f42bd8ef33848ae67fe26] Reloaded policy file: /etc/glance/policy.json from (pid=29401) _load_policy_file /usr/local/lib/python2.7/dist-packages/oslo_policy/policy.py:425
2017-01-31 22:23:03.837 DEBUG glance.common.client [req-307c4c75-6f70-4ea0-ab82-66d3a7b8afcd 7dc51272e7e54848b09ab3faa0a258ff 8f792f8fab8f42bd8ef33848ae67fe26] Constructed URL: http://0.0.0.0:9191/images/cirros-0.3.4-x86_64-uec-ramdisk from (pid=29401) _construct_url /opt/stack/glance/glance/common/client.py:401
 2017-01-31 22:23:03.995 ERROR glance.registry.client.v1.client [req-307c4c75-6f70-4ea0-ab82-66d3a7b8afcd 7dc51272e7e54848b09ab3faa0a258ff 8f792f8fab8f42bd8ef33848ae67fe26] Registry client request GET /images/cirros-0.3.4-x86_64-uec-ramdisk raised NotFound
    2017-01-31 22:23:03.995 TRACE glance.registry.client.v1.client Traceback (most recent call last):
    2017-01-31 22:23:03.995 TRACE glance.registry.client.v1.client   File "/opt/stack/glance/glance/registry/client/v1/client.py", line 117, in do_request
    2017-01-31 22:23:03.995 TRACE glance.registry.client.v1.client     **kwargs)
    2017-01-31 22:23:03.995 TRACE glance.registry.client.v1.client   File "/opt/stack/glance/glance/common/client.py", line 71, in wrapped
2017-01-31 22:23:03.995 TRACE glance.registry.client.v1.client     return func(self, *args, **kwargs)
2017-01-31 22:23:03.995 TRACE glance.registry.client.v1.client   File "/opt/stack/glance/glance/common/client.py", line 376, in do_request
2017-01-31 22:23:03.995 TRACE glance.registry.client.v1.client     headers=copy.deepcopy(headers))
2017-01-31 22:23:03.995 TRACE glance.registry.client.v1.client   File "/opt/stack/glance/glance/common/client.py", line 88, in wrapped
2017-01-31 22:23:03.995 TRACE glance.registry.client.v1.client     return func(self, method, url, body, headers)
2017-01-31 22:23:03.995 TRACE glance.registry.client.v1.client   File "/opt/stack/glance/glance/common/client.py", line 523, in _do_request
2017-01-31 22:23:03.995 TRACE glance.registry.client.v1.client     raise exception.NotFound(res.read())
2017-01-31 22:23:03.995 TRACE glance.registry.client.v1.client NotFound: 404 Not Found
2017-01-31 22:23:03.995 TRACE glance.registry.client.v1.client 
2017-01-31 22:23:03.995 TRACE glance.registry.client.v1.client The resource could not be found.
2017-01-31 22:23:03.995 TRACE glance.registry.client.v1.client 
2017-01-31 22:23:03.995 TRACE glance.registry.client.v1.client    
2017-01-31 22:23:03.995 TRACE glance.registry.client.v1.client 
2017-01-31 22:23:03.996 DEBUG glance.api.v1.controller [req-307c4c75-6f70-4ea0-ab82-66d3a7b8afcd 7dc51272e7e54848b09ab3faa0a258ff 8f792f8fab8f42bd8ef33848ae67fe26] Image with identifier cirros-0.3.4-x86_64-uec-ramdisk not found from (pid=29401) get_image_meta_or_404 /opt/stack/glance/glance/api/v1/controller.py:45
2017-01-31 22:23:03.996 INFO eventlet.wsgi.server [req-307c4c75-6f70-4ea0-ab82-66d3a7b8afcd 7dc51272e7e54848b09ab3faa0a258ff 8f792f8fab8f42bd8ef33848ae67fe26] 127.0.0.1 - - [31/Jan/2017 22:23:03] "HEAD /v1/images/cirros-0.3.4-x86_64-uec-ramdisk HTTP/1.1" 404 213 0.334595
2017-01-31 22:23:03.998 DEBUG glance.api.middleware.version_negotiation [req-307c4c75-6f70-4ea0-ab82-66d3a7b8afcd 7dc51272e7e54848b09ab3faa0a258ff 8f792f8fab8f42bd8ef33848ae67fe26] Determining version of request: GET /v1/images/detail Accept: */* from (pid=29401) process_request /opt/stack/glance/glance/api/middleware/version_negotiation.py:47
2017-01-31 22:23:03.998 DEBUG glance.api.middleware.version_negotiation [req-307c4c75-6f70-4ea0-ab82-66d3a7b8afcd 7dc51272e7e54848b09ab3faa0a258ff 8f792f8fab8f42bd8ef33848ae67fe26] Using url versioning from (pid=29401) process_request /opt/stack/glance/glance/api/middleware/version_negotiation.py:60
2017-01-31 22:23:03.998 DEBUG glance.api.middleware.version_negotiation [req-307c4c75-6f70-4ea0-ab82-66d3a7b8afcd 7dc51272e7e54848b09ab3faa0a258ff 8f792f8fab8f42bd8ef33848ae67fe26] Matched version: v1 from (pid=29401) process_request /opt/stack/glance/glance/api/middleware/version_negotiation.py:72
2017-01-31 22:23:03.998 DEBUG glance.api.middleware.version_negotiation [req-307c4c75-6f70-4ea0-ab82-66d3a7b8afcd 7dc51272e7e54848b09ab3faa0a258ff 8f792f8fab8f42bd8ef33848ae67fe26] new path /v1/images/detail from (pid=29401) process_request /opt/stack/glance/glance/api/middleware/version_negotiation.py:73
2017-01-31 22:23:03.999 DEBUG oslo_policy.policy [req-0d65078a-a746-4ed7-9ff9-114fa37764c5 7dc51272e7e54848b09ab3faa0a258ff 8f792f8fab8f42bd8ef33848ae67fe26] Reloaded policy file: /etc/glance/policy.json from (pid=29401) _load_policy_file /usr/local/lib/python2.7/dist-packages/oslo_policy/policy.py:425
2017-01-31 22:23:04.000 DEBUG glance.common.client [req-0d65078a-a746-4ed7-9ff9-114fa37764c5 7dc51272e7e54848b09ab3faa0a258ff 8f792f8fab8f42bd8ef33848ae67fe26] Constructed URL: http://0.0.0.0:9191/images/detail?limit=20 from (pid=29401) _construct_url /opt/stack/glance/glance/common/client.py:401
2017-01-31 22:23:04.020 DEBUG glance.registry.client.v1.client [req-0d65078a-a746-4ed7-9ff9-114fa37764c5 7dc51272e7e54848b09ab3faa0a258ff 8f792f8fab8f42bd8ef33848ae67fe26] Registry request GET /images/detail HTTP 200 request id req-67df2272-3b87-4dc2-8a3c-e3fc27825b01 from (pid=29401) do_request /opt/stack/glance/glance/registry/client/v1/client.py:124
2017-01-31 22:23:04.021 INFO eventlet.wsgi.server [req-0d65078a-a746-4ed7-9ff9-114fa37764c5 7dc51272e7e54848b09ab3faa0a258ff 8f792f8fab8f42bd8ef33848ae67fe26] 127.0.0.1 - - [31/Jan/2017 22:23:04] "GET /v1/images/detail?limit=20 HTTP/1.1" 200 684 0.022881
  • There are no errors in the g-reg.log file.
  • This is a plain devstack installation on a Fresh Ubuntu install on my laptop.
  • Glance is just using the filesystem as a backend for image storage by default.
  • I am running all this in a "stack" user account I created on the machine.
  • I set the HOST_IP in my local.conf file to 127.0.0.1.
  • I ran git checkout stable/kilo in my cloned devstack directory.
  • I changed the OpenStack Component Git Repos inside stackrc from the default -stable/kilo branch to -tags/kilo-eol.
  • I recreated this running on an Ubuntu 14.04 VirtualBox running on another laptop I have; exactly the same errors.

If anyone could point me in the right direction here, I would be extremely grateful. Thanks very much in advance.

All the best,

Michael