Example #1
0
def createGlusterBrick(data):
    log.debug("Inside createGlusterBrick Async Task %s" % data)
    current_task.update_state(state='STARTED')

    bricklist = data['bricks']
    # Return from here if bricklist is empty
    if len(bricklist) == 0:
        log.info("Brick List is empty, Brick addition failed")
        raise Exception(
            bricklist, "Brick List is empty, Brick addition failed")

    # Prepare the disks for brick creation
    failed = usm_rest_utils.create_gluster_brick(bricklist)
    log.critical("Brick creation failed for bricks: %s" % str(failed))
    # Remove the failed bricks from bricklist
    bricks = [item for item in bricklist if item not in failed]
    # Return from here if bricks are empty
    if len(bricks) == 0:
        log.info("Brick List is empty, Brick creation failed")
        raise Exception(
            bricklist, "Brick Creation failed")

    # create the Brick
    try:
        volume = GlusterVolume.objects.get(pk=str(data['volume']))
        rc = usm_rest_utils.add_volume_bricks(volume, bricks)
        if rc is False:
            raise Exception(
                bricks, "Brick List is empty, Brick addition failed")
    except Exception, e:
        log.exception(e)
        raise
Example #2
0
def createGlusterVolume(data):
    log.debug("Inside createGlusterVolume Async Task %s" % data)
    current_task.update_state(state='STARTED')

    if 'bricks' in data:
        bricklist = data['bricks']
        del data['bricks']

    # Return from here if bricklist is empty
    if len(bricklist) == 0:
        log.info("Brick List is empty, Volume creation failed")
        raise usm_rest_utils.VolumeCreationFailed(
            bricklist, "Brick List is empty, Volume creation failed")

    hostlist = Host.objects.filter(cluster_id=str(data['cluster']))
    # Prepare the disks for brick creation
    failed = usm_rest_utils.create_gluster_brick(bricklist)
    log.critical("Brick creation failed for bricks: %s" % str(failed))
    # Remove the failed bricks from bricklist
    bricks = [item for item in bricklist if item not in failed]
    # Return from here if bricks are empty
    if len(bricks) == 0:
        log.info("Brick List is empty, Brick creation failed")
        raise usm_rest_utils.VolumeCreationFailed(
            bricklist, "Brick Creation failed")
    log.debug("Creating the volume with bricks %s", str(bricks))
    # create the Volume
    try:
        rc = usm_rest_utils.create_gluster_volume(data, bricks, hostlist)
        if rc is False:
            log.debug("Creating the volume failed")
            raise usm_rest_utils.VolumeCreationFailed(data, str(bricks))
    except usm_rest_utils.VolumeCreationFailed, e:
        log.exception(e)
        raise