Unable to obtain a collection: 'volumes' in a service: 'nova' through API

providers
gaprindashvili

#1

Hi,

I Already added my OpenStack Environment (validated and success)
but I got some error:
Unable to obtain a collection: 'volumes' in a service: 'nova' through API. Please, fix your OpenStack installation a...

PS: I don’t install Volume/Cinder Service on my OpenStack environment.

Could anyone help me please?

Thank you,
Ary


#2

@aryulianto Can you check what error you see in the evm.log? There should be a backtrace showing the exact issue.

Also, what version of ManageIQ is this?


#3

Hi @Ladas the following error that I got from evm.log:

[----] E, [2018-11-27T22:57:18.537514 #2021:c85140] ERROR -- : MIQ(ManageIQ::Providers::Openstack::StorageManager::CinderManager::Refresher#refresh) EMS: [OpenStack-DRC Cinder Manager], id: [7] Unable to perform refresh for the following targets:
[----] E, [2018-11-27T22:57:33.247076 #2021:c85140] ERROR -- : MIQ(OpenstackHandle::ComputeDelegate#handled_list) Unable to obtain collection: 'volumes' in service: 'nova' using project scope: 'admin' in provider: '<OpenStack-IP>'. Message=Expected(200) <=> Actual(500 InternalServerError)
[----] E, [2018-11-27T22:57:33.247781 #2021:c85140] ERROR -- : [MiqException::MiqOpenstackApiRequestError]: Unable to obtain a collection: 'volumes' in a service: 'nova' through  API. Please, fix your OpenStack installation and run refresh again.  Method:[block in method_missing]
[----] E, [2018-11-27T22:57:33.247862 #2021:c85140] ERROR -- : MIQ(ManageIQ::Providers::Openstack::CloudManager::Refresher#refresh) EMS: [OpenStack-DRC], id: [9] Unable to perform refresh for the following targets:
[----] E, [2018-11-27T22:57:33.307175 #2021:c85140] ERROR -- : MIQ(MiqQueue#deliver) Message id: [7971], Error: [Unable to obtain a collection: 'volumes' in a service: 'nova' through  API. Please, fix your OpenStack installation and run refresh again.]
[----] E, [2018-11-27T22:57:33.307365 #2021:c85140] ERROR -- : [EmsRefresh::Refreshers::EmsRefresherMixin::PartialRefreshError]: Unable to obtain a collection: 'volumes' in a service: 'nova' through  API. Please, fix your OpenStack installation and run refresh again.  Method:[block in method_missing]
[----] E, [2018-11-27T22:57:37.938817 #2029:c85140] ERROR -- : MIQ(OpenstackHandle::ComputeDelegate#handled_list) Unable to obtain collection: 'volumes' in service: 'nova' using project scope: 'admin' in provider: '<OpenStack-IP>'. Message=Expected(200) <=> Actual(500 InternalServerError)
[----] E, [2018-11-27T22:57:37.939590 #2029:c85140] ERROR -- : [MiqException::MiqOpenstackApiRequestError]: Unable to obtain a collection: 'volumes' in a service: 'nova' through  API. Please, fix your OpenStack installation and run refresh again.  Method:[block in method_missing]
[----] E, [2018-11-27T22:57:37.939691 #2029:c85140] ERROR -- : MIQ(ManageIQ::Providers::Openstack::CloudManager::Refresher#refresh) EMS: [OpenStack-NOC], id: [5] Unable to perform refresh for the following targets:
[----] E, [2018-11-27T22:57:38.001480 #2029:c85140] ERROR -- : MIQ(MiqQueue#deliver) Message id: [7964], Error: [Unable to obtain a collection: 'volumes' in a service: 'nova' through  API. Please, fix your OpenStack installation and run refresh again.]
[----] E, [2018-11-27T22:57:38.001639 #2029:c85140] ERROR -- : [EmsRefresh::Refreshers::EmsRefresherMixin::PartialRefreshError]: Unable to obtain a collection: 'volumes' in a service: 'nova' through  API. Please, fix your OpenStack installation and run refresh again.  Method:[block in method_missing]

The version of ManageIQ I use is manageiq-openstack-gaprindashvili-6.qc2 from
http://releases.manageiq.org/manageiq-openstack-gaprindashvili-6.qc2

Thanks,
Ary


#4

I believe it fails on calling list volumes in you OpenStack, you might be using OpenStack that is not supported yet?

Can you try calling nova os-volumes API query, the client call is here https://github.com/fog/fog-openstack/blob/master/lib/fog/openstack/compute/requests/list_volumes.rb. Looks like it returns code 500 in your system.


#5

Hi @Ladas

As a I mention before I didn’t install Cinder/Volume service on my OpenStack environment. Just for info I used OpenStack Queens

Thanks,
Ary


#6

Ah, ok, I missed that. Then this is expected, cinder is a required service. Currently there is no official way around it.

It might work if you just remove the cinder manager though in rails c: ManageIQ::Providers::Openstack::StorageManager::CinderManager.find_by(:name => “OpenStack-DRC Cinder Manager”).destroy

But it can cause other failures, since this is not officially supported.


#7

Hi @Ladas

Thank you for the explanation.

maybe I’ll try remove the Cinder Manager. but could you give me the right path or file for execute this?

ManageIQ::Providers::Openstack::StorageManager::CinderManager.find_by(:name => “OpenStack-DRC Cinder Manager”).destroy

Thanks,
Ary


#8

You can execute it by going to the project directory and running:
rails c

that is the rails console


#9

Hi @Ladas

I already deleted Storage Manager, but still got same error

are there any other ideas?

Thanks,
Ary


#10

Strange, did you rerun the refresh?

It’s under Configuration on this page.


#11

Yes, I Already Refresh Relationships and Power States :smiley:
But still got the same error


#12

Hm ok, in the log, it does the query as a part of cloud manager. @mansam can you give us some advice, if there is a way around?

@aryulianto Might be, you’ll need to deploy Cinder, to make this work.


#13

Hi @Ladas,

Sorry for late reply
So there is no solution without deploy Cinder? because we no need block storage service.

Many thanks,
Ary


#14

@Ladas @aryulianto Unfortunately I don’t have a workaround that I can recommend. The provider will need an enhancement to make Cinder optional.