MongoDB Atlas - Restore cluster from latest snapshot

Octopus.Script exported 2022-10-03 by claude-uceda belongs to ‘MongoDB’ category.

Allow the user to restore a cluster from the latest snapshot.

Parameters

When steps based on the template are included in a project’s deployment process, the parameters below can be set.

Public key

matlas-public-key =

Mongo atlas public key

Private key

matlas-private-key =

Mongo atlas private key

Project source’s id

matlas-project-source =

Project id of the cluster that will be the snapshot source.

Cluster source’s name

matlas-cluster-source =

Cluster that will be used to get the snapshot.

Project target’s id

matlas-project-target =

Project id of the cluster that will used to restore the snapshot.

Cluster target’s name

matlas-cluster-target =

Cluster that will be used to restore the snapshot.

Status check delay

matlas-check-delay-seconds = 30

Delay in seconds between each statuses check.

Script body

Steps based on this template will execute the following PowerShell script.

$project_source = $OctopusParameters["matlas-project-source"]
$cluster_source = $OctopusParameters["matlas-cluster-source"]
$project_target = $OctopusParameters["matlas-project-target"]
$cluster_target = $OctopusParameters["matlas-cluster-target"]
$check_delay_seconds = $OctopusParameters["matlas-check-delay-seconds"]

$login = $OctopusParameters["matlas-public-key"]
$secret = $OctopusParameters["matlas-private-key"]

$check_delay_seconds_nb = ($check_delay_seconds -as [int])

function Check-Required($name, $value) {
	if($value -eq $null -or $value -eq ''){
    	Write-Error -Message "Missing parameter or invalid value for '$name'. ($value)" -ErrorAction Stop
    }
}

Check-Required 'matlas-public-key' $login
Check-Required 'matlas-private-key' $secret
Check-Required 'matlas-project-source' $project_source
Check-Required 'matlas-cluster-source' $cluster_source
Check-Required 'matlas-project-target' $project_target
Check-Required 'matlas-cluster-target' $cluster_target
Check-Required 'matlas-check-delay-seconds' $check_delay_seconds_nb

Write-Host "Restoring from $($project_source)/$($cluster_source) to $($project_target)/$($cluster_target) using $login."

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

function Invoke-Api($uri, $method, $content) {	

	$securedPassword = ConvertTo-SecureString -String $secret -AsPlainText -Force	
	$credentials = New-Object System.Management.Automation.PSCredential ($login, $securedPassword)

	try {
		return Invoke-RestMethod -Uri $uri -Method $method -Credential $credentials -ContentType "application/json" -Body $content
	}
	catch {
		Write-Error -Message $_ -ErrorAction Stop
	}
}

$root = "https://cloud.mongodb.com/api/atlas/v1.0"
$uri = New-Object System.Uri("$root/groups/$project_source/clusters/$cluster_source/backup/snapshots?itemsPerPage=5")
$results = Invoke-Api $uri "GET"
$snapshots = $results.results | Where-Object { $_.status -eq "completed" }
$snapshot = $snapshots[0]

$uri = New-Object System.Uri("$root/groups/$project_source/clusters/$cluster_source/backup/restoreJobs")
$request = "{`"deliveryType`":`"automated`", `"snapshotId`":`"$($snapshot.id)`", `"targetClusterName`":`"$cluster_target`", `"targetGroupId`":`"$project_target`"}"
$job = Invoke-Api $uri "POST" $request

$uri = New-Object System.Uri("$root/groups/$project_source/clusters/$cluster_source/backup/restoreJobs/$($job.id)")
while ($null -eq $job.finishedAt -or $job.finishedAt -eq "") {

	Write-Host "Waiting for restore to complete."	
	Start-Sleep -s $check_delay_seconds_nb
	$job = Invoke-Api $uri "GET"
}

Write-Host "Restore completed."

Provided under the Apache License version 2.0.

Report an issue

To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.

{
  "Id": "bf062dfe-de07-462c-8e7d-ec062b29e550",
  "Name": "MongoDB Atlas - Restore cluster from latest snapshot",
  "Description": "Allow the user to restore a cluster from the latest snapshot.",
  "Version": 1,
  "ExportedAt": "2022-10-03T10:52:04.423Z",
  "ActionType": "Octopus.Script",
  "Author": "claude-uceda",
  "Packages": [],
  "Parameters": [
    {
      "Id": "0cfd5665-9bfc-413a-bc4a-7778a860b7f0",
      "Name": "matlas-public-key",
      "Label": "Public key",
      "HelpText": "Mongo atlas public key",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "61cff00c-69b5-44b5-873d-742430ca2beb",
      "Name": "matlas-private-key",
      "Label": "Private key",
      "HelpText": "Mongo atlas private key",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "Sensitive"
      }
    },
    {
      "Id": "3d86c70a-2a6c-4cb7-a04e-f7f43838554c",
      "Name": "matlas-project-source",
      "Label": "Project source's id",
      "HelpText": "Project id of the cluster that will be the snapshot source.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "2a32df2e-641d-41a0-9e56-dba341efe58d",
      "Name": "matlas-cluster-source",
      "Label": "Cluster source's name",
      "HelpText": "Cluster that will be used to get the snapshot.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "bff9846a-980e-4a8f-b6bb-b43de82397c1",
      "Name": "matlas-project-target",
      "Label": "Project target's id",
      "HelpText": "Project id of the cluster that will used to restore the snapshot.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "e2aaa07d-9122-47ee-b3e9-008949ed5709",
      "Name": "matlas-cluster-target",
      "Label": "Cluster target's name",
      "HelpText": "Cluster that will be used to restore the snapshot.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "ac4c10c6-e487-4cec-902d-7cfaab7a3934",
      "Name": "matlas-check-delay-seconds",
      "Label": "Status check delay",
      "HelpText": "Delay in seconds between each statuses check.",
      "DefaultValue": "30",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    }
  ],
  "Properties": {
    "Octopus.Action.Script.ScriptSource": "Inline",
    "Octopus.Action.Script.Syntax": "PowerShell",
    "Octopus.Action.Script.ScriptBody": "$project_source = $OctopusParameters[\"matlas-project-source\"]\n$cluster_source = $OctopusParameters[\"matlas-cluster-source\"]\n$project_target = $OctopusParameters[\"matlas-project-target\"]\n$cluster_target = $OctopusParameters[\"matlas-cluster-target\"]\n$check_delay_seconds = $OctopusParameters[\"matlas-check-delay-seconds\"]\n\n$login = $OctopusParameters[\"matlas-public-key\"]\n$secret = $OctopusParameters[\"matlas-private-key\"]\n\n$check_delay_seconds_nb = ($check_delay_seconds -as [int])\n\nfunction Check-Required($name, $value) {\n\tif($value -eq $null -or $value -eq ''){\n    \tWrite-Error -Message \"Missing parameter or invalid value for '$name'. ($value)\" -ErrorAction Stop\n    }\n}\n\nCheck-Required 'matlas-public-key' $login\nCheck-Required 'matlas-private-key' $secret\nCheck-Required 'matlas-project-source' $project_source\nCheck-Required 'matlas-cluster-source' $cluster_source\nCheck-Required 'matlas-project-target' $project_target\nCheck-Required 'matlas-cluster-target' $cluster_target\nCheck-Required 'matlas-check-delay-seconds' $check_delay_seconds_nb\n\nWrite-Host \"Restoring from $($project_source)/$($cluster_source) to $($project_target)/$($cluster_target) using $login.\"\n\n[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12\n\nfunction Invoke-Api($uri, $method, $content) {\t\n\n\t$securedPassword = ConvertTo-SecureString -String $secret -AsPlainText -Force\t\n\t$credentials = New-Object System.Management.Automation.PSCredential ($login, $securedPassword)\n\n\ttry {\n\t\treturn Invoke-RestMethod -Uri $uri -Method $method -Credential $credentials -ContentType \"application/json\" -Body $content\n\t}\n\tcatch {\n\t\tWrite-Error -Message $_ -ErrorAction Stop\n\t}\n}\n\n$root = \"https://cloud.mongodb.com/api/atlas/v1.0\"\n$uri = New-Object System.Uri(\"$root/groups/$project_source/clusters/$cluster_source/backup/snapshots?itemsPerPage=5\")\n$results = Invoke-Api $uri \"GET\"\n$snapshots = $results.results | Where-Object { $_.status -eq \"completed\" }\n$snapshot = $snapshots[0]\n\n$uri = New-Object System.Uri(\"$root/groups/$project_source/clusters/$cluster_source/backup/restoreJobs\")\n$request = \"{`\"deliveryType`\":`\"automated`\", `\"snapshotId`\":`\"$($snapshot.id)`\", `\"targetClusterName`\":`\"$cluster_target`\", `\"targetGroupId`\":`\"$project_target`\"}\"\n$job = Invoke-Api $uri \"POST\" $request\n\n$uri = New-Object System.Uri(\"$root/groups/$project_source/clusters/$cluster_source/backup/restoreJobs/$($job.id)\")\nwhile ($null -eq $job.finishedAt -or $job.finishedAt -eq \"\") {\n\n\tWrite-Host \"Waiting for restore to complete.\"\t\n\tStart-Sleep -s $check_delay_seconds_nb\n\t$job = Invoke-Api $uri \"GET\"\n}\n\nWrite-Host \"Restore completed.\"\n"
  },
  "Category": "MongoDB",
  "HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates//opt/buildagent/work/75443764cd38076d/step-templates/mongodb-atlas-restore-snapshot.json",
  "Website": "/step-templates/bf062dfe-de07-462c-8e7d-ec062b29e550",
  "Logo": "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",
  "$Meta": {
    "Type": "ActionTemplate"
  }
}

History

Page updated on Monday, October 3, 2022