def main(): parser = argparse.ArgumentParser(description='Computer Aided Integration of Requirements and Information Security - Restore server') parser.add_argument('archiveFile',help='Model archive tarball to be restored') args = parser.parse_args() cairis.core.BorgFactory.initialise() b = Borg() modelFiles = [] models = [] hashes = [] with tarfile.open(args.archiveFile,'r') as archive: modelFiles = archive.getmembers() for modelFile in modelFiles: if (modelFile.name != 'hashes.txt'): accountName = modelFile.name.split('.cairis')[0] try: addCairisUser(accountName,accountName,accountName) models.append((accountName,archive.extractfile(modelFile).read())) logger.info('Re-created account ' + accountName) except ARMException as ex: logger.info('Error re-creating account ' + accountName + ' : ' + str(ex)) else: hashes = list(map(lambda x: x.decode().rstrip().split(','),archive.extractfile(modelFile).readlines())) for accountName,model in models: try: cairis.core.BorgFactory.initialise(user=accountName,db='default') package_import(model) logger.info('Re-imported default model for account ' + accountName) except ARMException as ex: logger.info('Error re-importing default model for account ' + accountName + ' : ' + str(ex)) updateEmailHashes(b.rPasswd,b.dbHost,b.dbPort,hashes)
def resetDatabase(cairisRoot, rPasswd, dbHost, dbPort, user, isReload, ignoreValidityCheck): cairis.core.BorgFactory.initialise(user=user, db='default') b = Borg() packageFile = '/tmp/' + user + '.cairis' if (isReload == '1'): logger.info('Exporting ' + user + ' default database') exportPackage(packageFile, b.dbProxy, ignoreValidityCheck) logger.info('Resetting ' + user) resetUser(cairisRoot, rPasswd, dbHost, dbPort, user) cairis.core.BorgFactory.initialise(user=user, db='default') if (isReload == '1'): logger.info('Re-importing ' + user + ' default database') pkgStr = open(packageFile, 'rb').read() package_import(pkgStr)
def package_import(self, pkgStr): try: return package_import(pkgStr, self.session_id) except ARMException as ex: self.close() raise ARMHTTPError(ex)
def setUpClass(cls): pkgStr = open( os.environ['CAIRIS_SRC'] + '/../examples/exemplars/webinos.cairis', 'rb').read() package_import(pkgStr, 'test')