Ejemplo n.º 1
0
def doInstall(stt, ppc, rootdisk, event):

    rootdevice = get_rootdevice()
    percentage = stt
    trootsize = _getLiveSize(rootdevice)
    root_osimg = os.path.normpath(rootdevice)
    osfd_root = os.open(root_osimg, os.O_RDONLY)
    rootfd = os.open(rootdisk, os.O_WRONLY)

    os.lseek(osfd_root, 0, 0)
    os.lseek(rootfd, 0, 0)
    copied = 0
    percentage_s = "0"

    # set the rootdisk to have the right type.  this lets things work
    readamt = 1024 * 1024 * 8  # 8 megs at a time
    while copied < trootsize:
        time.sleep(0.1)
        try:
            buf = os.read(osfd_root, readamt)
            written = os.write(rootfd, buf)
        except:
            os.lseek(osfd_root, 0, 0)
            os.lseek(rootfd, 0, 0)
            copied = 0
            percentage_s = "0"
            syslog.syslog(
                syslog.LOG_ERR,
                'INSTALL TO HARDDISK ERROR,REWRITE HARDDISK DEVICE.')
            continue

        if (written < readamt) and (written < len(buf)):
            return (False, "Error copying filesystem!")  #@@
        if (written < readamt) and (written == len(buf)):
            syslog.syslog(syslog.LOG_ERR,
                          'INSTALL TO HARDDISK written %d' % written)
            syslog.syslog(syslog.LOG_ERR,
                          'INSTALL TO HARDDISK copied %d' % copied)


#            return (False, "error copying filesystem!")

        copied += written
        try:
            pct = copied / float(trootsize)
            percentage_cur = int(pct * ppc)
            if (percentage_cur - int(percentage_s)) >= 1:
                percentage_s = "%d" % percentage_cur
                npercentage = percentage + int(percentage_s)
                updateinfo = {"uuid": event.uuid, "progress": npercentage}
                optevent_db_op.update_optevent(updateinfo)
        except:
            pass
    os.close(osfd_root)
    os.close(rootfd)
    return (True, "Install successed")
Ejemplo n.º 2
0
def set_ad_quota_user(event):

    eventexestat = "successed"
    flag,message=set_ad_quota_user_op(event)
    if not flag:
        eventexestat = "failed"

    updateinfo = {"uuid":event.uuid,"eventexestat":eventexestat,"progress":100, "message":message}
    optevent_db_op.update_optevent(updateinfo,event)
    return (True, "suc")
Ejemplo n.º 3
0
def quit_domain(event):

    eventexestat = "successed"
    flag,message=quit_domain_op(event)
    if not flag:
        eventexestat = "failed"

    updateinfo = {"uuid":event.uuid,"eventexestat":eventexestat,"progress":100, "message":message}
    optevent_db_op.update_optevent(updateinfo,event)
    return (True, "suc")
Ejemplo n.º 4
0
def replace_brick(event):

    eventexestat = "successed"
    flag,message=replace_brick_op(event)
    operation.gluster.volume_clr.clear_resources()
    if not flag:
        eventexestat = "failed"

    updateinfo = {"uuid":event.uuid,"eventexestat":eventexestat,"progress":100, "message":message}
    optevent_db_op.update_optevent(updateinfo,event)
    return (True, "suc")
Ejemplo n.º 5
0
def doInstall(stt, ppc, rootdisk, event):

    rootdevice = get_rootdevice()
    percentage = stt
    trootsize = _getLiveSize(rootdevice)
    root_osimg = os.path.normpath(rootdevice)
    osfd_root = os.open(root_osimg, os.O_RDONLY)
    rootfd = os.open(rootdisk, os.O_WRONLY)

    os.lseek(osfd_root, 0, 0)
    os.lseek(rootfd, 0, 0)
    copied = 0
    percentage_s = "0"

    # set the rootdisk to have the right type.  this lets things work
    readamt = 1024*1024*8 # 8 megs at a time
    while copied < trootsize:
        time.sleep(0.1)
        try:
            buf = os.read(osfd_root, readamt)
            written = os.write(rootfd, buf)
        except:
            os.lseek(osfd_root, 0, 0)
            os.lseek(rootfd, 0, 0)
            copied = 0
            percentage_s = "0"
            syslog.syslog(syslog.LOG_ERR,'INSTALL TO HARDDISK ERROR,REWRITE HARDDISK DEVICE.')
            continue

        if (written < readamt) and (written < len(buf)):
            return (False, "Error copying filesystem!") #@@
        if (written < readamt) and (written == len(buf)):
            syslog.syslog(syslog.LOG_ERR,'INSTALL TO HARDDISK written %d' % written)
            syslog.syslog(syslog.LOG_ERR,'INSTALL TO HARDDISK copied %d' % copied)
#            return (False, "error copying filesystem!")

        copied += written
        try:
            pct = copied/float(trootsize)
            percentage_cur = int(pct*ppc)
            if (percentage_cur - int(percentage_s)) >= 1:
                percentage_s = "%d" % percentage_cur
                npercentage = percentage + int(percentage_s)
                updateinfo = {"uuid":event.uuid,"progress":npercentage}
                optevent_db_op.update_optevent(updateinfo)
        except:
            pass
    os.close(osfd_root)
    os.close(rootfd)
    return (True, "Install successed")
Ejemplo n.º 6
0
def join_domain(event):

    eventexestat = "successed"
    flag,message=join_domain_op(event)
    if not flag:
        modify_smb_to_user()
        recover_user_dns()
        excute_samba_cmds()
        vsuuid = support.uuid_op.get_vs_uuid()[1]
        operation.vhost.domain_db.delete_domain_info(vsuuid)
        eventexestat = "failed"

    updateinfo = {"uuid":event.uuid,"eventexestat":eventexestat,"progress":100, "message":message}
    optevent_db_op.update_optevent(updateinfo,event)
    return (True, "suc")
Ejemplo n.º 7
0
def installvcenter(event):

    instPath = "/mnt/sysimage"
    harddisk = event.param["harddisk"]

    (flag, params) = check_create_parttion(event)
    if not flag:
        return (False, params)

    bootdisk = params["bootdisk"]
    rootdisk = params["rootdisk"]
    bootsize = params["bootsize"]
    rootsize = params["rootsize"]

    clear_tmp_dir()

    (flag, stat) = create_bootdisk_fs(bootdisk)
    if not flag:
        return (False, stat)

    (flag, stat) = makedir(instPath)
    if not flag:
        return (False, stat)

    ppc = 80 - 20
    stt = 20
    (flag, stat) = doInstall(stt, ppc, rootdisk, event)
    if not flag:
        return (False, stat)

    # e.g diskinfo = {"rootuuid":rootuuid, "bootuuid":bootuuid}
    (flag, diskinfo) = doPostInstall(instPath, rootdisk, bootdisk)
    if not flag:
        return (False, diskinfo)
    rootuuid = diskinfo["rootuuid"]
    bootuuid = diskinfo["bootuuid"]

    updateinfo = {"uuid": event.uuid, "progress": 85}
    optevent_db_op.update_optevent(updateinfo)

    updateinfo = {"uuid": event.uuid, "progress": 90}
    optevent_db_op.update_optevent(updateinfo)

    os.system("/bin/sync")
    time.sleep(20)
    # e.g install for vcenter kernel install
    os.system("/usr/bin/python /usr/vmd/installvckernel.pyc")
    os.system("/bin/sync")
    time.sleep(20)

    (flag, stat) = setup_grub(bootdisk, harddisk, rootuuid)
    if not flag:
        return (False, stat)

    file_name = "/mnt/sysimage/etc/installtype.txt"
    FileOption(file_name).write_file("HardDisk")

    updateinfo = {"uuid": event.uuid, "progress": 95}
    optevent_db_op.update_optevent(updateinfo)

    umount_tmp_mount()

    return (True, "Successed")
Ejemplo n.º 8
0
def installvserver(event):

    instPath = "/mnt/sysimage"
    harddisk = event.param["harddisk"]

    (flag, params) = check_create_parttion(event)
    if not flag:
        return (False, params)

    bootdisk = params["bootdisk"]
    rootdisk = params["rootdisk"]
    bootsize = params["bootsize"]
    rootsize = params["rootsize"]

    clear_tmp_dir()

    (flag, stat) = create_bootdisk_fs(bootdisk)
    if not flag:
        return (False, stat)

    (flag, stat) = makedir(instPath)
    if not flag:
        return (False, stat)

    ppc = 80 - 20
    stt = 20
    (flag, stat) = doInstall(stt, ppc, rootdisk, event)
    if not flag:
        return (False, stat)

    # e.g diskinfo = {"rootuuid":rootuuid, "bootuuid":bootuuid}
    (flag, diskinfo) = doPostInstall(instPath, rootdisk, bootdisk)
    if not flag:
        return (False, diskinfo)
    
    updateinfo = {"uuid":event.uuid,"progress":85}
    optevent_db_op.update_optevent(updateinfo)
    
    rootuuid = diskinfo["rootuuid"]
    bootuuid = diskinfo["bootuuid"]
    (flag, stat) = setup_grub(bootdisk, harddisk, rootuuid)
    if not flag:
        return (False, stat)
    
    updateinfo = {"uuid":event.uuid,"progress":90}
    optevent_db_op.update_optevent(updateinfo)
    
    file_name = "/mnt/sysimage/etc/installtype.txt"
    FileOption(file_name).write_file("HardDisk")
    
    os.system("/bin/sync")
    time.sleep(20)
    os.system("/usr/bin/python /usr/vmd/plyscript.pyc")
    os.system("/bin/sync")
    time.sleep(20)
    
    updateinfo = {"uuid":event.uuid,"progress":95}
    optevent_db_op.update_optevent(updateinfo)
    
    umount_tmp_mount()

    return (True, "Successed")