From d496b7879517c1891a8ea260cb205c4a4694e247 Mon Sep 17 00:00:00 2001 From: Mehdi Abaakouk Date: Tue, 2 Dec 2014 10:04:54 +0100 Subject: [PATCH] Fix rpc initialization of cinder-manager volume VolumeCommands.rpc_client is a property, so when the oslo.config argparser introspect the class VolumeCommands at module loading time, it launch the method. But the method depends on a initialized oslo.config.cfg.CONF object, but this one is not yet initialized. So don't use python property, to initialize the rpc_client correctly. No test because of bug: #1398401 Change-Id: I2c2f0be6e7a9d0866f063d98e1f8213f62fb9f92 Closes-bug: #1398319 --- bin/cinder-manage | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/bin/cinder-manage b/bin/cinder-manage index 674bf4034..90d807060 100755 --- a/bin/cinder-manage +++ b/bin/cinder-manage @@ -252,13 +252,12 @@ class VolumeCommands(object): def __init__(self): self._client = None - @property def rpc_client(self): - if not rpc.initialized(): - rpc.init(CONF) - target = messaging.Target(topic=CONF.volume_topic) - self._client = rpc.get_client(target) - + if self._client is None: + if not rpc.initialized(): + rpc.init(CONF) + target = messaging.Target(topic=CONF.volume_topic) + self._client = rpc.get_client(target) return self._client @args('volume_id', @@ -282,7 +281,7 @@ class VolumeCommands(object): print(_("Detach volume from instance and then try again.")) return - cctxt = self.rpc_client.prepare(server=host) + cctxt = self.rpc_client().prepare(server=host) cctxt.cast(ctxt, "delete_volume", volume_id=volume['id']) @args('--currenthost', required=True, help='Existing volume host name') -- 2.45.2