nikeshmahalka [Wed, 25 Feb 2015 15:14:13 +0000 (20:44 +0530)]
Use Unique SCST Group names in SCST cinder helper driver.
Currently, while setting up GROUPS under targets in scst.conf,
we are using the Initiator IQN as the group name. When we have
multiple targets and we want to connect LUN's from these multiple
targets to the same initiator, we are using the same GROUP name in
all the Target sections.
It would be good to provide a unique group name by prepending the
GROUP name with the target name. So the GROUP name will be
"Target name+Initiator IQN".
nikeshmahalka [Thu, 19 Feb 2015 12:33:01 +0000 (18:03 +0530)]
Add CHAP persistence to SCST target helper
The SCST target helper currently does not have a mechanism to
persist CHAP records. Added this support so that LUNs will
get re-exported if Cinder service restarts.
Long shot, but only related change in Cinder since this started was this one. It's possible that the config specification on the cmd line does something "different". Let's find out.
Eric Brown [Tue, 24 Feb 2015 07:02:50 +0000 (23:02 -0800)]
Use oslo_config choices support
The oslo_config library added support for a choices keyword argument in
version 1.2.0a3. This commit leverages the use of choices for StrOpts in
Cinder's configuration.
Angela Smith [Tue, 24 Feb 2015 21:04:02 +0000 (13:04 -0800)]
Custom zone name prefix not being used by brcd driver
Config file setting for zone name prefix and activate flag were
not being picked up by the brocade zone driver. Modified the
way the config options are used for each fabric for these config
options.
The zone manager and the lookup service had some cruft code that
was incorrectly reading the cinder.conf sections it needed.
When cinder.conf was configured to use the Cisco driver, the zone
manager would never see it, because it was reading from the wrong
section of cinder.conf.
Steven Kaufer [Thu, 12 Feb 2015 14:45:18 +0000 (14:45 +0000)]
Generic filter support for volume queries
DB functions exist to get all volumes, to get all volumes in a particular
project, to get all volumes in a particular group, and to get all volumes
hosted on a particular host. See the following functions in the DB API:
Only the queries that get all volumes and that get all volumes by project
support additional filtering.
The purpose of this patch set is to make the filtering support consistent
across these APIs, adding it to the volume_get_all_by_group and the
volume_get_all_by_host APIs.
John Griffith [Thu, 19 Feb 2015 23:07:17 +0000 (16:07 -0700)]
Remove warnings for long vgs and lvs calls
We put some warning statements in a while back for
lvs and vgs commands that lasted more than 60 seconds
so we could easily query issues in the gate.
Since then we've made a number of changes to improve our
LVM interactions including the use of an LVM conf file with
a filter for only the VG's Cinder uses.
There's one issue remaining however where during the instance
rescue test in Nova where LVM get's stuck trying to open
devices that no longer exist. Part of this I think is due
to some manipulation that Nova/KVM does on the attached volume
when the test is run, but also the rescue process in Nova
uses LVM volumes as well and does some moving around and mounting
of devices.
The result is that LVM calls can take quite a while
(greater than 100 seconds) to complete during the rescue process.
This doesn't result in any failures, just that the rescue process
slows things down dramatically and is a pretty heavy process.
Also, the newer versions of process utils include completion
timing in the logs so we don't really need this any longer eve
to query timings and get info.
This patch removes those log statements, and proposes we
document somewhere that rescue operations on a setup that
includes c-vol service and nova-compute service on the same
node will temporarily impact LVM performance.
Jay S. Bryant [Fri, 20 Feb 2015 22:13:36 +0000 (16:13 -0600)]
Sync 'loopingcall' module from oslo-incubator
In order to be able to move to using the new log
library we need to update loopingcall to the latest
version.
Current HEAD in OSLO:
---------------------
commit e589dde0721a0a67e4030813e582afec6e70d042
Date: Wed Feb 18 03:08:12 2015 +0000
Merge "Have a little fun with release notes"
Changes merged with this patch:
--------------------- 2fbf5065 - Remove oslo.log code and clean up versionutils API 5985b35f - Prefer delayed %r formatting over explicit repr use
Jay S. Bryant [Fri, 20 Feb 2015 21:05:56 +0000 (15:05 -0600)]
Sync the 'fileutils' module from oslo-incubator
The fileutils module hasn't been updated since
November of 2014. We need to bring this module up
to date to support the namespace changes that have
been made.
Current HEAD in OSLO:
---------------------
commit e589dde0721a0a67e4030813e582afec6e70d042
Date: Wed Feb 18 03:08:12 2015 +0000
Merge "Have a little fun with release notes"
Changes merged with this patch:
--------------------- ac17de97 - Use oslo_utils instead of deprecated oslo.utils 809080ed - Introduce fileutils ensure_dir creation mode parameter
Jay S. Bryant [Fri, 20 Feb 2015 20:48:46 +0000 (14:48 -0600)]
Sync 'eventlet_backdoor' module from oslo-incubator
The eventlet_backdor module hasn't been updated in Cinder since
September of 2014. In order to be able to move to the oslo.log
library and be able o clean other modules out of oslo-incubator
we need to bring it up to the latest level.
Current HEAD in OSLO:
---------------------
commit e589dde0721a0a67e4030813e582afec6e70d042
Date: Wed Feb 18 03:08:12 2015 +0000
Merge "Have a little fun with release notes"
Changes merged with this patch:
--------------------- 2aacb111 - Change oslo.config to oslo_config 2fbf5065 - Remove oslo.log code and clean up versionutils API 80c47519 - Remove unnecessary import of eventlet a3220c51 - add list_opts to all modules with configuration options 5d40e143 - Remove code that moved to oslo.i18n
Kurt Martin [Fri, 20 Feb 2015 17:19:03 +0000 (09:19 -0800)]
Fixed 3PAR driver load balancing during migration
This patch will not allow the 3PAR iSCSI driver to pick another
iSCSI IP from the hp3par_iscsi_ips list during a nova live-migration.
Nova expects that the IQN will be exactly the same as it's attaching
the volume(s) to the new host during live-migration. This conflicts
with the Cinder settings such as "hp3par_iscsi_ips" which allows for
multiple IPs for the purpose of load balancing.
Alex Meade [Thu, 16 Oct 2014 20:11:32 +0000 (16:11 -0400)]
NetApp E-series: Allow scheduling by disk
This patch allows volume scheduling by disk type via the
netapp_disk_type volume type extra spec and disk encryption via the
netapp_disk_encryption volume type extra spec
When using a Novaclient method on a multi-region infrastructure,
requests sometimes fail with an AmbiguousEndpoints Exception,
because more than one Nova endpoint is returned in the catalog.
This patch passes `region_name` and `endpoint_type` from conf to
Novaclient, so this error case is avoided.
John Griffith [Thu, 19 Feb 2015 23:18:12 +0000 (16:18 -0700)]
Remove retry_deactivation directive on lvremove
A while back an LVM_CONF directive was added to
explicitly retry_deactivation on lvremove. This
was a great idea, but since then the LVM defaults
all seem to set this for us anyway so we don't
really need to send it in the call explicitly
any more.
Also, we've introduced the option to use a cinder
specific lvm.conf file which can be used to set
or unset values like this going forward:
(commit: eb7bb3e08c1b8e1008ba447b842b635821e2097e)
This patch removes the retry_deactivation directive, but
leaves the ignore_suspended_devices setting as we don't
want to use that all the time, but only during recovery.
There may be better options for this call as well but
that's a possible future improvement unrelated to this
commit.
Navneet Singh [Tue, 12 Aug 2014 08:22:39 +0000 (13:52 +0530)]
Manage/unmanage impl for NetApp ONTAP iscsi driver
This patch implements manage and unmanage support for NetApp's
cmode and 7mode iscsi drivers. The input required for manage call
is either source-id or source-name or both.
Joe Cropper [Thu, 19 Feb 2015 05:55:04 +0000 (23:55 -0600)]
Fix some message nits in the ZoneManager
This patch addresses some nit comments I've received on some of the
ZoneManager's conf options (e.g., not documenting the valid zoning
strategies) and some other minor message format items.
Cleaned up some globalization items as well (% => ,).
Also fixed the UTs since they didn't work at all due to duplicate
opt errors based on the UT structure.
Steven Kaufer [Wed, 18 Feb 2015 21:45:57 +0000 (21:45 +0000)]
Implement refresh as kwargs in get_volume_stats
When implementing the base driver "get_volume_stats" function, not all
drivers implemented 'refresh' as a kwarg. This can cause failures for any
code that simply invokes the following (assuming that refresh will default
to False -- which is does for 50+ drivers):
driver.get_volume_stats()
This patch set updates the 7 drivers that did not implement refresh as a
kwarg so that the various driver implementations are consistent.
Tom Swanson [Tue, 17 Feb 2015 20:00:04 +0000 (14:00 -0600)]
Dell sc driver iscsi multipath enhancement
Added support for the connector's multipath boolean. If this is
set the initialize_connection function returns arrays of all the
IQNs, LUNs and portals associated with the mapping of the volume
to the server. If this is not set the standard return of a lone
IQN, LUN and portal is implemented.
Minor change to find_volume. If a volume name or instance isn't
set then it will not be sent as a payload filter to the Dell
Storage Center array.
This patch fixes the error thrown on the loading of HNAS drivers (NFS and
iSCSI). The bug was added by commit 450a35e2. Also, it adds unit tests to cover
exception situations.
Jeegn Chen [Tue, 17 Feb 2015 05:05:26 +0000 (13:05 +0800)]
Fix return value inconsistency in VNX Driver
When iscsi_initiators option for EMC Cinder Driver has no value,
a dict object is returned by find_available_iscsi_targets() in
EMC Cinder Driver while a list is expected. Thus an
initialize_connection() will fail due to the inconsistency.
This patch is to fix this inconsistency in the driver.
Jeegn Chen [Thu, 15 Jan 2015 01:35:09 +0000 (20:35 -0500)]
Pool-aware scheduler support in EMC VNX Cinder driver
Changed EMC VNX driver to report pools information in
update_volume_stats and removed the original pool selection
logic in VNX driver.
Besides, deprecated the VNX driver defined extra spec key
"storagetype:pool", since "pool_name" key is introduced by
the pool-aware scheduler feature to specify which pool to
place the volume.
Jay S. Bryant [Mon, 16 Feb 2015 23:05:01 +0000 (17:05 -0600)]
Sync policy module from oslo-incubator
The policy module has not had a sync since back in
November. There have been a number of changes that
should be pulled into Kilo.
Current HEAD in OSLO:
---------------------
commit 9bf01f9d98487cb13e3d95ad2a580fe8fc6f2479
Date: Fri Feb 13 14:18:58 2015 -0500
Switch from oslo.config to oslo_config
Changes merged with this patch:
--------------------- 2aacb111 Change oslo.config to oslo_config 2fbf5065 Remove oslo.log code and clean up versionutils API 262279b1 switch to oslo_serialization 07e9b32a Improving docstrings for policy API e67f5cd0 Merge "Don't log missing policy.d as a warning" 99d991ce Merge "Fixed a problem with neutron http policy check" b19af080 Don't log missing policy.d as a warning 2324c775 Add rule overwrite flag to Enforcer class 6166a960 Fixed a problem with neutron http policy check
Sean McGinnis [Thu, 12 Feb 2015 20:52:56 +0000 (14:52 -0600)]
Dell Storage Center: Add retries to API calls
In heavily loaded networks we have seen some cases
of temporary ConnectionErrors when making REST API
calls. There are usually successful calls just prior
and immediately after these failures, so it appears
to be a transient condition.
This patch utilizes the recently merged retry decorator
to add some retry handling to the REST API calls when
this condition is encountered.
With a test script looping through repeatedly running
CI against this first patch I was able to validate
that it addresses the issue. Out of 20 runs, a full
2/3 of the tests passed showing that the retry was
used. These test runs would have failed without the
retry.
The output from these test runs can be viewed here:
http://oslogs.compellent.com/?C=N;O=D
Pertinent results are dell-sc-iscsi-1554792015-12*
Once merged we should be able to enable full third
party CI testing with some expectation of reliable
results.
Rushi Agrawal [Sun, 18 Jan 2015 06:53:32 +0000 (12:23 +0530)]
EQLX: Consolidate CHAP config options
In order to reduce configuration option bloat, it would be a good exercise
to consolidate configuration options which many drivers implement under
their own distinct name but have same functionality. Here, a first attempt
is made to consolidate CHAP configuration options. Dell's EQLSanISCSIDriver
is made to use these new set of configuration options 'use_chap_auth',
'chap_username' and 'chap_password' instead of the driver-specific options
'eqlx_use_chap', 'eqlx_chap_login' and 'eqlx_chap_password' respectively in
this patch. More drivers are to be added in the future.
DocImpact: Config options of Dell EQLSanISCSIDriver are changed
Anish Bhatt [Fri, 16 Jan 2015 05:31:58 +0000 (21:31 -0800)]
Add support for chiscsi iscsi helper
The chiscsi target works as a drop in replacement for IET/TGT with
minor configuration differences. This patch implements support for
this as the 'cxtadm' iscsi_helper.
Certification results : https://bugs.launchpad.net/cinder/+bug/1417499
Sean McGinnis [Fri, 13 Feb 2015 21:17:28 +0000 (15:17 -0600)]
Fix logging guideline violations in volume/api.py
There were a few cases where logging was not following
the logging guidelines for i18m, delayed string
interpolation, and non-duplicating strings at different
levels. This patch cleans up those instances.
PranaliDeore [Tue, 27 Jan 2015 12:46:58 +0000 (04:46 -0800)]
Snapshot of bootable volume goes in error state
If volume is not created from image, no glance
metadata would be available for that volume/snapshot
in volume glance metadata table. So simply catch
GlanceMetadataNotFound and do nothing.
Jay S. Bryant [Sun, 15 Feb 2015 02:24:56 +0000 (20:24 -0600)]
Sync periodic_task module from oslo-incubator
We have a need in Cinder to now be able to dynamically
add periodic tasks. This sync brings in new functionality
that supports that.
Current HEAD in OSLO:
---------------------
commit 03143669d2c996f7c20d2d75f6c67827d2db216a
Date: Tue Feb 10 11:59:45 2015 -0500
Update policy.py status in MAINTAINERS
Changes merged with this patch:
--------------------- 2aacb111 Change oslo.config to oslo_config 2fbf5065 Remove oslo.log code and clean up versionutils API fbd77a7b Allow overriding name for periodic tasks 9896e0e1 Separate add_periodic_task from the metaclass __init__
This test invokes Cinder WSGIService.Service() and asserts
against values that are only manipulated in wsgi.Server(),
which WSGIService is based on.
We also have TestWSGIServer.test_reset_pool_size_to_default
which does the same thing for wsgi.Server().
Remove this test since it duplicates the TestWSGIServer test
and tests code which is an additional layer of abstraction
(cinder.WSGIService) away from the class that the code belongs
to (wsgi.Server).
Mitsuhiro Tanino [Sat, 17 Jan 2015 03:04:17 +0000 (22:04 -0500)]
Refactoring for export functions in Target object
Currently, export functions such as create_export() are implemented
in individual Target code, but most of them are same and these are
common features in each target.
This patch moves these methods to parent ISCSITarget class to
commonalize and each Target simply inherit these methods from parent
class. As a result of this change, LioAdm can inherit ISCSITarget
class directly instead of inheriting TgtAdm class.
This simplifies dependency of targets and improves maintainability.
By refactoring these methods, this patch also fixes following issues.
(a) Fix bug #1410566
After transitioning to the new driver and target model, iscsi_targets
is not added to the table during create_export() phase.
However, remove_export() in LIO Target is still reffering empty
iscsi_targets table. This causes NotFound exception and remove_export()
skips to do remove_iscsi_target().
As a result, iscsi target is not removed and the target continues to
grab the volume(logical volume) as an in-use status.
This patch fix the problem.
(b) Re-export a volume with CHAP
Current Tgt Target recreate iscsi target without CHAP during
ensure_export() even if the volume is exported with CHAP previously.
This patch changes this bahaviour to recreate iscsi target using
previous CHAP which is stored in volume file on state_path dir.
Xing Yang [Mon, 9 Feb 2015 02:10:49 +0000 (21:10 -0500)]
EMC VMAX driver Kilo update
This patch updated the VMAX driver for the Kilo release.
Main changes in this patch include the following:
* Support for consistency group.
* Support for VMAX V3.