def __init__(self): self._logger = logging.getLogger(__name__) self._filter = None self._current_version = None self._vm_cache = {} self._vm_name_to_ref = BlockingDict() self._ds_cache = {} self._lock = threading.RLock() self._task_cache = BlockingDict() self._memory_usage = 0
def __init__(self, host="localhost", user=None, pwd=None, wait_timeout=10, min_interval=1, auto_sync=True, ticket=None, stats_interval=600, errback=None): self._logger = logging.getLogger(__name__) self.host = host self.current_version = None self._vm_cache = {} self._vm_name_to_ref = BlockingDict() self._host_stats = {} self._ds_name_properties = {} self._vm_cache_lock = threading.RLock() self._host_cache_lock = threading.Lock() self._task_cache = BlockingDict() self._task_counter_lock = threading.Lock() self._task_counter = 0 self.filter = None self.min_interval = min_interval self.sync_thread = None self.wait_timeout = wait_timeout self.stats_interval = stats_interval self.username = None self.password = None self.auto_sync = auto_sync self.errback = errback self.update_listeners = set() if ticket: self._si = self.connect_ticket(host, ticket) else: if not user or not pwd: (self.username, self.password) = \ VimClient.acquire_credentials() else: (self.username, self.password) = (user, pwd) self._si = self.connect_userpwd(host, self.username, self.password) self._content = self._si.RetrieveContent() if auto_sync: # Initialize host stat counters. self.initialize_host_counters() # Initialize vm cache self.update_cache() # Start syncing vm cache periodically self._start_syncing_cache()