예제 #1
0
    def backup_postgres(self):
        global BACKUP_DIR

        # Identity database to backup
        metadata_manager = MetadataAPI()
        list_services = metadata_manager.get_service_links()
        list_postgresql = []
        for service in list_services:
            service_name = list_services[service]
            service_name_env = service_name.upper().replace('-', '_')
            database = {}
            database['host'] = service_name
            database['db'] = os.getenv(
                service_name_env + '_ENV_POSTGRES_DB',
                os.getenv(service_name_env + '_ENV_POSTGRES_USER'))
            database['user'] = os.getenv(
                service_name_env + '_ENV_POSTGRES_USER', 'postgres')
            database['password'] = os.getenv(service_name_env +
                                             '_ENV_POSTGRES_PASSWORD')
            database['name'] = service

            list_postgresql.append(database)
            print("Found Postgresql host to backup : " + service + " (" +
                  service_name + ")")

        # Backup database
        for database in list_postgresql:

            cmd = 'pg_dump -h ' + database['host']

            if database['user'] is not None and database[
                    'password'] is not None:
                cmd = 'PGPASSWORD='******'password'] + ' ' + cmd
                cmd += ' -U ' + database['user']

            cmd += ' -d ' + database['db']
            path = BACKUP_DIR + '/' + database['name']
            os.system('mkdir -p ' + path)
            os.system('rm ' + path + '/*')
            cmd += " -f %s/postgres_%s.sql" % (path, database['db'])
            os.system(cmd)
            print("We dump " + database['db'] + " (" + database['name'] +
                  ") in " + path)
예제 #2
0
  def detect_gluster(self):
      global BACKUP_DIR

      # Identity database to backup
      metadata_manager = MetadataAPI()
      list_services = metadata_manager.get_service_links()
      list_gluster = []
      for service in list_services:
          service_name = list_services[service]
          service_name_env = service_name.upper().replace('-', '_')
          gluster = {}
          gluster['host'] = service_name
          gluster['name'] = service
          gluster['volumes'] = os.getenv(service_name_env + '_ENV_GLUSTER_VOLUMES').split(',')

          list_gluster.append(gluster)
          print("Found Gluster host to backup : %s (%s)" % (service, service_name))


      return list_gluster
예제 #3
0
  def backup_postgres(self):
      global BACKUP_DIR

      # Identity database to backup
      metadata_manager = MetadataAPI()
      list_services = metadata_manager.get_service_links()
      list_postgresql = []
      for service in list_services:
          service_name = list_services[service]
          service_name_env = service_name.upper().replace('-', '_')
          database = {}
          database['host'] = service_name
          database['db'] = os.getenv(service_name_env + '_ENV_POSTGRES_DB', os.getenv(service_name_env + '_ENV_POSTGRES_USER'))
          database['user'] = os.getenv(service_name_env + '_ENV_POSTGRES_USER', 'postgres')
          database['password'] = os.getenv(service_name_env + '_ENV_POSTGRES_PASSWORD')
          database['name'] = service

          list_postgresql.append(database)
          print("Found Postgresql host to backup : " + service + " (" + service_name + ")")

      # Backup database
      for database in list_postgresql:

          cmd = 'pg_dump -h ' + database['host']

          if database['user'] is not None and database['password'] is not None:
              cmd = 'PGPASSWORD='******'password'] + ' ' + cmd
              cmd += ' -U ' + database['user']

          cmd += ' -d ' + database['db']
          path = BACKUP_DIR + '/' + database['name']
          os.system('mkdir -p ' + path)
          os.system('rm ' + path + '/*')
          cmd += " -f %s/postgres_%s.sql" % (path, database['db'])
          os.system(cmd)
          print("We dump " + database['db'] + " (" + database['name'] + ") in " + path)