From 49c2bdf64162fb00dd01815b6e180efff538594f Mon Sep 17 00:00:00 2001 From: "Walter A. Boring IV" Date: Fri, 8 May 2015 10:12:23 -0700 Subject: [PATCH] Assign the platform after declaration This simple patch changes when the arch value is assigned in the connector factory until after the function defintion. kwarg values assigned in function declarations are assigned at file import time and not at call time. Change-Id: I08b6560a5f4dfd221c4211ab35a784c4605150dc --- os_brick/initiator/connector.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/os_brick/initiator/connector.py b/os_brick/initiator/connector.py index 60c4709..79886c5 100644 --- a/os_brick/initiator/connector.py +++ b/os_brick/initiator/connector.py @@ -120,9 +120,15 @@ class InitiatorConnector(executor.Executor): def factory(protocol, root_helper, driver=None, execute=putils.execute, use_multipath=False, device_scan_attempts=DEVICE_SCAN_ATTEMPTS_DEFAULT, - arch=platform.machine(), + arch=None, *args, **kwargs): """Build a Connector object based upon protocol and architecture.""" + + # We do this instead of assigning it in the definition + # to help mocking for unit tests + if arch is None: + arch = platform.machine() + LOG.debug("Factory for %(protocol)s on %(arch)s", {'protocol': protocol, 'arch': arch}) protocol = protocol.upper()