summaryrefslogtreecommitdiff
path: root/ironic/conductor/base_manager.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-04-17 17:59:06 +0000
committerGerrit Code Review <review@openstack.org>2017-04-17 17:59:06 +0000
commit19ced862a782f204048ca2cb7f4904d75a6d7925 (patch)
tree6c7eb7a3ed0db4d3eeeb34fd23767facfd070f4e /ironic/conductor/base_manager.py
parent2a2548336dbda67daa18e753490ba810f345c353 (diff)
parent58b34b0b3002cd5bc355bfb0e6f5406004a4da41 (diff)
downloadironic-19ced862a782f204048ca2cb7f4904d75a6d7925.tar.gz
Merge "Config drive support for ceph radosgw"
Diffstat (limited to 'ironic/conductor/base_manager.py')
-rw-r--r--ironic/conductor/base_manager.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/ironic/conductor/base_manager.py b/ironic/conductor/base_manager.py
index d6d010567..3ec763cbf 100644
--- a/ironic/conductor/base_manager.py
+++ b/ironic/conductor/base_manager.py
@@ -85,6 +85,8 @@ class BaseConductorManager(object):
:raises: DriverLoadError if an enabled driver cannot be loaded.
:raises: DriverNameConflict if a classic driver and a dynamic driver
are both enabled and have the same name.
+ :raises: ConfigInvalid if required config options for connection with
+ radosgw are missing while storing config drive.
"""
if self._started:
raise RuntimeError(_('Attempt to start an already running '
@@ -172,6 +174,18 @@ class BaseConductorManager(object):
self._periodic_task_callables,
executor_factory=periodics.ExistingExecutor(self._executor))
+ # Check for required config options if object_store_endpoint_type is
+ # radosgw
+ if (CONF.deploy.configdrive_use_object_store and
+ CONF.deploy.object_store_endpoint_type == "radosgw"):
+ if (None in (CONF.swift.auth_url, CONF.swift.username,
+ CONF.swift.password)):
+ msg = _("Parameters missing to make a connection with "
+ "radosgw. Ensure that [swift]/auth_url, "
+ "[swift]/username, and [swift]/password are all "
+ "configured.")
+ raise exception.ConfigInvalid(msg)
+
# clear all target_power_state with locks by this conductor
self.dbapi.clear_node_target_power_state(self.host)
# clear all locks held by this conductor before registering