When hosts are filtered for a request, and no host passes all the
filters, operators can only see the last filter run; they have no
visibility into which filter removed which host. This attempts to
improve this situation by tracking the hosts remaining after each
filter is run and the number of hosts removed. If no host is left,
that information along with volume ID of the request would be logged.
Since that can be a lot of information, it will call LOG.info with
just the counts for all but the final filter, which will contain
the last deleted host names, LOG.debug will output the full record
of each filter and the hosts remaining after each step.
This will better enable operators to determine why a particular host
was not selected.
Change-Id: I3baf75a4a4430c55b30dde1cae86fa5e195ec6d3
Instead of using assertFalse(A * B) / assertTrue(A * B),
developers should use assertEqual/NotEqual/Less/LessEqual
/Greater/GreaterEqual/In/NotIn/IsNone/IsNotNone
The * operator: '==', '!=', '<', '<=', '>', '>='
Change-Id: I11b60a93c089f688c6b243da01d20c205c4f2df9
In Python 3 __ne__ by default delegates to __eq__ and inverts the
result, but in Python 2 they urge you to define __ne__ when you
define __eq__ for it to work properly [1].There are no implied
relationships among the comparison operators. The truth of x==y
does not imply that x!=y is false. Accordingly, when defining
__eq__(), one should also define __ne__() so that the operators
will behave as expected.
[1]https://docs.python.org/2/reference/datamodel.html#object.__ne__
Change-Id: I40878c38fd27933d73225ba49bd69b425f13dc6a
In the dev-ref, the hint key for volume create API
should be 'OS-SCH-HNT:scheduler_hints' but not 'scheduler_hints'.
Furthermore, it should be parallel with the key 'volume'.
To be more clear fix the example as well.
Change-Id: I999aebb0e53ebac5dc121ef1ccdc98f9d5ac816a
When creating a volume from a snapshot or cloning an existing
volume the driver first creates a new volume of the original
size, then extends the volume if needed to meet the requested
size. The extend call in these operations were passing the
wrong arguments into the extend_volume call, resulting in an
exception being thrown.
Change-Id: I503543fc45a0607d295a2ebe3602436857fc8ff8
Closes-bug: #1598148
The volume manager is not logging a traceback for
volume driver terminate_connection failures.
This can result in an opaque error message which
is hard to troubleshoot.
Closes-Bug: #1598214
Change-Id: Ibde64e0715cc861b73434e6a9c676c7e25a37a18
We will, in future releases, remove support for this. For
now we will log a big warning when someone uses c-vol without
an enabled_backends config set.
DocImpact: Need to document upgrade path and new
recommended config.
Implements: blueprint shared-backend-config
Change-Id: Idf0a7346ae5d5ae45f9fc05a526ef5d66b162a3f
The Dell SC driver was setting replication SyncMode to HighAvailability
even if the replication type was Asynchronous. This is not supported
on the platform.
Change-Id: I209b70e7bca790e3fbb091fa5c11ec7aad4a2480
Closes-Bug: #1597820
There were a few cases where config option help text was marked
for translation. This text is just used in the generated config
sample and does not ever actually get translated for end user
runtime display. This results in extra strings for the translation
teams to translate with no actual benefit.
Change-Id: I8594533d0e3a61da00bd42ac0f7d8e3da75616fc
Found an instance where an exception was being caught, then rethrown.
The correct handling would be to just raise again.
Change-Id: Ib6a1347b10cdbaeb101b7c9187954a8ace3bd6de
Locking additions and deletions to a storage group to prevent
"locked by an existing change session" error when concurrent
threads access the same storage group.
Change-Id: I96c025691f9b63a19f8213a6d7713d4e192c9784
Closes-Bug: 1554634
Currently tenant would fail to create volume, if cinder uses
VolumeNumberWeigher.
This will elevate tenant to admin privilege, then VolumeNumberWeigher
has the privilege to get volume count of each hosts.
Change-Id: I1aa0e8ad74d37389ad1feecef113ab8e260dfd0f
Closes-Bug: #1594294
Adding support for consistency groups in huawei driver.
supports the following interfaces:
1.create_consistencygroup
2.delete_consistencygroup
3.update_consistencygroup
4.create_cgsnapshot
5.delete_cgsnapshot
DocImpact
Implements: blueprint support-huawei-consistency-group
Change-Id: Ib35c382d1cc008f483a60da557781435dde098e1
Fixed many instances of `assert something` to `self.assertTrue(something)`
or whatever applies for that particular test
Change-Id: Iddce97e48dff25183c91f598c18db4943260110a
The SolidFire driver isn't raising the UnableToFailover
exception properly. This fixes the call and adds the
reason string.
Change-Id: I2d018a29015f7db3dd51c90e262e70f4cceaac59
Closes-Bug: #1597483