Esempio n. 1
0
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}
Esempio n. 2
0
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}
Esempio n. 3
0
    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__()
Esempio n. 4
0
 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()
Esempio n. 5
0
 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()
Esempio n. 6
0
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}