Skip to content

Conversation

@blva
Copy link
Collaborator

@blva blva commented Jun 6, 2025

Proposed changes

Jira ticket: CLOUDP-322605

This PR implements the logic in pause/start to call the right api depending on the scaling mode:

Call the autoScalingConfiguration endpoint

  • If ISS, use latest API version
  • Else, use pinned API version

Testing

➜  mongodb-atlas-cli git:(CLOUDP-322605) ✗ ./bin/atlas deployments pause --debug
Using Docker engine2025/06/06 12:50:06
GET /api/atlas/v2/groups/61dc598fd1f07c7b37ba425d/clusters?includeCount=false&includeDeletedWithRetainedBackups=false&itemsPerPage=500&pageNum=1 HTTP/1.1
Host: cloud-dev.mongodb.com
User-Agent: atlascli/1.43.1-10-g55a848cc7 (darwin;arm64;native)
Accept: application/vnd.atlas.2024-08-05+json
Accept-Encoding: gzip


2025/06/06 12:50:07
HTTP/1.1 200 OK
Content-Type: application/vnd.atlas.2024-08-05+json;charset=utf-8
Date: Fri, 06 Jun 2025 11:50:07 GMT
Referrer-Policy: strict-origin-when-cross-origin
Server: mdbws
Strict-Transport-Security: max-age=31536000; includeSubdomains;
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Envoy-Upstream-Service-Time: 309
X-Frame-Options: DENY
X-Java-Method: ApiAtlasClusterDescriptionResource20240805::getAllClusters
X-Java-Version: 17.0.14+7
X-Mongodb-Service-Version: gitHash=6b9e158fe32377391e8a31f5ea44069086259855; versionString=master
X-Permitted-Cross-Domain-Policies: none

{"links":[{"href":"https://cloud-dev.mongodb.com/api/atlas/v2/groups/61dc598fd1f07c7b37ba425d/clusters?includeCount=false&includeDeletedWithRetainedBackups=false&pageNum=1&itemsPerPage=500","rel":"self"}],"results":[{"advancedConfiguration":{"customOpensslCipherConfigTls12":[],"minimumEnabledTlsProtocol":"TLS1_2","tlsCipherConfigMode":"DEFAULT"},"backupEnabled":true,"biConnector":{"enabled":false,"readPreference":"secondary"},"clusterType":"REPLICASET","connectionStrings":{"standard":"mongodb://cluster1-shard-00-00.cipb5.mongodb-dev.net:27017,cluster1-shard-00-01.cipb5.mongodb-dev.net:27017,cluster1-shard-00-02.cipb5.mongodb-dev.net:27017/?ssl=true&authSource=admin&replicaSet=atlas-pkjwlt-shard-0","standardSrv":"mongodb+srv://cluster1.cipb5.mongodb-dev.net"},"createDate":"2025-06-06T11:37:00Z","diskWarmingMode":"FULLY_WARMED","encryptionAtRestProvider":"NONE","featureCompatibilityVersion":"8.0","globalClusterSelfManagedSharding":false,"groupId":"61dc598fd1f07c7b37ba425d","id":"6842d2dce79c4c4cb2e05d4f","labels":[],"links":[{"href":"https://cloud-dev.mongodb.com/api/atlas/v2/groups/61dc598fd1f07c7b37ba425d/clusters/Cluster1","rel":"self"},{"href":"https://cloud-dev.mongodb.com/api/atlas/v2/groups/61dc598fd1f07c7b37ba425d/clusters/Cluster1/backup/restoreJobs","rel":"https://cloud.mongodb.com/restoreJobs"},{"href":"https://cloud-dev.mongodb.com/api/atlas/v2/groups/61dc598fd1f07c7b37ba425d/clusters/Cluster1/backup/snapshots","rel":"https://cloud.mongodb.com/snapshots"}],"mongoDBMajorVersion":"8.0","mongoDBVersion":"8.0.10","name":"Cluster1","paused":false,"pitEnabled":false,"redactClientLogData":false,"replicationSpecs":[{"id":"6842d2dbe79c4c4cb2e05d48","regionConfigs":[{"analyticsAutoScaling":{"compute":{"maxInstanceSize":"M40","minInstanceSize":"M30","enabled":true,"predictiveEnabled":false,"scaleDownEnabled":true},"diskGB":{"enabled":true}},"analyticsSpecs":{"instanceSize":"M30","diskIOPS":3000,"diskSizeGB":40.0,"ebsVolumeType":"STANDARD","nodeCount":0},"autoScaling":{"compute":{"maxInstanceSize":"M40","minInstanceSize":"M30","enabled":true,"predictiveEnabled":false,"scaleDownEnabled":true},"diskGB":{"enabled":true}},"electableSpecs":{"instanceSize":"M30","diskIOPS":3000,"diskSizeGB":40.0,"ebsVolumeType":"STANDARD","nodeCount":3},"priority":7,"providerName":"AWS","readOnlySpecs":{"instanceSize":"M30","diskIOPS":3000,"diskSizeGB":40.0,"ebsVolumeType":"STANDARD","nodeCount":0},"regionName":"EU_WEST_1"}],"zoneId":"6842d2dbe79c4c4cb2e05d47","zoneName":"Zone 1"}],"rootCertType":"ISRGROOTX1","stateName":"IDLE","tags":[],"terminationProtectionEnabled":false,"versionReleaseSystem":"LTS"},{"backupEnabled":false,"biConnector":{"enabled":false,"readPreference":"secondary"},"clusterType":"REPLICASET","connectionStrings":{"standard":"mongodb://ac-9nonwhp-shard-00-00.ohkjf4s.mongodb-dev.net:27017,ac-9nonwhp-shard-00-01.ohkjf4s.mongodb-dev.net:27017,ac-9nonwhp-shard-00-02.ohkjf4s.mongodb-dev.net:27017/?ssl=true&authSource=admin&replicaSet=atlas-v0567w-shard-0","standardSrv":"mongodb+srv://cluster0.ohkjf4s.mongodb-dev.net"},"createDate":"2025-06-06T11:31:53Z","diskWarmingMode":"FULLY_WARMED","encryptionAtRestProvider":"NONE","featureCompatibilityVersion":"8.0","globalClusterSelfManagedSharding":false,"groupId":"61dc598fd1f07c7b37ba425d","id":"6842d1a9e79c4c4cb2e058e4","labels":[],"links":[{"href":"https://cloud-dev.mongodb.com/api/atlas/v2/groups/61dc598fd1f07c7b37ba425d/clusters/Cluster0","rel":"self"},{"href":"https://cloud-dev.mongodb.com/api/atlas/v2/groups/61dc598fd1f07c7b37ba425d/clusters/Cluster0/backup/restoreJobs","rel":"https://cloud.mongodb.com/restoreJobs"},{"href":"https://cloud-dev.mongodb.com/api/atlas/v2/groups/61dc598fd1f07c7b37ba425d/clusters/Cluster0/backup/snapshots","rel":"https://cloud.mongodb.com/snapshots"}],"mongoDBMajorVersion":"8.0","mongoDBVersion":"8.0.10","name":"Cluster0","paused":false,"pitEnabled":false,"redactClientLogData":false,"replicationSpecs":[{"id":"6842d1a9e79c4c4cb2e058e0","regionConfigs":[{"electableSpecs":{"effectiveInstanceSize":"M0","instanceSize":"M0","diskSizeGB":0.5},"backingProviderName":"AWS","priority":7,"providerName":"TENANT","regionName":"US_EAST_1"}],"zoneId":"6842d1a9e79c4c4cb2e058df","zoneName":"Zone 1"}],"rootCertType":"ISRGROOTX1","stateName":"IDLE","tags":[],"terminationProtectionEnabled":false,"versionReleaseSystem":"LTS"}],"totalCount":2}
Warning: failed to retrieve Local deployments because "could not determine docker version\nexit status 1: Cannot connect to the Docker daemon at unix:///Users/bianca.vianadeaguiar/.docker/run/docker.sock. Is the docker daemon running?\n"
Warning: failed to retrieve Local deployments because "container listing failed: exit status 1: Cannot connect to the Docker daemon at unix:///Users/bianca.vianadeaguiar/.docker/run/docker.sock. Is the docker daemon running?\n"
? Select a deployment Cluster1 (Atlas)
|2025/06/06 12:50:09
GET /api/atlas/v2/groups/61dc598fd1f07c7b37ba425d/clusters/Cluster1/autoScalingConfiguration HTTP/1.1
Host: cloud-dev.mongodb.com
User-Agent: atlascli/1.43.1-10-g55a848cc7 (darwin;arm64;native)
Accept: application/vnd.atlas.2024-08-05+json
Accept-Encoding: gzip


|2025/06/06 12:50:09
HTTP/1.1 200 OK
Content-Type: application/vnd.atlas.2024-08-05+json;charset=utf-8
Date: Fri, 06 Jun 2025 11:50:09 GMT
Deprecation: Wed, 23 Oct 2024 00:00:00 GMT
Referrer-Policy: strict-origin-when-cross-origin
Server: mdbws
Strict-Transport-Security: max-age=31536000; includeSubdomains;
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Envoy-Upstream-Service-Time: 199
X-Frame-Options: DENY
X-Java-Method: ApiAtlasClusterDescriptionResource20240805::getAutoScalingMode
X-Java-Version: 17.0.14+7
X-Mongodb-Service-Version: gitHash=6b9e158fe32377391e8a31f5ea44069086259855; versionString=master
X-Permitted-Cross-Domain-Policies: none

{"autoScalingMode":"INDEPENDENT_SHARD_SCALING"}
2025/06/06 12:50:09
PATCH /api/atlas/v2/groups/61dc598fd1f07c7b37ba425d/clusters/Cluster1 HTTP/1.1
Host: cloud-dev.mongodb.com
User-Agent: atlascli/1.43.1-10-g55a848cc7 (darwin;arm64;native)
Content-Length: 16
Accept: application/vnd.atlas.2024-10-23+json
Content-Type: application/vnd.atlas.2024-10-23+json
Accept-Encoding: gzip

{"paused":true}

|2025/06/06 12:50:10
HTTP/1.1 200 OK
Content-Length: 2412
Content-Type: application/vnd.atlas.2024-10-23+json;charset=utf-8
Date: Fri, 06 Jun 2025 11:50:10 GMT
Referrer-Policy: strict-origin-when-cross-origin
Server: mdbws
Strict-Transport-Security: max-age=31536000; includeSubdomains;
X-Content-Type-Options: nosniff
X-Envoy-Upstream-Service-Time: 610
X-Frame-Options: DENY
X-Java-Method: ApiAtlasClusterDescriptionResource20241023::updateCluster
X-Java-Version: 17.0.14+7
X-Mongodb-Service-Version: gitHash=6b9e158fe32377391e8a31f5ea44069086259855; versionString=master
X-Permitted-Cross-Domain-Policies: none

{"advancedConfiguration":{"customOpensslCipherConfigTls12":[],"minimumEnabledTlsProtocol":"TLS1_2","tlsCipherConfigMode":"DEFAULT"},"backupEnabled":true,"biConnector":{"enabled":false,"readPreference":"secondary"},"clusterType":"REPLICASET","connectionStrings":{"standard":"mongodb://cluster1-shard-00-00.cipb5.mongodb-dev.net:27017,cluster1-shard-00-01.cipb5.mongodb-dev.net:27017,cluster1-shard-00-02.cipb5.mongodb-dev.net:27017/?ssl=true&authSource=admin&replicaSet=atlas-pkjwlt-shard-0","standardSrv":"mongodb+srv://cluster1.cipb5.mongodb-dev.net"},"createDate":"2025-06-06T11:37:00Z","diskWarmingMode":"FULLY_WARMED","encryptionAtRestProvider":"NONE","featureCompatibilityVersion":"8.0","globalClusterSelfManagedSharding":false,"groupId":"61dc598fd1f07c7b37ba425d","id":"6842d2dce79c4c4cb2e05d4f","labels":[],"links":[{"href":"https://cloud-dev.mongodb.com/api/atlas/v2/groups/61dc598fd1f07c7b37ba425d/clusters/Cluster1","rel":"self"},{"href":"https://cloud-dev.mongodb.com/api/atlas/v2/groups/61dc598fd1f07c7b37ba425d/clusters/Cluster1/backup/restoreJobs","rel":"https://cloud.mongodb.com/restoreJobs"},{"href":"https://cloud-dev.mongodb.com/api/atlas/v2/groups/61dc598fd1f07c7b37ba425d/clusters/Cluster1/backup/snapshots","rel":"https://cloud.mongodb.com/snapshots"}],"mongoDBMajorVersion":"8.0","mongoDBVersion":"8.0.10","name":"Cluster1","paused":true,"pitEnabled":false,"redactClientLogData":false,"replicationSpecs":[{"id":"6842d2dbe79c4c4cb2e05d48","regionConfigs":[{"analyticsAutoScaling":{"compute":{"maxInstanceSize":"M40","minInstanceSize":"M30","enabled":true,"predictiveEnabled":false,"scaleDownEnabled":true},"diskGB":{"enabled":true}},"analyticsSpecs":{"instanceSize":"M30","diskIOPS":3000,"diskSizeGB":40.0,"ebsVolumeType":"STANDARD","nodeCount":0},"autoScaling":{"compute":{"maxInstanceSize":"M40","minInstanceSize":"M30","enabled":true,"predictiveEnabled":false,"scaleDownEnabled":true},"diskGB":{"enabled":true}},"electableSpecs":{"instanceSize":"M30","diskIOPS":3000,"diskSizeGB":40.0,"ebsVolumeType":"STANDARD","nodeCount":3},"priority":7,"providerName":"AWS","readOnlySpecs":{"instanceSize":"M30","diskIOPS":3000,"diskSizeGB":40.0,"ebsVolumeType":"STANDARD","nodeCount":0},"regionName":"EU_WEST_1"}],"zoneId":"6842d2dbe79c4c4cb2e05d47","zoneName":"Zone 1"}],"rootCertType":"ISRGROOTX1","stateName":"UPDATING","tags":[],"terminationProtectionEnabled":false,"versionReleaseSystem":"LTS"}
Pausing deployment 'Cluster1'.
request:
POST https://cloud-dev.mongodb.com/api/private/v1.0/telemetry/events
response:
HTTP/1.1 202 Accepted

Checklist

  • I have signed the MongoDB CLA
  • I have added tests that prove my fix is effective or that my feature works
  • I have added any necessary documentation in document requirements section listed in CONTRIBUTING.md (if appropriate)
  • I have addressed the @mongodb/docs-cloud-team comments (if appropriate)
  • I have updated test/README.md (if an e2e test has been added)
  • I have run make fmt and formatted my code

Further comments

@blva blva changed the base branch from master to CLOUDP-302696-clusters-iss-epic June 6, 2025 11:27
@github-actions
Copy link
Contributor

github-actions bot commented Jun 6, 2025

Coverage Report 📈

Branch Commit Coverage
CLOUDP-302696-clusters-iss-epic fe75b12 25.1%
CLOUDP-322605 55a848c 25.1%
Difference 0%

@blva blva marked this pull request as ready for review June 6, 2025 11:57
@blva blva requested a review from a team as a code owner June 6, 2025 11:57
@blva blva merged commit e9baa50 into CLOUDP-302696-clusters-iss-epic Jun 6, 2025
21 checks passed
@blva blva deleted the CLOUDP-322605 branch June 6, 2025 16:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants