src/commons/constants.py (260 lines of code) (raw):

USER_ID_ATTR = 'user_id' NAME_ATTR = 'name' SETTING_IAM_PERMISSIONS = 'IAM_PERMISSIONS' SETTING_LAST_SHAPE_UPDATE = 'LAST_SHAPE_UPDATE' SETTING_AWS_INSTANCES_DATA = 'AWS_INSTANCES_DATA' SETTING_AWS_INSTANCE_PRICES = 'AWS_INSTANCE_PRICES' SETTING_MAESTRO_APPLICATION_ID = 'APPLICATION_ID' EXPAND_ATTR = 'expand' GET_METHOD = 'GET' POST_METHOD = 'POST' PATCH_METHOD = 'PATCH' DELETE_METHOD = 'DELETE' ID_ATTR = 'id' USERNAME_ATTR = 'username' PASSWORD_ATTR = 'password' ID_TOKEN_ATTR = 'id_token' REFRESH_TOKEN_ATTR = 'refresh_token' ROLE_ATTR = 'role' ALGORITHM_ATTR = 'algorithm' EXPIRATION_ATTR = 'expiration' PERMISSIONS_ATTR = 'permissions' PERMISSIONS_ADMIN_ATTR = 'permissions_admin' PERMISSIONS_TO_ATTACH = 'permissions_to_attach' PERMISSIONS_TO_DETACH = 'permissions_to_detach' POLICIES_TO_ATTACH = 'policies_to_attach' POLICIES_TO_DETACH = 'policies_to_detach' POLICIES_ATTR = 'policies' RESOURCE_ATTR = 'resource' CUSTOMER_ATTR = 'customer' CUSTOMERS_ATTR = 'customers' REGION_ATTR = 'region' CLOUD_ATTR = 'cloud' CLOUDS_ATTR = 'clouds' DETAILED_ATTR = 'detailed' OS_ATTR = 'os' DESCRIPTION_ATTR = 'description' CONNECTION_ATTR = 'connection' HOST_ATTR = 'host' PORT_ATTR = 'port' PROTOCOL_ATTR = 'protocol' ATTACHMENT_MODEL_ATTR = 'attachment_model' SERVICE_ATTR = 'service' TYPE_ATTR = 'type' TYPES_ATTR = 'types' ACCESS_ATTR = 'access' BUCKET_NAME_ATTR = 'bucket_name' PREFIX_ATTR = 'prefix' 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' TENANT_ATTR = 'tenant' TENANTS_ATTR = 'tenants' SCAN_TIMESTAMP_ATTR = 'scan_timestamp' SCAN_FROM_DATE_ATTR = 'scan_from_date' SCAN_TO_DATE_ATTR = 'scan_to_date' INSTANCE_ID_ATTR = 'instance_id' SCAN_CLOUDS_ATTR = 'scan_clouds' APPLICATION_ID_ATTR = 'application_id' MAESTRO_RIGHTSIZER_APPLICATION_TYPE = 'RIGHTSIZER' INPUT_STORAGE_ATTR = 'input_storage' OUTPUT_STORAGE_ATTR = 'output_storage' ADDED_AT_ATTR = 'added_at' RECOMMENDATION_TYPE_ATTR = 'recommendation_type' JOB_ID_ATTR = 'job_id' RULE_ACTION_ATTR = 'rule_action' CONDITION_ATTR = 'condition' FIELD_ATTR = 'field' VALUE_ATTR = 'value' REQUIRED_DATA_ATTRS_ATTR = 'required_data_attributes' METRIC_ATTRS_ATTR = 'metric_attributes' TIMESTAMP_ATTR = 'timestamp_attribute' ACTION_ATTR = 'action' REPORT_TYPE_ATTR = 'report_type' REPORT_TYPE_INSTANCE_SHAPE = 'instance_shape' LICENSED_ATTR = 'licensed' MONGODB_CONNECTION_URI_PARAMETER = 'r8s_mongodb_connection_uri' JSON_EXTENSION = '.json' JSON_LINES_EXTENSION = '.jsonl' CLOUD_AWS = 'AWS' CLOUD_AZURE = 'AZURE' CLOUD_GOOGLE = 'GOOGLE' CLOUDS = [CLOUD_AWS, CLOUD_AZURE, CLOUD_GOOGLE] DEFAULT_DATA_ATTRIBUTES = [ "instance_id", "instance_type", "timestamp", "cpu_load", "memory_load", "net_output_load", "avg_disk_iops", "max_disk_iops" ] DEFAULT_METRIC_ATTRIBUTES = [ "cpu_load", "memory_load", "net_output_load", "avg_disk_iops" ] 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' THRESHOLDS_ATTR = 'thresholds' 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' DISCARD_INITIAL_ZEROS_ATTR = 'discard_initial_zeros' FORBID_CHANGE_SERIES_ATTR = 'forbid_change_series' FORBID_CHANGE_FAMILY_ATTR = 'forbid_change_family' 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, IGNORE_ACTIONS_ATTR, DISCARD_INITIAL_ZEROS_ATTR, FORBID_CHANGE_FAMILY_ATTR, FORBID_CHANGE_SERIES_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') SCOPE_ATTR = 'scope' PARENT_ID_ATTR = 'parent_id' PARENT_SCOPE_ALL = 'ALL_TENANTS' PARENT_SCOPE_SPECIFIC_TENANT = 'SPECIFIC_TENANT' ALLOWED_PARENT_SCOPES = (PARENT_SCOPE_ALL, PARENT_SCOPE_SPECIFIC_TENANT) CLOUD_ALL = 'ALL' CPU_ATTR = 'cpu' MEMORY_ATTR = 'memory' NETWORK_THROUGHPUT_ATTR = 'network_throughput' IOPS_ATTR = 'iops' FAMILY_TYPE_ATTR = 'family_type' PHYSICAL_PROCESSOR_ATTR = 'physical_processor' ARCHITECTURE_ATTR = 'architecture' SHAPE_ATTRIBUTES = (NAME_ATTR, CPU_ATTR, MEMORY_ATTR, NETWORK_THROUGHPUT_ATTR, IOPS_ATTR, FAMILY_TYPE_ATTR, PHYSICAL_PROCESSOR_ATTR, ARCHITECTURE_ATTR) ON_DEMAND_ATTR = 'on_demand' SHAPE_PRICE_ATTRIBUTES = (CUSTOMER_ATTR, NAME_ATTR, CLOUD_ATTR, REGION_ATTR, OS_ATTR, ON_DEMAND_ATTR) SUSPICIOUS_PRICE_PER_CPU_THRESHOLD = 0.75 CHECK_TYPE_APPLICATION = 'APPLICATION' CHECK_TYPE_PARENT = 'PARENT' CHECK_TYPE_STORAGE = 'STORAGE' CHECK_TYPE_SHAPE = 'SHAPE' CHECK_TYPE_SHAPE_UPDATE_DATE = 'SHAPE_UPDATE_DATE' CHECK_TYPE_OPERATION_MODE = 'OPERATION_MODE' CHECK_TYPES = (CHECK_TYPE_APPLICATION, CHECK_TYPE_PARENT, CHECK_TYPE_STORAGE, CHECK_TYPE_SHAPE, CHECK_TYPE_OPERATION_MODE, CHECK_TYPE_SHAPE_UPDATE_DATE) 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] FEEDBACK_STATUS_ATTR = 'feedback_status' MAIL_REPORT_DEFAULT_PROCESSING_DAYS = 7 MAIL_REPORT_DEFAULT_HIGH_PRIORITY_THRESHOLD = 10 RULE_ID_ATTR = 'rule_id' INSTANCE_TYPE_ATTR = 'instance_type' 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' ENV_TENANT_CUSTOMER_INDEX = 'tenants_customer_name_index_rcu' EXP_ATTR = 'exp' # cognito COGNITO_USERNAME = 'cognito:username' CUSTOM_ROLE_ATTR = 'custom:role' CUSTOM_CUSTOMER_ATTR = 'custom:customer' CUSTOM_LATEST_LOGIN_ATTR = 'custom:latest_login' SYSTEM_CUSTOMER = 'SYSTEM' ENV_MAX_NUMBER_OF_JOBS_ON_PREM = 'MAX_NUMBER_OF_JOBS' BATCH_ENV_SUBMITTED_AT = 'SUBMITTED_AT' BATCH_ENV_JOB_ID = 'AWS_BATCH_JOB_ID' REPORT_RESOURCE_ID_ATTR = 'resource_id' REPORT_RESOURCE_TYPE_ATTR = 'resource_type' REPORT_RESOURCE_TYPE_INSTANCE = 'INSTANCE' REPORT_SOURCE_ATTR = 'source' REPORT_SOURCE_RIGHTSIZER = 'RIGHTSIZER' REPORT_SEVERITY_ATTR = 'severity' REPORT_SEVERITY = 'MEDIUM' REPORT_RECOMMENDATION_ATTR = 'recommendation' # License Manager 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' ALLOWED_ATTR = 'allowed' FORBIDDEN_ATTR = 'forbidden' REMAINING_BALANCE_ATTR = 'remaining_balance'