Import database action requests

Import database requests

Method Path Description
POST /v1/bdbs/{uid}/actions/import Initiate manual dataset import

Initiate manual dataset import

POST /v1/bdbs/{int: uid}/actions/import

Initiate a manual import process.

Permissions

Permission name Roles
start_bdb_import admin
cluster_member
db_member

Request

Example HTTP request

POST /bdbs/1/actions/import

Headers

Key Value Description
Host cnm.cluster.fqdn Domain name
Accept application/json Accepted media type
Content-Length 0 Length of the request body in octets

URL parameters

Field Type Description
uid integer The unique ID of the database

Body

The request may contain a subset of the BDB JSON object, which includes the following import-related attributes:

Field Type Description
dataset_import_sources array of dataset_import_sources objects Details for the import sources. Call GET /jsonschema on the bdb object and review the dataset_import_sources field to retrieve the object's structure.
email_notification boolean Enable/disable an email notification on import failure/ completion. (optional)
Note:
Other attributes are not allowed and will cause the request to fail.
Example JSON body

General example:

{
    "dataset_import_sources": [
        {
            "type": "url",
            "url": "http://..."
        },
        {
            "type": "url",
            "url": "redis://..."
        }
    ],
    "email_notification": true
}

This request initiates an import process using dataset_import_sources values that were previously configured for the database.

FTP example:

{
  "dataset_import_sources": [
    {
      "type": "url",
      "url": "ftp://<ftp_user>:<ftp_password>@example.com/<path>/<filename>.rdb.gz"
    }
  ]
}

SFTP example:

{
  "dataset_import_sources": [
    {
      "type": "sftp",
      "sftp_url": "sftp://<sftp_user>@example.com/<path>/<filename>.rdb"
    }
  ]
}

AWS S3 example:

{
  "dataset_import_sources": [
    {
      "type": "s3",
      "bucket_name": "backups",
      "subdir": "test-db",
      "filename": "<filename>.rdb",
      "access_key_id": "XXXXXXXXXXXXX",
      "secret_access_key": "XXXXXXXXXXXXXXXX"
    }
  ]
}

Google Cloud Storage example:

{
  "dataset_import_sources": [
    {
      "type": "gs",
      "bucket_name": "backups",
      "client_id": "XXXXXXXX",
      "client_email": "cloud-storage-client@my-project-id.iam.gserviceaccount.com",
      "subdir": "test-db",
      "filename": "<filename>.rdb",
      "private_key_id": "XXXXXXXXXXXXX",
      "private_key": "XXXXXXXXXXXXXXXX"
    }
  ]
}

Azure Blob Storage example:

{
  "dataset_import_sources": [
    {
      "type": "abs",
      "container": "backups",
      "subdir": "test-db",
      "filename": "<filename>.rdb",
      "account_name": "name",
      "account_key": "XXXXXXXXXXXXXXXX" // Or you can use "sas_token": "XXXXXXXXXXXXXXXXXX" instead
    }
  ]
}

Response

Returns a status code.

Status codes

Code Description
200 OK The request is accepted and is being processed. In order to monitor progress, the import_status, import_progress, and import_failure_reason attributes can be consulted.
404 Not Found Attempting to perform an action on a nonexistent database.
406 Not Acceptable Not all the modules loaded to the database support 'backup_restore' capability.
409 Conflict Database is currently busy with another action. In this context, this is a temporary condition and the request should be reattempted later.
RATE THIS PAGE
Back to top ↑