+
+ # perform the action on all elements, in parallel if so requested
+ if runner:
+ logger.debug("Starting parallel %s", action)
+ runner.start()
+
+ for guid in guids[factory_id]:
+ if runner:
+ logger.debug("Scheduling %s on %s", action, guid)
+ runner.put(perform_action, guid)
+ else:
+ logger.debug("Performing %s on %s", action, guid)
+ perform_action(guid)
+
+ # sync
+ if runner:
+ runner.sync()
+
+ # post hook