Method Path Description
POST /v1/bdbs/{uid}/upgrade Upgrade database

Upgrade database

POST /v1/bdbs/{int: uid}/upgrade

Upgrade a database.

Required permissions

Permission name
update_bdb_with_action

Request

Example HTTP request

POST /bdbs/1/upgrade 

Example JSON body

{
    "swap_roles": true,
    "may_discard_data": false
}

Request headers

Key Value Description
Host cnm.cluster.fqdn Domain name
Accept application/json Accepted media type

Request body

Field Type Description
force_restart boolean Restart shards even if no version change (default: false)
keep_redis_version boolean Keep current Redis version (default: false)
keep_crdt_protocol_version boolean Keep current crdt protocol version (default: false)
may_discard_data boolean Discard data in a non-replicated, non-persistent bdb (default: false)
force_discard boolean Discard data even if the bdb is replicated and/or persistent (default: false)
preserve_roles boolean Preserve shards’ master/replica roles (requires an extra failover) (default: false)
parallel_shards_upgrade integer Max number of shards to upgrade in parallel (default: all)
modules list of modules List of dicts representing the modules that will be upgraded.

Each dict includes:

current_module: uid of a module to upgrade

new_module: uid of the module we want to upgrade to

new_module_args: args list for the new module (no defaults for the three module-related parameters).

Response

Returns the upgraded BDB object.

Example JSON body

{
    "uid": 1,
    "replication": true,
    "data_persistence": "aof",
    "// additional fields..."
}

Status codes

Code Description
200 OK Success, bdb upgrade initiated (action_uid can be used to track progress)
400 Bad Request Malformed or bad command
404 Not Found bdb not found
406 Not Acceptable New module version capabilities don’t comply with the database configuration
500 Internal Server Error Internal error