/****************************************************************************** * Copyright (c) 2012-2015 VMware, Inc. All Rights Reserved. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ package com.vmware.bdd.utils; public class Constants { public static final String CLUSTER_CONFIG_FORMAT_ERROR = "The format of configuration is invalid !"; public final static String CLUSTER_CONFIG_TYPE_NOT_REGULAR = "Warning: The type %1s is not a regular cluster configuration."; public final static String CLUSTER_CONFIG_TYPES_NOT_REGULAR = "Warning: The types %1s are not regular cluster configurations."; public static final String LIST_CONFIG_ERROR = "The blacklist or whitelist config error!"; public static final String FAIR_SCHEDULER_FILE_NAME = "fair-scheduler.xml"; public static final String FAIR_SCHEDULER_FILE_ATTRIBUTE = "text"; public static final int VHM_PROTOCOL_VERSION = 3; public static final String SET_MANUAL_ELASTICITY_INFO_VERSION = "version"; public static final String SET_MANUAL_ELASTICITY_INFO_CLUSTER_NAME = "cluster_name"; public static final String SET_MANUAL_ELASTICITY_INFO_INSTANCE_NUM = "instance_num"; public static final String SET_MANUAL_ELASTICITY_INFO_RECEIVE_ROUTE_KEY = "route_key"; public static final String SET_MANUAL_ELASTICITY_INFO_ACTION = "action"; public static final String CLUSTER_NAME_PATTERN = "[a-zA-Z0-9_]+"; public static final String NODE_GROUP_NAME_PATTERN = "[[a-zA-Z0-9]+]{1,80}"; public static final String REST_REQUEST_PATH_INFO_PATTERN = "[/[a-zA-Z0-9_]*]+"; public static final String RESOURCE_NAME_PATTERN = "(\\p{L}|\\p{N}|_|-|\\s)+"; public static final String VC_RESOURCE_NAME_PATTERN = "(\\p{L}|\\p{N}|_|-|\\s|\\.)+"; public static final String DISTRO_NAME_PATTERN = "[a-zA-Z0-9_\\-\\s\\.]+"; public static final String SERENGETI_SERVER_VM_MOBID = "vim.cms_moref"; public static final String GUEST_VARIABLE_DNS_KEY_1 = "dnsserver1"; public static final String GUEST_VARIABLE_DNS_KEY_0 = "dnsserver0"; public static final String GUEST_VARIABLE_GATEWAY_KEY = "gateway"; public static final String GUEST_VARIABLE_NETMASK_KEY = "netmask"; public static final String GUEST_VARIABLE_IP_KEY = "ipaddr"; public static final String GUEST_VARIABLE_POLICY_KEY = "bootproto"; public static final String GUEST_VARIABLE_BOOTUP_UUID = "bootupUUID"; public static final String GUEST_VARIABLE_PORT_GROUP = "portgroup"; public static final String GUEST_VARIABLE_NIC_DEVICES = "nics"; public static final String GUEST_VARIABLE_RESERVE_RAW_DISKS = "reserveRawDisks"; public static final String GUEST_VARIABLE_VOLUMES = "volumes"; public static final String GUEST_VARIABLE_DNS_TYPE = "dnsType"; public static final String GUEST_VARIABLE_DHCP_HOSTNAME = "dhcpHostname"; public static final String MANAGEMENT_SERVER_IP = "managementServerIP"; public static final String NULL_IPV4_ADDRESS = "0.0.0.0"; public static final String NULL_IPV6_ADDRESS = "::"; public static final String NODE_ACTION_CLONING_VM = "Cloning VM"; public static final String NODE_ACTION_CLONING_FAILED = "Cloning VM failed"; public static final String NODE_ACTION_CREATION_FAILED = "VM creation failed"; public static final String NODE_ACTION_WAITING_IP = "Waiting for ip"; public static final String NODE_ACTION_RECONFIGURE = "Reconfiguring VM"; public static final String NODE_ACTION_GET_IP_FAILED = "Failed to query IP address"; public static final String NODE_ACTION_UPGRADING = "Upgrading"; public static final String NODE_ACTION_DOWNLOAD_PACKAGES = "Downloading upgrade packages"; public static final String NODE_ACTION_INSTALL_PACKAGES = "Installing upgrade packages"; public static final String NODE_ACTION_UPGRADE_FAILED = "Upgrade failed"; public static final String NODE_ACTION_UPGRADE_SUCCEED = "Upgrade succeeded"; public static final String NODE_ACTION_WRONG_FT_STATUS = "Wrong FT status"; public static final String NODE_ACTION_SETTING_PASSWORD = "Setting password"; public static final String NODE_ACTION_SET_PASSWORD_SUCCEED = "Set password succeeded"; public static final String NODE_ACTION_SET_PASSWORD_FAILED = "Set password failed"; public static final String NODE_ACTION_CHANGE_REPO_DIR_PERMISSION = "Remote add the write permission to repo dir"; public static final String NODE_ACTION_GENERATE_HOSTNAME_SUCCEED = "Generating hostname succeeded"; public static final String NODE_ACTION_GENERATE_HOSTNAME_FAILED = "Generating hostname failed"; public static final String NODE_ACTION_GENERATE_HOSTNAME = "Generating hostname"; public static final String NODE_ACTION_REMOVA_BAD_DATA_DISK = "Removing bad data disk"; public static final int VM_POWER_ON_WAITING_SEC = 600; public static final int VM_SHUTDOWN_WAITING_SEC = 600; public static final int VM_FAST_SHUTDOWN_WAITING_SEC = 180; public static final int MAX_TIME_DIFF_IN_SEC = 240; public static final int MAX_TIME_DIFF_IN_SEC_HBASE = 20; public static final String VC_DATASTORE_NAME_PATTERN = "(\\p{L}|\\p{N}|_|-|\\s|\\?|\\*|\\.|\\(|\\))+"; public static final String WRONG_NUM_OF_JOBTRACKER = "The number of JobTrackers must be one."; public static final String WRONG_NUM_OF_RESOURCEMANAGER = "The number of ResourceManagers cannot exceed one."; public static final String WRONG_NUM_OF_ZOOKEEPER = "The number of ZooKeepers cannot be less than three."; public static final String ODD_NUM_OF_ZOOKEEPER = "The number of ZooKeepers is recommended to be an odd number."; public static final String WORKER_CLIENT_HA_FLAG = "The worker or client node group has vSphere High Availability enabled."; public static final String WRONG_NUM_OF_JOURNALNODE = "The number of journal nodes must be three or more."; public static final String ODD_NUM_OF_JOURNALNODE = "The number of journal nodes is recommended to be an odd number."; public static final String NAMENODE_AUTO_FAILOVER_ZOOKEEPER = "To support vSphere High Availability on name nodes, you must configure a ZooKeeper group."; public static final String NO_NAMENODE_HA = "NameNode High Availability is not enabled, but journal nodes appear."; public static final String WRONG_NUM_OF_NODEGROUPS = "Only one node group can include JobTracker, ZooKeeper or HMaster."; public static final String DATA_CLIENT_NODE_JOURNALNODE_COEXIST = "Journal nodes cannot be on data nodes or client nodes."; public static final String STORAGE_TYPE_ALLOWED = "Valid storage types are SHARED, LOCAL, and TEMPFS."; public static final String TEMPFS_NOT_ALLOWED = "TEMPFS storage can be set only on compute nodes with strict association to data nodes."; public static final String DEFAULT_VENDOR = "BIGTOP"; public static final String APACHE_VENDOR = "APACHE"; public static final String CDH_VENDOR = "CDH"; public static final String GPHD_VENDOR = "GPHD"; public static final String HDP_VENDOR = "HDP"; public static final String MAPR_VENDOR = "MAPR"; public static final String PHD_VENDOR = "PHD"; public static final String INTEL_VENDOR = "INTEL"; public static final String BIGTOP_VENDOR = "BIGTOP"; public static final String CLOUDERA_MANAGER_PLUGIN_TYPE = "ClouderaManager"; // must match serengeti.properties public static final String AMBARI_PLUGIN_TYPE = "Ambari"; public static final String CURRENT_DISTRO_CAN_NOT_SUPPORT_HDFS2 = "The current Hadoop distribution does not support HDFS2 High Availability or federation."; public static final String CDH_PATTERN = "^[4-9](\\.\\w+)+"; public static final String IP_PATTERN = "\\b((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\b"; public static final String AMBARI_HBASE_DEPEND_ON_MAPREDUCE = "ambari.hbase_depend_on_mapreduce"; // rabbitMQ message format public static final String ERROR_MSG_FIELD = "error_msg"; public static final String FINISH_FIELD = "finished"; public static final String SUCCEED_FIELD = "succeed"; public static final String PROGRESS_FIELD = "progress"; public static final String CLUSTER_DATA_FIELD = "cluster_data"; public static final String CLUSTER_NAME_FIELD = "name"; // cloud provider public static final String CLOUD_PROVIDER_NAME_FIELD = "name"; public static final String CLOUD_PROVIDER_TYPE_FIELD = "type"; public static final String VSPHERE_PROVIDER_NAME = "static"; public static final String VSPHERE_PROVIDER_TYPE = "VC"; public static final String HA_FLAG_ON = "on"; public static final String HA_FLAG_FT = "ft"; public static final String HA_FLAG_OFF = "off"; public static final String MUST_CONFIGURE_FQDN = "The CDH 4.2.1+ cluster deployed in a network without FQDN/IP forward and reverse resolution will not work properly."; public static final String CONVERTED_MEMORY_DIVISIBLE_BY_4 = "The size of the virtual machine memory must be evenly divisible by 4. "; public static final String ROOT_SNAPSTHOT_NAME = "serengeti-snapshot"; public static final String ROOT_SNAPSTHOT_DESC = "Serengeti template Root Snapshot"; public static final int DEFAULT_SCHEDULER_POOL_SIZE = 1024; public static final int MIN_MEM_SIZE = 1024; public static final String VERSION = "2.3.2"; public static final String SSH_PRIVATE_KEY_FILE_NAME = "id_rsa"; public static final String SSH_PRIVATE_KEY_CONFIG_NAME = "serengeti.ssh.private.key.file"; public static final int SSH_SESSION_TIMEOUT = 15000; public static final String SET_PASSWORD_SCRIPT_CONFIG_NAME = "serengeti.set.password.script"; public static final String SSH_USER_CONFIG_NAME = "serengeti.ssh.user"; public static final String DEFAULT_SSH_USER_NAME = "serengeti"; public static final String SSH_PORT_CONFIG_NAME = "serengeti.ssh.port"; public static final int DEFAULT_SSH_PORT = 22; public static final String DEFAULT_SET_PASSWORD_SCRIPT = "set-password"; public static final int SET_PASSWORD_MAX_RETRY_TIMES = 10; public static final String NEW_LINE = "\n"; public static final String DEFAULT_PASSWORDLESS_LOGIN_SCRIPT = "setup-passwordless-login"; public static final String PASSWORDLESS_LOGIN_SCRIPT = "serengeti.passwordless.login.script"; public static final String PASSWORDLESS_LOGIN_TIMEOUT = "serengeti.passwordless.login.timeout"; public static final String DEFAULT_REMOVE_SSH_LIMIT_SCRIPT = "open-ssh-access.py"; public static final String REMOVE_SSH_LIMIT_SCRIPT = "serengeti.remove.ssh.limit.script"; public static final String NODE_UPGRADE_FILE_PATH = "/opt/serengeti/www/nodeupgrade/"; public static final String NODE_UPGRADE_TARBALL_FILE_NAME = "serengeti-node-scripts.tar.gz"; public static final String NODE_UPGRADE_SCRIPT_FILE_NAME = "serengeti-upgrade-node.sh"; public static final String REMOVE_BAD_DISK_SCRIPT_FOR_MAPR = "remove_bad_disks_for_mapr.sh"; public static final String NEED_UPGRADE = "Earlier"; public static final String MSG_SETTING_UP_PASSWORDLESS_LOGIN = "Setting up passwordless login to "; public static final String SERENGETI_TTY_NAME = "serengeti.tty.name"; public static final String SERENGETI_DEFAULT_TTY_NAME = "tty1"; public static final String SERENGETI_CLONE_MODE = "serengeti.clone.mode"; public static final String SERENGETI_CONCURRENT_JOB_ENABLED = "serengeti.concurrent.job.enabled"; public static final String SERENGETI_USE_DEFAULT_PASSWORD = "serengeti.use.default.password"; public static final String SERENGETI_DEFAULT_PASSWORD = "serengeti.default.password"; public static final String SERENGETI_UTILS_DIR = "/opt/serengeti/etc/utils/"; public static final String SERENGETI_SBIN_DIR = "serengeti.sbin.dir"; public static final String DEFAULT_SERENGETI_SBIN_DIR = "/opt/serengeti/sbin"; public static final String SERENGETI_HOME = "serengeti.home"; public static final String DEFAULT_SERENGETI_HOME = "/home/serengeti"; public static final String DEFAULT_SERENGETI_ROOT_DIR = "/opt/serengeti"; public static final String EXEC_COMMAND_TIMEOUT = " timeout."; public static final String EXEC_COMMAND_FAILED = " failed."; public static final String NO_RESOURCE_POOL_IS_CREATED = "no resource pool is created."; public static final String IRONFAN = "Default"; public static final String IRONFAN_DESCRIPTION = "Default application manager"; public static final String SERENGETI_PRIVATE_KEY_FILE = "/home/serengeti/.ssh/id_rsa"; public static final String VM_DISK_FORMAT_STATUS_KEY = "guestinfo.DiskFormatCode"; public static final String VM_DISK_FORMAT_ERROR_KEY = "guestinfo.disk.format.status"; public static final String VM_FQDN_REGISTER_STATUS_KEY = "guestinfo.FqdnRegisterCode"; public static final String VM_FQDN_REGISTER_ERROR_KEY = "guestinfo.fqdn.register.status"; public static final String APPMANAGER_KEYSTORE_PATH = "/opt/serengeti/.certs/"; public static final String APPMANAGER_KEYSTORE_FILE = "appmanagers.jks"; public static final char[] APPMANAGER_KEYSTORE_PASSWORD = "changeit".toCharArray(); public static final int APPMGR_CONNECT_TIMEOUT_SECONDS = 30; public static final String SERENGETI_SETUP_LOGIN_TTY_SCRIPT = "serengeti.setup.login.tty.script"; public static final String SERENGETI_DEFAULT_SETUP_LOGIN_TTY_SCRIPT = "setup-login-tty"; public static final int DEFAULT_SSH_SLEEP_TIME_BEFORE_RETRY = 3000; public static final String SSH_SLEEP_TIME_BEFORE_RETRY = "serengeti.ssh.sleep.time.before.retry"; public static final String SSH_MAX_RETRY_TIMES = "serengeti.ssh.max.retry.times"; public static final String NODE_APPMANAGER_YUM_CLOUDERA_MANAGER_REPO_ID = "cloudera-manager"; public static final String NODE_APPMANAGER_YUM_AMBARI_REPO_ID = "ambari"; public static final String NODE_APPMANAGER_SETUP_LOCAL_REPO_SCRIPT = "node.appmgr.setup.local.repo.script"; public static final String NODE_APPMANAGER_SETUP_LOCAL_REPO_SCRIPT_DEFAULT = "set-local-repo"; public static final String NODE_SET_LOCAL_REPO_TIMEOUT_SECONDS = "node.set.local.repo.timeout"; public static final int NODE_SET_LOCAL_REPO_TIMEOUT_SECONDS_DEFAULT = 120; public static final int SET_LOCAL_REPO_MAX_RETRY_TIMES = 5; public static final String SERENGETI_NODE_YUM_CLOUDERA_MANAGER_REPO_ID = "node.appmgr.local.repo.id.cloudera"; public static final String SERENGETI_NODE_YUM_AMBARI_REPO_ID = "node.appmgr.local.repo.id.ambari"; public static final String SERENGETI_TMP_DIR = "/opt/serengeti/tmp"; public static final String SRCIPT_FOR_UPDATING_ETC_HOSTS_DIR = SERENGETI_TMP_DIR + "/.script-for-updating-etc-hosts/"; public static final String NODE_ACTION_SET_LOCAL_REPO_SUCCEED = "Set local repo succeed"; public static final String NODE_ACTION_SET_LOCAL_REPO_FAILED = "Set local repo failed"; public static final String SERENGETI_YUM_REPO_PATH = "/opt/serengeti/www/yum/repos/centos/6/base/RPMS/"; public static final String SERENGETI_YUM_EXTRA_PACKAGES = "mailx,wsdl4j"; public static final String SERENGETI_YUM_EXTRA_PACKAGES_CONFIG = "serengeti.yum.extra.pakcages.config"; public static final int PASSWORD_MIN_LENGTH = 8; public static final int PASSWORD_MAX_LENGTH = 20; public static final String PASSWORD_REQUIREMENT = "Password must be from " + PASSWORD_MIN_LENGTH + " to " + PASSWORD_MAX_LENGTH + " characters and must contain at least one uppercase character, one lowercase character, one digit and one of the following special characters: _, @, #, $, %, ^, &, *"; public static final String BDE_SERVER_VM_MOBID = "vim.cms_moref"; public static final String RESPONSE_HEADER_LOCATION = "Location"; public static final String CLUSTER_OPERATION_CALLBACK_TIMEOUT_SECONDS = "cluster.operation.callback.timeout"; public static final int CLUSTER_OPERATION_CALLBACK_TIMEOUT_SECONDS_DEFAULT = 3600; public static final String CLUSTER_OPERATION_CALLBACK_DESCRIPTION = "cluster operation callback"; public static final String CLUSTER_OPERATION_CALLBACK_SCRIPT_FILE_NAME = "/opt/serengeti/sbin/serengeti-provision-hook.sh"; public static final String CLUSTER_RACK_TOPOLOGY_FILE_PATH = "/opt/serengeti/www/topology/"; public static final String CLUSTER_RACK_TOPOLOGY_FILE_SUFFIX = ".topology.data"; public static final String MAINTENANCE_MODE_FLAG_FILE = "/opt/serengeti/etc/maintenance"; public static final String CLUSTER_SERVICES_OPERATION = "/opt/serengeti/sbin/cluster-services.sh"; public static final String DEPLOY_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; public static final String VCENTER_VERSION_6 = "6"; public static final String CLUSTER_CLONE_TYPE_FAST_CLONE = "fast"; public static final String CLUSTER_CLONE_TYPE_INSTANT_CLONE = "instant"; public static final String SERENGETI_DISABLE_SWAPDISK = "serengeti.disable.vm.swap.disk"; public static final String BDE_SERVER_VERSION_2_2 = "2.2.0"; public static final String SUDO_COMMAND = "serengeti.sudo.command"; public static final String DEFAULT_SUDO_COMMAND = "sudo"; public static final String SYSTEM_AND_SWAP_DISK_CONTROLLER_TYPE = "storage.system_swap.disk.controller.type"; public static final String DATA_DISK_CONTROLLER_TYPE = "storage.data.disk.controller.type"; public static final String FORCE_CLUSTER_OPERATION_JOB_PARAM = "force.cluster.operation"; public static final String VC_INVENTORY_SYNC_INTERVAL_IN_SECOND = "vc.inventory.sync.intervalSecond"; public static final String SKIP_REFRESH_VC = "skip.refresh.vc.resource"; public static final String PARAMS_NETWORK_DDNS_TYPE = "DYNAMIC"; public static final String VM_POWER_ON_WAITING_SEC_KEY = "vm.poweron.waiting.seconds"; public static final String DELETE_POWEROFF_NOIP_VM = "cluster.operation.deletePowerOffNoIpVm"; public static final String VCINVENTORYREFRESH_THREADPOOL_CONFIG = "vcinventoryrefresh.threadpool.config"; public static final java.lang.String CLUSTER_SYNC_MAX_WAIT_SEC = "bde_cluster.sync.waiting.seconds"; public static final java.lang.String CONNECT_TO_ANOTHER_VC = "bde.connected_to_another_vc"; /** * The maximum number of data disks attached to a VM. * SCSI 0:0 and SCSI 0:1 are used for System Disk and Swap Disk. * SCSI 1:0 ~ SCSI 1:15, SCSI 2:0 ~ SCSI 2:15, SCSI 3:0 ~ SCSI 3:15 (excluding SCSI x:7) * can be used for data disks. SCSI x:7 is reserved for the virtual SCSI adapter. */ public static final int MAX_DISKS_NUMBER = 45; }