备份服务 API v2

备份 (backups)

备份允许用户记录他们的备份以及关于这些备份的元数据信息,以及备份何时进行。它保存备份信息。

GET
/v2/{project_id}/backups

列出备份(v2)

列出备份。

此操作列出项目的备份。备份按名称字母顺序排序。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

请求参数

名称

入参

类型

描述

limit (可选)

查询

整数

请求项目页面大小。返回最多限制值数量的项目。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

marker (可选)

查询

字符串

最后一个已查看项目的 ID。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

search (可选)

body

dict

列表的查询选项。它是一个 JSON 结构。它包含关键字 matchmatch_not,或两者之一。关于键 matchmatch_not 的值是 {key, value} 的列表。

响应参数

名称

入参

类型

描述

backups (可选)

body

列表

备份列表。

请求示例

{
    "match_not": [
        {
            "storage": "ftps"
        }
    ],
    "match": [
        {
            "backup_name": "freezer_mysql_backup"
        }
    ]
}

响应示例

{
  "backups": [
    {
      "project_id": "752d8bd43d654e7a840bbfda77ce41af",
      "backup_id": "96a5946a6e994a38a3d1008fbc6f3406",
      "user_id": "a387de3311484ce58c4560486bc153f1",
      "job_id": "df96800d16fc4d28af75c8451daf0a92",
      "backup_metadata": {
        "ssh_port": 22,
        "curr_backup_level": 0,
        "backup_name": "freezer_mysql_backup",
        "container": "freezer_database_backups",
        "compression": "gzip",
        "dry_run": "",
        "hostname": "backup-node1",
        "storage": "swift",
        "vol_snap_path": "\/var\/lib\/freezer_81856317d419498cb95f3bdffc847361\/.",
        "os_auth_version": "",
        "client_os": "linux2",
        "time_stamp": 1486660214,
        "container_segments": "",
        "ssh_username": "",
        "path_to_backup": "\/var\/lib\/freezer_81856317d419498cb95f3bdffc847361\/.",
        "ssh_key": "",
        "proxy": "",
        "always_level": "",
        "max_level": 14,
        "backup_media": "fs",
        "ssh_host": "",
        "mode": "mysql",
        "fs_real_path": "\/var\/lib\/mysql\/",
        "action": "backup",
        "client_version": "2.0.2",
        "log_file": "\/root\/.freezer\/freezer.log"
      },
      "client_id": "backup-node1",
      "backup_uuid": "9598dd99e1ce42019e498c5493ae1f84",
      "user_name": "os_backup"
    },
    {
      "project_id": "752d8bd43d654e7a840bbfda77ce41af",
      "backup_id": "0cd44caf6db5486b94a04b33256a5ff4",
      "user_id": "a387de3311484ce58c4560486bc153f1",
      "job_id": "b30efac3ef744c45bf3062775ea3525b",
      "backup_metadata": {
        "ssh_port": 22,
        "curr_backup_level": 0,
        "backup_name": "freezer_mysql_backup",
        "container": "freezer_database_backups",
        "compression": "gzip",
        "dry_run": "",
        "hostname": "backup-node1",
        "storage": "swift",
        "vol_snap_path": "\/var\/lib\/freezer_c5d4504387f84b1e96266b6f00bf5f04\/.",
        "os_auth_version": "",
        "client_os": "linux2",
        "time_stamp": 1486660222,
        "container_segments": "",
        "ssh_username": "",
        "path_to_backup": "\/var\/lib\/freezer_c5d4504387f84b1e96266b6f00bf5f04\/.",
        "ssh_key": "",
        "proxy": "",
        "always_level": "",
        "max_level": 14,
        "backup_media": "fs",
        "ssh_host": "",
        "mode": "mysql",
        "fs_real_path": "\/var\/lib\/mysql\/",
        "action": "backup",
        "client_version": "2.0.2",
        "log_file": "\/root\/.freezer\/freezer.log"
      },
      "client_id": "backup-node1",
      "backup_uuid": "2ba51cb9eff543d4b9a530b3c0d2f7cc",
      "user_name": "os_backup"
    }
  ]
}
GET
/v2/{project_id}/backups/{backup_id}

显示备份(v2)

显示备份。

此操作显示某个备份。备份详情。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

backup_id

查询

字符串

备份的 UUID。

响应参数

名称

入参

类型

描述

project_id

body

字符串

项目的 UUID。项目也称为租户。

user_id

body

字符串

用户的 UUID。

backup_id

body

字符串

备份的 UUID。

username

body

字符串

用户名。

backup_metadata

body

列表

备份元数据信息的列表。这包含备份详情,例如 path_to_backupbackup_namehostnamejob_idstorage 等。

响应示例

{
        "project_id": "752d8bd43d654e7a840bbfda77ce41af",
        "user_id": "0cd44caf6db5486b94a04b33256a5ff4",
        "backup_id": "96a5946a6e994a38a3d1008fbc6f3406",
        "user_name": "demo",
        "backup_metadata":
        {
            "ssh_port": 22,
            "consistency_checksum": "",
            "curr_backup_level": 0,
            "backup_name": "test0001_backup",
            "container": "/tmp/test0001_container",
            "compression": "gzip",
            "dry_run": "",
            "hostname": "szaher",
            "storage": "local",
            "vol_snap_path": "/etc/",
            "os_auth_version": "",
            "client_os": "linux2",
            "time_stamp": 1493052022,
            "container_segments": "",
            "ssh_username": "",
            "path_to_backup": "/etc/",
            "ssh_key": "",
            "proxy": "",
            "job_id": "0ae284d514eb47dd84154748b5056749",
            "always_level": "",
            "max_level": "",
            "backup_media": "fs",
            "ssh_host": "",
            "mode": "fs",
            "fs_real_path": "/etc/",
            "action": "backup",
            "client_version": "5.0.0",
            "log_file": "/home/saad/job0001.log"
        },
        "_version": 1
}
DELETE
/v2/{project_id}/actions/{backup_id}

删除备份(v2)

删除项目中的备份。

此操作删除某个备份。

正常响应代码:204

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

backup_id

查询

字符串

备份的 UUID。

此操作没有响应。

客户端 (clients)

客户端允许 freezer 调度器或用户创建客户端,以便能够创建、更新、显示或删除作业。客户端需要记录你在 freezer api 上的备份。

GET
/v2/{project_id}/clients

列出客户端(v2)

列出客户端。

此操作列出客户端。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

请求参数

名称

入参

类型

描述

limit (可选)

查询

整数

请求项目页面大小。返回最多限制值数量的项目。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

offset (可选)

查询

字符串

最后一个已查看项目的 ID。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

search (可选)

body

dict

列表的查询选项。它是一个 JSON 结构。它包含关键字 matchmatch_not,或两者之一。关于键 matchmatch_not 的值是 {key, value} 的列表。

响应参数

名称

入参

类型

描述

clients

body

列表

客户端列表。

请求示例

{
    "match_not": [
        {
            "client_id": "tecs_node1"
        }
    ],
    "match": [
        {
            "user_id":"0cd44caf6db5486b94a04b33256a5ff4"
        }
    ]
}

响应示例

{
        "clients":
        [
            {
                "project_id": "752d8bd43d654e7a840bbfda77ce41af",
                "user_id": "0cd44caf6db5486b94a04b33256a5ff4",
                "client":
                {
                    "hostname": "szaher01",
                    "uuid": "6f588392aa864c96b4af96a4eae005ce",
                    "client_id": "752d8bd43d654e7a840bbfda77ce41af_szaher01"
                }

            },
            {
                "project_id": "752d8bd43d654e7a840bbfda77ce41af",
                "user_id": "0cd44caf6db5486b94a04b33256a5ff4",
                "client":
                {
                    "hostname": "szaher",
                    "uuid": "c4031a9885384376a717a238ae975d9b",
                    "client_id": "752d8bd43d654e7a840bbfda77ce41af_szaher"
                }
            }
        ]
}
POST
/v2/{project_id}/clients

创建客户端(v2)

创建一个客户端。

此操作创建一个新的客户端。

正常响应代码:201

错误响应代码

  • 语法错误 (753)

  • BadRequest (400)

  • 未授权 (401)

  • ServiceUnavailable (503)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

请求参数

名称

入参

类型

描述

hostname

body

字符串

客户端运行机器的主机名。

uuid

body

字符串

客户端 UUID。

client_id

body

字符串

客户端 UUID。

请求示例

{
            "client":
            {
                "hostname": "szaher01",
                "uuid": "c4031a4885384376a717a238de975a9c"
            },
            "client_id": "752d8cd43d654e7a840bbfd277ce41af_szaher01"
}

响应参数

名称

入参

类型

描述

client_id

body

字符串

客户端 UUID。

响应示例

{"client_id": "752d8cd43d654e7a840bbfd277ce41af_szaher01"}
GET
/v2/{project_id}/clients/{client_id}

显示客户端(v2)

显示客户端。

此操作显示某个客户端。它显示所有客户端详情。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

client_id

查询

字符串

客户端 ID。

响应参数

名称

入参

类型

描述

project_id

body

字符串

项目的 UUID。项目也称为租户。

user_id

body

字符串

用户的 UUID。

client_id

body

字符串

客户端 UUID。

hostname

body

字符串

客户端运行机器的主机名。

uuid

body

字符串

客户端 UUID。

响应示例

{
        "project_id": "752d8bd43d654e7a840bbfda77ce41af",
        "user_id": "0cd44caf6db5486b94a04b33256a5ff4",
        "client":
        {
            "hostname": "szaher01",
            "uuid": "6f588392aa864c96b4af96a4eae005ce",
            "client_id": "752d8bd43d654e7a840bbfda77ce41af_szaher01"
        }
}
DELETE
/v2/{project_id}/clients/{client_id}

删除客户端(v2)

删除客户端。

此操作删除某个客户端。

正常响应代码:204

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

client_id

查询

字符串

客户端 ID。

此操作没有响应。

作业 (jobs)

作业允许用户在一个或多个节点上安排和执行备份作业。作业通过 api 存储在数据库中。每个作业包含一组执行备份作业的操作。

GET
/v2/{project_id}/jobs

列出作业(v2)

列出作业。

此操作列出项目的作业。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

请求参数

名称

入参

类型

描述

limit (可选)

查询

整数

请求项目页面大小。返回最多限制值数量的项目。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

offset (可选)

查询

字符串

最后一个已查看项目的 ID。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

search (可选)

body

dict

列表的查询选项。它是一个 JSON 结构。它包含关键字 matchmatch_not,或两者之一。关于键 matchmatch_not 的值是 {key, value} 的列表。

响应参数

名称

入参

类型

描述

jobs (可选)

body

列表

作业列表。

请求示例

{
    "match_not": [
        {
            "schedule_interval": "10 days"
        }
    ],
    "match": [
        {
            "client_id": "752d8bd43d654e7a840bbfda77ce41af_szaher"
        }
    ]
}

响应示例

{
        "jobs":
        [
            {
                "project_id": "752d8bd43d654e7a840bbfda77ce41af",
                "user_id": "0cd44caf6db5486b94a04b33256a5ff4",
                "description": "Test-0001",
                "job_schedule":
                {
                    "schedule_interval": "50 minutes",
                    "status": "scheduled",
                    "time_started": 1493055141,
                    "time_created": 1493051865,
                    "time_ended": 1493055142,
                    "result": "success",
                    "current_pid": 16793,
                    "event": ""
                },
                "client_id": "752d8bd43d654e7a840bbfda77ce41af_szaher",
                "job_actions":
                [
                    {
                        "freezer_action":
                        {
                            "backup_name": "test0001_backup",
                            "container": "/tmp/test0001_container",
                            "no_incremental": true,
                            "path_to_backup": "/etc/",
                            "storage": "local",
                            "log_file": "/home/saad/job0001.log",
                            "snapshot": false,
                            "action": "backup",
                            "remove_older_than": 365
                        },
                        "max_retries": 5,
                        "max_retries_interval": 6,
                        "user_id": "0cd44caf6db5486b94a04b33256a5ff4",
                        "action_id": "280d51d041ce4d4da8a386e96263f759",
                        "project_id": "752d8bd43d654e7a840bbfda77ce41af"
                    }
                ],
                "job_id": "0ae284d514eb47dd84154748b5056749"
            }
        ]
}
POST
/v2/{project_id}/jobs

创建作业(v2)

创建一个作业。

此操作创建一个新的作业。

body 属性指定包含要创建的一组操作

作业提交后。

description 是你给作业的名称。名称长度不得超过 64 字节。

job_schedule 对于安排作业非常重要,否则它只会运行一次。你还可以提供 event,它可以自动启动/停止作业。

job_actions 是要执行的实际备份或恢复操作。

正常响应代码:201

错误响应代码

  • 语法错误 (753)

  • BadRequest (400)

  • 未授权 (401)

  • ServiceUnavailable (503)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

请求参数

名称

入参

类型

描述

description

body

字符串

作业的名称。

job_schedule

body

dict

作业的计划信息。

job_actions

body

列表

执行备份/恢复作业的一组操作。

请求示例

{
    "description": "Test-0001",
    "job_schedule": {
        "schedule_interval": "5 minutes",
        "status": "scheduled",
        "event": "start"
    },
    "job_actions": [
        {
            "max_retries": 5,
            "max_retries_interval": 6,
            "freezer_action": {
                "backup_name": "test0001_backup",
                "container": "test0001_container",
                "no_incremental": true,
                "path_to_backup": "/etc/",
                "log_file": "/home/saad/job0001.log",
                "snapshot": true,
                "action": "backup",
                "remove_older_than": 365
            }
        }
    ]
}

此操作不返回响应体。

GET
/v2/{project_id}/jobs/{job_id}

显示作业(v2)

显示作业。

此操作显示某个作业。它显示作业内部的所有作业详情和操作。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

job_id

查询

字符串

作业 UUID。

响应参数

名称

入参

类型

描述

job_id

body

字符串

作业 UUID。

client_id

body

字符串

客户端 UUID。

user_id

body

字符串

用户的 UUID。

session_id

body

字符串

会话 UUID。

description

body

字符串

作业的名称。

job_actions

body

列表

执行备份/恢复作业的一组操作。

job_schedule

body

dict

作业的计划信息。

响应示例

{
        "project_id": "752d8bd43d654e7a840bbfda77ce41af",
        "user_id": "0cd44caf6db5486b94a04b33256a5ff4",
        "description": "Test-0001",
        "_version": 83,
        "job_schedule":
        {
            "schedule_interval": "2 minutes",
            "status": "scheduled",
            "time_started": 1493119341,
            "time_created": 1493051865,
            "time_ended": 1493119342,
            "result": "success",
            "current_pid": 10058,
            "event": ""
        },
        "client_id": "752d8bd43d654e7a840bbfda77ce41af_szaher",
        "job_actions":
        [
            {
                "freezer_action":
                {
                    "backup_name": "test0001_backup",
                    "container": "/tmp/test0001_container",
                    "no_incremental": true,
                    "path_to_backup": "/etc/",
                    "storage": "local",
                    "log_file": "/home/saad/job0001.log",
                    "snapshot": false,
                    "action": "backup",
                    "remove_older_than": 365
                },
                "max_retries": 5,
                "max_retries_interval": 6,
                "user_id": "0cd44caf6db5486b94a04b33256a5ff4",
                "action_id": "280d51d041ce4d4da8a386e96263f759",
                "project_id": "752d8bd43d654e7a840bbfda77ce41af"
            }
        ],
        "job_id": "0ae284d514eb47dd84154748b5056749"
}
PATCH
/v2/{project_id}/jobs/{job_id}

更新作业(v2)

更新作业。

此操作创建一个新的作业。

body 属性指定包含要更新的操作

作业提交后。

description 是你给作业的名称。名称长度不应超过 64 字节。

job_schedule 对于安排作业非常重要,否则它只会运行一次。你还可以提供 event,它可以自动启动/停止作业。

job_actions 是要执行的实际备份或恢复操作。

正常响应代码:201

错误响应代码

  • 语法错误 (753)

  • BadRequest (400)

  • 未授权 (401)

  • ServiceUnavailable (503)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

job_id

查询

字符串

作业 UUID。

请求参数

名称

入参

类型

描述

description

body

字符串

作业的名称。

job_schedule

body

dict

作业的计划信息。

job_actions

body

列表

执行备份/恢复作业的一组操作。

请求示例

{
    "description": "Test-0001",
    "job_schedule": {
        "schedule_interval": "5 minutes",
        "status": "scheduled",
        "event": "stop"
    },
    "job_actions": [
        {
            "max_retries": 10,
            "max_retries_interval": 10,
            "freezer_action": {
                "backup_name": "test0001_backup",
                "container": "/tmp/xyzxyzxyz",
                "storage": "local",
                "no_incremental": true,
                "path_to_backup": "/etc/",
                "log_file": "/home/saad/job0001.log",
                "snapshot": false,
                "action": "backup",
                "remove_older_than": 365
            }
        }
    ]
}

响应示例

{"job_id": "0ae284d514eb47dd84154748b5056749", "version": "3"}
DELETE
/v2/{project_id}/jobs/{job_id}

删除作业(v2)

删除作业。

此操作删除某个作业。

正常响应代码:204

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

job_id

查询

字符串

作业 UUID。

此操作没有响应。

操作 (actions)

操作允许用户在一个或多个节点上执行备份和恢复操作。操作通过 api 存储在数据库中。它包含在作业中,每个作业包含一组执行备份/恢复作业的操作。

GET
/v2/{project_id}/actions

列出操作(v2)

列出操作。

此操作列出项目中的操作。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

请求参数

名称

入参

类型

描述

limit (可选)

查询

整数

请求项目页面大小。返回最多限制值数量的项目。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

offset (可选)

查询

字符串

最后一个已查看项目的 ID。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

search (可选)

body

dict

列表的查询选项。它是一个 JSON 结构。它包含关键字 matchmatch_not,或两者之一。关于键 matchmatch_not 的值是 {key, value} 的列表。

响应参数

名称

入参

类型

描述

动作

body

列表

操作列表。

请求示例

{
    "match_not": [
        {
            "max_retries": 20
        }
    ],
    "match": [
        {
            "backup_name": "test0001_backup"
        }
    ]
}

响应示例

{
        "actions":
        [
            {
                "freezer_action":
                {
                    "backup_name": "test0001_backup",
                    "container": "test0001_container",
                    "no_incremental": true,
                    "path_to_backup": "/etc/",
                    "project_id": "752d8bd43d654e7a840bbfda77ce41af",
                    "snapshot": true,
                    "action": "backup",
                    "remove_older_than": 365,
                    "log_file": "/home/saad/job0001.log"
                },
                "max_retries": 5,
                "max_retries_interval": 6,
                "user_id": "0cd44caf6db5486b94a04b33256a5ff4",
                "project_id": "752d8bd43d654e7a840bbfda77ce41af",
                "action_id": "061f7657350a4bddbfabf8d2a25dad96"
            },
            {
                "freezer_action":
                {
                    "backup_name": "test0001_backup",
                    "container": "/tmp/test0001_container",
                    "no_incremental": true,
                    "path_to_backup": "/etc/",
                    "storage": "local",
                    "project_id": "752d8bd43d654e7a840bbfda77ce41af",
                    "snapshot": false,
                    "action": "backup",
                    "remove_older_than": 365,
                    "log_file": "/home/saad/job0001.log"
                },
                "max_retries": 5,
                "max_retries_interval": 6,
                "user_id": "0cd44caf6db5486b94a04b33256a5ff4",
                "project_id": "752d8bd43d654e7a840bbfda77ce41af",
                "action_id": "317f8bc1fbbe49819d1b60f4b4387e63"
            }
        ]
}
POST
/v2/{project_id}/actions

创建操作(v2)

创建一个操作。

此操作在项目中创建一个新的操作。

freezer_action 包含实际的操作参数。freezer_action 因操作而异,具体取决于该操作正在做什么(备份、恢复、管理、信息)

正常响应代码:201

错误响应代码

  • 语法错误 (753)

  • BadRequest (400)

  • 未授权 (401)

  • ServiceUnavailable (503)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

请求参数

名称

入参

类型

描述

freezer_action

body

dict

操作参数。它取决于实际操作(备份、恢复、管理、信息),因此参数不同。

max_retries (可选)

body

int

freezer 应该重试执行操作的次数。

max_retries_interval (可选)

body

int

freezer 应该在不同重试之间等待的时间来执行操作。

请求示例

{
            "freezer_action":
            {
                "backup_name": "production_backup",
                "container": "prod_container",
                "no_incremental": true,
                "path_to_backup": "/etc/",
                "snapshot": true,
                "action": "backup",
                "remove_older_than": 365,
                "log_file": "/var/log/freezer/job0001.log"
            },
            "max_retries": 5,
            "max_retries_interval": 6
}

响应参数

名称

入参

类型

描述

action_id

body

字符串

操作 UUID。

响应示例

{
        "action_id": "1fc414f091b84263b45d7e1f1f85e5bf"
}
GET
/v2/{project_id}/actions/{action_id}

显示操作(v2)

在项目中显示操作。

此操作显示某个操作。操作详情。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

action_id

查询

字符串

操作 UUID。

响应参数

名称

入参

类型

描述

freezer_action

body

dict

操作参数。它取决于实际操作(备份、恢复、管理、信息),因此参数不同。

max_retries (可选)

body

int

freezer 应该重试执行操作的次数。

max_retries_interval (可选)

body

int

freezer 应该在不同重试之间等待的时间来执行操作。

user_id

body

字符串

用户的 UUID。

project_id

body

字符串

项目的 UUID。项目也称为租户。

action_id

body

字符串

操作 UUID。

响应示例

{
        "freezer_action":
        {
            "backup_name": "production_backup",
            "container": "prod_container",
            "no_incremental": true,
            "path_to_backup": "/etc/",
            "snapshot": true,
            "action": "backup",
            "remove_older_than": 365,
            "log_file": "/var/log/freezer/job0001.log"
        },
        "max_retries_interval": 6,
        "_version": 1,
        "max_retries": 5,
        "user_id": "0cd44caf6db5486b94a04b33256a5ff4",
        "project_id": "752d8bd43d654e7a840bbfda77ce41af",
        "action_id": "1fc414f091b84263b45d7e1f1f85e5bf"
}
POST
/v2/{project_id}/actions/{action_id}

更新操作(v2)

在项目中更新操作。

此操作更新或替换现有操作。

正常响应代码:201

错误响应代码

  • 语法错误 (753)

  • BadRequest (400)

  • 未授权 (401)

  • ServiceUnavailable (503)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

action_id

查询

字符串

操作 UUID。

响应参数

名称

入参

类型

描述

freezer_action

body

dict

操作参数。它取决于实际操作(备份、恢复、管理、信息),因此参数不同。

max_retries (可选)

body

int

freezer 应该重试执行操作的次数。

max_retries_interval (可选)

body

int

freezer 应该在不同重试之间等待的时间来执行操作。

action_id

body

字符串

操作 UUID。

请求示例

{
            "freezer_action":
            {
                "backup_name": "production_backup",
                "container": "prod_container",
                "no_incremental": true,
                "path_to_backup": "/etc/",
                "snapshot": true,
                "action": "backup",
                "remove_older_than": 365,
                "log_file": "/var/log/freezer/job0001.log"
            },
            "max_retries": 5,
            "max_retries_interval": 6
}

响应示例

{
  "version": 2,
  "action_id": "1fc414f091b84263b45d7e1f1f85e5bf"
}
DELETE
/v2/{project_id}/actions/{action_id}

删除操作(v2)

删除项目中的操作。

此操作删除某个操作。

正常响应代码:204

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

action_id

查询

字符串

操作 UUID。

此操作没有响应。

会话 (sessions)

会话是一组共享相同计划时间的作业。会话由其 session_id 标识,并且有一个数字标签 (session_tag),每次启动新会话时都会递增。 session_tag 的目的是标识一组一起执行的作业,因此代表分布式系统的快照。

job 添加到会话时,会话的计划时间会复制到作业数据结构中,以便属于同一会话的任何作业都将在同一时间启动。

GET
/v2/{project_id}/sessions

列出会话(v2)

列出会话。

此操作列出项目中的会话。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

请求参数

名称

入参

类型

描述

limit (可选)

查询

整数

请求项目页面大小。返回最多限制值数量的项目。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

offset (可选)

查询

字符串

最后一个已查看项目的 ID。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

search (可选)

body

dict

列表的查询选项。它是一个 JSON 结构。它包含关键字 matchmatch_not,或两者之一。关于键 matchmatch_not 的值是 {key, value} 的列表。

响应参数

名称

入参

类型

描述

sessions (可选)

body

列表

现有会话列表。

请求示例

{
    "match_not": [
        {
            "schedule_interval": "10 days"
        }
    ],
    "match": [
        {
            "hold_off": 50
        }
    ]
}

响应示例

{
        "sessions":
        [
            {
                "project_id": "752d8bd43d654e7a840bbfda77ce41af",
                "user_id": "0cd44caf6db5486b94a04b33256a5ff4",
                "description": "Instance Database backup ",
                "schedule":
                {
                    "schedule_interval": "1 days",
                    "status": "scheduled",
                    "event": "start"
                },
                "session_tag": 250,
                "session_id": "79eba555449d4cfe8ef66f34cb096295",
                "jobs":
                {
                    "0ae284d514eb47dd84154748b5056749":
                    {
                        "time_ended": 1493119342,
                        "status": "scheduled",
                        "result": "success",
                        "client_id": "752d8bd43d654e7a840bbfda77ce41af_szaher",
                        "time_started": 1493119341
                    }
                },
                "hold_off": 50
            }
        ]
}
POST
/v2/{project_id}/sessions

创建会话(v2)

创建一个会话。

此操作在项目中创建一个新的会话。

正常响应代码:201

错误响应代码

  • 语法错误 (753)

  • BadRequest (400)

  • 未授权 (401)

  • ServiceUnavailable (503)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

请求参数

名称

入参

类型

描述

description

body

字符串

会话的描述。

hold_off

body

int

等待一段时间后再次运行相同会话的量。

session_tag

body

字符串

正在使用事件来启动或停止会话。

schedule

body

dict

一个字典,其中包含会话计划信息。它与 job_schedule 相同。它包含 schedule_intervalstatusevent

schedule_internval (可选)

body

字符串

会话的调度信息。例如“2 小时”表示会话将每 2 小时执行一次。

event (可选)

body

字符串

正在使用事件来启动或停止会话。

请求示例

{
   "session_tag":20,
   "description":"Webapp Database backup ",
   "hold_off":30,
   "schedule":{
      "schedule_interval":"1 hours",
      "status":"scheduled",
      "event":"start"
   }
}

响应参数

名称

入参

类型

描述

session_id

body

字符串

会话 UUID。

响应示例

{
        "session_id": "79eba555449d4cfe8ef66f34cb096295"
}
GET
/v2/{project_id}/sessions/{session_id}

显示会话(v2)

显示会话。

此操作显示项目中某个会话。它将显示包含在此会话中的所有会话详细信息和作业。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

session_id

查询

字符串

会话 UUID。

响应参数

名称

入参

类型

描述

user_id

body

字符串

用户的 UUID。

description

body

字符串

会话的描述。

schedule

body

dict

一个字典,其中包含会话计划信息。它与 job_schedule 相同。它包含 schedule_intervalstatusevent

session_tag

body

字符串

正在使用事件来启动或停止会话。

session_id

body

字符串

会话 UUID。

hold_off

body

int

等待一段时间后再次运行相同会话的量。

响应示例

{
        "project_id": "752d8bd43d654e7a840bbfda77ce41af",
        "user_id": "0cd44caf6db5486b94a04b33256a5ff4",
        "description": "Instance Database backup ",
        "schedule":
        {
            "schedule_interval": "1 days",
            "status": "scheduled",
            "event": "start"
        },
        "_version": 2,
        "session_tag": 250,
        "session_id": "79eba555449d4cfe8ef66f34cb096295",
        "hold_off": 50
}
{
        "project_id": "752d8bd43d654e7a840bbfda77ce41af",
        "user_id": "0cd44caf6db5486b94a04b33256a5ff4",
        "description": "Instance Database backup ",
        "schedule":
        {
            "schedule_interval": "1 days",
            "status": "scheduled",
            "event": "start"
        },
        "_version": 3,
        "session_tag": 250,
        "session_id": "79eba555449d4cfe8ef66f34cb096295",
        "jobs":
        {
            "0ae284d514eb47dd84154748b5056749":
            {
                "time_ended": 1493119342,
                "status": "scheduled",
                "result": "success",
                "client_id": "752d8bd43d654e7a840bbfda77ce41af_szaher",
                "time_started": 1493119341
            }
        },
        "hold_off": 50
}
PATCH
/v2/{project_id}/sessions

更新会话(v2)

更新会话。

此操作更新项目中的新会话。

正常响应代码:200

错误响应代码

  • 语法错误 (753)

  • BadRequest (400)

  • 未授权 (401)

  • ServiceUnavailable (503)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

请求参数

名称

入参

类型

描述

description

body

字符串

会话的描述。

hold_off

body

int

等待一段时间后再次运行相同会话的量。

session_tag

body

字符串

正在使用事件来启动或停止会话。

schedule

body

dict

一个字典,其中包含会话计划信息。它与 job_schedule 相同。它包含 schedule_intervalstatusevent

schedule_internval (可选)

body

字符串

会话的调度信息。例如“2 小时”表示会话将每 2 小时执行一次。

event (可选)

body

字符串

正在使用事件来启动或停止会话。

session_id

查询

字符串

会话 UUID。

请求示例

{
  "session_tag": 250,
  "description": "Instance Database backup ",
  "hold_off": 50,
  "schedule": {
        "schedule_interval": "1 days",
        "status": "scheduled",
        "event": "start"
  }
}

响应参数

名称

入参

类型

描述

session_id

body

字符串

会话 UUID。

版本

body

int

文档版本。

响应示例

{
        "version": 5,
        "session_id": "0ec2c71697464d63813b419d2282a43a"
}
PUT
/v2/{project_id}/sessions/{session_id}/jobs/{job_id}

添加作业(v2)

将作业附加到会话。

此操作将某个作业添加到会话。API 将加载作业和会话,并将作业添加到会话文档。

正常响应代码:204

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

session_id

查询

字符串

会话 UUID。

job_id

查询

字符串

作业 UUID。

此作业将不会返回任何响应。

DELETE
/v2/{project_id}/sessions/{session_id}/jobs/{job_id}

删除作业(v2)

从会话中删除作业。

此操作将删除项目中会话中的某个作业。

正常响应代码:204

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

session_id

查询

字符串

会话 UUID。

job_id

查询

字符串

作业 UUID。

此作业将不会返回任何响应。

POST
/v2/{project_id}/sessions/{session_id}/actions

启动会话(v2)

从会话中删除作业。

此操作将删除项目中会话中的某个作业。

正常响应代码:202

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

session_id

查询

字符串

会话 UUID。

响应参数

名称

入参

类型

描述

result (可选)

body

字符串

一个字符串,表示操作是否成功 success 或失败。

session_tag

body

字符串

正在使用事件来启动或停止会话。

响应示例

{
  "result": "success",
  "session_tag": 21
}
DELETE
/v2/{project_id}/sessions/{session_id}

删除会话(v2)

删除会话。

此操作将删除项目中的某个会话。

正常响应代码:204

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

project_id

查询

字符串

项目的 UUID。项目也称为租户。

session_id

查询

字符串

会话 UUID。

此作业将不会返回任何响应。