Пример #1
0
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)
Пример #2
0
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)
Пример #3
0
 def package_import(self, pkgStr):
     try:
         return package_import(pkgStr, self.session_id)
     except ARMException as ex:
         self.close()
         raise ARMHTTPError(ex)
Пример #4
0
 def setUpClass(cls):
     pkgStr = open(
         os.environ['CAIRIS_SRC'] + '/../examples/exemplars/webinos.cairis',
         'rb').read()
     package_import(pkgStr, 'test')