示例#1
0
def backup_config():
    models = {'storageadmin':
              ['user', 'group', 'sambashare', 'sambacustomconfig',
               'netatalkshare', 'nfsexport',
               'nfsexportgroup', 'advancednfsexport', ],
              'smart_manager':
              ['service', ], }
    model_list = []
    for a in models:
        for m in models[a]:
            model_list.append('%s.%s' % (a, m))
    logger.debug('model list = %s' % model_list)

    filename = ('backup-%s.json' % datetime.now().strftime('%Y-%m-%d-%H%M%S'))
    cb_dir = ConfigBackup.cb_dir()

    if (not os.path.isdir(cb_dir)):
        os.mkdir(cb_dir)
    fp = os.path.join(cb_dir, filename)
    with open(fp, 'w') as dfo:
        call_command('dumpdata', *model_list, stdout=dfo)
        dfo.write('\n')
        call_command('dumpdata', database='smart_manager', *model_list,
                     stdout=dfo)
    run_command(['/usr/bin/gzip', fp])
    gz_name = ('%s.gz' % filename)
    fp = os.path.join(cb_dir, gz_name)
    size = os.stat(fp).st_size
    cbo = ConfigBackup(filename=gz_name, md5sum=md5sum(fp), size=size)
    cbo.save()
    return cbo
示例#2
0
def backup_config():
    models = {
        "storageadmin": [
            "user",
            "group",
            "sambashare",
            "sambacustomconfig",
            "netatalkshare",
            "nfsexport",
            "nfsexportgroup",
            "advancednfsexport",
            'rockon',
            'dcontainer',
            'dcustomconfig',
            'dimage',
            'dcontainerenv',
            'dcontainerlabel',
            'dvolume',
            'dport',
            'containeroption',
            'dcontainerlink',
            'dcontainerargs',
            'dcontainerdevice',
            "share",
        ],
        "smart_manager": ["service", "servicestatus", "taskdefinition"],
    }
    model_list = []
    for a in models:
        for m in models[a]:
            model_list.append("{}.{}".format(a, m))

    filename = "backup-{}.json".format(
        datetime.now().strftime("%Y-%m-%d-%H%M%S"))
    cb_dir = ConfigBackup.cb_dir()

    if not os.path.isdir(cb_dir):
        os.mkdir(cb_dir)
    fp = os.path.join(cb_dir, filename)
    with open(fp, "w") as dfo:
        call_command("dumpdata", *model_list, stdout=dfo)
        dfo.write("\n")
        call_command("dumpdata",
                     database="smart_manager",
                     *model_list,
                     stdout=dfo)
    run_command(["/usr/bin/gzip", fp])
    gz_name = "{}.gz".format(filename)
    fp = os.path.join(cb_dir, gz_name)
    size = os.stat(fp).st_size
    cbo = ConfigBackup(filename=gz_name, md5sum=md5sum(fp), size=size)
    cbo.save()
    return cbo
示例#3
0
def backup_config():
    models = {
        'storageadmin': [
            'user',
            'group',
            'sambashare',
            'sambacustomconfig',
            'netatalkshare',
            'nfsexport',
            'nfsexportgroup',
            'advancednfsexport',
        ],
        'smart_manager': [
            'service',
        ],
    }
    model_list = []
    for a in models:
        for m in models[a]:
            model_list.append('%s.%s' % (a, m))
    logger.debug('model list = %s' % model_list)

    filename = ('backup-%s.json' % datetime.now().strftime('%Y-%m-%d-%H%M%S'))
    cb_dir = ConfigBackup.cb_dir()

    if (not os.path.isdir(cb_dir)):
        os.mkdir(cb_dir)
    fp = os.path.join(cb_dir, filename)
    with open(fp, 'w') as dfo:
        call_command('dumpdata', *model_list, stdout=dfo)
        dfo.write('\n')
        call_command('dumpdata',
                     database='smart_manager',
                     *model_list,
                     stdout=dfo)
    run_command(['/usr/bin/gzip', fp])
    gz_name = ('%s.gz' % filename)
    fp = os.path.join(cb_dir, gz_name)
    size = os.stat(fp).st_size
    cbo = ConfigBackup(filename=gz_name, md5sum=md5sum(fp), size=size)
    cbo.save()
    return cbo