Exemplo n.º 1
0
def updateStorageTapelib(dircompid=None, sdcompid=None, sdcomponent=None, storname=None, tapelib=None):
    if storname is None:
        return None
    if dircompid is None:
        dircompid = getDIRcompid()
    if sdcomponent is None:
        data = ConfParameter.objects.get(resid__compid_id=dircompid, resid__type__name='Storage', resid__name=storname,
                                         name='.StorageComponent')
        sdcomponent = data.value
    if sdcompid is None:
        sdcompid = getSDcompid(name=sdcomponent)
    mediatype = getDIRStorageMediatype(name=storname)
    devtype = 'Tape'
    # delete Autochanger and Devices
    deleteSDAutochanger(sdcompid=sdcompid, autoname=mediatype)
    deleteSDDevices(sdcompid=sdcompid, mediatype=mediatype)
    # create a list of archive devices
    devices = []
    for dev in tapelib['Devices']:
        devices.append({
            'name': mediatype + 'Dev' + str(dev['DriveIndex']),
            'archdir': getdevsymlink(dev['Tape']['dev']),
            'devindex': dev['DriveIndex'],
            'mediatype': mediatype,
        })
    # create new Autochanger {} resource in SD conf
    createSDAutochanger(sdcompid=sdcompid, name=mediatype, changerdev=getdevsymlink(tapelib['Lib']['dev']),
                        changercmd='/opt/bacula/scripts/mtx-changer %c %o %S %a %d', devices=devices)
    for dev in devices:
        createSDDevice(sdcompid=sdcompid, dtype=devtype, device=dev)
Exemplo n.º 2
0
def extendStoragetape(dircompid=None,
                      dirname=None,
                      sdcompid=None,
                      storname=None,
                      descr='',
                      sdcomponent=None,
                      tapelib=None):
    if storname is None or (sdcomponent is None
                            and sdcompid is None) or tapelib is None:
        return None
    if dircompid is None:
        dircompid = getDIRcompid()
    if dirname is None:
        dirname = getDIRname()
    if sdcompid is None:
        sdcompid = getSDcompid(name=sdcomponent)
    devtype = 'Tape'
    mediatype = devtype + getnextStorageid()
    encpass = getSDStorageEncpass(sdcompid=sdcompid, name=sdcomponent)
    password = getdecpass(comp=sdcomponent, encpass=encpass)
    address = getDIRInternalStorageAddress()
    sddirdevice = tapelib['Lib']['name'] + tapelib['Lib']['id']
    sddirtapeid = tapelib['Lib']['id']
    # insert new Storage {} resource into Dir conf
    createDIRStorage(dircompid=dircompid,
                     dirname=dirname,
                     name=storname,
                     password=password,
                     address=address,
                     descr=descr,
                     device=mediatype,
                     mediatype=mediatype,
                     sdcomponent=sdcomponent,
                     sddirdevice=sddirdevice,
                     sddirtapeid=sddirtapeid)
    # TODO: extend maximumconcurrentjobs for SD
    # create a list of archive devices
    devices = []
    for dev in tapelib['Devices']:
        devices.append({
            'name': mediatype + 'Dev' + str(dev['DriveIndex']),
            'archdir': getdevsymlink(dev['Tape']['dev']),
            'devindex': dev['DriveIndex'],
            'mediatype': mediatype,
        })
    # create new Autochanger {} resource in SD conf
    createSDAutochanger(
        sdcompid=sdcompid,
        name=mediatype,
        changerdev=getdevsymlink(tapelib['Lib']['dev']),
        changercmd='/opt/bacula/scripts/mtx-changer %c %o %S %a %d',
        devices=devices)
    for dev in devices:
        createSDDevice(sdcompid=sdcompid, dtype=devtype, device=dev)
Exemplo n.º 3
0
def createStoragetape(dircompid=None, dirname=None, storname='ibadmin', address='localhost', descr='', tapelib=None,
                      internal=False):
    if tapelib is None:
        return None
    # get and prepare required data
    if dircompid is None:
        dircompid = getDIRcompid()
    if dirname is None:
        dirname = getDIRname()
    devtype = 'Tape'
    mediatype = devtype + getnextStorageid()
    dirstorname = storname + '-' + mediatype
    # generate password
    password = randomstr()
    sddirdevice = tapelib['Lib']['name'] + tapelib['Lib']['id']
    sddirtapeid = tapelib['Lib']['id']
    # insert new Storage {} resource into Dir conf
    createDIRStorage(dircompid=dircompid, dirname=dirname, name=dirstorname, password=password, address=address,
                     descr=descr, device=mediatype, mediatype=mediatype, internal=internal, sdcomponent=storname,
                     sddirdevice=sddirdevice, sddirtapeid=sddirtapeid)
    # create SD component
    sdcompid = createSDcomponent(name=storname)
    # insert new Director {} resource into SD conf
    createSDDirector(sdcompid=sdcompid, dirname=dirname, name=storname, password=password, descr=descr)
    # insert new Storage {} resource into SD conf
    createSDStorage(sdcompid=sdcompid, name=storname, descr=descr, address=address)
    # insert new Messages {} resource into SD conf
    createSDMessages(sdcompid=sdcompid, dirname=dirname)
    # create a list of archive devices
    devices = []
    for dev in tapelib['Devices']:
        devices.append({
            'name': mediatype + 'Dev' + str(dev['DriveIndex']),
            'archdir': getdevsymlink(dev['Tape']['dev']),
            'devindex': dev['DriveIndex'],
            'mediatype': mediatype,
        })
    # create new Autochanger {} resource in SD conf
    createSDAutochanger(sdcompid=sdcompid, name=mediatype, changerdev=getdevsymlink(tapelib['Lib']['dev']),
                        changercmd='/opt/bacula/scripts/mtx-changer %c %o %S %a %d', devices=devices)
    for dev in devices:
        createSDDevice(sdcompid=sdcompid, dtype=devtype, device=dev)
    return dirstorname
Exemplo n.º 4
0
def updateStorageTapelib(dircompid=None,
                         sdcompid=None,
                         sdcomponent=None,
                         storname=None,
                         tapelib=None):
    if storname is None:
        return None
    if dircompid is None:
        dircompid = getDIRcompid()
    if sdcomponent is None:
        data = ConfParameter.objects.get(resid__compid_id=dircompid,
                                         resid__type=ResType.Storage,
                                         resid__name=storname,
                                         name='.StorageComponent')
        sdcomponent = data.value
    if sdcompid is None:
        sdcompid = getSDcompid(name=sdcomponent)
    mediatype = getDIRStorageMediatype(name=storname)
    devtype = 'Tape'
    # delete Autochanger and Devices
    deleteSDAutochanger(sdcompid=sdcompid, autoname=mediatype)
    deleteSDDevices(sdcompid=sdcompid, mediatype=mediatype)
    # create a list of archive devices
    devices = []
    for dev in tapelib['Devices']:
        devices.append({
            'name': mediatype + 'Dev' + str(dev['DriveIndex']),
            'archdir': getdevsymlink(dev['Tape']['dev']),
            'devindex': dev['DriveIndex'],
            'mediatype': mediatype,
        })
    # create new Autochanger {} resource in SD conf
    createSDAutochanger(
        sdcompid=sdcompid,
        name=mediatype,
        changerdev=getdevsymlink(tapelib['Lib']['dev']),
        changercmd='/opt/bacula/scripts/mtx-changer %c %o %S %a %d',
        devices=devices)
    for dev in devices:
        createSDDevice(sdcompid=sdcompid, dtype=devtype, device=dev)
Exemplo n.º 5
0
def extendStoragetape(dircompid=None, dirname=None, sdcompid=None, storname=None, descr='', sdcomponent=None,
                      tapelib=None):
    if storname is None or (sdcomponent is None and sdcompid is None) or tapelib is None:
        return None
    if dircompid is None:
        dircompid = getDIRcompid()
    if dirname is None:
        dirname = getDIRname()
    if sdcompid is None:
        sdcompid = getSDcompid(name=sdcomponent)
    devtype = 'Tape'
    mediatype = devtype + getnextStorageid()
    encpass = getSDStorageEncpass(sdcompid=sdcompid, name=sdcomponent)
    password = getdecpass(comp=sdcomponent, encpass=encpass)
    address = getDIRInternalStorageAddress()
    sddirdevice = tapelib['Lib']['name'] + tapelib['Lib']['id']
    sddirtapeid = tapelib['Lib']['id']
    # insert new Storage {} resource into Dir conf
    createDIRStorage(dircompid=dircompid, dirname=dirname, name=storname, password=password, address=address,
                     descr=descr, device=mediatype, mediatype=mediatype, sdcomponent=sdcomponent,
                     sddirdevice=sddirdevice, sddirtapeid=sddirtapeid)
    # TODO: extend maximumconcurrentjobs for SD
    # create a list of archive devices
    devices = []
    for dev in tapelib['Devices']:
        devices.append({
            'name': mediatype + 'Dev' + str(dev['DriveIndex']),
            'archdir': getdevsymlink(dev['Tape']['dev']),
            'devindex': dev['DriveIndex'],
            'mediatype': mediatype,
        })
    # create new Autochanger {} resource in SD conf
    createSDAutochanger(sdcompid=sdcompid, name=mediatype, changerdev=getdevsymlink(tapelib['Lib']['dev']),
                        changercmd='/opt/bacula/scripts/mtx-changer %c %o %S %a %d', devices=devices)
    for dev in devices:
        createSDDevice(sdcompid=sdcompid, dtype=devtype, device=dev)
Exemplo n.º 6
0
def createStoragetape(dircompid=None,
                      dirname=None,
                      storname='ibadmin',
                      address='localhost',
                      descr='',
                      tapelib=None,
                      internal=False):
    if tapelib is None:
        return None
    # get and prepare required data
    if dircompid is None:
        dircompid = getDIRcompid()
    if dirname is None:
        dirname = getDIRname()
    devtype = 'Tape'
    mediatype = devtype + getnextStorageid()
    dirstorname = storname + '-' + mediatype
    # generate password
    password = randomstr()
    sddirdevice = tapelib['Lib']['name'] + tapelib['Lib']['id']
    sddirtapeid = tapelib['Lib']['id']
    # insert new Storage {} resource into Dir conf
    createDIRStorage(dircompid=dircompid,
                     dirname=dirname,
                     name=dirstorname,
                     password=password,
                     address=address,
                     descr=descr,
                     device=mediatype,
                     mediatype=mediatype,
                     internal=internal,
                     sdcomponent=storname,
                     sddirdevice=sddirdevice,
                     sddirtapeid=sddirtapeid)
    # create SD component
    sdcompid = createSDcomponent(name=storname)
    # insert new Director {} resource into SD conf
    createSDDirector(sdcompid=sdcompid,
                     dirname=dirname,
                     name=storname,
                     password=password,
                     descr=descr)
    # insert new Storage {} resource into SD conf
    createSDStorage(sdcompid=sdcompid,
                    name=storname,
                    descr=descr,
                    address=address)
    # insert new Messages {} resource into SD conf
    createSDMessages(sdcompid=sdcompid, dirname=dirname)
    # create a list of archive devices
    devices = []
    for dev in tapelib['Devices']:
        devices.append({
            'name': mediatype + 'Dev' + str(dev['DriveIndex']),
            'archdir': getdevsymlink(dev['Tape']['dev']),
            'devindex': dev['DriveIndex'],
            'mediatype': mediatype,
        })
    # create new Autochanger {} resource in SD conf
    createSDAutochanger(
        sdcompid=sdcompid,
        name=mediatype,
        changerdev=getdevsymlink(tapelib['Lib']['dev']),
        changercmd='/opt/bacula/scripts/mtx-changer %c %o %S %a %d',
        devices=devices)
    for dev in devices:
        createSDDevice(sdcompid=sdcompid, dtype=devtype, device=dev)
    return dirstorname