Cinder packages should have sysfsutils as a dependency
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Cinder Charm |
New
|
Undecided
|
Unassigned | ||
OpenStack Nova Compute Charm |
New
|
Undecided
|
Unassigned | ||
python-cinderclient (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
Running openstack Ussuri + Focal with Cinder HPE 3PAR on Fiber Channel.
When trying to attach volumes or create a volume from an image, it fails with:
https:/
That is cinder API-level error, but it happens on the client side of the communication.
It is the response of the API call made, requesting for a certain volume operation (so far, seen this with attachment and creating from volume).
That is happening because the properties field of the request is going empty.
It means the client is not populating the API request with the properties field, which would include the connector and an entry for "wwpns".
In the case of the create-
That property field is populated on: https:/
Which in turn, calls the os_brick lib on:
https:/
This is the os_brick method:
https:/
And eventually, calls:
https:/
If systool is not installed, it will fail but the get_connector_
In the case of HPE 3PAR, it expects the standard os_brick linuxfc.py to correctly call the get_fc_hbas method. Then, it sends the result as a request to the cinder API, resulting in the KeyError message as the response.
The linuxfc.py code in the os_brick is a generic handler of Fiber Channel connections.
Sysfsutils is a dependency of that generic handler in os_brick.
Given this issue affects both cinder-volume and nova-compute and standard cinder code on os_bricks uses sysfsutils, I'd recommend we set sysfsutils as prerequisites of both python*
WORK-AROUND:
The work-around possible so far is to have the cinder backend charm written to install the sysfsutils.
It does not cover the issue for the nova-computes, which also need that package to populate the properties field correctly.
Then, one workaround is to run:
$ juju run --application nova-compute "sudo apt install -y sysfsutils"
$ juju run --application cinder-volume "sudo apt install -y sysfsutils"
no longer affects: | python-cinderclient |
description: | updated |
no longer affects: | python-cinderclient |
no longer affects: | python-cinderclient |
The charm seems to be installing the package now, according to:
https:/ /opendev. org/openstack/ charm-cinder- three-par/ src/branch/ master/ src/charm. py#L52
Considering that both cinder-volume and nova-compute will land on the same baremetals, installing in one is enough for both to use.