From 02aa80e6e11f38e765ca230bdc379a7393a11243 Mon Sep 17 00:00:00 2001 From: "Matthew G. Monteleone" Date: Sun, 26 Mar 2023 13:22:09 +0200 Subject: [PATCH 1/3] Completed #169 and #170 updated with latest event types as of 2023-03-26 --- atlasapi/events_event_types.py | 120 +++++++++++++++++++++++++++------ 1 file changed, 101 insertions(+), 19 deletions(-) diff --git a/atlasapi/events_event_types.py b/atlasapi/events_event_types.py index da03ea1..e54c5ef 100644 --- a/atlasapi/events_event_types.py +++ b/atlasapi/events_event_types.py @@ -1,6 +1,3 @@ -from enum import Enum - - class AtlasEventTypes(Enum): APP_SETTINGS_CHANGE = 'App Settings Change' PEER_CREATED = 'Peer Created' @@ -52,6 +49,8 @@ class AtlasEventTypes(Enum): RS_BIND_ERROR = 'Rs Bind Error' TIMELY_SNAPSHOT = 'Timely Snapshot' LATE_SNAPSHOT = 'Late Snapshot' + TIMELY_WTC_SNAPSHOT = 'Timely Wtc Snapshot' + LATE_WTC_SNAPSHOT = 'Late Wtc Snapshot' GOOD_CLUSTERSHOT = 'Good Clustershot' BAD_CLUSTERSHOTS = 'Bad Clustershots' SYNC_SLICE_PROGRESSED = 'Sync Slice Progressed' @@ -91,6 +90,12 @@ class AtlasEventTypes(Enum): CPS_SNAPSHOT_IN_PROGRESS_AUDIT = 'Cps Snapshot In Progress Audit' CPS_SNAPSHOT_COMPLETED_AUDIT = 'Cps Snapshot Completed Audit' CPS_ON_DEMAND_SNAPSHOT_REQUESTED = 'Cps On Demand Snapshot Requested' + CPS_DATA_PROTECTION_ENABLE_REQUESTED = 'Cps Data Protection Enable Requested' + CPS_DATA_PROTECTION_ENABLED = 'Cps Data Protection Enabled' + CPS_DATA_PROTECTION_UPDATE_REQUESTED = 'Cps Data Protection Update Requested' + CPS_DATA_PROTECTION_UPDATED = 'Cps Data Protection Updated' + CPS_DATA_PROTECTION_DISABLE_REQUESTED = 'Cps Data Protection Disable Requested' + CPS_DATA_PROTECTION_DISABLED = 'Cps Data Protection Disabled' BUCKET_CREATED_AUDIT = 'Bucket Created Audit' BUCKET_DELETED_AUDIT = 'Bucket Deleted Audit' TENANT_SNAPSHOT_STARTED_AUDIT = 'Tenant Snapshot Started Audit' @@ -139,9 +144,19 @@ class AtlasEventTypes(Enum): CREDIT_ISSUED = 'Credit Issued' GCP_BILLING_ACCOUNT_CREDIT_ISSUED = 'GCP Billing Account Credit Issued' CREDIT_PULLED_FWD = 'Credit Pulled Fwd' + CREDIT_START_DATE_MODIFIED = 'Credit Start Date Modified' CREDIT_END_DATE_MODIFIED = 'Credit End Date Modified' - CREDIT_SFOLID_MODIFIED = 'Credit Sfolid Modified' + CREDIT_ELASTIC_INVOICING_MODIFIED = 'Credit Elastic Invoicing Modified' + CREDIT_TYPE_MODIFIED = 'Credit Type Modified' + CREDIT_AMOUNT_CENTS_MODIFIED = 'Credit Amount Cents Modified' + CREDIT_AMOUNT_REMAINING_CENTS_MODIFIED = 'Credit Amount Remaining Cents Modified' + CREDIT_TOTAL_BILLED_CENTS_MODIFIED = 'Credit Total Billed Cents Modified' + CREDIT_AWS_CUSTOMER_ID_MODIFIED = 'Credit AWS Customer Id Modified' + CREDIT_AWS_PRODUCT_CODE_MODIFIED = 'Credit AWS Product Code Modified' + CREDIT_GCP_MARKETPLACE_ENTITLEMENT_ID_MODIFIED = 'Credit GCP Marketplace Entitlement Id Modified' + CREDIT_AZURE_SUBSCRIPTION_ID_MODIFIED = 'Credit Azure Subscription Id Modified' CREDIT_AMOUNT_MODIFIED = 'Credit Amount Modified' + CREDIT_SFOLID_MODIFIED = 'Credit Sfolid Modified' PROMO_CODE_APPLIED = 'Promo Code Applied' REFUND_ISSUED = 'Refund Issued' PAYMENT_FORGIVEN = 'Payment Forgiven' @@ -168,6 +183,8 @@ class AtlasEventTypes(Enum): DATA_EXPLORER_CRUD = 'Data Explorer Crud' DATA_EXPLORER_CRUD_ERROR = 'Data Explorer Crud Error' DATA_EXPLORER_CRUD_ATTEMPT = 'Data Explorer Crud Attempt' + DATA_EXPLORER_ENABLED = 'Data Explorer Enabled' + DATA_EXPLORER_DISABLED = 'Data Explorer Disabled' AWS_ENCRYPTION_KEY_ROTATED = 'AWS Encryption Key Rotated' AWS_ENCRYPTION_KEY_NEEDS_ROTATION = 'AWS Encryption Key Needs Rotation' AZURE_ENCRYPTION_KEY_ROTATED = 'Azure Encryption Key Rotated' @@ -262,6 +279,7 @@ class AtlasEventTypes(Enum): CLUSTER_CREATED = 'Cluster Created' CLUSTER_READY = 'Cluster Ready' CLUSTER_UPDATE_SUBMITTED = 'Cluster Update Submitted' + CLUSTER_FORCE_RECONFIG_REQUESTED = 'Cluster Force Reconfig Requested' CLUSTER_UPDATE_STARTED = 'Cluster Update Started' CLUSTER_UPDATE_COMPLETED = 'Cluster Update Completed' CLUSTER_PROCESS_ARGS_UPDATE_SUBMITTED = 'Cluster Process Args Update Submitted' @@ -328,6 +346,7 @@ class AtlasEventTypes(Enum): TENANT_RESTORE_FAILED = 'Tenant Restore Failed' SCHEDULED_MAINTENANCE = 'Scheduled Maintenance' PROJECT_SCHEDULED_MAINTENANCE = 'Project Scheduled Maintenance' + PROJECT_BYPASSED_MAINTENANCE = 'Project Bypassed Maintenance' OS_MAINTENANCE = 'Os Maintenance' OS_MAINTENANCE_REPLACEMENT = 'Os Maintenance Replacement' ATLAS_MAINTENANCE_WINDOW_ADDED = 'Atlas Maintenance Window Added' @@ -338,14 +357,6 @@ class AtlasEventTypes(Enum): ATLAS_MAINTENANCE_AUTO_DEFER_DISABLED = 'Atlas Maintenance Auto Defer Disabled' ATLAS_MAINTENANCE_START_ASAP = 'Atlas Maintenance Start Asap' ATLAS_MAINTENANCE_SCHEDULED_FOR_NEXT_WINDOW = 'Atlas Maintenance Scheduled For Next Window' - MAINTENANCE_WINDOW_ADDED = 'Atlas Maintenance Window Added' - MAINTENANCE_WINDOW_MODIFIED = 'Atlas Maintenance Window Modified' - MAINTENANCE_WINDOW_REMOVED = 'Atlas Maintenance Window Removed' - MAINTENANCE_DEFERRED = 'Atlas Maintenance Deferred' - MAINTENANCE_AUTO_DEFER_ENABLED = 'Atlas Maintenance Auto Defer Enabled' - MAINTENANCE_AUTO_DEFER_DISABLED = 'Atlas Maintenance Auto Defer Disabled' - MAINTENANCE_START_ASAP = 'Atlas Maintenance Start Asap' - MAINTENANCE_SCHEDULED_FOR_NEXT_WINDOW = 'Atlas Maintenance Scheduled For Next Window' COMPUTE_AUTO_SCALE_UNNECESSARY = 'Compute Auto Scale Unnecessary' COMPUTE_AUTO_SCALE_TRIGGERED = 'Compute Auto Scale Triggered' COMPUTE_AUTO_SCALE_SKIPPED = 'Compute Auto Scale Skipped' @@ -364,12 +375,16 @@ class AtlasEventTypes(Enum): CLUSTER_INSTANCE_SSL_ROTATED = 'Cluster Instance SSL Rotated' CLUSTER_INSTANCE_SSL_ROTATED_PER_CLUSTER = 'Cluster Instance SSL Rotated Per Cluster' CLUSTER_INSTANCE_SSL_REVOKED = 'Cluster Instance SSL Revoked' + RELOAD_SSL_ON_PROCESSES = 'Reload SSL On Processes' NDS_SET_IMAGE_OVERRIDES = 'Nds Set Image Overrides' NDS_SET_CHEF_TARBALL_URI = 'Nds Set Chef Tarball Uri' RESTRICTED_EMPLOYEE_ACCESS_BYPASS = 'Restricted Employee Access Bypass' CLOUD_PROVIDER_ACCESS_AWS_IAM_ROLE_ADDED = 'Cloud Provider Access AWS Iam Role Added' CLOUD_PROVIDER_ACCESS_AWS_IAM_ROLE_DELETED = 'Cloud Provider Access AWS Iam Role Deleted' CLOUD_PROVIDER_ACCESS_AWS_IAM_ROLE_UPDATED = 'Cloud Provider Access AWS Iam Role Updated' + CLOUD_PROVIDER_ACCESS_AZURE_SERVICE_PRINCIPAL_ADDED = 'Cloud Provider Access Azure Service Principal Added' + CLOUD_PROVIDER_ACCESS_AZURE_SERVICE_PRINCIPAL_DELETED = 'Cloud Provider Access Azure Service Principal Deleted' + CLOUD_PROVIDER_ACCESS_AZURE_SERVICE_PRINCIPAL_UPDATED = 'Cloud Provider Access Azure Service Principal Updated' ORG_CONNECTED_TO_MLAB = 'Org Connected To Mlab' ORG_DISCONNECTED_FROM_MLAB = 'Org Disconnected From Mlab' MLAB_MIGRATION_INITIATED = 'Mlab Migration Initiated' @@ -437,6 +452,9 @@ class AtlasEventTypes(Enum): ORG_EMPLOYEE_ACCESS_UNRESTRICTED = 'Org Employee Access Unrestricted' ORG_SFDC_ACCOUNT_ID_CHANGED = 'Org Sfdc Account Id Changed' ORG_OVERRIDE_PAYMENT_METHOD_ADDED = 'Org Override Payment Method Added' + ORG_UI_IP_ACCESS_LIST_DISABLED = 'Org Ui IP Access List Disabled' + ORG_UI_IP_ACCESS_LIST_ENABLED = 'Org Ui IP Access List Enabled' + ORG_EDITED_UI_IP_ACCESS_LIST_ENTRIES = 'Org Edited Ui IP Access List Entries' API_KEY_WHITELIST_ENTRY_ADDED = 'API Key Whitelist Entry Added' API_KEY_ACCESS_LIST_ENTRY_ADDED = 'API Key Access List Entry Added' API_KEY_CREATED = 'API Key Created' @@ -448,6 +466,8 @@ class AtlasEventTypes(Enum): API_KEY_DESCRIPTION_CHANGED = 'API Key Description Changed' API_KEY_ADDED_TO_GROUP = 'API Key Added To Group' API_KEY_REMOVED_FROM_GROUP = 'API Key Removed From Group' + API_KEY_UI_IP_ACCESS_LIST_INHERITANCE_ENABLED = 'API Key Ui IP Access List Inheritance Enabled' + API_KEY_UI_IP_ACCESS_LIST_INHERITANCE_DISABLED = 'API Key Ui IP Access List Inheritance Disabled' MONITORING_AGENT_LOGS = 'Monitoring Agent Logs' MONITORING_AGENT_LOGS_CSV_DOWNLOAD = 'Monitoring Agent Logs CSV Download' AUTOMATION_AGENT_LOGS = 'Automation Agent Logs' @@ -476,6 +496,7 @@ class AtlasEventTypes(Enum): MONGODB_ACCESS_HISTORY = 'Mongodb Access History' TOGGLEABLE_FEATURE_FLAG = 'Toggleable Feature Flag' PUBLIC_API_MANAGED_SLOW_MS_FEATURE_FLAG = 'Public API Managed Slow Ms Feature Flag' + PUBLIC_API_SEARCH_QUERY_TELEMETRY_FLAG = 'Public API Search Query Telemetry Flag' MONITORING_DAILY_PING = 'Monitoring Daily Ping' MONITORING_LATEST_HOST_SPECIFIC_PING = 'Monitoring Latest Host Specific Ping' MONITORING_GROUP_PING = 'Monitoring Group Ping' @@ -557,6 +578,8 @@ class AtlasEventTypes(Enum): JOINED_ORG = 'Joined Org' JOINED_TEAM = 'Joined Team' REMOVED_FROM_GROUP = 'Removed From Group' + GROUP_INVITATION_DELETED = 'Group Invitation Deleted' + ORG_INVITATION_DELETED = 'Org Invitation Deleted' INVITED_TO_GROUP = 'Invited To Group' INVITED_TO_ORG = 'Invited To Org' REQUESTED_TO_JOIN_GROUP = 'Requested To Join Group' @@ -599,12 +622,18 @@ class AtlasEventTypes(Enum): GLOBAL_ACCESS_LIST_ENTRY_CREATED = 'Global Access List Entry Created' GLOBAL_ACCESS_LIST_ENTRY_UPDATED = 'Global Access List Entry Updated' GLOBAL_ACCESS_LIST_ENTRY_DELETED = 'Global Access List Entry Deleted' - NDS_X509_USER_AUTHENTICATION_MANAGED_USER_CERTS_EXPIRATION_RESOLVED = 'Nds X509 User Authentication Managed User Certs Expiration Resolved' - NDS_X509_USER_AUTHENTICATION_MANAGED_USER_CERTS_EXPIRATION_CHECK = 'Nds X509 User Authentication Managed User Certs Expiration Check' - NDS_X509_USER_AUTHENTICATION_CUSTOMER_CA_EXPIRATION_RESOLVED = 'Nds X509 User Authentication Customer Ca Expiration Resolved' - NDS_X509_USER_AUTHENTICATION_CUSTOMER_CA_EXPIRATION_CHECK = 'Nds X509 User Authentication Customer Ca Expiration Check' - NDS_X509_USER_AUTHENTICATION_CUSTOMER_CRL_EXPIRATION_RESOLVED = 'Nds X509 User Authentication Customer CRL Expiration Resolved' - NDS_X509_USER_AUTHENTICATION_CUSTOMER_CRL_EXPIRATION_CHECK = 'Nds X509 User Authentication Customer CRL Expiration Check' + NDS_X509_USER_AUTHENTICATION_MANAGED_USER_CERTS_EXPIRATION_RESOLVED = 'Nds X509 User Authentication Managed User ' \ + 'Certs Expiration Resolved ' + NDS_X509_USER_AUTHENTICATION_MANAGED_USER_CERTS_EXPIRATION_CHECK = 'Nds X509 User Authentication Managed User ' \ + 'Certs Expiration Check ' + NDS_X509_USER_AUTHENTICATION_CUSTOMER_CA_EXPIRATION_RESOLVED = 'Nds X509 User Authentication Customer Ca ' \ + 'Expiration Resolved ' + NDS_X509_USER_AUTHENTICATION_CUSTOMER_CA_EXPIRATION_CHECK = 'Nds X509 User Authentication Customer Ca Expiration ' \ + 'Check ' + NDS_X509_USER_AUTHENTICATION_CUSTOMER_CRL_EXPIRATION_RESOLVED = 'Nds X509 User Authentication Customer CRL ' \ + 'Expiration Resolved ' + NDS_X509_USER_AUTHENTICATION_CUSTOMER_CRL_EXPIRATION_CHECK = 'Nds X509 User Authentication Customer CRL ' \ + 'Expiration Check ' ONLINE_ARCHIVE_INSUFFICIENT_INDEXES_CHECK = 'Online Archive Insufficient Indexes Check' ONLINE_ARCHIVE_INSUFFICIENT_INDEXES_RESOLVED = 'Online Archive Insufficient Indexes Resolved' ONLINE_ARCHIVE_MAX_CONSECUTIVE_OFFLOADS_CHECK = 'Online Archive Max Consecutive Offloads Check' @@ -646,8 +675,10 @@ class AtlasEventTypes(Enum): CPS_OPLOG_NOT_CONTIGUOUS = 'Cps Oplog Not Contiguous' CPS_RESTORE_SUCCESSFUL = 'Cps Restore Successful' CPS_EXPORT_SUCCESSFUL = 'Cps Export Successful' + TENANT_UPGRADE_TO_SERVERLESS_SUCCESSFUL = 'Tenant Upgrade To Serverless Successful' CPS_RESTORE_FAILED = 'Cps Restore Failed' CPS_EXPORT_FAILED = 'Cps Export Failed' + TENANT_UPGRADE_TO_SERVERLESS_FAILED = 'Tenant Upgrade To Serverless Failed' CPS_SNAPSHOT_DOWNLOAD_REQUEST_FAILED = 'Cps Snapshot Download Request Failed' FTS_INDEX_BUILD_COMPLETE = 'Fts Index Build Complete' FTS_INDEX_BUILD_FAILED = 'Fts Index Build Failed' @@ -660,6 +691,7 @@ class AtlasEventTypes(Enum): IDENTITY_PROVIDER_UPDATED = 'Identity Provider Updated' IDENTITY_PROVIDER_DELETED = 'Identity Provider Deleted' IDENTITY_PROVIDER_ACTIVATED = 'Identity Provider Activated' + IDENTITY_PROVIDER_DEACTIVATED = 'Identity Provider Deactivated' DOMAINS_ASSOCIATED = 'Domains Associated' DOMAIN_CREATED = 'Domain Created' DOMAIN_DELETED = 'Domain Deleted' @@ -713,12 +745,16 @@ class AtlasEventTypes(Enum): METER_USAGE_UNDELETED_THROUGH_API = 'Meter Usage Undeleted Through API' SYNC_FAILURE = 'Sync Failure' TRIGGER_FAILURE = 'Trigger Failure' + TRIGGER_AUTO_RESUMED = 'Trigger Auto Resumed' URL_CONFIRMATION = 'Url Confirmation' SUCCESSFUL_DEPLOY = 'Successful Deploy' DEPLOYMENT_FAILURE = 'Deployment Failure' + DEPLOYMENT_MODEL_CHANGE_SUCCESS = 'Deployment Model Change Success' + DEPLOYMENT_MODEL_CHANGE_FAILURE = 'Deployment Model Change Failure' REQUEST_RATE_LIMIT = 'Request Rate Limit' ORG_IDP_CERTIFICATE_ABOUT_TO_EXPIRE = 'Org Idp Certificate About To Expire' ORG_IDP_CERTIFICATE_CURRENT = 'Org Idp Certificate Current' + SETUP_SERVERLESS_INITIATED = 'Setup Serverless Initiated' SERVERLESS_DEPLOYMENT_CREATED = 'Serverless Deployment Created' SERVERLESS_DEPLOYMENT_DELETED = 'Serverless Deployment Deleted' CLUSTER_INSTANCE_ADMIN_BACKUP_SNAPSHOT_REQUESTED = 'Cluster Instance Admin Backup Snapshot Requested' @@ -781,6 +817,7 @@ class AtlasEventTypes(Enum): UNLINKED_ORG = 'Unlinked Org' ORG_UNLINKED_FROM_PAYING_ORG = 'Org Unlinked From Paying Org' CLUSTER_LINKED_TO_VERCEL = 'Cluster Linked To Vercel' + DATA_API_SETUP_FOR_VERCEL = 'Data API Setup For Vercel' DEVICE_REVOKED = 'Device Revoked' ROLLING_INDEX_FAILED_INDEX_BUILD = 'Rolling Index Failed Index Build' SCHEDULE_CREATED = 'Schedule Created' @@ -798,7 +835,9 @@ class AtlasEventTypes(Enum): TENANT_ENDPOINT_SERVICE_DEPLOYMENT_DELETE_REQUESTED = 'Tenant Endpoint Service Deployment Delete Requested' TENANT_ENDPOINT_SERVICE_DELETED = 'Tenant Endpoint Service Deleted' TENANT_ENDPOINT_SERVICE_DEPLOYMENT_DELETED = 'Tenant Endpoint Service Deployment Deleted' - TENANT_ENDPOINT_SERVICE_DEPLOYMENT_NUM_DESIRED_ENDPOINT_SERVICES_INCREASED = 'Tenant Endpoint Service Deployment Num Desired Endpoint Services Increased' + TENANT_ENDPOINT_SERVICE_DEPLOYMENT_NUM_DESIRED_ENDPOINT_SERVICES_INCREASED = 'Tenant Endpoint Service Deployment ' \ + 'Num Desired Endpoint Services ' \ + 'Increased ' SERVERLESS_DEPLOYMENT_ENDPOINT_SERVICE_LINKED = 'Serverless Deployment Endpoint Service Linked' SERVERLESS_DEPLOYMENT_ENDPOINT_SERVICE_UNLINKED = 'Serverless Deployment Endpoint Service Unlinked' CLUSTER_CONNECTION_SAMPLE_COLLECTION_FIELD_NAMES = 'Cluster Connection Sample Collection Field Names' @@ -806,6 +845,12 @@ class AtlasEventTypes(Enum): ORG_CONNECTION_UNINSTALLED_FROM_VERCEL = 'Org Connection Uninstalled From Vercel' SIGNING_KEY_ROTATION_TRIGGERED = 'Signing Key Rotation Triggered' SIGNING_KEY_ROTATED = 'Signing Key Rotated' + INTERNAL_CLIENT_REGISTERED = 'Internal Client Registered' + INTERNAL_CLIENT_DELETED = 'Internal Client Deleted' + INTERNAL_CLIENT_ROLES_EDITED = 'Internal Client Roles Edited' + INTERNAL_CLIENT_METADATA_EDITED = 'Internal Client Metadata Edited' + INTERNAL_CLIENT_SECRET_CREATED = 'Internal Client Secret Created' + INTERNAL_CLIENT_SECRET_DELETED = 'Internal Client Secret Deleted' GCP_SELF_SERVE_ACCOUNT_LINK_PENDING = 'GCP Self Serve Account Link Pending' GCP_SELF_SERVE_ACCOUNT_LINK_FAILED = 'GCP Self Serve Account Link Failed' QUOTA_USAGE_EXCEEDED_EVENT = 'Quota Usage Exceeded Event' @@ -813,6 +858,7 @@ class AtlasEventTypes(Enum): QUOTA_USAGE_CRITICAL_WARNING_EVENT = 'Quota Usage Critical Warning Event' QUOTA_USAGE_CRITICAL_WARNING_PAGE_EVENT = 'Quota Usage Critical Warning Page Event' PROJECT_OPERATIONAL_LIMIT_UPDATED = 'Project Operational Limit Updated' + PROJECT_ENABLE_EXTENDED_STORAGE_SIZES = 'Project Enable Extended Storage Sizes' GCP_SELF_SERVE_ACCOUNT_LINKED = 'GCP Self Serve Account Linked' TENANT_ENDPOINT_CREATED = 'Tenant Endpoint Created' TENANT_ENDPOINT_RESERVED = 'Tenant Endpoint Reserved' @@ -836,6 +882,8 @@ class AtlasEventTypes(Enum): INDEX_SUCCESS_INDEX_BUILD = 'Index Success Index Build' INGESTION_PIPELINE_CREATED = 'Ingestion Pipeline Created' INGESTION_PIPELINE_UPDATED = 'Ingestion Pipeline Updated' + DATA_FEDERATION_QUERY_LIMIT_CONFIGURED = 'Data Federation Query Limit Configured' + DATA_FEDERATION_QUERY_LIMIT_DELETED = 'Data Federation Query Limit Deleted' CLUSTER_PREFERRED_CPU_ARCHITECTURE_MODIFIED = 'Cluster Preferred Cpu Architecture Modified' USER_ACCOUNT_EMAIL_ADDRESS_CHANGED_AUDIT = 'User Account Email Address Changed Audit' ONLINE_ARCHIVE_DATA_EXPIRATION_DID_NOT_RUN = 'Online Archive Data Expiration Did Not Run' @@ -880,3 +928,37 @@ class AtlasEventTypes(Enum): SUFFICIENT_FILESYSTEM_STORE_FREE_SPACE = 'Sufficient Filesystem Store Free Space' LOW_FILESYSTEM_STORE_FREE_SPACE_PERCENT = 'Low Filesystem Store Free Space Percent' PENDING_INDEXES_CANCELED = 'Pending Indexes Canceled' + PREPAID_PLAN_MODIFIED = 'Prepaid Plan Modified' + AZURE_SELF_SERVE_ACCOUNT_LINKED = 'Azure Self Serve Account Linked' + AZURE_SELF_SERVE_ACCOUNT_LINK_PENDING = 'Azure Self Serve Account Link Pending' + AZURE_SELF_SERVE_ACCOUNT_CANCELLED = 'Azure Self Serve Account Cancelled' + AZURE_SELF_SERVE_ACCOUNT_LINK_FAILED = 'Azure Self Serve Account Link Failed' + BACKUP_NOT_LATE_TRACKING_JOB = 'Backup Not Late Tracking Job' + BACKUP_LATE_TRACKING_JOB = 'Backup Late Tracking Job' + BACKUP_NOT_LATE_INTEGRITY_CHECK_JOB = 'Backup Not Late Integrity Check Job' + BACKUP_LATE_INTEGRITY_CHECK_JOB = 'Backup Late Integrity Check Job' + BACKUP_NOT_LATE_GROOM_JOB = 'Backup Not Late Groom Job' + BACKUP_LATE_GROOM_JOB = 'Backup Late Groom Job' + CHARGE_PENDING_REVERSAL = 'Charge Pending Reversal' + AZURE_USAGE_REPORTED = 'Azure Usage Reported' + COMPUTE_AUTO_SCALE_TRIGGERED_BASE = 'Compute Auto Scale Triggered Base' + COMPUTE_AUTO_SCALE_TRIGGERED_ANALYTICS = 'Compute Auto Scale Triggered Analytics' + COMPUTE_AUTO_SCALE_SKIPPED_BASE = 'Compute Auto Scale Skipped Base' + COMPUTE_AUTO_SCALE_SKIPPED_ANALYTICS = 'Compute Auto Scale Skipped Analytics' + COMPUTE_AUTO_SCALE_INITIATED_BASE = 'Compute Auto Scale Initiated Base' + COMPUTE_AUTO_SCALE_INITIATED_ANALYTICS = 'Compute Auto Scale Initiated Analytics' + DATA_PROCESSING_REGION_UPDATED = 'Data Processing Region Updated' + CLUSTER_REGIONAL_OUTAGE_SIMULATION_STARTED = 'Cluster Regional Outage Simulation Started' + CLUSTER_REGIONAL_OUTAGE_SIMULATION_FAILED_TO_START = 'Cluster Regional Outage Simulation Failed To Start' + CLUSTER_REGIONAL_OUTAGE_SIMULATION_END_REQUESTED = 'Cluster Regional Outage Simulation End Requested' + CLUSTER_REGIONAL_OUTAGE_SIMULATION_COMPLETED = 'Cluster Regional Outage Simulation Completed' + CLUSTER_REGIONAL_OUTAGE_SIMULATION_CANCELLED_CLUSTER_PAUSE = 'Cluster Regional Outage Simulation Cancelled ' \ + 'Cluster Pause ' + AZURE_BILLING_ACCOUNT_CREDIT_ISSUED = 'Azure Billing Account Credit Issued' + UIS_PANICKED = 'Uis Panicked' + ADMIN_LOCK_UPDATED = 'Admin Lock Updated' + ATLAS_USER_IDENTITY_SERVICE_LOGS = 'Atlas User Identity Service Logs' + CLUSTER_UPDATE_SUBMITTED_INTERNAL = 'Cluster Update Submitted Internal' + CLUSTER_DELETE_SUBMITTED_INTERNAL = 'Cluster Delete Submitted Internal' + FLAPPING_STOPPED = 'Flapping Stopped' + FLAPPING_STARTED = 'Flapping Started' From e883737495575fcaae6435b15909b77c28682c3f Mon Sep 17 00:00:00 2001 From: "Matthew G. Monteleone" Date: Sun, 26 Mar 2023 13:22:58 +0200 Subject: [PATCH 2/3] Completed #169 and #170 updated with latest event types as of 2023-03-26 also fixed some test issues. --- atlasapi/atlas.py | 26 +++++++++++++++++--------- atlasapi/network.py | 13 +++++++++++++ atlasapi/settings.py | 2 +- tests/__init__.py | 12 ++++++++++-- 4 files changed, 41 insertions(+), 12 deletions(-) diff --git a/atlasapi/atlas.py b/atlasapi/atlas.py index 792f05f..928ca42 100644 --- a/atlasapi/atlas.py +++ b/atlasapi/atlas.py @@ -485,16 +485,24 @@ def _get_all_hosts(self): ListOfHosts: Iterable object representing this function """ - uri = Settings.api_resources["Monitoring and Logs"]["Get all processes for group"].format( - group_id=self.atlas.group) + # Handling for Atlas Object which have been intantiated without a Group/Project (a Group Key) + # We need to handle the fact that for these atlas objects, we can not grab all hosts. + if not self.atlas.group: + logger.error("we do not have a group, the Atlas object does not have a group!") + print("we do not have a group, the Atlas object does not have a group!") + yield None + else: - try: - response = self.atlas.network.get(Settings.BASE_URL + uri) - for page in response: - for each_process in page.get("results"): - yield Host(each_process) - except Exception as e: - raise e + uri = Settings.api_resources["Monitoring and Logs"]["Get all processes for group"].format( + GROUP_ID=self.atlas.group) + + try: + response = self.atlas.network.get(Settings.BASE_URL + uri) + for page in response: + for each_process in page.get("results"): + yield Host(each_process) + except Exception as e: + raise e def fill_host_list(self, for_cluster: Optional[str] = None) -> Iterable[Host]: """ diff --git a/atlasapi/network.py b/atlasapi/network.py index 19ad06e..323b8e7 100644 --- a/atlasapi/network.py +++ b/atlasapi/network.py @@ -26,14 +26,25 @@ from atlasapi.errors import * import logging import urllib.parse +import urllib.request from dateutil.tz import UTC from json import dumps from io import BytesIO from typing import Union + + + logger = logging.getLogger('network') logger.setLevel(logging.WARNING) +external_ip = 'Unknown' +if logger.level == logging.INFO: + try: + external_ip = urllib.request.urlopen('https://ident.me').read().decode('utf8') + except Exception as e: + logger.warning(f"Could not get public IP: {e}") + def merge(dict1, dict2): return dict2.update(dict1) @@ -92,6 +103,8 @@ def answer(self, c, details: Union[dict, BytesIO]): elif c == Settings.UNAUTHORIZED: raise ErrAtlasUnauthorized(c, details) elif c == Settings.FORBIDDEN: + logger.error(f"Got FORBIDDEN, we are using external ip {external_ip}") + details["external_ip"] = external_ip raise ErrAtlasForbidden(c, details) elif c == Settings.NOTFOUND: raise ErrAtlasNotFound(c, details) diff --git a/atlasapi/settings.py b/atlasapi/settings.py index 3fac788..0273674 100644 --- a/atlasapi/settings.py +++ b/atlasapi/settings.py @@ -34,7 +34,7 @@ class Settings: "Get One Project": URI_STUB + "/groups/{GROUP_ID}" }, "Monitoring and Logs": { - "Get all processes for group": URI_STUB + "/groups/{group_id}/processes", + "Get all processes for group": URI_STUB + "/groups/{GROUP_ID}/processes", "Get information for process in group": URI_STUB + "/groups/%s/processes/%s:&s?pageNum=%d" "&itemsPerPage=%d", "Get measurement for host": URI_STUB + "/groups/{group_id}/processes/{host}:{" diff --git a/tests/__init__.py b/tests/__init__.py index 213a0bd..e747b7d 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -11,6 +11,10 @@ import coolname from time import sleep, time import humanfriendly +import urllib.request + +external_ip = urllib.request.urlopen('https://ident.me').read().decode('utf8') + TEST_CLUSTER_NAME = getenv('TEST_CLUSTER_NAME', 'pyAtlasTestCluster') TEST_CLUSTER2_NAME = getenv('TEST_CLUSTER2_NAME', 'pyAtlas-') @@ -60,8 +64,6 @@ def setUp(self): self.OTHER_USER = getenv('ATLAS_OTHER_USER', None) self.OTHER_API_KEY = getenv('ATLAS_OTHER_KEY', None) - # print("env var is".format(getenv('ATLAS_USER', None))) - self.GROUP_OWNER_USER = getenv('ATLAS_ORG_USER', None) self.GROUP_OWNER_KEY = getenv('ATLAS_ORG_KEY', None) @@ -73,6 +75,10 @@ def setUp(self): self.TEST_CLUSTER3_NAME_UNIQUE = TEST_CLUSTER3_NAME_UNIQUE self.TEST_SERVERLESS_NAME = TEST_SERVERLESS_NAME + print("------The Config Variables -------") + print(f"ATLAS_USER is {self.USER}") + print(f"External IP is {external_ip}") + if not self.USER or not self.API_KEY or not self.GROUP_ID: raise EnvironmentError('In order to run this smoke test you need ATLAS_USER, AND ATLAS_KEY env variables' 'your env variables are {}'.format(environ.__str__())) @@ -82,6 +88,8 @@ def setUp(self): self.CLUSTER_CREATE_WAIT_SECONDS = CLUSTER_CREATE_WAIT_SECONDS + + # make sure test cluster is unpaused print(f"🚀🚀🚀 Pre Test Checks........") try: From 0506ad5c9df0695cf26796b9ca46f98f518d823f Mon Sep 17 00:00:00 2001 From: "Matthew G. Monteleone" Date: Sun, 26 Mar 2023 13:35:02 +0200 Subject: [PATCH 3/3] fixed missing import in events_event_types.py --- atlasapi/events_event_types.py | 1 + 1 file changed, 1 insertion(+) diff --git a/atlasapi/events_event_types.py b/atlasapi/events_event_types.py index e54c5ef..415706f 100644 --- a/atlasapi/events_event_types.py +++ b/atlasapi/events_event_types.py @@ -1,3 +1,4 @@ +from enum import Enum class AtlasEventTypes(Enum): APP_SETTINGS_CHANGE = 'App Settings Change' PEER_CREATED = 'Peer Created'