备份服务 API v1

备份 (backups)

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

GET
/v1/backups

列出备份

列出备份。

此操作列出项目的备份。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

limit (可选)

查询

整数

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

offset (可选)

查询

字符串

最后一个已查看项目的 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": [
    {
      "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"
    },
    {
      "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
/v1/backups/{backup_id}

显示备份

显示备份。

此操作显示某个备份。它显示所有备份详细信息。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

backup_id

查询

字符串

备份的 UUID。

响应参数

名称

入参

类型

描述

user_id

body

字符串

用户的 UUID。

backup_id

body

字符串

备份的 UUID。

user_name

body

字符串

用户名。

backup_metadata

body

列表

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

响应示例

{
        "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
/v1/backups/{backup_id}

删除备份

删除备份。

此操作删除某个备份。

正常响应代码:204

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

backup_id

查询

字符串

备份的 UUID。

此操作没有响应。

作业 (jobs)

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

GET
/v1/jobs

列出作业

列出作业。

此操作列出项目的作业。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

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":
        [
            {
                "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"
                    }
                ],
                "job_id": "0ae284d514eb47dd84154748b5056749"
            }
        ]
}
POST
/v1/jobs

创建作业

创建一个作业。

此操作创建一个新作业。

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

作业提交后。

description 是您为作业指定的名称。名称长度不得超过 64 字节。

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

job_actions 是要执行的实际备份或还原操作。

正常响应代码:201

错误响应代码

  • 语法错误 (753)

  • BadRequest (400)

  • 未授权 (401)

  • ServiceUnavailable (503)

请求参数

名称

入参

类型

描述

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
/v1/jobs/{job_id}

显示作业

显示作业。

此操作显示某个作业。它显示所有作业详细信息以及作业内部的操作。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

job_id

查询

字符串

用户的 UUID。

响应参数

名称

入参

类型

描述

user_id

body

字符串

用户的 UUID。

description

body

字符串

作业名称。

job_schedule

body

dict

作业的计划信息。

client_id

body

字符串

客户端的 UUID。

job_actions

body

列表

执行备份/还原作业的一组操作。

job_id

body

字符串

用户的 UUID。

响应示例

{
        "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",
        "project_id": "752d8bd43d654e7a840bbfda77ce41af",
        "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,
                    "project_id": "752d8bd43d654e7a840bbfda77ce41af"
                },
                "max_retries": 5,
                "max_retries_interval": 6,
                "user_id": "0cd44caf6db5486b94a04b33256a5ff4",
                "action_id": "280d51d041ce4d4da8a386e96263f759"
            }
        ],
        "job_id": "0ae284d514eb47dd84154748b5056749"
}
PATCH
/v1/jobs/{job_id}

更新作业

更新作业。

此操作创建一个新作业。

body 属性指定包含一组将被更新的操作

作业提交后。

description 是您为作业指定的名称。名称长度不应超过 64 字节。

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

job_actions 是要执行的实际备份或还原操作。

正常响应代码:201

错误响应代码

  • 语法错误 (753)

  • BadRequest (400)

  • 未授权 (401)

  • ServiceUnavailable (503)

查询参数

名称

入参

类型

描述

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"
    },
    "project_id": "752d8bd43d654e7a840bbfda77ce41af",
    "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,
                "project_id": "752d8bd43d654e7a840bbfda77ce41af"
            }
        }
]
}

响应示例

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

删除作业

删除作业。

此操作删除某个作业。

正常响应代码:204

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

job_id

查询

字符串

用户的 UUID。

此操作没有响应。

客户端 (clients)

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

GET
/v1/clients

列出客户端

列出客户端。

此操作列出客户端。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

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":
        [
            {
                "client":
                {
                    "client":
                    {
                        "hostname": "szaher01",
                        "uuid": "c4031a4885384376a717a238de975a9c"
                    },
                    "user_id": "5cd44cafcdb5386b94a04b33d56a5ff6",
                    "uuid": "6f588392aa864c96b4af96a4eae005ce",
                    "client_id": "752d8bd43d654e7a840bbfda77ce41af_szaher01"
                },
                "user_id": "0cd44caf6db5486b94a04b33256a5ff4"
            },
            {
                "client":
                {
                    "hostname": "szaher",
                    "uuid": "c4031a9885384376a717a238ae975d9b",
                    "client_id": "752d8bd43d654e7a840bbfda77ce41af_szaher"
                },
                "user_id": "0cd44caf6db5486b94a04b33256a5ff4"
            }
        ]
}
POST
/v1/clients

创建客户端

创建一个客户端。

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

正常响应代码:201

错误响应代码

  • 语法错误 (753)

  • BadRequest (400)

  • 未授权 (401)

  • ServiceUnavailable (503)

请求参数

名称

入参

类型

描述

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
/v1/clients/{client_id}

显示客户端

显示客户端。

此操作显示某个客户端。它显示所有客户端详细信息。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

client_id

查询

字符串

客户端 ID。

响应参数

名称

入参

类型

描述

user_id

body

字符串

用户的 UUID。

client_id

body

字符串

客户端的 UUID。

hostname

body

字符串

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

uuid

body

字符串

客户端的 UUID。

响应示例

{
        "client":
        {
            "client":
            {
                "hostname": "szaher01",
                "uuid": "c4031a4885384376a717a238de975a9c"
            },
            "user_id": "5cd44cafcdb5386b94a04b33d56a5ff6",
            "uuid": "6f588392aa864c96b4af96a4eae005ce",
            "client_id": "752d8bd43d654e7a840bbfda77ce41af_szaher01"
        },
        "user_id": "0cd44caf6db5486b94a04b33256a5ff4"
}
DELETE
/v1/clients/{client_id}

删除客户端

删除客户端。

此操作删除某个客户端。

正常响应代码:204

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

client_id

查询

字符串

客户端 ID。

此操作没有响应。

操作 (actions)

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

GET
/v1/actions

列出操作

列出操作。

此操作列出操作。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

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",
                "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",
                "action_id": "317f8bc1fbbe49819d1b60f4b4387e63"
            }
        ]
}
POST
/v1/actions

创建操作

创建一个操作。

此操作创建一个新操作。

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

正常响应代码:201

错误响应代码

  • 语法错误 (753)

  • BadRequest (400)

  • 未授权 (401)

  • ServiceUnavailable (503)

请求参数

名称

入参

类型

描述

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
/v1/actions/{action_id}

显示操作

显示操作。

此操作显示某个操作。操作详细信息。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

action_id

查询

字符串

操作 UUID。

响应参数

名称

入参

类型

描述

freezer_action

body

dict

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

max_retries (可选)

body

int

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

max_retries_interval (可选)

body

int

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

user_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",
        "action_id": "1fc414f091b84263b45d7e1f1f85e5bf"
}
POST
/v1/actions/{action_id}

更新操作

更新一个操作。

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

正常响应代码:201

错误响应代码

  • 语法错误 (753)

  • BadRequest (400)

  • 未授权 (401)

  • ServiceUnavailable (503)

查询参数

名称

入参

类型

描述

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
/v1/actions/{action_id}

删除操作

删除操作。

此操作删除某个操作。

正常响应代码:204

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

action_id

查询

字符串

操作 UUID。

此操作没有响应。

会话 (sessions)

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

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

GET
/v1/sessions

列出会话

列出会话。

此操作列出会话。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

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":
        [
            {
                "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
/v1/sessions

创建会话

创建一个会话。

此操作创建一个新会话。

正常响应代码:201

错误响应代码

  • 语法错误 (753)

  • BadRequest (400)

  • 未授权 (401)

  • ServiceUnavailable (503)

请求参数

名称

入参

类型

描述

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
/v1/sessions/{session_id}

显示会话

显示会话。

此操作显示某个会话。它显示所有会话详细信息以及包含在此会话中的作业。

正常响应代码:200

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

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

在再次运行相同的会话之前等待的时间量。

响应示例

{
        "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
}
{
        "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
/v1/sessions

更新会话

更新会话。

此操作更新一个新会话。

正常响应代码:200

错误响应代码

  • 语法错误 (753)

  • BadRequest (400)

  • 未授权 (401)

  • ServiceUnavailable (503)

请求参数

名称

入参

类型

描述

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
/v1/sessions/{session_id}/jobs/{job_id}

添加作业

将作业附加到会话。

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

正常响应代码:204

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

session_id

查询

字符串

会话 UUID。

job_id

查询

字符串

用户的 UUID。

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

DELETE
/v1/sessions/{session_id}/jobs/{job_id}

删除作业

从会话中删除作业。

此操作将从会话中删除某个作业。

正常响应代码:204

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

session_id

查询

字符串

会话 UUID。

job_id

查询

字符串

用户的 UUID。

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

POST
/v1/sessions/{session_id}/actions

启动会话

从会话中删除作业。

此操作将从会话中删除某个作业。

正常响应代码:202

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

session_id

查询

字符串

会话 UUID。

响应参数

名称

入参

类型

描述

result (可选)

body

字符串

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

session_tag

body

字符串

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

响应示例

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

删除会话

删除会话。

此操作将删除某个会话。

正常响应代码:204

错误响应代码

  • 未授权 (401)

  • 禁止 (403)

查询参数

名称

入参

类型

描述

session_id

查询

字符串

会话 UUID。

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