snapshotcloneserver interface

创建快照:

描述

创建一个快照。

语法
MethodUrl
GET/SnapshotCloneService?Action=CreateSnapshot&Version=0.0.6&User=curve&File=/test1&Name=snap1
请求参数
名称类型是否必须描述
ActionstringCreateSnapshot
VersionstringAPI版本号 0.0.6
Userstring租户名称
Filestring快照目标文件
Namestring快照文件名称
响应
名称类型描述
Codestring错误码
Messagestring错误信息
RequestIdstring请求ID
UUIDstring快照唯一ID
示例

request

  1. http://127.0.0.1:5555/SnapshotCloneService?Action=CreateSnapshot&Version=0.0.6&User=curve&File=/test1&Name=snap1

response

  1. HTTP/1.1 200 OK
  2. Content-Length: xxx
  3. {
  4. "Code" : "0",
  5. "Message" : "Exec success.",
  6. "RequestId" : "xxx"
  7. "UUID" : "xxx"
  8. }
错误码

见最后一节错误码表。

删除快照

描述

删除一个快照。

语法
MethodUrl
GET/SnapshotCloneService?Action=DeleteSnapshot&Version=0.0.6&User=curve&File=/test1&UUID=uuid1
请求参数
名称类型是否必须描述
ActionstringDeleteSnapshot
VersionstringAPI版本号 0.0.6
Userstring租户信息
Filestring快照所属文件名
UUIDstring快照唯一ID
响应
名称类型描述
Codestring错误码
Messagestring错误信息
RequestIdstring请求ID
示例

request

  1. http://127.0.0.1:5555/SnapshotCloneService?Action=DeleteSnapshot&Version=0.0.6&User=curve&File=/test1&UUID=uuid1

response

  1. HTTP/1.1 200 OK
  2. Content-Length: xxx
  3. {
  4. "Code" : "0",
  5. "Message" : "Exec success.",
  6. "RequestId" : "xxx"
  7. }
错误码

见最后一节错误码表。

取消快照

取消一个正在执行的快照。

语法
MethodUrl
GET/SnapshotCloneService?Action=CancelSnapshot&Version=0.0.6&User=curve&File=/test1&UUID=uuid1
请求参数
名称类型是否必须描述
ActionstringCancelSnapshot
VersionstringAPI版本号 0.0.6
Userstring租户信息
Filestring快照所属文件名
UUIDstring快照唯一ID
响应
名称类型描述
Codestring错误码
Messagestring错误信息
RequestIdstring请求ID
示例

request

  1. http://127.0.0.1:5555/SnapshotCloneService?Action=CancelSnapshot&Version=0.0.6&User=curve&File=/test1&UUID=uuid1

response

  1. HTTP/1.1 200 OK
  2. Content-Length: xxx
  3. {
  4. "Code" : "0",
  5. "Message" : "Exec success.",
  6. "RequestId" : "xxx"
  7. }
错误码

见最后一节错误码表。

查询文件的快照信息

描述

查询指定文件的所有快照信息,

若指定UUID,则查询该文件的该UUID指定的快照信息

语法
MethodUrl
GET/SnapshotCloneService?Action=GetFileSnapshotInfo&Version=0.0.6&User=curve&File=/test1&Limit=10&Offset=0
GET/SnapshotCloneService?Action=GetFileSnapshotInfo&Version=0.0.6&User=curve&File=/test1&UUID=de06df66-b9e4-44df-ba3d-ac94ddee0b28
请求参数
名称类型是否必须描述
ActionstringGetFileSnapinfo
VersionstringAPI版本号 0.0.6
Userstring租户信息
Filestring文件名称
Limitint最大显示条数,默认为10
Offsetint偏移值,默认为0
UUIDstring快照的uuid信息
响应
名称类型描述
Codestring错误码
Messagestring错误信息
RequestIdstring请求ID
TotalCountint快照总个数
SnapshotsSnapshot快照信息列表

Snapshot类型说明

名称类型描述
UUIDstring快照唯一ID
Userstring租户信息
Filestring文件名称
SeqNumuint32快照版本号
Namestring快照名称
Timeuint64创建时间
FileLengthuint32文件大小(单位Byte)
Statusenum快照处理的状态(0:done, 1:pending, 2:deleteing, 3:errorDeleting, 4:canceling, 5:error)
Progressuint32快照完成百分比
示例

request

  1. http://127.0.0.1:5555/SnapshotCloneService?Action=GetFileSnapshotInfo&Version=0.0.6&User=curve&File=/test1&Limit=10

response

  1. HTTP/1.1 200 OK
  2. Content-Length: xxx
  3. {
  4. "Code" : "0",
  5. "Message" : "Exec success.",
  6. "RequestId" : "xxx",
  7. "TotalCount": 1,
  8. "Snapshots":
  9. [
  10. {
  11. "File" : "/test1",
  12. "FileLength" : 10737418240,
  13. "Name" : "snap1",
  14. "Progress" : 30,
  15. "SeqNum" : 1,
  16. "Status" : 1,
  17. "Time" : 1564391913582677,
  18. "UUID" : "de06df66-b9e4-44df-ba3d-ac94ddee0b28",
  19. "User" : "curve"
  20. }
  21. ]
  22. }
错误码

见最后一节错误码表。

克隆:

描述

从快照或镜像克隆一个文件。

语法
MethodUrl
GET/SnapshotCloneService?Action=Clone&Version=0.0.6&User=curve&Source=/test1&Destination=/clone1&Lazy=true
请求参数
名称类型是否必须描述
ActionstringClone
VersionstringAPI版本号 0.0.6
Userstring租户信息
Sourcestring镜像文件名或者快照UUID
Destinationstring克隆目标文件名
Lazybool是否Lazy克隆
响应
名称类型描述
Codestring错误码
Messagestring错误信息
RequestIdstring请求ID
UUIDstring克隆任务唯一ID
示例

request

  1. http://127.0.0.1:5555/SnapshotCloneService?Action=Clone&Version=0.0.6&User=curve&Source=/test1&Destination=/clone1&Lazy=true

response

  1. HTTP/1.1 200 OK
  2. Content-Length: xxx
  3. {
  4. "Code" : "0",
  5. "Message" : "Exec success.",
  6. "RequestId" : "xxx",
  7. "UUID" : "xxx"
  8. }
错误码

见最后一节错误码表。

恢复:

描述

从快照恢复一个文件。

语法
MethodUrl
GET/SnapshotCloneService?Action=Recover&Version=0.0.6&User=curve&Source=de06df66-b9e4-44df-ba3d-ac94ddee0b28&Destination=/recover1&Lazy=true
请求参数
名称类型是否必须描述
ActionstringRecover
VersionstringAPI版本号 0.0.6
Userstring租户信息
Sourcestring快照UUID
Destinationstring克隆目标文件名
Lazybool是否Lazy克隆
响应
名称类型描述
Codestring错误码
Messagestring错误信息
RequestIdstring请求ID
UUIDstring恢复任务的唯一ID
示例

request

  1. http://127.0.0.1:5555/SnapshotCloneService?Action=Recover&Version=0.0.6&User=curve&Source=de06df66-b9e4-44df-ba3d-ac94ddee0b28&Destination=/recover1&Lazy=true

response

  1. HTTP/1.1 200 OK
  2. Content-Length: xxx
  3. {
  4. "Code" : "0",
  5. "Message" : "Exec success.",
  6. "RequestId" : "xxx",
  7. "UUID" : "xxx"
  8. }
错误码

见最后一节错误码表。

Flatten

描述

对Lazy克隆的文件进行恢复数据操作。

语法
MethodUrl
GET/SnapshotCloneService?Action=Flatten&Version=0.0.6&User=curve&UUID=xxx
请求参数
名称类型是否必须描述
ActionstringFlatten
VersionstringAPI版本号0.0.6
Userstring租户信息
UUIDstring任务唯一ID
响应
名称类型描述
Codestring错误码
Messagestring错误信息
RequestIdstring请求ID
示例

request

  1. http://127.0.0.1:5555/SnapshotCloneService?Action=Flatten&Version=0.0.6&User=curve&UUID=de06df66-b9e4-44df-ba3d-ac94ddee0b28

response

  1. HTTP/1.1 200 OK
  2. Content-Length: xxx
  3. {
  4. "Code" : "0",
  5. "Message" : "Exec success.",
  6. "RequestId" : "xxx"
  7. }
错误码

见最后一节错误码表。

查询指定用户的克隆/恢复任务信息:

描述

查询指定用户的所有克隆/恢复任务信息,

若指定UUID,则查询该用户的该UUID的任务信息

若指定File,则查询该用户的该文件的任务信息

语法
MethodUrl
GET/SnapshotCloneService?Action=GetCloneTasks&Version=0.0.6&User=curve&Limit=10&Offset=0
GET/SnapshotCloneService?Action=GetCloneTasks&Version=0.0.6&User=curve&UUID=xxx”
GET/SnapshotCloneService?Action=GetCloneTasks&Version=0.0.6&User=curve&File=/clone1”
请求参数
名称类型是否必须描述
ActionstringGetCloneTasks
VersionstringAPI版本号 0.0.6
Userstring租户信息
Limitint最大显示任务数,默认为10
Offsetint偏移值,默认为0
UUIDstring克隆/恢复任务唯一ID
Filestring克隆/恢复任务的目标文件名
响应
名称类型描述
Codestring错误码
Messagestring错误信息
RequestIdstring请求ID
TotalCountint任务总个数
TaskInfosTaskInfo任务信息列表

TaskInfo类型说明

名称类型描述
UUIDstring任务唯一ID
TaskTypeenum任务类型(0:clone, 1:recover)
Userstring租户信息
Filestring文件名称
Timeuint64创建时间
TaskStatusenum任务的状态(0:done, 1:cloning, 2:recovering, 3:cleaning, 4:errorCleaning, 5:error,6:retrying, 7:metaInstalled)
示例

request

  1. http://127.0.0.1:5555//SnapshotCloneService?Action=GetCloneTasks&Version=0.0.6&User=curve&Limit=10"

response

  1. HTTP/1.1 200 OK
  2. Content-Length: xxx
  3. {
  4. "Code" : "0",
  5. "Message" : "Exec success.",
  6. "RequestId" : "xxx",
  7. "TotalCount": 1,
  8. "TaskInfos" :
  9. [
  10. {
  11. "File" : "/clone1",
  12. "UUID" : "78e83875-2b50-438f-8f25-36715380f4f5",
  13. "TaskStatus" : 5,
  14. "TaskType" : 0,
  15. "Time" : 0,
  16. "User" : "curve"
  17. }
  18. ]
  19. }
错误码

见最后一节错误码表。

清除克隆/恢复任务:

描述

清除克隆/恢复任务。若是失败的任务,还会删除curvefs上的临时克隆文件,否则只删除任务。

语法
MethodUrl
GET/SnapshotCloneService?Action=CleanCloneTask&Version=0.0.6&User=curve&UUID=78e83875-2b50-438f-8f25-36715380f4f5
请求参数
名称类型是否必须描述
ActionstringCleanCloneTask
VersionstringAPI版本号 0.0.6
Userstring租户信息
UUIDstring克隆/恢复任务唯一ID
响应
名称类型描述
Codestring错误码
Messagestring错误信息
RequestIdstring请求ID
示例

request

  1. http://127.0.0.1:5555/SnapshotCloneService?Action=CleanCloneTask&Version=0.0.6&User=curve&UUID=78e83875-2b50-438f-8f25-36715380f4f5

response

  1. HTTP/1.1 200 OK
  2. Content-Length: xxx
  3. {
  4. "Code" : "0",
  5. "Message" : "Exec success.",
  6. "RequestId" : "xxx"
  7. }
错误码

见最后一节错误码表。

错误码表:

CodeMessageHTTP Status Code描述补充说明
0Exec success.200执行成功
-1Internal error.500未知内部错误未知错误,任何请求不应出现此错误,已知的错误都应有明确的错误码。如发现此错误,请联系相关人员定位。
-2Server init fail.500服务器初始化失败任何请求不应出现此错误,初始化阶段错误
-3Server start fail.500服务器启动失败任何请求不应出现此错误,初始化阶段错误
-4Service is stop500服务已停止snapshotcloneserver停止服务退出阶段,发送请求会收到此错误
-5BadRequest:”Invalid request.”400非法的请求发送http请求格式非法:缺少字段,字段值非法等
-6Task already exist.500任务已存在目前不会出现
-7Invalid user.500非法的用户请求中User字段与操作的文件、镜像或快照的owner不匹配
-8File not exist.500文件不存在打快照时目标文件不存在从快照恢复时,目标文件不存在从快照或镜像克隆/恢复时,快照或镜像不存在清除指定clone任务时,clone任务不存在获取指定克隆/恢复任务时,任务不存在获取指定快照时,快照不存在
-9File status invalid.500文件状态异常打快照时,目标文件正在克隆/恢复中或删除中等状态而不是Normal状态,返回文件状态异常从镜像克隆过程中,源镜像文件正在克隆/恢复中或删除中等状态而不是Normal状态,返回文件状态异常
-10Chunk size not aligned.500chunk大小未按分片对齐一般是配置文件问题,配置的chunk分配大小与chunksize未对其,正常情况下不会出现
-11FileName not match.500文件名不匹配删除或取消快照接口,快照所属文件与快照不匹配,即该文件没有这个快照
-12Cannot delete unfinished.500不能删除未完成的快照
-13Cannot create when has error.500不能对存在错误的文件打快照或克隆/恢复不能对存在错误快照的文件再次打快照不能对存在错误克隆/恢复任务的目标文件再次克隆/恢复
-14Cannot cancel finished.500待取消的快照已完成或不存在
-15Invalid snapshot.500不能对未完成或存在错误的快照进行克隆/恢复
-16Cannot delete when using.500不能删除正在克隆/恢复的快照
-17Cannot clean task unfinished.500不能清理未完成的克隆/恢复任务
-18Snapshot count reach the limit.500快照到达上限
-19File exist.500文件已存在从快照或镜像克隆时,目标文件已存在
-20Task is full.500克隆/恢复任务已满