def get(args): '''获取ceph资源池列表''' ret_list = [] api = CephStorageAPI() try: pool = api.get_pool_by_id(args['cephpool_id']) if not pool.managed_by(args['req_user']): return {'res': False, 'err': ERR_AUTH_PERM} except Exception as e: print(e) if pool: return { 'res': True, 'info': { 'id': pool.id, 'pool': pool.pool, 'type': pool.type, 'center_id': pool.center_id, 'host': pool.host, 'port': pool.port, 'uuid': pool.uuid } } return {'res': False, 'err': ERR_CEPHPOOL_ID}
def get_list(args): '''获取ceph资源池列表''' ret_list = [] storage_api = CephStorageAPI() center_api = CenterAPI() if not center_api.center_id_exists(args['center_id']): return {'res': False, 'err': ERR_CENTER_ID} center = center_api.get_center_by_id(args['center_id']) try: if not center.managed_by(args['req_user']): return {'res': False, 'err': ERR_AUTH_PERM} pool_list = storage_api.get_pool_list_by_center_id(args['center_id']) except Exception as e: print(e) raise e for pool in pool_list: ret_list.append({ 'id': pool.id, 'pool': pool.pool, 'type': pool.type, 'center_id': pool.center_id, 'host': pool.host, 'port': pool.port, 'uuid': pool.uuid }) return {'res': True, 'list': ret_list}
def __init__(self, manager=None, storage_api=None, vm_api=None, group_api=None, quota=None): if not manager: self.manager = CephManager() else: self.manager = manager if not storage_api: self.storage_api = CephStorageAPI() else: self.storage_api = storage_api if not vm_api: self.vm_api = VmAPI() else: self.vm_api = vm_api if not group_api: self.group_api = GroupAPI() else: self.group_api = group_api if not quota: self.quota = CephQuota() else: self.quota = quota super().__init__()
def __init__(self, manager=None, storage_api=None): if manager: self.manager = manager else: self.manager = ImageManager() if storage_api: self.storage_api = storage_api else: self.storage_api = CephStorageAPI()
def save(self): try: from storage.api import CephStorageAPI cephpool = CephStorageAPI().get_pool_by_id(self.cephpool_id) if cephpool: if not cephpool.exists(self.snap): create_success = cephpool.create_snap(self.snap) protect_success = cephpool.protect_snap(self.snap) if create_success and protect_success: self.snap_exists = True else: self.snap_exists = False except: self.snap_exists = False print('auto create snap error.') super(self.__class__, self).save()
def get_list(args): '''获取镜像列表''' ret_list = [] storage_api = CephStorageAPI() image_api = ImageAPI() cephpool = storage_api.get_pool_by_id(args['ceph_id']) if not cephpool.managed_by(args['req_user']): return {'res': False, 'err': ERR_AUTH_PERM} if 'enable' in args: enable = args['enable'] else: enable = None image_list = image_api.get_image_list_by_pool_id(args['ceph_id'], enable) for image in image_list: ret_list.append({ 'id': image.id, 'ceph_id': image.cephpool_id, 'name': image.name, 'version': image.version, 'type': image.type_name, 'order': image.order }) return {'res': True, 'list': ret_list}