docker/commons/constants.py (165 lines of code) (raw):
GET_METHOD = 'GET'
POST_METHOD = 'POST'
PATCH_METHOD = 'PATCH'
DELETE_METHOD = 'DELETE'
BODY_ATTR = 'body'
THRESHOLDS_ATTR = 'thresholds'
ALGORITHM_ATTR = 'algorithm'
EXPIRATION_ATTR = 'expiration'
TENANT_ATTR = 'tenant'
CUSTOMER_ATTR = 'customer'
VALUE_ATTR = 'value'
SERVICE_ATTR = 'service'
DATA_SOURCE_ATTR = 'data_source'
STORAGE_ATTR = 'storage'
MODEL_ATTR = 'model'
SCHEDULE_ATTR = 'schedule'
ANALYSIS_SPECS_ATTR = 'analysis_specs'
JOB_DEFINITION_ATTR = 'job_definition'
PARAM_NATIVE_JOB_ID = 'jobId'
JOB_STEP_INITIALIZATION = 'INITIALIZATION'
JOB_STEP_DOWNLOAD_METRICS = 'DOWNLOAD_METRICS'
JOB_STEP_VALIDATE_METRICS = 'VALIDATE_METRICS'
JOB_STEP_INITIALIZE_ALGORITHM = 'INITIALIZE_ALGORITHM'
JOB_STEP_PROCESS_METRICS = 'PROCESS_METRICS'
JOB_STEP_GENERATE_REPORTS = 'GENERATE_REPORTS'
CSV_EXTENSION = '.csv'
META_FILE_NAME = 'meta_info.json'
MONGODB_CONNECTION_URI_PARAMETER = 'r8s_mongodb_connection_uri'
STATUS_OK = 'OK'
STATUS_ERROR = 'ERROR'
STATUS_POSTPONED = 'POSTPONED'
OK_MESSAGE = 'Processed successfully'
ACTION_SCHEDULE = 'SCHEDULE'
ACTION_SHUTDOWN = 'SHUTDOWN'
ACTION_SCALE_UP = 'SCALE_UP'
ACTION_SCALE_DOWN = 'SCALE_DOWN'
ACTION_CHANGE_SHAPE = 'CHANGE_SHAPE'
ACTION_SPLIT = 'SPLIT'
ACTION_EMPTY = 'NO_ACTION'
ACTION_ERROR = 'ERROR'
ALLOWED_ACTIONS = [ACTION_SCHEDULE, ACTION_SHUTDOWN, ACTION_SCALE_UP,
ACTION_SCALE_DOWN, ACTION_CHANGE_SHAPE, ACTION_SPLIT,
ACTION_EMPTY, ACTION_ERROR]
WORK_DAYS = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
WEEKEND_DAYS = ['Saturday', 'Sunday']
WEEK_DAYS = WORK_DAYS + WEEKEND_DAYS
INSTANCE_SPECS_STORAGE_TYPE = 'INSTANCE_SPECS_STORAGE_TYPE'
STORAGE_TYPE_SETTING = 'SETTING'
COLUMN_CPU_LOAD = 'cpu_load'
COLUMN_MEMORY_LOAD = 'memory_load'
DEFAULT_DAYS_TO_PROCESS = 60
CLOUD_AWS = 'aws'
CLOUD_AZURE = 'azure'
CLOUD_GOOGLE = 'google'
CLOUD_ATTR = 'cloud'
CLOUDS = [CLOUD_AWS, CLOUD_AZURE, CLOUD_GOOGLE]
METRIC_FORMAT_ATTR = 'metric_format'
DELIMITER_ATTR = 'delimiter'
SKIP_INITIAL_SPACE_ATTR = 'skipinitialspace'
LINE_TERMINATOR_ATTR = 'lineterminator'
QUOTE_CHAR_ATTR = 'quotechar'
QUOTING_ATTR = 'quoting'
ESCAPE_CHAR_ATTR = 'escapechar'
DOUBLE_QUOTE_ATTR = 'doublequote'
METRIC_FORMAT_ATTRS = [DELIMITER_ATTR, SKIP_INITIAL_SPACE_ATTR,
LINE_TERMINATOR_ATTR, QUOTE_CHAR_ATTR, QUOTING_ATTR,
ESCAPE_CHAR_ATTR, DOUBLE_QUOTE_ATTR]
CLUSTERING_SETTINGS_ATTR = 'clustering_settings'
MAX_CLUSTERS_ATTR = 'max_clusters'
WCSS_KMEANS_INIT_ATTR = 'wcss_kmeans_init'
WCSS_KMEANS_MAX_ITER_ATTR = 'wcss_kmeans_max_iter'
WCSS_KMEANS_N_INIT_ATTR = 'wcss_kmeans_n_init'
KNEE_INTERP_METHOD_ATTR = 'knee_interp_method'
KNEE_POLYMONIAL_DEGREE_ATTR = 'knee_polynomial_degree'
CLUSTERING_SETTINGS_ATTRS = [
MAX_CLUSTERS_ATTR, WCSS_KMEANS_INIT_ATTR, WCSS_KMEANS_N_INIT_ATTR,
WCSS_KMEANS_MAX_ITER_ATTR, KNEE_INTERP_METHOD_ATTR,
KNEE_POLYMONIAL_DEGREE_ATTR]
RECOMMENDATION_SETTINGS_ATTR = 'recommendation_settings'
RECORD_STEP_MINUTES_ATTR = 'record_step_minutes'
MIN_ALLOWED_DAYS_ATTR = 'min_allowed_days'
MAX_DAYS_ATTR = 'max_days'
MIN_ALLOWED_DAYS_SCHEDULE_ATTR = 'min_allowed_days_schedule'
IGNORE_SAVINGS_ATTR = 'ignore_savings'
MAX_RECOMMENDED_SHAPES_ATTR = 'max_recommended_shapes'
SHAPE_COMPATIBILITY_RULE_ATTR = 'shape_compatibility_rule'
SHAPE_SORTING_ATTR = 'shape_sorting'
USE_PAST_RECOMMENDATIONS_ATTR = 'use_past_recommendations'
USE_INSTANCE_TAGS_ATTR = 'use_instance_tags'
ANALYSIS_PRICE_ATTR = 'analysis_price'
IGNORE_ACTIONS_ATTR = 'ignore_actions'
TARGET_TIMEZONE_NAME_ATTR = 'target_timezone_name'
RECOMMENDATION_SETTINGS_ATTRS = [
RECORD_STEP_MINUTES_ATTR, THRESHOLDS_ATTR, MIN_ALLOWED_DAYS_ATTR,
MAX_DAYS_ATTR, MIN_ALLOWED_DAYS_SCHEDULE_ATTR, IGNORE_SAVINGS_ATTR,
MAX_RECOMMENDED_SHAPES_ATTR, SHAPE_COMPATIBILITY_RULE_ATTR,
SHAPE_SORTING_ATTR, USE_PAST_RECOMMENDATIONS_ATTR,
USE_INSTANCE_TAGS_ATTR, ANALYSIS_PRICE_ATTR, TARGET_TIMEZONE_NAME_ATTR
]
RULE_ACTION_ALLOW = 'allow'
RULE_ACTION_DENY = 'deny'
RULE_ACTION_PRIORITIZE = 'prioritize'
ALLOWED_RULE_ACTIONS = (RULE_ACTION_ALLOW, RULE_ACTION_DENY,
RULE_ACTION_PRIORITIZE)
RULE_CONDITION_CONTAINS = 'contains'
RULE_CONDITION_NOT_CONTAINS = 'not_contains'
RULE_CONDITION_EQUALS = 'equals'
RULE_CONDITION_MATCHES = 'matches'
RULE_CONDITION_NOT_MATCHES = 'not_matches'
ALLOWED_RULE_CONDITIONS = (
RULE_CONDITION_CONTAINS, RULE_CONDITION_NOT_CONTAINS,
RULE_CONDITION_EQUALS, RULE_CONDITION_MATCHES, RULE_CONDITION_NOT_MATCHES)
ALLOWED_SHAPE_FIELDS = ('name', 'family_type', 'physical_processor',
'architecture')
PARENT_ID_ATTR = 'parent_id'
PARENT_SCOPE_ALL_TENANTS = 'ALL_TENANTS'
PARENT_SCOPE_SPECIFIC_TENANT = 'SPECIFIC_TENANT'
TENANT_PARENT_MAP_RIGHTSIZER_TYPE = 'RIGHTSIZER'
ALL = 'ALL'
DEFAULT_META_POSTPONED_KEY = 'postponedTill'
DEFAULT_META_POSTPONED_FOR_ACTIONS_KEY = 'actions'
ENV_SERVICE_MODE = 'SERVICE_MODE'
DOCKER_SERVICE_MODE, SAAS_SERVICE_MODE = 'docker', 'saas'
ENV_MONGODB_USER = 'MONGO_USER'
ENV_MONGODB_PASSWORD = 'MONGO_PASSWORD'
ENV_MONGODB_URL = 'MONGO_URL' # host:port
ENV_MONGODB_DATABASE = 'MONGO_DATABASE'
ENV_MINIO_HOST = 'MINIO_HOST'
ENV_MINIO_PORT = 'MINIO_PORT'
ENV_MINIO_ACCESS_KEY = 'MINIO_ACCESS_KEY'
ENV_MINIO_SECRET_ACCESS_KEY = 'MINIO_SECRET_ACCESS_KEY'
ENV_VAULT_TOKEN = 'VAULT_TOKEN'
ENV_VAULT_HOST = 'VAULT_URL'
ENV_VAULT_PORT = 'VAULT_SERVICE_SERVICE_PORT'
JOB_ID = 'job_id'
# License Manager
CUSTOMERS_ATTR = 'customers'
TENANTS_ATTR = 'tenants'
ATTACHMENT_MODEL_ATTR = 'attachment_model'
LICENSE_KEY_ATTR = 'license_key'
LICENSE_KEYS_ATTR = 'license_keys'
TENANT_LICENSE_KEY_ATTR = 'tenant_license_key'
TENANT_LICENSE_KEYS_ATTR = 'tenant_license_keys'
AUTHORIZATION_PARAM = 'authorization'
STATUS_ATTR = 'status'
ALGORITHM_ID_ATTR = 'algorithm_id'
KID_ATTR = 'kid'
ALG_ATTR = 'alg'
TYP_ATTR = 'typ'
TOKEN_DATE_ATTR = 'token_date'
CLIENT_TOKEN_ATTR = 'client-token'
STAGE_ATTR = 'stage'
KEY_ID_ATTR = 'key_id'
B64ENCODED_ATTR = 'b64_encoded'
SERVICE_TYPE_ATTR = 'service_type'
SERVICE_TYPE_RIGHTSIZER = 'RIGHTSIZER'
ALGORITHMS_ATTR = 'algorithms'
RESPONSE_BAD_REQUEST_CODE = 400
RESPONSE_UNAUTHORIZED = 401
RESPONSE_FORBIDDEN_CODE = 403
RESPONSE_RESOURCE_NOT_FOUND_CODE = 404
RESPONSE_OK_CODE = 200
BODY_PARAM = 'body'
ITEMS_PARAM = 'items'
MESSAGE_PARAM = 'message'
PROFILE_LOG_PATH = f'/tmp/execution_log.txt'