Top Level Namespace
Defined Under Namespace
Modules: AppScaleTools, CommonFunctions, EncryptionHelper, GodInterface, ParseArgs, RemoteLogging, UsageText, VMTools Classes: AdvancedNode, AppControllerClient, AppEngineConfigException, AppScaleException, BadCommandLineArgException, BadConfigurationException, InfrastructureException, Node, NodeLayout, SimpleNode
Constant Summary collapse
- MAX_VM_CREATION_TIME =
The maximum amount of time we should wait for the first node in the system to go from 'pending' to 'running' and acquire a public IP. Our current VM size is about 10GB, so this means that in Eucalyptus it could take up to 30 minutes to start if the image wasn't cached.
2700- SLEEP_TIME =
The amount of time to sleep between invocations of ec2-describe-instances when starting up the first node in the system. This should definitely not be lower than 5 seconds, as Eucalyptus 2.0.3 or newer will interpret it as a possible replay attack.
20- IP_REGEX =
The regular expressions to use to find the public and private IPs (or FQDNs in case of EC2).
/\d+\.\d+\.\d+\.\d+/- FQDN_REGEX =
/[\w\d\.\-]+/- IP_OR_FQDN =
/#{IP_REGEX}|#{FQDN_REGEX}/- EC2_ENVIRONMENT_VARIABLES =
When running over a cloud infrastructure, the user must set the following environment variables
["EC2_PRIVATE_KEY", "EC2_CERT", "EC2_SECRET_KEY"] + ["EC2_ACCESS_KEY"]
- REQUIRED_EUCA_CREDS_FOR_HYBRID =
When using Eucalyptus in a hybrid cloud deployment, the user must set the following environment variables (prefixed by CLOUDX_, where X is an integer)
["TYPE", "EMI", "S3_URL", "EC2_URL"] + ["EC2_JVM_ARGS", "EUCALYPTUS_CERT", "EC2_USER_ID"] + EC2_ENVIRONMENT_VARIABLES
- REQUIRED_EC2_CREDS_FOR_HYBRID =
When using EC2 in a hybrid cloud deployment, the user must set the following environment variables (prefixed by CLOUDX_, where X is an integer)
["TYPE", "AMI", "S3_URL", "EC2_URL"] + ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY"] + EC2_ENVIRONMENT_VARIABLES
- NO_APP_FOUND =
"The specified App Engine app didn't exist."- FILE_FLAG_NOT_VALID_MSG =
"File must be either a directory or end with .tar.gz"- IPS_FLAG_NOT_A_YAML_MSG =
"YAML file must end with .yaml or .yml"- MIN_FLAG_NOT_A_NUM_MSG =
"Min images must be a positive integer"- MAX_FLAG_NOT_A_NUM_MSG =
"Max images must be a positive integer"- TABLE_FLAG_NOT_IN_SET_MSG =
"Invalid table type. Table must be set to one" + " of the following: #{VALID_TABLE_TYPES.join(', ')}"
- MIN_FLAG_NOT_POSITIVE_MSG =
"Minimum image number must be larger than zero"- MAX_FLAG_NOT_POSITIVE_MSG =
"Maximum image number must be larger than zero"- MAX_SMALLER_THAN_MIN_MSG =
"Maximum image number must be larger than " + "the minimum image number"
- YAML_CONTROL_MSG =
"The provided IP yaml file did not have one IP " + "address for the controller node"
- EC2_USAGE_MSG =
"You did not provide an ips.yaml file, and you" + " did not provide a machine id."
- EC2_IPS_MISSING_MSG =
"You did not provide an ips.yaml or it was empty."- INSTANCE_FLAG_NOT_IN_SET_MSG =
"The instance type you provided was not " + "one of the allowed values. Currently we allow m1.large, m1.xlarge, " + "and c1.xlarge as the instance types."
- INFRASTRUCTURE_FLAG_NOT_IN_SET_MSG =
"The infrastructure you provided " + "was not one of the allowed values. Currently we allow ec2 and euca " + "as the infrastructure types."
- DJINN_SERVER_DIED_MSG =
"\nEither the head node was unable to get IP " + "addresses for any slave nodes or a bug in the head node's code caused" + " it to crash. We have left your virtual machines running in case you " + "wish to submit a bug report or investigate further via " + "the Troubleshooting page."
- RW_REQUIRES_VOLDEMORT_MSG =
"The r and w flags can only be used in " + "conjunction with the Voldemort database. Please either specify the" + " Voldemort database to be used or remove the r and w flags."
- BACKUP_TAR_EXISTS_MSG =
"The tar file you specified to back up to " + "already exists. Please specify a new file name and try again."
- BACKUP_NEPTUNE_INFO_EXISTS_MSG =
"The Neptune info file you specified " + " to back up to already exists. Please specify a new file name and try again."
- RESTORE_TAR_NOT_EXISTS_MSG =
"The tar file you specified to back up" + " from does not exist. Please specify a new file name and try again."
- RESTORE_NEPTUNE_INFO_NOT_EXISTS_MSG =
"The Neptune info file you specified" + " does not exist. Please specify a new file name and try again."
- CONFIG_FILE_NOT_FOUND =
"The configuration file you specified did not exist." + " Please specify one that exists and try again."
- NO_MIN_OR_MAX_WITH_IPS =
"When using the ips flag, the min or max flags " + "cannot be specified. Please only use either (1) the min and max flags or " + "(2) the ips flag."
- FILE_REGEX =
/\.tar\.gz$/- POS_NUM_REGEX =
/^[1-9]\d*$/- TAR_REGEX =
/\.tar\.gz$/- YAML_REGEX =
/\.ya?ml$/- DEFAULT_DATASTORE =
"cassandra"- USED_SIMPLE_AND_ADVANCED_KEYS =
Programmer: Jonathan Kupferman Updated by Chris Bunch to add hybrid cloud support
"Used both simple and advanced layout roles." + " Only simple (controller, servers) or advanced (master, appengine, etc) " + "can be used"
- NO_INPUT_YAML_REQUIRES_MIN_IMAGES =
"If no input yaml is specified, " + "min_images must be specified."
- NO_INPUT_YAML_REQUIRES_MAX_IMAGES =
"If no input yaml is specified, " + "max_images must be specified."
- INPUT_YAML_REQUIRED =
"An input yaml file is required for Xen, KVM, and " + "hybrid cloud deployments"
- DUPLICATE_IPS =
"You specified some IP addresses more than once, which is " + "not allowed in simple deployments."
- NO_CONTROLLER =
"No controller was specified"- ONLY_ONE_CONTROLLER =
"Only one controller is allowed"- NODE_ID_REGEX =
/(node|cloud(\d+))-(\d+)/- DEFAULT_NUM_NODES =
1- VALID_ROLES =
[:master, :appengine, :database, :shadow, :open] + [:load_balancer, :login, :db_master, :db_slave, :zookeeper, :memcache] + [:rabbitmq, :rabbitmq_master, :rabbitmq_slave]
- GOD_PORT =
"17165"- NO_SSH_KEY_FOUND =
"No SSH key was found that could be used to log in to " + "your machine."
- MALFORMED_YAML =
"The yaml file you provided was malformed. Please correct " + "any errors in it and try again."
- NO_CONFIG_FILE =
"We could not find a valid app.yaml or web.xml file in " + "your application."
- DEFAULT_USERNAME =
The username and password that will be used as the cloud administrator's credentials if the --test flag are used, which should only be used when developing AppScale (and not in production environments).
"[email protected]"- DEFAULT_PASSWORD =
"aaaaaa"- MAX_FILE_SIZE =
1000000- EMAIL_REGEX =
/\A[[:print:]]+@[[:print:]]+\.[[:print:]]+\Z/- PASSWORD_REGEX =
/\A[[:print:]]{6,}\Z/- CLOUDY_CREDS =
["ec2_access_key", "ec2_secret_key", "aws_access_key_id", "aws_secret_access_key", "SIMPLEDB_ACCESS_KEY", "SIMPLEDB_SECRET_KEY"]
- VER_NUM =
"1.5"- AS_VERSION =
"AppScale Tools, Version #{VER_NUM}, http://appscale.cs.ucsb.edu"- PYTHON_CONFIG =
"app.yaml"- JAVA_CONFIG =
"war/WEB-INF/appengine-web.xml"- SSH_OPTIONS =
When we try to ssh to other machines, we don't want to be asked for a password (since we always should have the right SSH key present), and we don't want to be asked to confirm the host's fingerprint, so set the options for that here.
"-o NumberOfPasswordPrompts=0 -o StrictHostkeyChecking=no"- VALID_TABLE_TYPES =
A list of the databases that AppScale nodes can run, and a list of the cloud infrastructures that we can run over.
["hbase", "hypertable", "mysql", "cassandra", "voldemort"] + ["mongodb", "memcachedb", "scalaris", "simpledb", "redisdb"]
- VALID_CLOUD_TYPES =
["ec2", "euca", "hybrid"]
- INFINITY =
Some operations use an infinite timeout, and while -1 or 1.0/0 work in older versions of Ruby 1.8.7 (default on Ubuntu Lucid and before), they don't work in newer versions of Ruby 1.8.7 and Ruby 1.9. Instead, just use a large number, which will work on both.
1000000- NO_TIMEOUT =
1000000- RETRY_ON_FAIL =
true- ABORT_ON_FAIL =
false- LOGS_VERBOSE =
A constant that indicates that verbose logging should be produced.
"high"