def create(cls, client, hostsystem): from infi.pyvmomi_wrapper import get_reference_to_managed_object key = get_reference_to_managed_object(hostsystem) class Patched(HostSystemPortGenerator): def __init__(self): super(Patched, self).__init__(client, key) return [Patched]
def create(cls, client, hostsystem): from infi.pyvmomi_wrapper import get_reference_to_managed_object key = get_reference_to_managed_object(hostsystem) if (client, key) not in cls.models_by_host_value: value = VMwareHostStorageModel(client, key) cls.models_by_host_value[(client, key)] = value return cls.models_by_host_value[(client, key)]
def with_host(client, host): from traceback import extract_stack from infi.pyvmomi_wrapper import get_reference_to_managed_object monkey_patch(infi.storagemodel, "get_storage_model", StorageModelFactory.get) previous = StorageModelFactory.get() stack_trace = get_stack_trace() caller = extract_stack(stack_trace, 6)[1][2] moref = get_reference_to_managed_object(host) try: current = StorageModelFactory.set(StorageModelFactory.create(client, host)) if previous is current: logger.debug("entered context for the same host {} as part of {}".format(moref, caller)) else: logger.debug("entered context for host {} as part of {}".format(moref, caller)) yield finally: logger.debug("exited context for host {} as part of {}".format(moref, caller)) StorageModelFactory.set(previous)
def with_host(client, host): from traceback import extract_stack from infi.pyvmomi_wrapper import get_reference_to_managed_object monkey_patch(infi.storagemodel, "get_storage_model", StorageModelFactory.get) previous = StorageModelFactory.get() stack_trace = get_stack_trace() caller = extract_stack(stack_trace, 6)[1][2] moref = get_reference_to_managed_object(host) try: current = StorageModelFactory.set( StorageModelFactory.create(client, host)) if previous is current: logger.debug( "entered context for the same host {} as part of {}".format( moref, caller)) else: logger.debug("entered context for host {} as part of {}".format( moref, caller)) yield finally: logger.debug("exited context for host {} as part of {}".format( moref, caller)) StorageModelFactory.set(previous)