/*
* Copyright (c) 2014 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.management.backup;
import java.io.File;
/**
* Constants for backup project
*/
public interface BackupConstants {
// quota limit for backup directory
public static final String QUOTA = "quota";
public static final String BACKUP_UPLOAD_STATUS = "uploadStatus";
// These are internal state tracking entries under
public static final String BACKUP_TAGS_RETAINED = "retained_tags";
public static final String BACKUP_TAGS_UPLOADED = "uploaded_tags";
// These are backup related configurations in system properties
public static final String BACKUP_MAX_USED_DISK_PERCENTAGE = "backup_max_used_disk_percentage";
public static final String BACKUP_THRESHOLD_DISK_PERCENTAGE = "backup_threshold_disk_percentage";
// These are manual backup configurations in system properties
public static final String BACKUP_MAX_MANUAL_COPIES = "backup_max_manual_copies";
// These are Backup Scheduler related configurations in system properties
public static final String SCHEDULER_ENABLED = "backup_scheduler_enable";
public static final String SCHEDULE_INTERVAL = "backup_scheduler_interval";
public static final String SCHEDULE_TIME = "backup_scheduler_time";
public static final String COPIES_TO_KEEP = "backup_scheduler_copies_to_keep";
public static final String UPLOAD_SERVER_TYPE= "backup_external_server_type";
public static final String UPLOAD_SERVER_DOMAIN = "backup_external_location_domain";
public static final String UPLOAD_URL = "backup_external_location_url";
public static final String UPLOAD_USERNAME = "backup_external_location_username";
public static final String UPLOAD_PASSWD = "backup_external_location_password";
public static final int DEFAULT_BACKUP_COPIES_TO_KEEP = 5;
public static final int BACKUP_RETRY_COUNT = 3;
// These are backup operation status related keys in ZK configuration
public static final String LAST_MANUAL_CREATION="lastManualCreation";
public static final String LAST_SCHEDULED_CREATION="lastScheduledCreation";
public static final String LAST_SUCCESSFUL_CREATION="lastSuccessfulCreation";
public static final String LAST_UPLOAD="lastUpload";
public static final String NEXT_SCHEDULED_CREATION="nextScheduledCreation";
public static final String OPERATION_NAME="name";
public static final String OPERATION_TIME="time";
public static final String OPERATION_MESSAGE="msg";
public static final String BACKUP_OPERATION_STATUS_KEY_FORMAT = "%s_%s";
// The sleep time for scheduler when the cluster is upgrading
public static final int SCHEDULER_SLEEP_TIME_FOR_UPGRADING = 10 * 60 * 1000;
public static final String SCHEDULED_BACKUP_DATE_PATTERN = "yyyyMMddHHmmss";
public static final String SCHEDULED_BACKUP_TAG_REGEX_PATTERN = "^%s-[0-9]\\.[0-9].*-\\d+-\\d{%d}$";
// Number of Gigabyte compare to byte
public static final long GIGABYTE = 1024 * 1024 * 1024;
// Number of Megabyte compare to byte
public static final long MEGABYTE = 1024 * 1024;
// Number of Kilobyte compare to byte
public static final int KILOBYTE = 1024;
// Delimiter for backup file name
public static final String BACKUP_NAME_DELIMITER = "_";
public static final String SCHEDULED_BACKUP_TAG_DELIMITER = "-";
public static final String UPLOAD_ZIP_FILE_NAME_DELIMITER = "_";
// Backup related name format
public static final String SCHEDULED_BACKUP_TAG_TEMPLATE = "%s-%d-%s";
public static final String UPLOAD_ZIP_FILENAME_FORMAT = "%s_%s_%s_%s%s"; //tag_totalNodes_availableNodes_siteId.COMPRESS_SUFFIX
// Backup compress format
public static final String COMPRESS_SUFFIX = ".zip";
public static final String INVALID_COMPRESS_SUFFIX = ".zip.invalid";
public static final String INCOMPLETE_COMPRESS_SUFFIX = ".zip.tmp";
// Backup retry max count
public static final int RETRY_MAX_CNT = 3;
// Standard date string format
public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
public static final String SCHEDULED_BACKUP_DATE_FORMAT = "yyyyMMddHHmmss";
// Dynamic string format of listing backups
public static final String LIST_BACKUP_TITLE = " %%-%ds%%-10s%%-20s";
public static final String LIST_BACKUP_INFO = " %%-%ds%%-10.2f%%-20s";
public static final String COLLECTED_BACKUP_REGEX_PATTERN = "^(\\S+)*-\\d+-\\d+-(\\S+)*\\.zip$";
public static final String SCHEDULED_BACKUP_DATE_REGEX_PATTERN = "^\\d{%d}$";
// The common part of backup info file name
public static final String BACKUP_INFO_SUFFIX = BACKUP_NAME_DELIMITER + "info.properties";
public static final String BACKUP_ZK_FILE_SUFFIX = BACKUP_NAME_DELIMITER + "zk.zip";
public static final String BACKUP_INFO_VERSION = "version";
public static final String BACKUP_INFO_HOSTS = "hosts";
public static final String BACKUP_INFO_CREATE_TIME = "time";
public static final String BACKUP_INFO_SITE_ID="siteID";
public static final String BACKUP_INFO_SITE_NAME="siteName";
public static final String EVENT_SERVICE_TYPE = "backup";
public static final String BACKUP_LEADER_PATH = "backupleader";
public static final long BACKUP_WAINT_BEFORE_RETRY_ZK_CONN = 1000L;
// Delimiter for host IPv4 and IPv6 in _info.properties file
public static final String HOSTS_IP_DELIMITER = "/";
public static final String STORAGEOS_USER = "storageos";
public static final String STORAGEOS_GROUP = "storageos";
public static final File[] EMPTY_ARRAY = {};
String FTPS_URL_PREFIX = "ftps://";
String FTP_URL_PREFIX = "ftp://";
String SMB_URL_PREFIX = "smb://";
String CONTENT_LENGTH_HEADER = "Content-Length:";
int FILE_DOES_NOT_EXIST = 19;
String MD5_SUFFIX = ".md5";
int LOCK_TIMEOUT = 1000;
//constants for restore
int DOWNLOAD_BUFFER_SIZE=0x20000;
// The directory to persist downloaded backup files from FTP server
String RESTORE_DIR= "/data/restore";
String PULL_RESTORE_STATUS = "pull-restore-status";
String LOCAL_RESTORE_KIND_PREFIX= PULL_RESTORE_STATUS + "/local";
String REMOTE_RESTORE_KIND_PREFIX= PULL_RESTORE_STATUS + "/remote";
String DOWNLOAD_OWNER_SUFFIX="/downloaders";
String RESTORE_LOCK="restore";
String RESTORE_STATUS_UPDATE_LOCK="restore-status-update";
String BACKUP_LOCK = "backup";
String CURRENT_DOWNLOADING_BACKUP_NAME_KEY="name";
String CURRENT_DOWNLOADING_BACKUP_ISLOCAL_KEY="isLocal";
public String CASSANDRA_CF_NAME_DELIMITER = "-";
public static final String SITE_ID_FILE_NAME = "siteid";
public static final int SYSTOOL_TIMEOUT_MILLIS = 120000; // 2 min
public static final String VDC_PROPS_FILE_NAME = "vdcconfig.properties";
public static final String DRIVERS_FOLDER_NAME = "drivers";
public static final String DRIVERS_DIR = "/data/drivers";
public static final String BACKUP_FILE_PERMISSION = "644";
public static final String DRIVER_DIR_PERMISSION = "755";
}