示例#1
0
文件: cache.py 项目: trasz/iocage
 def pools_internal(self, lock=True):
     if lock:
         self.cache_lock.acquire()
     try:
         if not self.pool_data:
             self.pool_data = all_properties(resource_type='zpool')
         return self.pool_data
     finally:
         if lock:
             self.cache_lock.release()
示例#2
0
文件: cache.py 项目: trasz/iocage
 def datasets(self):
     with self.cache_lock:
         ioc_pool = self.iocage_activated_pool_internal(lock=False)
         if not self.dataset_data or set(self.dataset_data) == set(self.pool_data):
             ds = ''
             if ioc_pool:
                 ds = os.path.join(ioc_pool, 'iocage')
             self.dataset_data.update(all_properties(
                 [ds] if ds and dataset_exists(ds) else [], recursive=True, types=['filesystem']
             ))
         return self.dataset_data
示例#3
0
 def datasets(self):
     with self.cache_lock:
         if not self.dataset_data:
             ds = ''
             ioc_pool = iocage_activated_pool()
             if ioc_pool:
                 ds = os.path.join(ioc_pool, 'iocage')
             self.dataset_data = all_properties(
                 ds if ds and dataset_exists(ds) else '', recursive=True
             )
         return self.dataset_data
示例#4
0
文件: cache.py 项目: simonlbn/iocage
 def iocage_activated_pool_internal(self, lock=True):
     if lock:
         self.cache_lock.acquire()
     try:
         pools = self.pools_internal(lock=False)
         self.dataset_data = self.dataset_data or {}
         if not self.ioc_pool:
             if not all(self.dataset_data.get(p) for p in pools):
                 self.dataset_data.update(
                     all_properties([p for p in pools],
                                    types=['filesystem']))
             for p in filter(
                     lambda p: self.dataset_data.get(p, {}).get(
                         'org.freebsd.ioc:active') == 'yes', pools):
                 self.ioc_pool = p
         return self.ioc_pool
     finally:
         if lock:
             self.cache_lock.release()
示例#5
0
文件: cache.py 项目: asomers/iocage-1
 def datasets(self):
     if not self.dataset_data:
         self.dataset_data = all_properties()
     return self.dataset_data
示例#6
0
文件: cache.py 项目: asomers/iocage-1
 def pools(self):
     if not self.pool_data:
         self.pool_data = all_properties(resource_type='zpool')
     return self.pool_data
示例#7
0
 def pools(self):
     with self.cache_lock:
         if not self.pool_data:
             self.pool_data = all_properties(resource_type='zpool')
         return self.pool_data
示例#8
0
 def datasets(self):
     with self.cache_lock:
         if not self.dataset_data:
             self.dataset_data = all_properties()
         return self.dataset_data