共享文件系统 API

这是 OpenStack 共享文件系统 API 的版本 2 参考文档,由 Manila 项目提供。Manila 提供了一个 RESTful HTTP 服务,通过该服务可以按需、可扩展、自助访问共享文件系统存储资源。

重要提示

在 Wallaby 版本发布之前,共享文件系统服务要求调用者在 API URL 中指定他们的“project_id”。此要求已被取消。API 服务现在无论 URL 中是否包含“project_id”都表现相同。如果您的云还不支持版本 2.60,则下面的所有资源 URL 都需要项目 ID。例如

GET /v2/{project_id}/shares

API 版本

列出所有共享文件系统 API 版本的信息。

概念

为了随着时间的推移为用户带来新功能,共享文件系统 API 支持版本控制。共享文件系统 API 中有两种类型的版本

  • ‘’主要版本’’, 具有专用的 URL

  • ‘’微版本’’, 可以通过使用 X-OpenStack-Manila-API-Version 标头来请求

详细了解服务遵守的微版本指南 此处

请参阅 共享文件系统 API 版本的演变历史,以查看 API 的演变并选择 API 请求的适当版本。

GET
/

列出所有主要版本

这将获取有关部署中所有已知主要 API 版本的所有信息。将为每个 API 版本提供指向更多特定信息的链接,以及有关支持的最小和最大微版本的信息。

响应代码

成功

代码

原因

300 - 多重选择

资源对应于多个表示形式。

响应

名称

入参

类型

描述

versions

body

数组

描述可用 API 版本的版本对象的列表。

id

body

字符串

版本的一个通用名称。仅供参考,不具有实际语义意义。

updated

body

字符串

API 版本的日期和时间戳。此字段不提供有意义的信息。

status

body

字符串

此 API 版本的状态。它可以是以下之一:

  • CURRENT:这是要使用的 API 的首选版本

  • SUPPORTED:这是 API 的旧版本,但仍受支持

  • DEPRECATED:这是 API 的已弃用版本,计划将其删除

links

body

数组

资源的分页和书签链接。

media-types

body

对象

API 支持的媒体类型。

版本

body

字符串

如果此版本的 API 支持微版本,则支持的最大微版本。如果不支持微版本,则为空字符串。

min_version

body

字符串

如果此版本的 API 支持微版本,则支持的最小微版本。如果不支持微版本,则为空字符串。

注意

响应中的 updatedmedia-types 参数是遗留的,不提供有用的信息。它们可能会被弃用并在未来删除。

响应示例

这演示了来自一个处于最新状态的服务器的预期响应,该服务器支持最新的微版本。在查询 OpenStack 环境时,您通常会发现 v2.1 API 上的当前微版本低于以下列出的版本。

{
    "versions": [
        {
            "status": "DEPRECATED",
            "updated": "2015-08-27T11:33:21Z",
            "links": [
                {
                    "href": "https://docs.openstack.org/",
                    "type": "text/html",
                    "rel": "describedby"
                },
                {
                    "href": "http://172.18.198.54:8786/v1/",
                    "rel": "self"
                }
            ],
            "min_version": "",
            "version": "",
            "media-types": [
                {
                    "base": "application/json",
                    "type": "application/vnd.openstack.share+json;version=1"
                }
            ],
            "id": "v1.0"
        },
        {
            "status": "CURRENT",
            "updated": "2015-08-27T11:33:21Z",
            "links": [
                {
                    "href": "https://docs.openstack.org/",
                    "type": "text/html",
                    "rel": "describedby"
                },
                {
                    "href": "http://172.18.198.54:8786/v2/",
                    "rel": "self"
                }
            ],
            "min_version": "2.0",
            "version": "2.15",
            "media-types": [
                {
                    "base": "application/json",
                    "type": "application/vnd.openstack.share+json;version=1"
                }
            ],
            "id": "v2.0"
        }
    ]
}
GET
/{api_version}/

显示特定 API 版本的详细信息

这将获取特定 API 在其根目录上的详细信息。几乎所有这些信息都存在于 API 根目录中,因此这主要是冗余操作。

响应代码

成功

代码

原因

200 - 正常

请求成功。

请求

名称

入参

类型

描述

api_version

路径

字符串

如从 GET / 调用返回的链接中的 API 版本。

响应

名称

入参

类型

描述

版本

body

字符串

版本。

id

body

字符串

版本的一个通用名称。仅供参考,不具有实际语义意义。

status

body

字符串

此 API 版本的状态。它可以是以下之一:

  • CURRENT:这是要使用的 API 的首选版本

  • SUPPORTED:这是 API 的旧版本,但仍受支持

  • DEPRECATED:这是 API 的已弃用版本,计划将其删除

links

body

数组

资源的分页和书签链接。

版本

body

字符串

如果此版本的 API 支持微版本,则支持的最大微版本。如果不支持微版本,则为空字符串。

updated

body

字符串

API 版本的日期和时间戳。此字段不提供有意义的信息。

min_version

body

字符串

如果此版本的 API 支持微版本,则支持的最小微版本。如果不支持微版本,则为空字符串。

media-types

body

对象

API 支持的媒体类型。

注意

响应中的 updatedmedia-types 参数是遗留的,不提供有用的信息。它们可能会被弃用并在未来删除。

响应示例

这是对相对较新服务器的 GET /v2/ 的一个示例。

{
    "versions": [
        {
            "status": "CURRENT",
            "updated": "2015-08-27T11:33:21Z",
            "links": [
                {
                    "href": "https://docs.openstack.org/",
                    "type": "text/html",
                    "rel": "describedby"
                },
                {
                    "href": "http://172.18.198.54:8786/v2/",
                    "rel": "self"
                }
            ],
            "min_version": "2.0",
            "version": "2.15",
            "media-types": [
                {
                    "base": "application/json",
                    "type": "application/vnd.openstack.share+json;version=1"
                }
            ],
            "id": "v2.0"
        }
    ]
}

API 扩展

列出可用的共享文件系统 API 扩展。

GET
/v2/extensions

列出扩展

列出所有扩展。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

响应参数

名称

入参

类型

描述

name

body

字符串

扩展的名称。例如,“Fox In Socks”。

links

body

数组

扩展链接。

description

body

字符串

扩展 API 的描述。

alias

body

字符串

扩展的别名。例如,“FOXNSOX”、“os-availability-zone”、“os-extended-quotas”、“os- share-unmanage”或“os-used-limits”。

updated

body

字符串

上次更新扩展 API 的日期和时间戳。

日期和时间戳格式为 ISO 8601

::

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2015-08-27T09:49:58-05:00

响应示例

{
    "extensions": [
        {
            "alias": "os-extended-quotas",
            "updated": "2013-06-09T00:00:00+00:00",
            "name": "ExtendedQuotas",
            "links": [],
            "description": "Extend quotas. Adds ability for admins to delete quota and optionally force the update Quota command."
        },
        {
            "alias": "os-quota-sets",
            "updated": "2011-08-08T00:00:00+00:00",
            "name": "Quotas",
            "links": [],
            "description": "Quotas management support."
        },
        {
            "alias": "os-quota-class-sets",
            "updated": "2012-03-12T00:00:00+00:00",
            "name": "QuotaClasses",
            "links": [],
            "description": "Quota classes management support."
        },
        {
            "alias": "os-share-unmanage",
            "updated": "2015-02-17T00:00:00+00:00",
            "name": "ShareUnmanage",
            "links": [],
            "description": "Enable share unmanage operation."
        },
        {
            "alias": "os-types-manage",
            "updated": "2011-08-24T00:00:00+00:00",
            "name": "TypesManage",
            "links": [],
            "description": "Types manage support."
        },
        {
            "alias": "share-actions",
            "updated": "2012-08-14T00:00:00+00:00",
            "name": "ShareActions",
            "links": [],
            "description": "Enable share actions."
        },
        {
            "alias": "os-availability-zone",
            "updated": "2015-07-28T00:00:00+00:00",
            "name": "AvailabilityZones",
            "links": [],
            "description": "Describe Availability Zones."
        },
        {
            "alias": "os-user-quotas",
            "updated": "2013-07-18T00:00:00+00:00",
            "name": "UserQuotas",
            "links": [],
            "description": "Project user quota support."
        },
        {
            "alias": "os-share-type-access",
            "updated": "2015-03-02T00:00:00Z",
            "name": "ShareTypeAccess",
            "links": [],
            "description": "share type access support."
        },
        {
            "alias": "os-types-extra-specs",
            "updated": "2011-08-24T00:00:00+00:00",
            "name": "TypesExtraSpecs",
            "links": [],
            "description": "Type extra specs support."
        },
        {
            "alias": "os-admin-actions",
            "updated": "2015-08-03T00:00:00+00:00",
            "name": "AdminActions",
            "links": [],
            "description": "Enable admin actions."
        },
        {
            "alias": "os-used-limits",
            "updated": "2014-03-27T00:00:00+00:00",
            "name": "UsedLimits",
            "links": [],
            "description": "Provide data on limited resources that are being used."
        },
        {
            "alias": "os-services",
            "updated": "2012-10-28T00:00:00-00:00",
            "name": "Services",
            "links": [],
            "description": "Services support."
        },
        {
            "alias": "os-share-manage",
            "updated": "2015-02-17T00:00:00+00:00",
            "name": "ShareManage",
            "links": [],
            "description": "Allows existing share to be 'managed' by Manila."
        }
    ]
}

限制

限制是允许每个租户(项目)的资源限制。管理员可以在 manila.conf 文件中配置限制。

用户可以查询他们的速率和绝对限制。绝对限制包含有关的信息

  • 总最大共享内存,以 GiB 为单位。

  • 共享网络的数量。

  • 共享快照的数量。

  • 共享的数量。

  • 共享和总使用的内存,以 GiB 为单位。

  • 快照和总使用的内存,以 GiB 为单位。

  • 共享副本的数量(自 API 版本 2.53 起)。

  • 共享副本和总使用的内存,以 GiB 为单位(自 API 版本 2.53 起)。

速率限制控制用户可以发出特定 API 请求的频率。管理员使用速率限制来配置在特定时间间隔内可以进行的 API 调用类型和数量的限制。例如,速率限制可以控制在一分钟期间内可以处理的 GET 请求的数量。

GET
/v2/limits

列出共享限制

列出共享限制。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

响应参数

名称

入参

类型

描述

maxTotalShareGigabytes

body

整数

项目中允许的总最大共享千兆字节数。您不能请求超过允许的千兆字节配额的共享。

maxTotalSnapshotGigabytes

body

整数

项目中允许的总最大快照千兆字节数。

maxTotalShares

body

整数

项目中允许的总最大共享数。

maxTotalShareSnapshots

body

整数

项目中允许的总最大共享快照数。

maxTotalShareNetworks

body

整数

项目中允许的总最大共享网络数。

maxTotalShareReplicas

body

整数

允许的最大共享副本数。

新增于版本 2.53

maxTotalReplicaGigabytes

body

整数

允许的最大副本千兆字节数。如果创建共享、共享副本、管理共享或扩展共享将超过允许的副本千兆字节配额,则无法创建共享。

新增于版本 2.53

maxTotalShareBackups

body

整数

项目中允许的总最大共享备份数。

新增于版本 2.80

maxTotalBackupGigabytes

body

整数

项目中允许的总最大备份千兆字节数。

新增于版本 2.80

totalSharesUsed

body

整数

项目中创建的总共享数。

totalShareSnapshotsUsed

body

整数

项目中创建的总共享快照数。

totalShareNetworksUsed

body

整数

项目中创建的总共享网络数。

totalShareGigabytesUsed

body

整数

项目中由共享使用的总千兆字节数。

totalSnapshotGigabytesUsed

body

整数

项目中由快照使用的总千兆字节数。

totalShareReplicasUsed

body

整数

项目中创建的总共享副本数。

totalReplicaGigabytesUsed

body

整数

项目中由共享副本使用的总副本千兆字节数。

totalShareBackupsUsed

body

整数

项目中创建的总共享备份数。

totalBackupGigabytesUsed

body

整数

项目中由备份使用的总千兆字节数。

uri (可选)

body

字符串

速率限制的可读 URI。

regex (可选)

body

字符串

API 正则表达式。例如,^/shares 表示 /shares API URI,或 .* 表示任何 URI。

value (可选)

body

整数

在特定时间间隔内允许的 API 请求数。与 unit 参数结合使用,表示为 valueunit。例如,允许每分钟 120 个请求。

verb (可选)

body

字符串

API 请求的 HTTP 方法。例如,GETPOSTDELETE 等。

remaining (可选)

body

整数

剩余允许的请求数。

unit (可选)

body

字符串

允许在一段时间内进行 API 请求数量的时间间隔。有效值为 SECONDMINUTEHOURDAY。与 value 参数结合使用,表示为 valueunit。例如,允许每分钟 120 个请求。

next-available (可选)

body

字符串

下次可用问题的时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2015-08-27T09:49:58-05:00

响应示例

{
    "limits": {
        "rate": [],
        "absolute": {
            "totalShareNetworksUsed": 0,
            "maxTotalShareGigabytes": 1000,
            "maxTotalShareNetworks": 10,
            "totalSharesUsed": 0,
            "totalShareGigabytesUsed": 0,
            "totalShareSnapshotsUsed": 0,
            "maxTotalShares": 50,
            "totalSnapshotGigabytesUsed": 0,
            "maxTotalSnapshotGigabytes": 1000,
            "maxTotalShareSnapshots": 50,
            "maxTotalShareReplicas": 100,
            "maxTotalReplicaGigabytes": 1000,
            "totalShareReplicasUsed": 0,
            "totalReplicaGigabytesUsed": 0,
            "maxTotalShareBackups": 100,
            "maxTotalBackupGigabytes": 1000,
            "totalShareBackupsUsed": 0,
            "totalBackupGigabytesUsed": 0
        }
    }
}

共享

共享是可远程挂载的文件系统。在下面的 API 中,共享资源是共享文件系统服务中此远程文件系统的表示形式。此资源表示形式包含有用的元数据,传达了用户和共享文件系统服务确定的远程文件系统的特征。

您可以创建共享并将其与网络关联,列出共享,以及显示、更新和删除共享的信息。

要创建共享,请指定以下受支持的协议之一

  • NFS。网络文件系统 (NFS)。

  • CIFS。通用互联网文件系统 (CIFS)。

  • GLUSTERFS。Gluster 文件系统 (GlusterFS)。

  • HDFS。Hadoop 分布式文件系统 (HDFS)。

  • CEPHFS。Ceph 文件系统 (CephFS)。

  • MAPRFS。MapR 文件系统 (MAPRFS)。

您还可以创建共享的快照。要创建快照,请指定要快照的共享的 ID。

共享具有以下状态值之一

共享状态

状态

描述

backup_creating

正在备份共享。

backup_restoring

正在从备份还原共享。

backup_restoring_error

共享备份还原期间发生错误。

creating

正在创建共享。

creating_from_snapshot

正在从父快照创建共享。

deleting

正在删除共享。

deleted

共享已删除。

error

共享创建期间发生错误。

error_deleting

共享删除期间发生错误。

available

共享已准备好使用。

inactive

共享处于非活动状态。

manage_starting

共享管理已启动。

manage_error

共享管理失败。

unmanage_starting

共享取消管理已启动。

unmanage_error

无法取消管理共享。

unmanaged

共享已取消管理。

extending

扩展(或增加)共享大小的请求已成功发出。

extending_error

扩展共享失败。

shrinking

共享正在缩小。

shrinking_error

共享缩小期间更新配额失败。

shrinking_possible_data_loss_error

由于可能的数据丢失,缩小共享失败。

migrating

共享当前正在迁移。

migrating_to

共享是迁移目标。

replication_change

共享正在进行复制更改。

reverting

共享正在还原到快照。

reverting_error

快照回滚失败。

正在等待传输

共享正在被转移到不同项目的命名空间。

GET
/v2/shares

列出共享

列出所有共享。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

all_tenants (可选)

查询

布尔值

(仅限管理员)。定义是否为所有项目列出请求的资源。设置为 1 以列出所有项目的资源。设置为 0 以仅列出当前项目的资源。资源示例包括共享、快照、共享网络、安全服务和共享组。

name (可选)

查询

字符串

用于按资源名称过滤资源的由用户定义名称。

status (可选)

查询

字符串

按共享状态过滤。有关有效状态,请参阅上方部分。

share_server_id (可选)

查询

字符串

共享服务器的 UUID。

metadata (可选)

查询

对象

一个或多个元数据键值对,作为字符串的 URL 编码字典。

extra_specs (可选)

查询

字符串

作为一组键值对的额外规范。在每个对中,键是额外规范的名称,值是用于过滤共享类型列表的共享类型。查询必须是“百分比编码”字符串,例如,以下查询参数:{‘extra-specs’: {‘snapshot_support’: ‘true’, ‘availability_zones’: ‘az1’}} 编码为 ‘extra_specs=%7B%27snapshot_support%27%3A+%27true%27%2C+%27availability_zones%27%3A+%27az1%27%7D’

版本 2.43 中新增

share_type_id (可选)

查询

字符串

用于按共享类型查询资源的 UUID。

snapshot_id (可选)

查询

字符串

用于基于快照过滤请求的共享的基本快照的 UUID。

source_backup_id (可选)

查询

字符串

用于基于备份过滤请求的共享的备份的 UUID。

host (可选)

查询

字符串

要查询的资源的宿主机名。通过主机名查询是一项特权操作。如果受 API 策略限制,服务器可能会静默忽略此查询参数。

share_network_id (可选)

查询

字符串

用于按共享网络过滤资源的 UUID。

project_id (可选)

查询

字符串

拥有资源的项目的 ID。此查询参数与 all_tenants 参数结合使用很有用。

is_public (可选)

查询

布尔值

一个布尔查询参数,当设置为 true 时,允许检索属于所有项目的公共资源。

share_group_id (可选)

查询

字符串

用于过滤资源的共享组的 UUID。

版本 2.31 中新增

export_location_id (可选)

查询

字符串

可用于过滤共享或共享实例的导出位置 UUID。

版本 2.35 中新增

export_location_path (可选)

查询

字符串

可用于过滤共享或共享实例的导出位置路径。

版本 2.35 中新增

name~ (可选)

查询

字符串

可用于过滤共享、共享快照、共享网络、传输或共享组的名称模式。

版本 2.36 中新增

description~ (可选)

查询

字符串

可用于过滤共享、共享快照、共享网络或共享组的描述模式。

版本 2.36 中新增

with_count (可选)

查询

布尔值

是否在共享列表 API 响应中显示 count,默认值为 False。此查询参数与分页结合使用很有用。

版本 2.42 中新增

is_soft_deleted (可选)

查询

布尔值

一个布尔查询参数,当设置为 True 时,将返回回收站中的所有共享。默认值为 False,将返回不在回收站中的所有共享。

版本 2.69 中新增

limit (可选)

查询

整数

要返回的最大资源记录数。

offset (可选)

查询

整数

用于定义资源列表起点的偏移量。

sort_key (可选)

查询

字符串

用于对共享列表进行排序的键。有效值为 idstatussizehostshare_protoexport_locationavailability_zoneuser_idproject_idcreated_atupdated_atdisplay_namenameshare_type_idshare_typeshare_network_idshare_networksnapshot_idsnapshot

sort_dir (可选)

查询

字符串

用于对资源列表进行排序的方向。有效值为 ascdesc

encryption_key_ref (可选)

查询

字符串

可用于过滤共享或共享实例的加密密钥引用。

版本 2.90 中新增

响应参数

名称

入参

类型

描述

id

body

字符串

共享的 UUID。

links

body

数组

资源的分页和书签链接。

name

body

字符串

资源的由用户定义的名称。

count (可选)

body

整数

应用分页之前请求的资源的计数。如果查询中提供了“with_count=True”,则此参数仅存在于 API 响应中。

版本 2.42 中新增

响应示例

{
    "shares": [
        {
            "id": "d94a8548-2079-4be0-b21c-0a887acd31ca",
            "links": [
                {
                    "href": "http://172.18.198.54:8786/v1/16e1ab15c35a457e9c2b2aa189f544e1/shares/d94a8548-2079-4be0-b21c-0a887acd31ca",
                    "rel": "self"
                },
                {
                    "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/shares/d94a8548-2079-4be0-b21c-0a887acd31ca",
                    "rel": "bookmark"
                }
            ],
            "name": "My_share"
        },
        {
            "id": "406ea93b-32e9-4907-a117-148b3945749f",
            "links": [
                {
                    "href": "http://172.18.198.54:8786/v1/16e1ab15c35a457e9c2b2aa189f544e1/shares/406ea93b-32e9-4907-a117-148b3945749f",
                    "rel": "self"
                },
                {
                    "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/shares/406ea93b-32e9-4907-a117-148b3945749f",
                    "rel": "bookmark"
                }
            ],
            "name": "Share1"
        }
    ],
    "count": 10
}
GET
/v2/shares/detail

列出共享详细信息

列出所有共享,包含详细信息。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

all_tenants (可选)

查询

布尔值

(仅限管理员)。定义是否为所有项目列出请求的资源。设置为 1 以列出所有项目的资源。设置为 0 以仅列出当前项目的资源。资源示例包括共享、快照、共享网络、安全服务和共享组。

status (可选)

查询

字符串

按共享状态过滤。有关有效状态,请参阅上方部分。

share_server_id (可选)

查询

字符串

共享服务器的 UUID。

metadata (可选)

查询

对象

一个或多个元数据键值对,作为字符串的 URL 编码字典。

extra_specs (可选)

查询

字符串

作为一组键值对的额外规范。在每个对中,键是额外规范的名称,值是用于过滤共享类型列表的共享类型。查询必须是“百分比编码”字符串,例如,以下查询参数:{‘extra-specs’: {‘snapshot_support’: ‘true’, ‘availability_zones’: ‘az1’}} 编码为 ‘extra_specs=%7B%27snapshot_support%27%3A+%27true%27%2C+%27availability_zones%27%3A+%27az1%27%7D’

版本 2.43 中新增

share_type_id (可选)

查询

字符串

用于按共享类型查询资源的 UUID。

name (可选)

查询

字符串

用于按资源名称过滤资源的由用户定义名称。

snapshot_id (可选)

查询

字符串

用于基于快照过滤请求的共享的基本快照的 UUID。

source_backup_id (可选)

查询

字符串

用于基于备份过滤请求的共享的备份的 UUID。

host (可选)

查询

字符串

要查询的资源的宿主机名。通过主机名查询是一项特权操作。如果受 API 策略限制,服务器可能会静默忽略此查询参数。

share_network_id (可选)

查询

字符串

用于按共享网络过滤资源的 UUID。

project_id (可选)

查询

字符串

拥有资源的项目的 ID。此查询参数与 all_tenants 参数结合使用很有用。

is_public (可选)

查询

布尔值

一个布尔查询参数,当设置为 true 时,允许检索属于所有项目的公共资源。

share_group_id (可选)

查询

字符串

用于过滤资源的共享组的 UUID。

版本 2.31 中新增

export_location_id (可选)

查询

字符串

可用于过滤共享或共享实例的导出位置 UUID。

版本 2.35 中新增

export_location_path (可选)

查询

字符串

可用于过滤共享或共享实例的导出位置路径。

版本 2.35 中新增

name~ (可选)

查询

字符串

可用于过滤共享、共享快照、共享网络、传输或共享组的名称模式。

版本 2.36 中新增

description~ (可选)

查询

字符串

可用于过滤共享、共享快照、共享网络或共享组的描述模式。

版本 2.36 中新增

with_count (可选)

查询

布尔值

是否在共享列表 API 响应中显示 count,默认值为 False。此查询参数与分页结合使用很有用。

版本 2.42 中新增

is_soft_deleted (可选)

查询

布尔值

一个布尔查询参数,当设置为 True 时,将返回回收站中的所有共享。默认值为 False,将返回不在回收站中的所有共享。

版本 2.69 中新增

limit (可选)

查询

整数

要返回的最大资源记录数。

offset (可选)

查询

整数

用于定义资源列表起点的偏移量。

sort_key (可选)

查询

字符串

用于对共享列表进行排序的键。有效值为 idstatussizehostshare_protoexport_locationavailability_zoneuser_idproject_idcreated_atupdated_atdisplay_namenameshare_type_idshare_typeshare_network_idshare_networksnapshot_idsnapshot

sort_dir (可选)

查询

字符串

用于对资源列表进行排序的方向。有效值为 ascdesc

encryption_key_ref (可选)

查询

字符串

可用于过滤共享或共享实例的加密密钥引用。

版本 2.90 中新增

响应参数

名称

入参

类型

描述

id

body

字符串

共享的 UUID。

size

body

整数

共享大小,以 GiB 为单位。

availability_zone

body

字符串

共享所在的可用区的名称。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

status

body

字符串

共享或共享实例的状态。可能的值在上方部分中列出。

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

project_id

body

字符串

拥有资源的项目的 ID。

snapshot_id

body

字符串

用于创建共享的快照的 UUID。

source_backup_id

body

字符串

恢复到共享的备份的 UUID。

新增于版本 2.80

share_network_id

body

字符串

资源导出到的共享网络 ID。

share_proto

body

字符串

共享文件系统协议。有效值为 NFSCIFSGlusterFSHDFSCephFSMAPRFSCephFS,API v2.13 开始支持。

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

share_type

body

字符串

共享所属的共享类型 UUID。在 API 版本 2.6 之前,此参数解析为共享类型的名称。在 API 版本 2.6 及更高版本中,此参数持有共享类型 ID 而不是名称。

links

body

数组

资源的分页和书签链接。

is_public

body

布尔值

共享是否对公众可见(云中的所有项目)或不是。

share_server_id

body

字符串

共享服务器的 UUID。

host

body

字符串

资源所在的服务的后端宿主机名。此参数始终存在于响应模式中,但对于非管理员用户,该值可能表示为“null”。

snapshot_support

body

布尔值

此共享是否支持快照。快照是共享的某个时间点的备份。

版本 2.2 中新增

task_state

body

字符串

对于共享迁移,迁移任务状态。有效值为 nullmigration_startingmigration_errormigration_successmigration_completingmigrating。如果共享从一个后端迁移到另一个后端,则 task_statenull

版本 2.5 中新增

share_type_name

body

字符串

共享类型的名称。

access_rules_status

body

字符串

共享实例访问规则状态。有效值为 activeerrorsyncing。在版本 2.28 之前,syncing 用状态 out_of_sync 表示。

版本 2.10 中新增

replication_type

body

字符串

共享复制类型。值为

  • null,如果共享无法复制。

  • readable,如果可以创建共享的一个或多个只读副本

  • writable,如果可以创建共享的一个或多个活动副本

  • dr,如果可以创建共享的一个或多个副本,这些副本在提升之前将不可访问。

版本 2.11 中新增

has_replicas

body

布尔值

指示共享是否具有副本。

版本 2.11 中新增

user_id

body

字符串

创建共享的用户 ID。

版本 2.16 中新增

create_share_from_snapshot_support

body

布尔值

是否支持将快照克隆到新共享。如果共享不支持快照,则无关紧要(请参阅功能“snapshot_support”)。

版本 2.24 中新增

revert_to_snapshot_support

body

布尔值

是否支持将共享回滚到其最新快照。如果共享不支持快照,则无关紧要(请参阅功能“snapshot_support”)。

版本 2.27 中新增

share_group_id

body

字符串

共享组的 UUID。

版本 2.31 中新增

source_share_group_snapshot_member_id

body

字符串

作为此共享来源的组快照实例的 ID。

版本 2.31 中新增

mount_snapshot_support

body

布尔值

是否支持将快照挂载并独立于共享进行访问控制。如果共享不支持快照,则无关紧要(请参阅功能“snapshot_support”)。

版本 2.32 中新增

progress

body

字符串

共享创建的进度。

版本 2.54 中新增

count (可选)

body

整数

应用分页之前请求的资源的计数。如果查询中提供了“with_count=True”,则此参数仅存在于 API 响应中。

版本 2.42 中新增

volume_type

body

字符串

共享类型 ID。这是一个遗留参数,其中包含与 share_type 参数相同的值。请勿依赖此参数,因为它可能在未来的 API 修订版中被删除。

export_location

body

字符串

导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

export_locations

body

数组

导出位置列表。例如,当共享服务器具有多个网络接口时,它可以具有多个导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

is_soft_deleted (可选)

body

布尔值

共享是否已软删除到回收站。

版本 2.69 中新增

scheduled_to_be_deleted_at (可选)

body

字符串

估计在回收站中自动删除共享的时间。

版本 2.69 中新增

encryption_key_ref

body

对象

加密密钥引用是有效的 barbican secret UUID,存储驱动程序将使用它来获取加密密钥。

响应示例

{
    "shares": [
        {
            "links": [
                {
                    "href": "http://172.18.198.54:8786/v2/16e1ab15c35a457e9c2b2aa189f544e1/shares/f45cc5b2-d1bb-4a3e-ba5b-5c4125613adc",
                    "rel": "self"
                },
                {
                    "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/shares/f45cc5b2-d1bb-4a3e-ba5b-5c4125613adc",
                    "rel": "bookmark"
                }
            ],
            "availability_zone": "nova",
            "share_network_id": "f9b2e754-ac01-4466-86e1-5c569424754e",
            "export_locations": [],
            "share_server_id": "87d8943a-f5da-47a4-b2f2-ddfa6794aa82",
            "share_group_id": null,
            "snapshot_id": null,
            "source_backup_id": null,
            "id": "f45cc5b2-d1bb-4a3e-ba5b-5c4125613adc",
            "size": 1,
            "share_type": "25747776-08e5-494f-ab40-a64b9d20d8f7",
            "share_type_name": "default",
            "export_location": null,
            "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
            "metadata": {},
            "status": "error",
            "progress": null,
            "access_rules_status": "active",
            "description": "There is a share description.",
            "host": "manila2@generic1#GENERIC1",
            "task_state": null,
            "is_public": true,
            "snapshot_support": true,
            "user_id": "66ffd308757e44b9a8bec381322b0b88",
            "name": "my_share4",
            "has_replicas": false,
            "replication_type": null,
            "created_at": "2015-09-16T18:19:50.000000",
            "share_proto": "NFS",
            "volume_type": "default"
        },
        {
            "links": [
                {
                    "href": "http://172.18.198.54:8786/v2/16e1ab15c35a457e9c2b2aa189f544e1/shares/c4a2ced4-2c9f-4ae1-adaa-6171833e64df",
                    "rel": "self"
                },
                {
                    "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/shares/c4a2ced4-2c9f-4ae1-adaa-6171833e64df",
                    "rel": "bookmark"
                }
            ],
            "availability_zone": "nova",
            "share_network_id": "f9b2e754-ac01-4466-86e1-5c569424754e",
            "export_locations": [
                "10.254.0.5:/shares/share-50ad5e7b-f6f1-4b78-a651-0812cef2bb67"
            ],
            "share_server_id": "87d8943a-f5da-47a4-b2f2-ddfa6794aa82",
            "snapshot_id": null,
            "source_backup_id": null,
            "id": "c4a2ced4-2c9f-4ae1-adaa-6171833e64df",
            "size": 1,
            "share_type": "25747776-08e5-494f-ab40-a64b9d20d8f7",
            "share_type_name": "default",
            "export_location": "10.254.0.5:/shares/share-50ad5e7b-f6f1-4b78-a651-0812cef2bb67",
            "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
            "metadata": {},
            "status": "available",
            "progress": "100%",
            "access_rules_status": "active",
            "description": "Changed description.",
            "host": "manila2@generic1#GENERIC1",
            "task_state": null,
            "is_public": true,
            "snapshot_support": true,
            "name": "my_share4",
            "has_replicas": false,
            "replication_type": null,
            "created_at": "2015-09-16T17:26:28.000000",
            "user_id": "66ffd308757e44b9a8bec381322b0b88",
            "share_proto": "NFS",
            "volume_type": "default"
        }
    ],
    "count": 10
}
GET
/v2/shares/{share_id}

显示共享详细信息

显示共享的详细信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享的 UUID。

size

body

整数

共享大小,以 GiB 为单位。

availability_zone

body

字符串

共享所在的可用区的名称。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

status

body

字符串

共享或共享实例的状态。可能的值在上方部分中列出。

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

project_id

body

字符串

拥有资源的项目的 ID。

snapshot_id

body

字符串

用于创建共享的快照的 UUID。

share_network_id

body

字符串

资源导出到的共享网络 ID。

share_proto

body

字符串

共享文件系统协议。有效值为 NFSCIFSGlusterFSHDFSCephFSMAPRFSCephFS,API v2.13 开始支持。

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

share_type

body

字符串

共享所属的共享类型 UUID。在 API 版本 2.6 之前,此参数解析为共享类型的名称。在 API 版本 2.6 及更高版本中,此参数持有共享类型 ID 而不是名称。

links

body

数组

资源的分页和书签链接。

is_public

body

布尔值

共享是否对公众可见(云中的所有项目)或不是。

share_server_id

body

字符串

共享服务器的 UUID。

host

body

字符串

资源所在的服务的后端宿主机名。此参数始终存在于响应模式中,但对于非管理员用户,该值可能表示为“null”。

snapshot_support

body

布尔值

此共享是否支持快照。快照是共享的某个时间点的备份。

版本 2.2 中新增

task_state

body

字符串

对于共享迁移,迁移任务状态。有效值为 nullmigration_startingmigration_errormigration_successmigration_completingmigrating。如果共享从一个后端迁移到另一个后端,则 task_statenull

版本 2.5 中新增

share_type_name

body

字符串

共享类型的名称。

access_rules_status

body

字符串

共享实例访问规则状态。有效值为 activeerrorsyncing。在版本 2.28 之前,syncing 用状态 out_of_sync 表示。

版本 2.10 中新增

replication_type

body

字符串

共享复制类型。值为

  • null,如果共享无法复制。

  • readable,如果可以创建共享的一个或多个只读副本

  • writable,如果可以创建共享的一个或多个活动副本

  • dr,如果可以创建共享的一个或多个副本,这些副本在提升之前将不可访问。

版本 2.11 中新增

has_replicas

body

布尔值

指示共享是否具有副本。

版本 2.11 中新增

user_id

body

字符串

创建共享的用户 ID。

版本 2.16 中新增

create_share_from_snapshot_support

body

布尔值

是否支持将快照克隆到新共享。如果共享不支持快照,则无关紧要(请参阅功能“snapshot_support”)。

版本 2.24 中新增

revert_to_snapshot_support

body

布尔值

是否支持将共享回滚到其最新快照。如果共享不支持快照,则无关紧要(请参阅功能“snapshot_support”)。

版本 2.27 中新增

share_group_id

body

字符串

共享组的 UUID。

版本 2.31 中新增

source_share_group_snapshot_member_id

body

字符串

作为此共享来源的组快照实例的 ID。

版本 2.31 中新增

mount_snapshot_support

body

布尔值

是否支持将快照挂载并独立于共享进行访问控制。如果共享不支持快照,则无关紧要(请参阅功能“snapshot_support”)。

版本 2.32 中新增

progress

body

字符串

共享创建的进度。

版本 2.54 中新增

count (可选)

body

整数

应用分页之前请求的资源的计数。如果查询中提供了“with_count=True”,则此参数仅存在于 API 响应中。

版本 2.42 中新增

volume_type

body

字符串

共享类型 ID。这是一个遗留参数,其中包含与 share_type 参数相同的值。请勿依赖此参数,因为它可能在未来的 API 修订版中被删除。

export_location

body

字符串

导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

export_locations

body

数组

导出位置列表。例如,当共享服务器具有多个网络接口时,它可以具有多个导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

is_soft_deleted (可选)

body

布尔值

共享是否已软删除到回收站。

版本 2.69 中新增

scheduled_to_be_deleted_at (可选)

body

字符串

估计在回收站中自动删除共享的时间。

版本 2.69 中新增

encryption_key_ref

body

对象

加密密钥引用是有效的 barbican secret UUID,存储驱动程序将使用它来获取加密密钥。

响应示例

{
    "share": {
        "links": [
            {
                "href": "http://172.18.198.54:8786/v2/16e1ab15c35a457e9c2b2aa189f544e1/shares/011d21e2-fbc3-4e4a-9993-9ea223f73264",
                "rel": "self"
            },
            {
                "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/shares/011d21e2-fbc3-4e4a-9993-9ea223f73264",
                "rel": "bookmark"
            }
        ],
        "availability_zone": "nova",
        "share_network_id": "713df749-aac0-4a54-af52-10f6c991e80c",
        "export_locations": [],
        "share_server_id": "e268f4aa-d571-43dd-9ab3-f49ad06ffaef",
        "share_group_id": null,
        "snapshot_id": null,
        "id": "011d21e2-fbc3-4e4a-9993-9ea223f73264",
        "size": 1,
        "share_type": "25747776-08e5-494f-ab40-a64b9d20d8f7",
        "share_type_name": "default",
        "export_location": null,
        "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "metadata": {
            "project": "my_app",
            "aim": "doc"
        },
        "status": "available",
        "progress": "100%",
        "description": "My custom share London",
        "host": "manila2@generic1#GENERIC1",
        "user_id": "66ffd308757e44b9a8bec381322b0b88",
        "access_rules_status": "active",
        "has_replicas": false,
        "replication_type": null,
        "task_state": null,
        "is_public": true,
        "snapshot_support": true,
        "name": "share_London",
        "created_at": "2015-09-18T10:25:24.000000",
        "share_proto": "NFS",
        "volume_type": "default"
    }
}
GET
/v2/shares/{share_id}/instances

列出共享实例

版本 2.3 中新增。

列出共享的实例。

共享实例是共享的内部表示形式。已复制或正在迁移的共享在物理上存储在多个位置。这些单独的位置称为共享文件系统服务中的“实例”。最终用户无需关注此内部表示形式。作为管理员,您可以通过此端点资源列出共享的所有实例。使用 policy.yaml 文件将权限授予其他角色。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

响应参数

名称

入参

类型

描述

status

body

字符串

共享或共享实例的状态。可能的值在上方部分中列出。

access_rules_status

body

字符串

共享实例访问规则状态。有效值为 activeerrorsyncing。在版本 2.28 之前,syncing 用状态 out_of_sync 表示。

版本 2.10 中新增

share_id

body

字符串

共享实例所属的共享的 UUID。

progress

body

字符串

共享创建的进度。

版本 2.54 中新增

availability_zone

body

字符串

共享所在的可用区的名称。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

replica_state

body

字符串

共享副本状态。仅在使用了复制时才具有设置值。可能的取值包括:activein_syncout_of_syncerror

版本 2.11 中新增

export_location

body

字符串

导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

export_locations

body

数组

导出位置列表。例如,当共享服务器具有多个网络接口时,它可以具有多个导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

cast_rules_to_readonly

body

布尔值

如果共享实例的 cast_rules_to_readonly 属性设置为 True,则所有现有的访问规则将被转换为只读。

2.30 版本新增

share_network_id

body

字符串

资源导出到的共享网络 ID。

share_server_id

body

字符串

共享服务器的 UUID。

host

body

字符串

资源所在的服务的后端宿主机名。此参数始终存在于响应模式中,但对于非管理员用户,该值可能表示为“null”。

access_rules_status

body

字符串

共享实例访问规则状态。有效值为 activeerrorsyncing。在版本 2.28 之前,syncing 用状态 out_of_sync 表示。

版本 2.10 中新增

share_type_id

路径

字符串

共享类型的 UUID。

id

body

字符串

共享实例 ID。

encryption_key_ref

body

对象

加密密钥引用是有效的 barbican secret UUID,存储驱动程序将使用它来获取加密密钥。

响应示例

{
    "share_instances": [
        {
            "status": "error",
            "progress": null,
            "share_id": "406ea93b-32e9-4907-a117-148b3945749f",
            "availability_zone": "nova",
            "replica_state": null,
            "created_at": "2015-09-07T08:41:20.000000",
            "updated_at": "2015-09-07T08:43:10.000000",
            "share_network_id": "713df749-aac0-4a54-af52-10f6c991e80c",
            "cast_rules_to_readonly": false,
            "share_server_id": "ba11930a-bf1a-4aa7-bae4-a8dfbaa3cc73",
            "host": "manila2@generic1#GENERIC1",
            "access_rules_status": "active",
            "share_type_id": "78dee8a9-1ee6-4a29-9081-14e6596fbb96",
            "id": "081f7030-c54f-42f5-98ee-93a37393e0f2"
        },
        {
            "status": "available",
            "progress": "100%",
            "share_id": "d94a8548-2079-4be0-b21c-0a887acd31ca",
            "availability_zone": "nova",
            "replica_state": null,
            "created_at": "2015-09-07T08:51:34.000000",
            "updated_at": "2015-09-10T02:01:22.000000",
            "share_network_id": "713df749-aac0-4a54-af52-10f6c991e80c",
            "cast_rules_to_readonly": false,
            "share_server_id": "ba11930a-bf1a-4aa7-bae4-a8dfbaa3cc73",
            "host": "manila2@generic1#GENERIC1",
            "access_rules_status": "active",
            "share_type_id": "78dee8a9-1ee6-4a29-9081-14e6596fbb96",
            "id": "75559a8b-c90c-42a7-bda2-edbe86acfb7b"
        },
        {
            "status": "creating_from_snapshot",
            "progress": "30%",
            "share_id": "9bb15af4-27e5-4174-ae15-dc549d4a3b51",
            "availability_zone": "nova",
            "replica_state": null,
            "created_at": "2015-09-07T09:01:15.000000",
            "updated_at": "2015-09-07T09:02:30.000000",
            "share_network_id": "713df749-aac0-4a54-af52-10f6c991e80c",
            "cast_rules_to_readonly": false,
            "share_server_id": "ba11930a-bf1a-4aa7-bae4-a8dfbaa3cc73",
            "host": "manila2@generic1#GENERIC1",
            "access_rules_status": "active",
            "share_type_id": "78dee8a9-1ee6-4a29-9081-14e6596fbb96",
            "id": "48155648-2fd3-480d-b02b-44b995c24bab"
        }
    ]
}
POST
/v2/shares

创建 share

创建共享。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

422 - 无法处理的实体

请求的实体格式无法被请求的资源以该方法处理。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_proto

body

字符串

共享文件系统协议。有效值为 NFSCIFSGlusterFSHDFSCephFSMAPRFSCephFS,API v2.13 开始支持。

size

body

整数

共享大小,以 GiB 为单位。请求的共享大小不能大于允许的 GiB 配额。要查看允许的配额,请发出获取限制请求。

name (可选)

body

字符串

用户定义的资源名称。该字段的值限制为 255 个字符。

description(可选)

body

字符串

用户定义的资源描述。该字段的值限制为 255 个字符。

display_name(可选)

body

字符串

用户定义的资源名称。该字段设置 name 参数。

display_description(可选)

body

字符串

用户定义的资源描述。该字段设置 description 参数。

share_type(可选)

body

字符串

用于创建资源的共享类型名称或 ID。如果省略此参数,则使用默认共享类型。要查看管理员设置的默认共享类型,请发出列出默认共享类型请求。

snapshot_id (可选)

body

字符串

共享基本快照的 UUID。

is_public (可选)

body

布尔值

共享的可见性级别。设置为 true 以使共享对云中的所有项目可见。设置为 false 以使其仅对您的项目私有。默认值为 false

share_group_id (可选)

body

字符串

共享组的 UUID。

版本 2.31 中新增

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

share_network_id (可选)

body

字符串

资源必须导出的共享网络的 ID。请注意,在使用具有 driver_handles_share_servers 附加规范为 False 的共享类型时,不应提供 share_network_id

availability_zone(可选)

body

字符串

要在其中创建资源的可用区 UUID 或名称。

scheduler_hints(可选)

body

对象

一个或多个 scheduler_hints 键值对,以字符串字典的形式。接受的提示包括:- same_hostdifferent_host:值必须是 Share ID 的逗号分隔列表 - only_host:值必须是 host@backend#POOL 格式的 manage-share 服务主机(仅限管理员)。仅在 API 版本 2.67 及更高版本中可用

2.65 版本新增

mount_point_name(可选)

body

字符串

用户定义的共享导出位置。

2.84 版本新增

encryption_key_ref (可选)

body

对象

加密密钥引用是有效的 barbican secret UUID,存储驱动程序将使用它来获取加密密钥。

版本 2.90 中新增

请求示例

{
    "share": {
        "description": "My custom share London",
        "share_type": null,
        "share_proto": "nfs",
        "share_network_id": "713df749-aac0-4a54-af52-10f6c991e80c",
        "share_group_id": null,
        "name": "share_London",
        "snapshot_id": null,
        "is_public": true,
        "size": 1,
        "metadata": {
            "project": "my_app",
            "aim": "doc"
        },
        "scheduler_hints": {
            "same_host": "d9c66489-cf02-4156-b0f2-527f3211b243,4ffee55f-ba98-42d2-a8ce-e7cecb169182",
            "different_host": "903685eb-f242-4105-903d-4bef2db94be4"
        },
        "mount_point_name": "my_share_London",
        "encryption_key_ref": "86babe9b-7277-4c3a-a081-6eb3eac9231d"
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

共享的 UUID。

size

body

整数

共享大小,以 GiB 为单位。

availability_zone

body

字符串

共享所在的可用区的名称。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

status

body

字符串

共享或共享实例的状态。可能的值在上方部分中列出。

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

project_id

body

字符串

拥有资源的项目的 ID。

snapshot_id

body

字符串

用于创建共享的快照的 UUID。

share_network_id

body

字符串

资源导出到的共享网络 ID。

share_proto

body

字符串

共享文件系统协议。有效值为 NFSCIFSGlusterFSHDFSCephFSMAPRFSCephFS,API v2.13 开始支持。

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

share_type

body

字符串

共享所属的共享类型 UUID。在 API 版本 2.6 之前,此参数解析为共享类型的名称。在 API 版本 2.6 及更高版本中,此参数持有共享类型 ID 而不是名称。

links

body

数组

资源的分页和书签链接。

is_public

body

布尔值

共享是否对公众可见(云中的所有项目)或不是。

share_server_id

body

字符串

共享服务器的 UUID。

host

body

字符串

资源所在的服务的后端宿主机名。此参数始终存在于响应模式中,但对于非管理员用户,该值可能表示为“null”。

snapshot_support

body

布尔值

此共享是否支持快照。快照是共享的某个时间点的备份。

版本 2.2 中新增

task_state

body

字符串

对于共享迁移,迁移任务状态。有效值为 nullmigration_startingmigration_errormigration_successmigration_completingmigrating。如果共享从一个后端迁移到另一个后端,则 task_statenull

版本 2.5 中新增

share_type_name

body

字符串

共享类型的名称。

access_rules_status

body

字符串

共享实例访问规则状态。有效值为 activeerrorsyncing。在版本 2.28 之前,syncing 用状态 out_of_sync 表示。

版本 2.10 中新增

replication_type

body

字符串

共享复制类型。值为

  • null,如果共享无法复制。

  • readable,如果可以创建共享的一个或多个只读副本

  • writable,如果可以创建共享的一个或多个活动副本

  • dr,如果可以创建共享的一个或多个副本,这些副本在提升之前将不可访问。

版本 2.11 中新增

has_replicas

body

布尔值

指示共享是否具有副本。

版本 2.11 中新增

user_id

body

字符串

创建共享的用户 ID。

版本 2.16 中新增

create_share_from_snapshot_support

body

布尔值

是否支持将快照克隆到新共享。如果共享不支持快照,则无关紧要(请参阅功能“snapshot_support”)。

版本 2.24 中新增

revert_to_snapshot_support

body

布尔值

是否支持将共享回滚到其最新快照。如果共享不支持快照,则无关紧要(请参阅功能“snapshot_support”)。

版本 2.27 中新增

share_group_id

body

字符串

共享组的 UUID。

版本 2.31 中新增

source_share_group_snapshot_member_id

body

字符串

作为此共享来源的组快照实例的 ID。

版本 2.31 中新增

mount_snapshot_support

body

布尔值

是否支持将快照挂载并独立于共享进行访问控制。如果共享不支持快照,则无关紧要(请参阅功能“snapshot_support”)。

版本 2.32 中新增

progress

body

字符串

共享创建的进度。

版本 2.54 中新增

count (可选)

body

整数

应用分页之前请求的资源的计数。如果查询中提供了“with_count=True”,则此参数仅存在于 API 响应中。

版本 2.42 中新增

volume_type

body

字符串

共享类型 ID。这是一个遗留参数,其中包含与 share_type 参数相同的值。请勿依赖此参数,因为它可能在未来的 API 修订版中被删除。

export_location

body

字符串

导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

export_locations

body

数组

导出位置列表。例如,当共享服务器具有多个网络接口时,它可以具有多个导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

is_soft_deleted (可选)

body

布尔值

共享是否已软删除到回收站。

版本 2.69 中新增

scheduled_to_be_deleted_at (可选)

body

字符串

估计在回收站中自动删除共享的时间。

版本 2.69 中新增

encryption_key_ref

body

对象

加密密钥引用是有效的 barbican secret UUID,存储驱动程序将使用它来获取加密密钥。

响应示例

{
    "share": {
        "status": null,
        "progress": null,
        "share_server_id": null,
        "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "name": "share_London",
        "share_type": "25747776-08e5-494f-ab40-a64b9d20d8f7",
        "share_type_name": "default",
        "availability_zone": null,
        "created_at": "2015-09-18T10:25:24.533287",
        "export_location": null,
        "links": [
            {
                "href": "http://172.18.198.54:8786/v1/16e1ab15c35a457e9c2b2aa189f544e1/shares/011d21e2-fbc3-4e4a-9993-9ea223f73264",
                "rel": "self"
            },
            {
                "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/shares/011d21e2-fbc3-4e4a-9993-9ea223f73264",
                "rel": "bookmark"
            }
        ],
        "share_network_id": null,
        "share_group_id": null,
        "export_locations": [],
        "share_proto": "NFS",
        "host": null,
        "access_rules_status": "active",
        "has_replicas": false,
        "replication_type": null,
        "task_state": null,
        "snapshot_support": true,
        "volume_type": "default",
        "snapshot_id": null,
        "is_public": true,
        "metadata": {
            "project": "my_app",
            "aim": "doc"
        },
        "id": "011d21e2-fbc3-4e4a-9993-9ea223f73264",
        "size": 1,
        "description": "My custom share London",
        "encryption_key_ref": "86babe9b-7277-4c3a-a081-6eb3eac9231d"
    }
}
POST
/v2/shares/manage

管理共享(自 API v2.7 起)

2.7 版本新增。

使用此 API 将共享置于共享文件系统服务的管理之下。

仅限管理员。使用 policy.yaml 文件将此操作的权限授予其他角色。

注意

在 API 版本 2.49 之前,不支持在托管共享服务器之上创建的共享的管理。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

422 - 无法处理的实体

请求的实体格式无法被请求的资源以该方法处理。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share

body

对象

一个 share 对象。

协议

body

字符串

要管理的共享的共享文件系统协议。有效值为 NFSCIFSGlusterFSCEPHFSHDFSMAPRFS

name (可选)

body

字符串

用户定义的资源名称。该字段的值限制为 255 个字符。

share_type(可选)

body

字符串

用于创建资源的共享类型名称或 ID。如果省略此参数,则使用默认共享类型。要查看管理员设置的默认共享类型,请发出列出默认共享类型请求。

driver_options(可选)

body

对象

一组键值对,以字符串字典的形式,描述驱动程序选项。驱动程序选项的详细信息应从 相应的共享驱动程序文档 中获取。

export_path

body

字符串

适用于协议的格式的共享导出路径

  • NFS 协议。10.0.0.1:/foo_path。例如,10.254.0 .5:/shares/share-42033c24-0261-424f-abda-4fef2f6dbfd5

  • CIFS 协议。例如,\\10.0.0.1\foo_name_of_cifs_share

service_host

body

字符串

manage-share 服务主机,格式为:host@backend#POOL

  • host。后端的主机名。

  • backend。后端名称。

  • POOL。后端池名称。

share_server_id

body

字符串

共享服务器的 UUID。

2.49 版本新增

is_public (可选)

body

布尔值

共享的可见性级别。设置为 true 以使共享对云中的所有项目可见。设置为 false 以使其仅对您的项目私有。默认值为 false

2.8 版本新增

description(可选)

body

字符串

用户定义的资源描述。该字段的值限制为 255 个字符。

请求示例

{
    "share": {
        "protocol": "nfs",
        "name": "accounting_p8787",
        "share_type": "gold",
        "driver_options": {
            "opt1": "opt1",
            "opt2": "opt2"
        },
        "export_path": "192.162.10.6:/shares/share-accounting_p8787",
        "service_host": "manila2@openstackstor01#accountingpool",
        "is_public": true,
        "description": "Common storage for spreadsheets and presentations. Please contact John Accessman to be added to the users of this drive.",
        "share_server_id": "00137b40-ca06-4ae8-83a3-2c5989eebcce"
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

共享的 UUID。

size

body

整数

共享大小,以 GiB 为单位。

availability_zone

body

字符串

共享所在的可用区的名称。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

status

body

字符串

共享或共享实例的状态。可能的值在上方部分中列出。

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

project_id

body

字符串

拥有资源的项目的 ID。

snapshot_id

body

字符串

用于创建共享的快照的 UUID。

share_network_id

body

字符串

资源导出到的共享网络 ID。

share_proto

body

字符串

共享文件系统协议。有效值为 NFSCIFSGlusterFSHDFSCephFSMAPRFSCephFS,API v2.13 开始支持。

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

share_type

body

字符串

共享所属的共享类型 UUID。在 API 版本 2.6 之前,此参数解析为共享类型的名称。在 API 版本 2.6 及更高版本中,此参数持有共享类型 ID 而不是名称。

links

body

数组

资源的分页和书签链接。

is_public

body

布尔值

共享是否对公众可见(云中的所有项目)或不是。

share_server_id

body

字符串

共享服务器的 UUID。

host

body

字符串

资源所在的服务的后端宿主机名。此参数始终存在于响应模式中,但对于非管理员用户,该值可能表示为“null”。

snapshot_support

body

布尔值

此共享是否支持快照。快照是共享的某个时间点的备份。

版本 2.2 中新增

task_state

body

字符串

对于共享迁移,迁移任务状态。有效值为 nullmigration_startingmigration_errormigration_successmigration_completingmigrating。如果共享从一个后端迁移到另一个后端,则 task_statenull

版本 2.5 中新增

share_type_name

body

字符串

共享类型的名称。

access_rules_status

body

字符串

共享实例访问规则状态。有效值为 activeerrorsyncing。在版本 2.28 之前,syncing 用状态 out_of_sync 表示。

版本 2.10 中新增

replication_type

body

字符串

共享复制类型。值为

  • null,如果共享无法复制。

  • readable,如果可以创建共享的一个或多个只读副本

  • writable,如果可以创建共享的一个或多个活动副本

  • dr,如果可以创建共享的一个或多个副本,这些副本在提升之前将不可访问。

版本 2.11 中新增

has_replicas

body

布尔值

指示共享是否具有副本。

版本 2.11 中新增

user_id

body

字符串

将共享置于 manila 管理之下的用户的 ID。

版本 2.16 中新增

create_share_from_snapshot_support

body

布尔值

是否支持将快照克隆到新共享。如果共享不支持快照,则无关紧要(请参阅功能“snapshot_support”)。

版本 2.24 中新增

revert_to_snapshot_support

body

布尔值

是否支持将共享回滚到其最新快照。如果共享不支持快照,则无关紧要(请参阅功能“snapshot_support”)。

版本 2.27 中新增

share_group_id

body

字符串

共享组的 UUID。

版本 2.31 中新增

source_share_group_snapshot_member_id

body

字符串

作为此共享来源的组快照实例的 ID。

版本 2.31 中新增

mount_snapshot_support

body

布尔值

是否支持将快照挂载并独立于共享进行访问控制。如果共享不支持快照,则无关紧要(请参阅功能“snapshot_support”)。

版本 2.32 中新增

progress

body

字符串

共享创建的进度。

版本 2.54 中新增

count (可选)

body

整数

应用分页之前请求的资源的计数。如果查询中提供了“with_count=True”,则此参数仅存在于 API 响应中。

版本 2.42 中新增

volume_type

body

字符串

共享类型 ID。这是一个遗留参数,其中包含与 share_type 参数相同的值。请勿依赖此参数,因为它可能在未来的 API 修订版中被删除。

export_location

body

字符串

导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

export_locations

body

数组

导出位置列表。例如,当共享服务器具有多个网络接口时,它可以具有多个导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

is_soft_deleted (可选)

body

布尔值

共享是否已软删除到回收站。

版本 2.69 中新增

scheduled_to_be_deleted_at (可选)

body

字符串

估计在回收站中自动删除共享的时间。

版本 2.69 中新增

encryption_key_ref

body

对象

加密密钥引用是有效的 barbican secret UUID,存储驱动程序将使用它来获取加密密钥。

响应示例

{
    "share": {
        "links": [
            {
                "href": "http://172.18.198.54:8786/v2/16e1ab15c35a457e9c2b2aa189f544e1/shares/00137b40-ca06-4ae8-83a3-2c5989eebcce",
                "rel": "self"
            },
            {
                "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/shares/00137b40-ca06-4ae8-83a3-2c5989eebcce",
                "rel": "bookmark"
            }
        ],
        "availability_zone": null,
        "share_network_id": null,
        "export_locations": [],
        "share_server_id": "00137b40-ca06-4ae8-83a3-2c5989eebcce",
        "share_group_id": null,
        "snapshot_id": null,
        "id": "00137b40-ca06-4ae8-83a3-2c5989eebcce",
        "size": null,
        "share_type": "14747856-08e5-494f-ab40-a64b9d20d8f7",
        "share_type_name": "d",
        "export_location": "10.254.0.5:/shares/share-42033c24-0261-424f-abda-4fef2f6dbfd5",
        "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "metadata": {},
        "status": "manage_starting",
        "description": "Lets manage share.",
        "user_id": "66ffd308757e44b9a8bec381322b0b88",
        "host": "manila2@unmanage1#UNMANAGE1",
        "access_rules_status": "active",
        "has_replicas": false,
        "replication_type": null,
        "is_public": false,
        "snapshot_support": true,
        "name": "share_texas1",
        "created_at": "2019-03-05T10:00:00.000000",
        "share_proto": "NFS",
        "volume_type": "d"
    }
}
PUT
/v2/shares/{share_id}

更新共享

更新共享。

您可以更新这些属性

  • display_name,它也会更改共享的 name

  • display_description,它也会更改共享的 description

  • is_public。更改可见性级别。

如果您尝试更新其他属性,它们将保留其先前的值。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

422 - 无法处理的实体

请求的实体格式无法被请求的资源以该方法处理。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

is_public (可选)

body

布尔值

共享的可见性级别。设置为 true 以使共享对云中的所有项目可见。设置为 false 以使其仅对您的项目私有。默认值为 false

display_name(可选)

body

字符串

用户定义的资源名称。该字段设置 name 参数。

display_description(可选)

body

字符串

用户定义的资源描述。该字段设置 description 参数。

请求示例

{
    "share": {
        "is_public": true,
        "display_description": "Changing the share description."
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

共享的 UUID。

size

body

整数

共享大小,以 GiB 为单位。

availability_zone

body

字符串

共享所在的可用区的名称。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

status

body

字符串

共享或共享实例的状态。可能的值在上方部分中列出。

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

project_id

body

字符串

拥有资源的项目的 ID。

snapshot_id

body

字符串

用于创建共享的快照的 UUID。

share_network_id

body

字符串

资源导出到的共享网络 ID。

share_proto

body

字符串

共享文件系统协议。有效值为 NFSCIFSGlusterFSHDFSCephFSMAPRFSCephFS,API v2.13 开始支持。

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

share_type

body

字符串

共享所属的共享类型 UUID。在 API 版本 2.6 之前,此参数解析为共享类型的名称。在 API 版本 2.6 及更高版本中,此参数持有共享类型 ID 而不是名称。

links

body

数组

资源的分页和书签链接。

is_public

body

布尔值

共享是否对公众可见(云中的所有项目)或不是。

share_server_id

body

字符串

共享服务器的 UUID。

host

body

字符串

资源所在的服务的后端宿主机名。此参数始终存在于响应模式中,但对于非管理员用户,该值可能表示为“null”。

snapshot_support

body

布尔值

此共享是否支持快照。快照是共享的某个时间点的备份。

版本 2.2 中新增

task_state

body

字符串

对于共享迁移,迁移任务状态。有效值为 nullmigration_startingmigration_errormigration_successmigration_completingmigrating。如果共享从一个后端迁移到另一个后端,则 task_statenull

版本 2.5 中新增

share_type_name

body

字符串

共享类型的名称。

access_rules_status

body

字符串

共享实例访问规则状态。有效值为 activeerrorsyncing。在版本 2.28 之前,syncing 用状态 out_of_sync 表示。

版本 2.10 中新增

replication_type

body

字符串

共享复制类型。值为

  • null,如果共享无法复制。

  • readable,如果可以创建共享的一个或多个只读副本

  • writable,如果可以创建共享的一个或多个活动副本

  • dr,如果可以创建共享的一个或多个副本,这些副本在提升之前将不可访问。

版本 2.11 中新增

has_replicas

body

布尔值

指示共享是否具有副本。

版本 2.11 中新增

user_id

body

字符串

创建共享的用户 ID。

版本 2.16 中新增

create_share_from_snapshot_support

body

布尔值

是否支持将快照克隆到新共享。如果共享不支持快照,则无关紧要(请参阅功能“snapshot_support”)。

版本 2.24 中新增

revert_to_snapshot_support

body

布尔值

是否支持将共享回滚到其最新快照。如果共享不支持快照,则无关紧要(请参阅功能“snapshot_support”)。

版本 2.27 中新增

share_group_id

body

字符串

共享组的 UUID。

版本 2.31 中新增

source_share_group_snapshot_member_id

body

字符串

作为此共享来源的组快照实例的 ID。

版本 2.31 中新增

mount_snapshot_support

body

布尔值

是否支持将快照挂载并独立于共享进行访问控制。如果共享不支持快照,则无关紧要(请参阅功能“snapshot_support”)。

版本 2.32 中新增

progress

body

字符串

共享创建的进度。

版本 2.54 中新增

count (可选)

body

整数

应用分页之前请求的资源的计数。如果查询中提供了“with_count=True”,则此参数仅存在于 API 响应中。

版本 2.42 中新增

volume_type

body

字符串

共享类型 ID。这是一个遗留参数,其中包含与 share_type 参数相同的值。请勿依赖此参数,因为它可能在未来的 API 修订版中被删除。

export_location

body

字符串

导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

export_locations

body

数组

导出位置列表。例如,当共享服务器具有多个网络接口时,它可以具有多个导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

is_soft_deleted (可选)

body

布尔值

共享是否已软删除到回收站。

版本 2.69 中新增

scheduled_to_be_deleted_at (可选)

body

字符串

估计在回收站中自动删除共享的时间。

版本 2.69 中新增

encryption_key_ref

body

对象

加密密钥引用是有效的 barbican secret UUID,存储驱动程序将使用它来获取加密密钥。

响应示例

{
    "share": {
        "links": [
            {
                "href": "http://172.18.198.54:8786/v2/16e1ab15c35a457e9c2b2aa189f544e1/shares/011d21e2-fbc3-4e4a-9993-9ea223f73264",
                "rel": "self"
            },
            {
                "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/shares/011d21e2-fbc3-4e4a-9993-9ea223f73264",
                "rel": "bookmark"
            }
        ],
        "availability_zone": "nova",
        "share_network_id": "713df749-aac0-4a54-af52-10f6c991e80c",
        "export_locations": [],
        "share_server_id": "e268f4aa-d571-43dd-9ab3-f49ad06ffaef",
        "share_group_id": null,
        "snapshot_id": null,
        "id": "011d21e2-fbc3-4e4a-9993-9ea223f73264",
        "size": 1,
        "share_type": "25747776-08e5-494f-ab40-a64b9d20d8f7",
        "share_type_name": "default",
        "export_location": null,
        "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "metadata": {
            "project": "my_app",
            "aim": "doc"
        },
        "status": "error",
        "description": "Changing the share description.",
        "host": "manila2@generic1#GENERIC1",
        "task_state": null,
        "is_public": true,
        "snapshot_support": true,
        "name": "share_London",
        "created_at": "2015-09-18T10:25:24.000000",
        "share_proto": "NFS",
        "volume_type": "default",
        "user_id": "66ffd308757e44b9a8bec381322b0b88"
    }
}
DELETE
/v2/shares/{share_id}

删除共享

删除共享。

先决条件

  • 共享状态必须为 availableerrorinactive

  • 您不能已经拥有共享的快照。

  • 您不能已经拥有共享的组快照。

  • 您不能已经拥有共享的副本。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

共享导出位置(自 API v2.9 起)

用于查看共享导出位置的一组 API。

在 API 版本 2.46 之前,这些 API 允许检索属于非活动共享副本的导出位置。在 API 版本 2.47 及更高版本中,只能使用 共享副本导出位置 API 检索非活动共享副本的导出位置。

GET
/v2/shares/{share_id}/export_locations

列出导出位置

2.9 版本新增。

列出共享的所有导出位置。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享导出位置 UUID。

share_instance_id

body

字符串

此导出位置所属的共享实例的 UUID。此参数仅对具有“管理员”角色的用户可用,并且不能通过 policy.yaml 控制。

路径

body

字符串

用于挂载操作的导出位置路径。

is_admin_only

body

布尔值

定义导出位置的目的。如果设置为 true,则预计它将仅由服务需求和管理员使用。如果设置为 false,则此导出位置可供最终用户使用。此参数仅对具有“管理员”角色的用户可用,并且不能通过 policy.json 控制。

preferred

body

布尔值

驱动程序可以使用此字段来识别最有效的导出位置,并且客户端应优先使用这些导出位置。默认设置为 false 值。

2.14 版本新增

响应示例

{
    "export_locations": [
        {
            "path": "10.254.0.3:/shares/share-e1c2d35e-fe67-4028-ad7a-45f668732b1d",
            "share_instance_id": "e1c2d35e-fe67-4028-ad7a-45f668732b1d",
            "is_admin_only": false,
            "id": "b6bd76ce-12a2-42a9-a30a-8a43b503867d",
            "preferred": false
        },
        {
            "path": "10.0.0.3:/shares/share-e1c2d35e-fe67-4028-ad7a-45f668732b1d",
            "share_instance_id": "e1c2d35e-fe67-4028-ad7a-45f668732b1d",
            "is_admin_only": true,
            "id": "6921e862-88bc-49a5-a2df-efeed9acd583",
            "preferred": false
        }
    ]
}
GET
/v2/shares/{share_id}/export_locations/​{export_location_id}

显示单个导出位置

2.9 版本新增。

显示属于共享的导出位置的详细信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

export_location_id

路径

字符串

导出位置的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享导出位置 UUID。

share_instance_id

body

字符串

此导出位置所属的共享实例的 UUID。此参数仅对具有“管理员”角色的用户可用,并且不能通过 policy.yaml 控制。

路径

body

字符串

用于挂载操作的导出位置路径。

is_admin_only

body

布尔值

定义导出位置的目的。如果设置为 true,则预计它将仅由服务需求和管理员使用。如果设置为 false,则此导出位置可供最终用户使用。此参数仅对具有“管理员”角色的用户可用,并且不能通过 policy.json 控制。

preferred

body

布尔值

驱动程序可以使用此字段来识别最有效的导出位置,并且客户端应优先使用这些导出位置。默认设置为 false 值。

2.14 版本新增

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

响应示例

{
    "export_location": {
        "created_at": "2016-03-24T14:20:47.000000",
        "updated_at": "2016-03-24T14:20:47.000000",
        "preferred": false,
        "is_admin_only": true,
        "share_instance_id": "e1c2d35e-fe67-4028-ad7a-45f668732b1d",
        "path": "10.0.0.3:/shares/share-e1c2d35e-fe67-4028-ad7a-45f668732b1d",
        "id": "6921e862-88bc-49a5-a2df-efeed9acd583"
    }
}

导出位置元数据(自 API v2.87 起)

显示、设置、更新和取消设置导出位置元数据。

GET
/v2/shares/{share_id}/export_locations/{export_location_id}/metadata

显示所有导出位置元数据

2.87 版本新增。

显示导出位置的所有元数据,以键值对的形式。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

export_location_id

路径

字符串

导出位置的 UUID。

响应参数

名称

入参

类型

描述

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

响应示例

{
    "metadata": {
        "project": "my_app",
        "aim": "doc"
    }
}
GET
/v2/shares/{share_id}/export_locations/{export_location_id}/metadata/{key}

显示导出位置元数据项

2.87 版本新增。

按其键检索导出位置元数据中的特定元数据项。如果指定的键不代表有效的元数据项,则 API 将响应 HTTP 404。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

export_location_id

路径

字符串

导出位置的 UUID。

key(可选)

路径

字符串

元数据项的键。例如,如果现有共享或访问规则上的元数据如下:"project": "my_test", "aim": "testing",则键为“project”和“aim”。

响应参数

名称

入参

类型

描述

metadata

body

对象

单个元数据键值对。

响应示例

{
    "meta": {
        "project": "my_app"
    }
}
POST
/v2/shares/{share_id}/export_locations/{export_location_id}/metadata

设置导出位置元数据

2.87 版本新增。

允许添加新的元数据项作为键值对。此 API 不会删除预先存在的元数据项。如果请求对象包含已存在的元数据项,则它们将使用请求对象中指定的新值进行更新。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

export_location_id

路径

字符串

导出位置的 UUID。

metadata

body

对象

一个或多个元数据键值对,以字符串字典的形式。例如,"project": "my_test", "aim": "testing"。共享服务器不尊重区分大小写的键名称。例如,"key": "v1""KEY": "V1" 是等效的。如果您指定这两个键值对,服务器将仅设置并返回 "KEY": "V1" 键值对。

请求示例

{
    "metadata": {
        "aim": "changed_doc",
        "project": "my_app",
        "key1": "value1",
        "new_metadata_key": "new_information",
        "key": "value"
    }
}

响应参数

名称

入参

类型

描述

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

响应示例

{
    "metadata": {
        "aim": "changed_doc",
        "project": "my_app",
        "key1": "value1",
        "new_metadata_key": "new_information",
        "key": "value"
    }
}
PUT
/v2/shares/{share_id}/export_locations/{export_location_id}/metadata

更新导出位置元数据

2.87 版本新增。

使用请求对象中的元数据(以键值对的形式)替换给定导出位置的元数据。导出位置的所有预先存在的元数据都将被删除并替换为提供的新的元数据。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

export_location_id

路径

字符串

导出位置的 UUID。

metadata

body

对象

一个或多个元数据键值对,以字符串字典的形式。例如,"project": "my_test", "aim": "testing"。共享服务器不尊重区分大小写的键名称。例如,"key": "v1""KEY": "V1" 是等效的。如果您指定这两个键值对,服务器将仅设置并返回 "KEY": "V1" 键值对。

请求示例

{
    "metadata": {
        "aim": "changed_doc",
        "project": "my_app",
        "new_metadata_key": "new_information"
    }
}

响应参数

名称

入参

类型

描述

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

响应示例

{
    "metadata": {
        "aim": "changed_doc",
        "project": "my_app",
        "new_metadata_key": "new_information"
    }
}

要删除给定导出位置上的所有现有元数据项,请求对象需要指定一个空元数据对象

请求示例

{
    "metadata": null
}

响应示例

{
    "metadata": null
}
DELETE
/v2/shares/{share_id}/export_locations/{export_location_id}/metadata/{key}

删除导出位置元数据项

2.87 版本新增。

删除导出位置上的单个元数据项,通过其键来标识。如果指定的键不代表有效的元数据项,API 将以 HTTP 404 响应。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

export_location_id

路径

字符串

导出位置的 UUID。

key(可选)

路径

字符串

元数据项的键。例如,如果现有共享或访问规则上的元数据如下:"project": "my_test", "aim": "testing",则键为“project”和“aim”。

共享元数据

显示、设置、更新和取消设置共享元数据。

GET
/v2/shares/{share_id}/metadata

显示所有共享元数据

以键值对的形式显示共享的所有元数据。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

响应参数

名称

入参

类型

描述

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

响应示例

{
    "metadata": {
        "project": "my_app",
        "aim": "doc"
    }
}
GET
/v2/shares/{share_id}/metadata/{key}

显示共享元数据项

通过其键检索共享元数据中的特定元数据项。如果指定的键不代表有效的元数据项,API 将以 HTTP 404 响应。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

key

body

对象

元数据项的键。例如,如果现有资源上的元数据如下:"project": "my_test", "aim": "testing",则键为“project”和“aim”。

响应参数

名称

入参

类型

描述

metadata

body

对象

单个元数据键值对。

响应示例

{
    "meta": {
        "project": "my_app"
    }
}
POST
/v2/shares/{share_id}/metadata

设置共享元数据

允许添加新的元数据项作为键值对。此 API 不会删除预先存在的元数据项。如果请求对象包含已存在的元数据项,则它们将使用请求对象中指定的新值进行更新。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

metadata

body

对象

一个或多个元数据键值对,以字符串字典的形式。例如,"project": "my_test", "aim": "testing"。共享服务器不尊重区分大小写的键名称。例如,"key": "v1""KEY": "V1" 是等效的。如果您指定这两个键值对,服务器将仅设置并返回 "KEY": "V1" 键值对。

请求示例

{
    "metadata": {
        "key1": "value1"
    }
}

响应参数

名称

入参

类型

描述

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

响应示例

{
    "metadata": {
        "aim": "changed_doc",
        "project": "my_app",
        "key1": "value1",
        "new_metadata_key": "new_information",
        "key": "value"
    }
}
PUT
/v2/shares/{share_id}/metadata

更新共享元数据

使用请求对象中指定的元数据(以键值对的形式)替换给定共享的元数据。共享的所有预先存在的元数据将被删除并替换为提供的新元数据。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

metadata

body

对象

一个或多个元数据键值对,以字符串字典的形式。例如,"project": "my_test", "aim": "testing"。共享服务器不尊重区分大小写的键名称。例如,"key": "v1""KEY": "V1" 是等效的。如果您指定这两个键值对,服务器将仅设置并返回 "KEY": "V1" 键值对。

请求示例

{
    "metadata": {
        "aim": "changed_doc",
        "project": "my_app",
        "new_metadata_key": "new_information"
    }
}

响应参数

名称

入参

类型

描述

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

响应示例

{
    "metadata": {
        "aim": "changed_doc",
        "project": "my_app",
        "new_metadata_key": "new_information"
    }
}

要删除给定共享上的所有现有元数据项,请求对象需要指定一个空的元数据对象

请求示例

{
    "metadata": null
}

响应示例

{
    "metadata": null
}
DELETE
/v2/shares/{share_id}/metadata/{key}

删除共享元数据项

删除共享上的单个元数据项,通过其键来标识。如果指定的键不代表有效的元数据项,API 将以 HTTP 404 响应。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

key

body

对象

元数据项的键。例如,如果现有资源上的元数据如下:"project": "my_test", "aim": "testing",则键为“project”和“aim”。

共享操作

共享操作包括授予或撤销共享访问权限、列出共享的可用访问规则、显式更新共享的状态、调整共享大小以及取消管理共享。

作为管理员,您可以重置共享的状态并在任何状态下强制删除共享。使用 policy.yaml 文件将此操作的权限授予其他角色。

您可以将共享的状态设置为以下受支持的状态

  • available

  • error

  • creating

  • deleting

  • error_deleting

如果使用 API 版本 1.0-2.6,则所有共享操作(如下定义)都应在请求 JSON 主体的顶部元素中包含前缀 os-

例如:{“access_list”: null} 对于 v2.7+ 有效。而 {“os- access_list”: null} 对于 v1.0-2.6 有效

POST
/v2/shares/{share_id}/action

授予访问权限

所有 Manila 共享最初都没有访问权限。必须通过此 API 为客户端提供显式访问权限。

要授予访问权限,请指定以下受支持的共享访问级别之一

  • rw。读写 (RW) 访问权限。

  • ro。只读 (RO) 访问权限。

您还必须指定以下受支持的身份验证方法

  • ip。通过 IP 地址验证实例。指定的值应该是有效的 IPv4 或 IPv6 地址,或者 CIDR 表示法中的子网。有效的格式是 X:X:X:X:X:X:X:XX:X:X:X:X:X:X:X/XXXX.XX.XX.XXXX.XX.XX.XX/XX 等。例如 0.0.0.0/0::/0

重要提示

仅在 API 版本 2.38 及更高版本中才支持基于 IPv6 的访问。

注意

从 API 版本 2.82 开始,可以通过参数 lock_deletionlock_visibilitylock_reason 分别锁定删除、限制敏感字段的可见性以及指定此类锁定的原因,从而在调用授予访问权限 API 时锁定删除、限制可见性并指定原因。

  • cert。通过 TLS 证书验证实例。将 TLS 身份指定为 IDENTKEY。有效值是证书的常见名称 (CN) 中最多 64 个字符的任何字符串。字符串的含义取决于其解释。

  • user。通过用户名或组名进行身份验证。有效值是包含一些特殊字符的字母数字字符串,长度为 4 到 255 个字符。

授予共享访问权限。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

allow_access

body

对象

授予访问权限的对象。

access_level

body

字符串

共享的访问级别。要授予或拒绝共享的访问权限,您需要指定以下共享访问级别之一

  • rw。读写 (RW) 访问权限。

  • ro。只读 (RO) 访问权限。

access_type

body

字符串

访问规则类型。共享访问规则类型的有效值是以下值之一

  • ip:通过 IP 地址(可以是 IPv4 或 IPv6)验证客户端。您可以指定单个客户端 IP 地址或 CIDR 表示法中的 IP 地址范围。例如,IPv4 的 0.0.0.0/0 或 IPv6 的 ::/0

  • cert:通过 TLS 证书验证客户端。将 TLS 身份指定为 IDENTKEY。有效值是证书的常见名称 (CN) 中最多 64 个字符的任何字符串。字符串的含义取决于其解释。

  • user:通过用户名或组名进行身份验证。有效值是包含一些特殊字符的字母数字字符串,长度为 4 到 32 个字符。

access_to

body

字符串

定义访问权限的值。后端授予或拒绝对其的访问权限。有效值是以下值之一

  • ip:通过 IP 地址(可以是 IPv4 或 IPv6)验证客户端。您可以指定单个客户端 IP 地址或 CIDR 表示法中的 IP 地址范围。例如,IPv4 的 0.0.0.0/0 或 IPv6 的 ::/0

  • cert:通过 TLS 证书验证实例。指定 TLS 身份作为 IDENTKEY。有效值是证书的常见名称 (CN) 中最多 64 个字符的任何字符串。字符串的含义取决于其解释。

  • user:通过用户名或组名进行身份验证。有效值是包含一些特殊字符的字母数字字符串,长度为 4 到 32 个字符。

metadata

body

对象

一个或多个访问规则元数据键值对,作为字符串字典。

新增于版本 2.45

lock_visibility(可选)

body

字符串

资源是否应限制其敏感字段。启用后,其他用户将看到“access_to”和“access_key”字段设置为 **

新增于版本 2.82

lock_deletion(可选)

body

字符串

资源是否应锁定其删除。

新增于版本 2.82

lock_reason

body

字符串

表示特定资源锁定的原因的文本块。

请求示例

{
    "allow_access": {
        "access_level": "rw",
        "access_type": "ip",
        "access_to": "0.0.0.0/0",
        "metadata":{
            "key1": "value1",
            "key2": "value2"
        },
        "lock_visibility": false,
        "lock_deletion": true,
        "lock_reason": "Locked for deletion until year end audit."
    }
}

响应参数

名称

入参

类型

描述

share_id

body

字符串

您被授予或拒绝访问权限的共享的 UUID。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

access_type

body

字符串

访问规则类型。共享访问规则类型的有效值是以下值之一

  • ip:通过 IP 地址(可以是 IPv4 或 IPv6)验证客户端。您可以指定单个客户端 IP 地址或 CIDR 表示法中的 IP 地址范围。例如,IPv4 的 0.0.0.0/0 或 IPv6 的 ::/0

  • cert:通过 TLS 证书验证客户端。将 TLS 身份指定为 IDENTKEY。有效值是证书的常见名称 (CN) 中最多 64 个字符的任何字符串。字符串的含义取决于其解释。

  • user:通过用户名或组名进行身份验证。有效值是包含一些特殊字符的字母数字字符串,长度为 4 到 32 个字符。

access_to

body

字符串

定义访问权限的值。后端授予或拒绝对其的访问权限。有效值是以下值之一

  • ip:通过 IP 地址(可以是 IPv4 或 IPv6)验证客户端。您可以指定单个客户端 IP 地址或 CIDR 表示法中的 IP 地址范围。例如,IPv4 的 0.0.0.0/0 或 IPv6 的 ::/0

  • cert:通过 TLS 证书验证实例。指定 TLS 身份作为 IDENTKEY。有效值是证书的常见名称 (CN) 中最多 64 个字符的任何字符串。字符串的含义取决于其解释。

  • user:通过用户名或组名进行身份验证。有效值是包含一些特殊字符的字母数字字符串,长度为 4 到 32 个字符。

access_key

body

字符串

授予共享访问权限的实体的访问凭据。

新增于版本 2.21

access

body

对象

access 对象。

access_level

body

字符串

共享的访问级别。要授予或拒绝共享的访问权限,您需要指定以下共享访问级别之一

  • rw。读写 (RW) 访问权限。

  • ro。只读 (RO) 访问权限。

id

body

字符串

访问规则 ID。

metadata

body

对象

一个或多个访问规则元数据键值对,作为字符串字典。

响应示例

{
    "access": {
        "share_id": "406ea93b-32e9-4907-a117-148b3945749f",
        "created_at": "2015-09-07T09:14:48.000000",
        "updated_at": null,
        "access_type": "ip",
        "access_to": "0.0.0.0/0",
        "access_level": "rw",
        "access_key": null,
        "id": "a25b2df3-90bd-4add-afa6-5f0dbbd50452",
        "metadata":{
            "key1": "value1",
            "key2": "value2"
        }
    }
}
POST
/v2/shares/{share_id}/action

撤销访问权限

共享文件系统服务将其数据库中的每个访问规则存储起来,并为其分配一个唯一的 ID。可以使用此 ID 在请求访问权限后撤销访问权限。

注意

如果访问规则已锁定删除,则需要在撤销访问权限请求中提供 unrestrict 参数。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

deny_access

body

对象

deny_access 对象。

access_id

body

字符串

授予访问权限的访问规则的 UUID。

unrestrict(可选)

body

字符串

服务是否应尝试在删除访问规则期间删除删除限制。

新增于版本 2.82

请求示例

{
    "deny_access": {
        "access_id": "a25b2df3-90bd-4add-afa6-5f0dbbd50452",
        "unrestrict": true
    }
}
POST
/v2/shares/{share_id}/action

列出访问规则(已弃用)

警告

从微版本 2.45 开始,此 API 已弃用,从微版本 2.45 开始,对此 API 的请求将失败并返回 404。请使用 列出共享访问规则 API 代替此 API,版本为 2.45。

列出共享的访问规则。返回的访问 ID 对于拒绝访问是必需的。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

access_list

body

字符串

访问规则的对象。要列出访问规则,请将此值设置为 null

请求示例

{
    "access_list": null
}

响应参数

名称

入参

类型

描述

access_type

body

字符串

访问规则类型。共享访问规则类型的有效值是以下值之一

  • ip:通过 IP 地址(可以是 IPv4 或 IPv6)验证客户端。您可以指定单个客户端 IP 地址或 CIDR 表示法中的 IP 地址范围。例如,IPv4 的 0.0.0.0/0 或 IPv6 的 ::/0

  • cert:通过 TLS 证书验证客户端。将 TLS 身份指定为 IDENTKEY。有效值是证书的常见名称 (CN) 中最多 64 个字符的任何字符串。字符串的含义取决于其解释。

  • user:通过用户名或组名进行身份验证。有效值是包含一些特殊字符的字母数字字符串,长度为 4 到 32 个字符。

access_key

body

字符串

授予共享访问权限的实体的访问凭据。

新增于版本 2.21

access_to

body

字符串

定义访问权限的值。后端授予或拒绝对其的访问权限。有效值是以下值之一

  • ip:通过 IP 地址(可以是 IPv4 或 IPv6)验证客户端。您可以指定单个客户端 IP 地址或 CIDR 表示法中的 IP 地址范围。例如,IPv4 的 0.0.0.0/0 或 IPv6 的 ::/0

  • cert:通过 TLS 证书验证实例。指定 TLS 身份作为 IDENTKEY。有效值是证书的常见名称 (CN) 中最多 64 个字符的任何字符串。字符串的含义取决于其解释。

  • user:通过用户名或组名进行身份验证。有效值是包含一些特殊字符的字母数字字符串,长度为 4 到 32 个字符。

access_level

body

字符串

共享的访问级别。要授予或拒绝共享的访问权限,您需要指定以下共享访问级别之一

  • rw。读写 (RW) 访问权限。

  • ro。只读 (RO) 访问权限。

state

body

字符串

在版本 2.28 之前,给定共享的所有访问规则的状态始终相同。这可能是 newactiveerror。从 2.28 开始,共享的每个访问规则的状态彼此独立,可以是 queued_to_applyapplyingactiveerrorqueued_to_denydenying。新规则从 queued_to_apply 状态开始,如果过渡到 active 状态,则成功应用。

access_list

body

字符串

访问规则的对象。要列出访问规则,请将此值设置为 null

id

body

字符串

访问规则 ID。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

响应示例

{
    "access_list": [
        {
            "access_level": "rw",
            "state": "error",
            "id": "507bf114-36f2-4f56-8cf4-857985ca87c1",
            "access_type": "cert",
            "access_to": "example.com",
            "access_key": null
        },
        {
            "access_level": "rw",
            "state": "active",
            "id": "a25b2df3-90bd-4add-afa6-5f0dbbd50452",
            "access_type": "ip",
            "access_to": "0.0.0.0/0",
            "access_key": null
        }
    ]
}
POST
/v2/shares/{share_id}/action

重置共享状态

仅限管理员。显式更新共享的状态。

使用 policy.yaml 文件将此操作的权限授予其他角色。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

reset_status

body

对象

reset_status 对象。

status

body

字符串

要设置的共享或共享实例状态。可能的值列在 上面的部分 中。

请求示例

{
    "reset_status": {
        "status": "error"
    }
}
POST
/v2/shares/{share_id}/action

强制删除共享

仅限管理员。在任何状态下强制删除共享。

使用 policy.yaml 文件将此操作的权限授予其他角色。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

force_delete

body

字符串

要强制删除共享或共享组,请将此值设置为 null。与删除操作不同,强制删除操作会忽略共享或共享组的状态。

请求示例

{
    "force_delete": null
}
POST
/v2/shares/{share_id}/action

扩展共享

增加共享的大小。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

extend

body

对象

extend 对象。

new_size

body

整数

共享的新大小,以 GiB 为单位。

force (可选)

body

布尔值

(仅限管理员)。定义是否通过调度器,设置为 True 将直接扩展共享。设置为 False 将通过调度器,默认值为 False

版本 2.64 中新增

请求示例

{
    "extend": {
        "new_size": 2,
        "force": "true"
    }
}
POST
/v2/shares/{share_id}/action

缩小共享

缩小共享的大小。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

shrink

body

对象

shrink 对象。

new_size

body

整数

共享的新大小,以 GiB 为单位。

请求示例

{
    "shrink": {
        "new_size": 1
    }
}
POST
/v2/shares/{share_id}/action

取消管理共享 (自 API v2.7 起)

2.7 版本新增。

使用此 API 从共享文件系统服务的管理中删除共享,而不删除共享。

仅限管理员。使用 policy.yaml 文件将此操作的权限授予其他角色。

先决条件

  • 在尝试取消管理共享之前,应删除任何快照和共享副本。

注意

在共享服务器上创建的共享(即使用共享网络创建的共享)在 API 版本 2.49 之前不支持取消管理。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

unmanage

body

字符串

要取消管理共享,请将此值设置为 null

请求示例

{
    "unmanage": null
}

响应参数

响应中没有正文内容。

POST
/v2/shares/{share_id}/action

恢复到快照 (自 API v2.27 起)

版本 2.27 中新增。

将共享恢复到指定的快照,该快照必须是 manila 知道的最新快照。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

snapshot_id

body

字符串

快照的 UUID。

请求示例

{
    "revert": {
        "snapshot_id": "6020af24-a305-4155-9a29-55e20efcb0e8"
    }
}
POST
/v2/shares/{share_id}/action

软删除共享 (自 API v2.69 起)

版本 2.69 中新增。

将共享软删除到回收站。

先决条件

  • 共享状态必须为 availableerrorinactive

  • 共享不能有任何快照。

  • 共享不能有共享组快照。

  • 共享不能有依赖副本。

  • 您不能软删除已在回收站中的共享。

  • 您不能软删除不属于您项目的共享。

  • 您不能软删除正忙于活动任务的共享。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

请求示例

{
    "soft_delete": null
}
POST
/v2/shares/{share_id}/action

恢复共享 (自 API v2.69 起)

版本 2.69 中新增。

从回收站恢复共享。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

请求示例

{
    "restore": null
}

共享快照

使用共享文件系统服务创建共享的快照。共享快照是包含在共享中的数据的某个时间点的只读副本。以下 API 允许控制共享快照。它们在共享文件系统服务中表示为“快照”资源,并且可以具有用户定义的元数据,例如名称和描述。

您可以创建、管理、更新和删除共享快照。创建或管理共享快照后,您可以从快照创建共享。您还可以将共享恢复到其最新的快照。

您可以更新共享快照以重命名它、更改其描述或将其状态更新为以下受支持的状态

  • available

  • error

  • creating

  • deleting

  • error_deleting

  • manage_starting

  • manage_error

  • unmanage_starting

  • unmanage_error

  • 恢复中

作为管理员,您还可以重置快照的状态并强制删除处于任何状态的共享快照。使用 policy.yaml 文件将这些操作的权限授予其他角色。

GET
/v2/snapshots

列出共享快照

列出所有共享快照。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

all_tenants (可选)

查询

布尔值

(仅限管理员)。定义是否为所有项目列出请求的资源。设置为 1 以列出所有项目的资源。设置为 0 以仅列出当前项目的资源。资源示例包括共享、快照、共享网络、安全服务和共享组。

limit (可选)

查询

整数

要返回的最大资源记录数。

offset (可选)

查询

整数

用于定义资源列表起点的偏移量。

sort_key (可选)

查询

字符串

用于对共享列表进行排序的键。有效值为 idstatussizehostshare_protoexport_locationavailability_zoneuser_idproject_idcreated_atupdated_atdisplay_namenameshare_type_idshare_typeshare_network_idshare_networksnapshot_idsnapshot

sort_dir (可选)

查询

字符串

用于对资源列表进行排序的方向。有效值为 ascdesc

name (可选)

查询

字符串

用于按资源名称过滤资源的由用户定义名称。

description(可选)

查询

字符串

可用于筛选资源的、用户定义的描述文本。

status

body

字符串

快照状态,可以是 availableerrorcreatingdeletingmanage_startingmanage_errorunmanage_startingunmanage_errorerror_deleting

share_id

body

字符串

用于创建快照的源共享的 UUID。

size

body

整数

快照大小,以 GiB 为单位。

name~ (可选)

查询

字符串

可用于过滤共享、共享快照、共享网络、传输或共享组的名称模式。

版本 2.36 中新增

description~ (可选)

查询

字符串

可用于过滤共享、共享快照、共享网络或共享组的描述模式。

版本 2.36 中新增

metadata (可选)

查询

字符串

按元数据筛选快照列表。该值必须是 API 可以解析的键值映射的字符串表示形式。例如:{"env": "prod"}{"key": "value"}。如果无法解析该值,API 将响应 400 Bad Request

版本 2.73 中新增

with_count (可选)

查询

布尔值

是否在共享快照列表 API 响应中显示 count,默认值为 False。此查询参数在使用分页时很有用。

版本 2.79 中新增

响应参数

名称

入参

类型

描述

id

body

字符串

快照的 UUID。

name

body

字符串

资源的由用户定义的名称。

响应示例

{
    "snapshots": [
        {
            "id": "086a1aa6-c425-4ecd-9612-391a3b1b9375",
            "links": [
                {
                    "href": "http://172.18.198.54:8786/v1/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/086a1aa6-c425-4ecd-9612-391a3b1b9375",
                    "rel": "self"
                },
                {
                    "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/086a1aa6-c425-4ecd-9612-391a3b1b9375",
                    "rel": "bookmark"
                }
            ],
            "name": "snapshot_My_share"
        },
        {
            "id": "6d221c1d-0200-461e-8d20-24b4776b9ddb",
            "links": [
                {
                    "href": "http://172.18.198.54:8786/v1/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/6d221c1d-0200-461e-8d20-24b4776b9ddb",
                    "rel": "self"
                },
                {
                    "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/6d221c1d-0200-461e-8d20-24b4776b9ddb",
                    "rel": "bookmark"
                }
            ],
            "name": "snapshot_share1"
        }
    ]
}
GET
/v2/snapshots/detail

列出共享快照详细信息

列出所有共享快照的详细信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

all_tenants (可选)

查询

布尔值

(仅限管理员)。定义是否为所有项目列出请求的资源。设置为 1 以列出所有项目的资源。设置为 0 以仅列出当前项目的资源。资源示例包括共享、快照、共享网络、安全服务和共享组。

limit (可选)

查询

整数

要返回的最大资源记录数。

offset (可选)

查询

整数

用于定义资源列表起点的偏移量。

sort_key (可选)

查询

字符串

用于对共享列表进行排序的键。有效值为 idstatussizehostshare_protoexport_locationavailability_zoneuser_idproject_idcreated_atupdated_atdisplay_namenameshare_type_idshare_typeshare_network_idshare_networksnapshot_idsnapshot

sort_dir (可选)

查询

字符串

用于对资源列表进行排序的方向。有效值为 ascdesc

name (可选)

查询

字符串

用于按资源名称过滤资源的由用户定义名称。

description(可选)

查询

字符串

可用于筛选资源的、用户定义的描述文本。

status

body

字符串

快照状态,可以是 availableerrorcreatingdeletingmanage_startingmanage_errorunmanage_startingunmanage_errorerror_deleting

share_id

body

字符串

用于创建快照的源共享的 UUID。

size

body

整数

快照大小,以 GiB 为单位。

name~ (可选)

查询

字符串

可用于过滤共享、共享快照、共享网络、传输或共享组的名称模式。

版本 2.36 中新增

description~ (可选)

查询

字符串

可用于过滤共享、共享快照、共享网络或共享组的描述模式。

版本 2.36 中新增

metadata (可选)

查询

字符串

按元数据筛选快照列表。该值必须是 API 可以解析的键值映射的字符串表示形式。例如:{"env": "prod"}{"key": "value"}。如果无法解析该值,API 将响应 400 Bad Request

版本 2.73 中新增

with_count (可选)

查询

布尔值

是否在共享快照列表 API 响应中显示 count,默认值为 False。此查询参数在使用分页时很有用。

版本 2.79 中新增

响应参数

名称

入参

类型

描述

id

body

字符串

快照的 UUID。

status

body

字符串

快照状态,可以是 availableerrorcreatingdeletingmanage_startingmanage_errorunmanage_startingunmanage_errorerror_deleting

share_id

body

字符串

用于创建快照的源共享的 UUID。

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

share_proto

body

字符串

共享快照的文件系统协议。有效值为 NFSCIFSGlusterFSHDFSCephFSMAPRFSCephFS 从 API v2.13 开始支持。

share_size

body

整数

共享快照大小,以 GiB 为单位。

size

body

整数

快照大小,以 GiB 为单位。

project_id

body

字符串

快照所属项目的 ID。

版本 2.17 中新增

user_id

body

字符串

创建快照的用户的 ID。

版本 2.17 中新增

provider_location (可选)

body

字符串

后端上快照的提供程序位置。此参数仅供具有“管理员”角色的用户使用,这归功于默认的 RBAC。可以通过覆盖 policy.yaml 中的 context_is_admin 策略来修改此行为。

版本 2.12 中新增

响应示例

{
    "snapshots": [
        {
            "status": "creating",
            "share_id": "d94a8548-2079-4be0-b21c-0a887acd31ca",
            "user_id": "5c7bdb6eb0504d54a619acf8375c08ce",
            "name": "snapshot_My_share",
            "links": [
                {
                    "href": "http://172.18.198.54:8786/v1/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/086a1aa6-c425-4ecd-9612-391a3b1b9375",
                    "rel": "self"
                },
                {
                    "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/086a1aa6-c425-4ecd-9612-391a3b1b9375",
                    "rel": "bookmark"
                }
            ],
            "created_at": "2015-09-07T11:55:09.000000",
            "description": "Here is a snapshot of share My_share",
            "share_proto": "NFS",
            "share_size": 1,
            "id": "086a1aa6-c425-4ecd-9612-391a3b1b9375",
            "project_id": "cadd7139bc3148b8973df097c0911016",
            "size": 1
        },
        {
            "status": "available",
            "share_id": "406ea93b-32e9-4907-a117-148b3945749f",
            "user_id": "5c7bdb6eb0504d54a619acf8375c08ce",
            "name": "snapshot_share1",
            "links": [
                {
                    "href": "http://172.18.198.54:8786/v1/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/6d221c1d-0200-461e-8d20-24b4776b9ddb",
                    "rel": "self"
                },
                {
                    "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/6d221c1d-0200-461e-8d20-24b4776b9ddb",
                    "rel": "bookmark"
                }
            ],
            "created_at": "2015-09-07T11:50:39.000000",
            "description": "Here is a snapshot of share Share1",
            "share_proto": "NFS",
            "share_size": 1,
            "id": "6d221c1d-0200-461e-8d20-24b4776b9ddb",
            "project_id": "cadd7139bc3148b8973df097c0911016",
            "size": 1
        }
    ]
}
GET
/v2/snapshots/{snapshot_id}

显示共享快照详细信息

显示共享快照的详细信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

snapshot_id

路径

字符串

快照的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

快照的 UUID。

status

body

字符串

快照状态,可以是 availableerrorcreatingdeletingmanage_startingmanage_errorunmanage_startingunmanage_errorerror_deleting

share_id

body

字符串

用于创建快照的源共享的 UUID。

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

share_proto

body

字符串

共享快照的文件系统协议。有效值为 NFSCIFSGlusterFSHDFSCephFSMAPRFSCephFS 从 API v2.13 开始支持。

share_size

body

整数

共享快照大小,以 GiB 为单位。

size

body

整数

快照大小,以 GiB 为单位。

project_id

body

字符串

快照所属项目的 ID。

版本 2.17 中新增

user_id

body

字符串

创建快照的用户的 ID。

版本 2.17 中新增

provider_location (可选)

body

字符串

后端上快照的提供程序位置。此参数仅供具有“管理员”角色的用户使用,这归功于默认的 RBAC。可以通过覆盖 policy.yaml 中的 context_is_admin 策略来修改此行为。

版本 2.12 中新增

响应示例

{
    "snapshot": {
        "status": "available",
        "share_id": "406ea93b-32e9-4907-a117-148b3945749f",
        "user_id": "5c7bdb6eb0504d54a619acf8375c08ce",
        "name": "snapshot_share1",
        "links": [
            {
                "href": "http://172.18.198.54:8786/v1/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/6d221c1d-0200-461e-8d20-24b4776b9ddb",
                "rel": "self"
            },
            {
                "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/6d221c1d-0200-461e-8d20-24b4776b9ddb",
                "rel": "bookmark"
            }
        ],
        "created_at": "2015-09-07T11:50:39.000000",
        "description": "Here is a snapshot of share Share1",
        "share_proto": "NFS",
        "share_size": 1,
        "id": "6d221c1d-0200-461e-8d20-24b4776b9ddb",
        "project_id": "cadd7139bc3148b8973df097c0911016",
        "size": 1
    }
}
POST
/v2/snapshots

创建共享快照

从共享创建快照。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

422 - 无法处理的实体

请求的实体格式无法被请求的资源以该方法处理。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

body

字符串

从中创建快照的共享的 UUID。

force (可选)

body

布尔值

指示是否应尝试在共享状态不是 available 时创建快照。设置为 true 以在共享忙于执行其他操作时强制创建快照。默认值为 false

name (可选)

body

字符串

用户定义的资源名称。该字段的值限制为 255 个字符。

description(可选)

body

字符串

用户定义的资源描述。该字段的值限制为 255 个字符。

display_name(可选)

body

字符串

用户定义的资源名称。该字段设置 name 参数。

display_description(可选)

body

字符串

用户定义的资源描述。该字段设置 description 参数。

请求示例

{
    "snapshot": {
        "share_id": "406ea93b-32e9-4907-a117-148b3945749f",
        "force": "True",
        "name": "snapshot_share1",
        "description": "Here is a snapshot of share Share1"
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

快照的 UUID。

share_id

body

字符串

用于创建快照的源共享的 UUID。

status

body

字符串

快照状态,可以是 availableerrorcreatingdeletingmanage_startingmanage_errorunmanage_startingunmanage_errorerror_deleting

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

share_proto

body

字符串

共享快照的文件系统协议。有效值为 NFSCIFSGlusterFSHDFSCephFSMAPRFSCephFS 从 API v2.13 开始支持。

share_size

body

整数

共享快照大小,以 GiB 为单位。

provider_location (可选)

body

字符串

后端上快照的提供程序位置。此参数仅供具有“管理员”角色的用户使用,这归功于默认的 RBAC。可以通过覆盖 policy.yaml 中的 context_is_admin 策略来修改此行为。

版本 2.12 中新增

size

body

整数

快照大小,以 GiB 为单位。

project_id

body

字符串

快照所属项目的 ID。

版本 2.17 中新增

user_id

body

字符串

创建快照的用户的 ID。

版本 2.17 中新增

响应示例

{
    "snapshot": {
        "status": "creating",
        "share_id": "406ea93b-32e9-4907-a117-148b3945749f",
        "user_id": "5c7bdb6eb0504d54a619acf8375c08ce",
        "name": "snapshot_share1",
        "links": [
            {
                "href": "http://172.18.198.54:8786/v1/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/6d221c1d-0200-461e-8d20-24b4776b9ddb",
                "rel": "self"
            },
            {
                "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/6d221c1d-0200-461e-8d20-24b4776b9ddb",
                "rel": "bookmark"
            }
        ],
        "created_at": "2015-09-07T11:50:39.756808",
        "description": "Here is a snapshot of share Share1",
        "share_proto": "NFS",
        "share_size": 1,
        "id": "6d221c1d-0200-461e-8d20-24b4776b9ddb",
        "project_id": "cadd7139bc3148b8973df097c0911016",
        "size": 1
    }
}
POST
/v2/snapshots/manage

管理共享快照 (自 API v2.12 起)

版本 2.12 中新增。

配置共享文件系统以管理共享快照。

注意

在 API 版本 2.49 之前,不支持管理在共享服务器上创建的共享(即使用共享网络创建的共享)的快照。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

body

字符串

具有应管理的快照的共享的 UUID。

provider_location

body

字符串

后端上快照的提供程序位置。

name (可选)

body

字符串

用户定义的资源名称。该字段的值限制为 255 个字符。

display_name(可选)

body

字符串

用户定义的资源名称。该字段设置 name 参数。

description(可选)

body

字符串

用户定义的资源描述。该字段的值限制为 255 个字符。

display_description(可选)

body

字符串

用户定义的资源描述。该字段设置 description 参数。

driver_options(可选)

body

对象

一组键值对,以字符串字典的形式,描述驱动程序选项。驱动程序选项的详细信息应从 相应的共享驱动程序文档 中获取。

请求示例

{
    "snapshot": {
        "share_id": "dd6c5d35-9db1-4662-a7ae-8b52f880aeba",
        "provider_location": "4045fee5-4e0e-408e-97f3-15e25239dbc9",
        "name": "managed_snapshot",
        "description": "description_of_managed_snapshot",
        "driver_options": {
            "opt1": "opt1",
            "opt2": "opt2"
        }
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

快照的 UUID。

share_id

body

字符串

用于创建快照的源共享的 UUID。

status

body

字符串

快照状态,可以是 manage_startingmanage_errorunmanage_startingunmanage_error

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

share_proto

body

字符串

共享快照的文件系统协议。有效值为 NFSCIFSGlusterFSHDFSCephFSMAPRFSCephFS 从 API v2.13 开始支持。

share_size

body

整数

共享快照大小,以 GiB 为单位。

provider_location

body

字符串

后端上快照的提供程序位置。

size

body

整数

快照大小,以 GiB 为单位。

project_id

body

字符串

快照所属项目的 ID。

版本 2.17 中新增

user_id

body

字符串

创建快照的用户的 ID。

版本 2.17 中新增

响应示例

{
    "snapshot": {
        "id": "22de7000-3a32-4fe1-bd0c-38d03f93dec3",
        "share_id": "dd6c5d35-9db1-4662-a7ae-8b52f880aeba",
        "share_size": 1,
        "created_at": "2016-04-01T15:16:17.000000",
        "status": "manage_starting",
        "name": "managed_snapshot",
        "description": "description_of_managed_snapshot",
        "size": 1,
        "share_proto": "NFS",
        "user_id": "5c7bdb6eb0504d54a619acf8375c08ce",
        "project_id": "cadd7139bc3148b8973df097c0911016",
        "links": [
            {
                "href": "http://127.0.0.1:8786/v2/907004508ef4447397ce6741a8f037c1/snapshots/22de7000-3a32-4fe1-bd0c-38d03f93dec3",
                "rel": "self"
            },
            {
                "href": "http://127.0.0.1:8786/907004508ef4447397ce6741a8f037c1/snapshots/22de7000-3a32-4fe1-bd0c-38d03f93dec3",
                "rel": "bookmark"
            }
        ],
        "provider_location": "4045fee5-4e0e-408e-97f3-15e25239dbc9"
    }
}
POST
/v2/snapshots/{snapshot_id}/action

取消管理共享快照 (自 API v2.12 起)

版本 2.12 中新增。

配置共享文件系统以停止管理共享快照。

注意

在 API 版本 2.49 之前,不支持取消管理在共享服务器上创建的共享(即使用共享网络创建的共享)的快照。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

snapshot_id

路径

字符串

快照的 UUID。

unmanage

body

字符串

要取消管理共享快照,请包含此参数并将其值设置为 null

请求示例

{
    "unmanage": null
}

响应参数

响应中没有正文内容。

POST
/v2/snapshots/{snapshot_id}/action

重置共享快照状态

仅限管理员。显式更新共享快照的状态。

使用 policy.yaml 文件将此操作的权限授予其他角色。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

snapshot_id

路径

字符串

快照的 UUID。

status (可选)

body

字符串

快照状态,可以是 availableerrorcreatingdeletingmanage_startingmanage_errorunmanage_startingunmanage_errorerror_deleting

请求示例

{
    "reset_status": {
        "status": "error"
    }
}
POST
/v2/snapshots/{snapshot_id}/action

强制删除共享快照

仅限管理员。强制删除处于任何状态的共享快照。

使用 policy.yaml 文件将此操作的权限授予其他角色。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

snapshot_id

路径

字符串

快照的 UUID。

force_delete

body

字符串

要强制删除快照,请包含此参数并将其值设置为 null。与删除操作不同,强制删除操作会忽略快照状态。

请求示例

{
    "force_delete": null
}
PUT
/v2/snapshots/{snapshot_id}

更新共享快照

更新共享快照。

您可以更新这些属性

  • display_name,它还会更改共享快照的 name

  • display_description,它还会更改共享快照的 description

如果您尝试更新其他属性,它们将保留其先前的值。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

422 - 无法处理的实体

请求的实体格式无法被请求的资源以该方法处理。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

snapshot_id

路径

字符串

快照的 UUID。

display_name(可选)

body

字符串

用户定义的资源名称。该字段设置 name 参数。

display_description(可选)

body

字符串

用户定义的资源描述。该字段设置 description 参数。

请求示例

{
    "snapshot": {
        "display_name": "snapshot_Share1",
        "display_description": "I am changing a description also. Here is a snapshot of share Share1"
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

快照的 UUID。

status

body

字符串

快照状态,可以是 availableerrorcreatingdeletingmanage_startingmanage_errorunmanage_startingunmanage_errorerror_deleting

share_id

body

字符串

用于创建快照的源共享的 UUID。

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

share_proto

body

字符串

共享快照的文件系统协议。有效值为 NFSCIFSGlusterFSHDFSCephFSMAPRFSCephFS 从 API v2.13 开始支持。

share_size

body

整数

共享快照大小,以 GiB 为单位。

size

body

整数

快照大小,以 GiB 为单位。

project_id

body

字符串

快照所属项目的 ID。

版本 2.17 中新增

user_id

body

字符串

创建快照的用户的 ID。

版本 2.17 中新增

响应示例

{
    "snapshot": {
        "status": "available",
        "share_id": "406ea93b-32e9-4907-a117-148b3945749f",
        "name": "snapshot_Share1",
        "user_id": "5c7bdb6eb0504d54a619acf8375c08ce",
        "project_id": "cadd7139bc3148b8973df097c0911016",
        "links": [
            {
                "href": "http://172.18.198.54:8786/v1/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/6d221c1d-0200-461e-8d20-24b4776b9ddb",
                "rel": "self"
            },
            {
                "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/6d221c1d-0200-461e-8d20-24b4776b9ddb",
                "rel": "bookmark"
            }
        ],
        "created_at": "2015-09-07T11:50:39.000000",
        "description": "I am changing a description also. Here is a snapshot of share Share1",
        "share_proto": "NFS",
        "share_size": 1,
        "id": "6d221c1d-0200-461e-8d20-24b4776b9ddb",
        "size": 1
    }
}
DELETE
/v2/snapshots/{snapshot_id}

删除共享快照

删除共享快照。

先决条件

  • 共享快照状态必须为 可用错误

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

snapshot_id

路径

字符串

快照的 UUID。

快照元数据 (自 API v2.73 起)

显示、设置、更新和取消设置快照元数据。

GET
/v2/snapshots/{snapshot_id}/metadata

显示所有快照元数据

在版本 2.73 中添加。

显示快照的所有元数据,以键值对的形式。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

snapshot_id

路径

字符串

快照的 UUID。

响应参数

名称

入参

类型

描述

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

响应示例

{
    "metadata": {
        "project": "my_app",
        "aim": "doc"
    }
}
GET
/v2/snapshots/{snapshot_id}/metadata/{key}

显示快照元数据项

在版本 2.73 中添加。

按键检索快照元数据中的特定元数据项。如果指定的键不代表有效的元数据项,API 将使用 HTTP 404 响应。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

snapshot_id

路径

字符串

快照的 UUID。

key(可选)

路径

字符串

元数据项的键。例如,如果现有共享或访问规则上的元数据如下:"project": "my_test", "aim": "testing",则键为“project”和“aim”。

响应参数

名称

入参

类型

描述

metadata

body

对象

单个元数据键值对。

响应示例

{
    "meta": {
        "project": "my_app"
    }
}
POST
/v2/snapshots/{snapshot_id}/metadata

设置快照元数据

在版本 2.73 中添加。

允许添加新的元数据项作为键值对。此 API 不会删除预先存在的元数据项。如果请求对象包含已存在的元数据项,则它们将使用请求对象中指定的新值进行更新。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

snapshot_id

路径

字符串

快照的 UUID。

metadata

body

对象

一个或多个元数据键值对,以字符串字典的形式。例如,"project": "my_test", "aim": "testing"。共享服务器不尊重区分大小写的键名称。例如,"key": "v1""KEY": "V1" 是等效的。如果您指定这两个键值对,服务器将仅设置并返回 "KEY": "V1" 键值对。

请求示例

{
    "metadata": {
        "aim": "changed_doc",
        "project": "my_app",
        "key1": "value1",
        "new_metadata_key": "new_information",
        "key": "value"
    }
}

响应参数

名称

入参

类型

描述

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

响应示例

{
    "metadata": {
        "aim": "changed_doc",
        "project": "my_app",
        "key1": "value1",
        "new_metadata_key": "new_information",
        "key": "value"
    }
}
PUT
/v2/snapshots/{snapshot_id}/metadata

更新快照元数据

在版本 2.73 中添加。

使用请求对象中指定的元数据(以键值对的形式)替换给定快照的元数据。快照的所有预先存在的元数据将被删除并替换为提供的新元数据。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

snapshot_id

路径

字符串

快照的 UUID。

metadata

body

对象

一个或多个元数据键值对,以字符串字典的形式。例如,"project": "my_test", "aim": "testing"。共享服务器不尊重区分大小写的键名称。例如,"key": "v1""KEY": "V1" 是等效的。如果您指定这两个键值对,服务器将仅设置并返回 "KEY": "V1" 键值对。

请求示例

{
    "metadata": {
        "aim": "changed_doc",
        "project": "my_app",
        "new_metadata_key": "new_information"
    }
}

响应参数

名称

入参

类型

描述

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

响应示例

{
    "metadata": {
        "aim": "changed_doc",
        "project": "my_app",
        "new_metadata_key": "new_information"
    }
}

要删除给定快照上的所有现有元数据项,请求对象需要指定一个空的元数据对象

请求示例

{
    "metadata": null
}

响应示例

{
    "metadata": null
}
DELETE
/v2/snapshots/{snapshot_id}/metadata/{key}

删除快照元数据项

在版本 2.73 中添加。

删除快照元数据中由其键标识的单个元数据项。如果指定的键不代表有效的元数据项,API 将使用 HTTP 404 响应。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

snapshot_id

路径

字符串

快照的 UUID。

key(可选)

路径

字符串

元数据项的键。例如,如果现有共享或访问规则上的元数据如下:"project": "my_test", "aim": "testing",则键为“project”和“aim”。

共享快照实例 (自 API v2.19 起)

共享快照实例是共享快照的内部表示。如果父共享具有多个 实例,则单个快照可以有多个快照实例。当共享被复制或正在迁移时,它可以存在于多个位置,并且每个位置在共享文件系统服务内部称为“实例”。

默认情况下,管理员可以列出、显示有关和显式设置共享快照实例的状态。使用 policy.yaml 文件将这些操作的权限授予其他角色。

GET
/v2/snapshot-instances

列出共享快照实例

在版本 2.19 中添加。

列出所有共享快照实例。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

snapshot_id (可选)

查询

字符串

用于基于快照过滤请求的共享的基本快照的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享快照实例的 UUID。

snapshot_id

body

字符串

快照的 UUID。

status

body

字符串

快照实例状态。有效值为 可用错误创建中删除中删除错误恢复中取消管理开始取消管理错误管理开始管理错误

响应示例

{
    "snapshot_instances": [
        {
            "status": "available",
            "snapshot_id": "d447de19-a6d3-40b3-ae9f-895c86798924",
            "id": "275516e8-c998-4e78-a41e-7dd3a03e71cd"
        }
    ]
}
GET
/v2/snapshot-instances/detail

列出带有详细信息的共享快照实例

在版本 2.19 中添加。

列出带有详细信息的共享快照实例。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

snapshot_id (可选)

查询

字符串

用于基于快照过滤请求的共享的基本快照的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享快照实例的 UUID。

snapshot_id

body

字符串

快照的 UUID。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

status

body

字符串

快照实例状态。有效值为 可用错误创建中删除中删除错误恢复中取消管理开始取消管理错误管理开始管理错误

share_id

路径

字符串

共享的 UUID。

share_instance_id

body

字符串

共享实例的 UUID。

progress

body

字符串

快照创建的进度。

provider_location

body

字符串

后端上快照的提供程序位置。

响应示例

{
    "snapshot_instances": [
        {
            "status": "available",
            "share_id": "618599ab-09a1-432d-973a-c102564c7fec",
            "share_instance_id": "8edff0cb-e5ce-4bab-aa99-afe02ed6a76a",
            "snapshot_id": "d447de19-a6d3-40b3-ae9f-895c86798924",
            "progress": "100%",
            "created_at": "2017-08-04T00:44:52.000000",
            "id": "275516e8-c998-4e78-a41e-7dd3a03e71cd",
            "provider_location": "/path/to/fake/snapshot/snapshot_d447de19_a6d3_40b3_ae9f_895c86798924_275516e8_c998_4e78_a41e_7dd3a03e71cd",
            "updated_at": "2017-08-04T00:44:54.000000"
        }
    ]
}
GET
/v2/snapshot-instances/{snapshot_instance_id}

显示共享快照实例详细信息

在版本 2.19 中添加。

显示共享快照实例的详细信息。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

snapshot_instance_id

路径

字符串

共享快照实例的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享快照实例的 UUID。

snapshot_id

body

字符串

快照的 UUID。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

status

body

字符串

快照实例状态。有效值为 可用错误创建中删除中删除错误恢复中取消管理开始取消管理错误管理开始管理错误

share_id

路径

字符串

共享的 UUID。

share_instance_id

body

字符串

共享实例的 UUID。

progress

body

字符串

快照创建的进度。

provider_location

body

字符串

后端上快照的提供程序位置。

响应示例

{
    "snapshot_instance":
    {
        "status": "available",
        "share_id": "618599ab-09a1-432d-973a-c102564c7fec",
        "share_instance_id": "8edff0cb-e5ce-4bab-aa99-afe02ed6a76a",
        "snapshot_id": "d447de19-a6d3-40b3-ae9f-895c86798924",
        "progress": "100%",
        "created_at": "2017-08-04T00:44:52.000000",
        "id": "275516e8-c998-4e78-a41e-7dd3a03e71cd",
        "provider_location": "/path/to/fake/snapshot/snapshot_d447de19_a6d3_40b3_ae9f_895c86798924_275516e8_c998_4e78_a41e_7dd3a03e71cd",
        "updated_at": "2017-08-04T00:44:54.000000"
    }
}
POST
/v2/snapshot-instances/{snapshot_instance_id}/action

重置共享快照实例状态

在版本 2.19 中添加。

仅限管理员。显式更新共享快照实例的状态。

使用 policy.yaml 文件将此操作的权限授予其他角色。

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

snapshot_instance_id

路径

字符串

共享快照实例的 UUID。

status

body

字符串

快照实例状态。有效值为 可用错误创建中删除中删除错误恢复中取消管理开始取消管理错误管理开始管理错误

请求示例

{
    "reset_status": {
        "status": "available"
    }
}

共享副本 (自 API v2.11 起)

共享副本是现有共享的复制副本。您可以使用共享副本来同步数据,以便每个共享副本都具有相同共享的相同副本。共享复制可以用作灾难恢复解决方案或作为负载共享镜像解决方案。

Manila 支持在不同的存储池之间复制共享。这些池可能位于不同的后端存储系统或在同一后端,具体取决于所选的复制样式、驱动程序的capability 以及后端的配置。为了确保将辅助副本安排到不同的后端,您必须指定 availability_zone 属性。

注意

您可以使用具有指定有效复制样式的额外规范 replication_type 的共享类型来创建支持复制的共享。创建复制的共享后,它始终从 active 副本开始。然后,您可以创建共享的辅助副本。辅助副本可以“提升”以故障转移为 active 副本。

要创建支持复制的共享,共享类型必须指定以下受支持的复制类型之一

  • 可写

    同步复制的共享,所有副本都是可写的。不需要支持提升,因为所有副本都可以同时导出和访问。

  • 可读

    镜像式复制,具有一个主(可写)副本和一个或多个辅助(只读)副本,在提升后可以变为可写。

  • dr(用于灾难恢复)

    通用的复制,辅助副本在提升为活动副本之前无法访问。

重要提示

术语“活动副本”是指主共享。在可写复制样式中,所有副本都是活动的,并且可能没有主共享的区别。在可读和 dr 复制样式中,辅助副本可以称为被动、非活动或简单副本。

POST
/v2/share-replicas

创建共享副本

在版本 2.11 中添加。

为共享创建共享副本。

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

body

字符串

要从中创建共享副本的共享的 UUID。

availability_zone(可选)

body

字符串

可用区。

share_network_id (可选)

body

字符串

共享网络的 UUID。

scheduler_hints(可选)

body

对象

一个或多个 scheduler_hints 键值对,形式为字符串字典。接受的提示是:- only_host:值必须是共享管理器服务主机,格式为 host@backend#POOL(仅限管理员)

在版本 2.67 中新增

请求示例

{
    "share_replica": {
        "share_id": "50a6a566-6bac-475c-ad69-5035c86696c0",
        "availability_zone": "nova",
        "scheduler_hints": {
            "only_host": "host1@generic1#GENERIC1"
        }
    }
}

注意

自 API 版本 2.72 起,添加了参数 share_network_id,该参数之前受支持,但后来在版本 2.51 中被弃用。如果未指定该参数,它将从其父共享继承,并且共享文件系统服务将根据指定的可用区自动选择您的共享副本将放置在哪个共享网络子网。

响应参数

名称

入参

类型

描述

share_id

body

字符串

要从中创建共享副本的共享的 UUID。

status

body

字符串

共享副本的状态。可能的取值列表:可用错误创建中删除中删除错误

cast_rules_to_readonly

body

布尔值

如果共享副本的 cast_rules_to_readonly 属性设置为 True,则所有现有的访问规则都将转换为只读。

2.30 版本新增

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

share_network_id

body

字符串

资源导出到的共享网络 ID。

share_server_id

body

字符串

共享服务器的 UUID。

host

body

字符串

共享副本的主机名。

id

body

字符串

共享副本的 UUID。

replica_state

body

字符串

共享副本的副本状态。可能的取值列表:activein_syncout_of_syncerror

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

响应示例

{
    "share_replica": {
        "status": "creating",
        "share_id": "5043dffd-f033-4248-a315-319ca2bd70c8",
        "availability_zone": null,
        "cast_rules_to_readonly": true,
        "updated_at": null,
        "share_network_id": null,
        "share_server_id": null,
        "host": "",
        "id": "c9f52e33-d780-41d8-89ba-fc06869f465f",
        "replica_state": null,
        "created_at": "2017-08-15T20:21:43.493731"
    }
}
POST
/v2/share-replicas/{share_replica_id}/action

提升共享副本

在版本 2.11 中添加。

将副本提升为 active 副本状态。

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_replica_id

路径

字符串

共享副本的 UUID。

quiesce_wait_time(可选)

body

整数

副本提升期间使用的静默等待时间(秒)。

在版本 2.75 中新增

请求示例

{
    "promote": {
        "quiesce_wait_time": 30
    }
}
POST
/v2/share-replicas/{share_replica_id}/action

重新同步共享副本

在版本 2.11 中添加。

与其 active 镜像重新同步副本。

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_replica_id

路径

字符串

共享副本的 UUID。

请求示例

{
    "resync": null
}
GET
/v2/share-replicas?share_id={share_id}

列出共享副本

在版本 2.11 中添加。

列出共享副本。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

响应参数

名称

入参

类型

描述

share_id

body

字符串

要从中创建共享副本的共享的 UUID。

status

body

字符串

共享副本的状态。可能的取值列表:可用错误创建中删除中删除错误

id

body

字符串

共享副本的 UUID。

replica_state

body

字符串

共享副本的副本状态。可能的取值列表:activein_syncout_of_syncerror

响应示例

{
    "share_replicas": [
        {
            "status": "available",
            "share_id": "5043dffd-f033-4248-a315-319ca2bd70c8",
            "id": "57f5c47a-0216-4ee0-a517-0460d63301a6",
            "replica_state": "active"
        },
        {
            "status": "available",
            "share_id": "5043dffd-f033-4248-a315-319ca2bd70c8",
            "id": "c9f52e33-d780-41d8-89ba-fc06869f465f",
            "replica_state": "in_sync"
        }
    ]
}
GET
/v2/share-replicas/detail?share_id={share_id}

列出共享副本的详细信息

在版本 2.11 中添加。

列出共享副本的详细信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id (可选)

查询

字符串

用于过滤共享副本的共享 ID。

响应参数

名称

入参

类型

描述

share_id

body

字符串

要从中创建共享副本的共享的 UUID。

status

body

字符串

共享副本的状态。可能的取值列表:可用错误创建中删除中删除错误

cast_rules_to_readonly

body

布尔值

如果共享副本的 cast_rules_to_readonly 属性设置为 True,则所有现有的访问规则都将转换为只读。

2.30 版本新增

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

share_network_id

body

字符串

资源导出到的共享网络 ID。

share_server_id

body

字符串

共享服务器的 UUID。

host

body

字符串

共享副本的主机名。

id

body

字符串

共享副本的 UUID。

replica_state

body

字符串

共享副本的副本状态。可能的取值列表:activein_syncout_of_syncerror

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

响应示例

{
    "share_replicas": [
        {
            "status": "available",
            "share_id": "5043dffd-f033-4248-a315-319ca2bd70c8",
            "availability_zone": "nova",
            "cast_rules_to_readonly": false,
            "updated_at": "2017-08-15T20:20:50.000000",
            "share_network_id": null,
            "share_server_id": null,
            "host": "ubuntu@generic3#fake_pool_for_DummyDriver",
            "id": "57f5c47a-0216-4ee0-a517-0460d63301a6",
            "replica_state": "active",
            "created_at": "2017-08-15T20:20:45.000000"
        },
        {
            "status": "available",
            "share_id": "5043dffd-f033-4248-a315-319ca2bd70c8",
            "availability_zone": "nova",
            "cast_rules_to_readonly": true,
            "updated_at": "2017-08-15T20:21:49.000000",
            "share_network_id": null,
            "share_server_id": null,
            "host": "ubuntu@generic2#fake_pool_for_DummyDriver",
            "id": "c9f52e33-d780-41d8-89ba-fc06869f465f",
            "replica_state": "in_sync",
            "created_at": "2017-08-15T20:21:43.000000"
        }
    ]
}
GET
/v2/share-replicas/{share_replica_id}

显示共享副本

在版本 2.11 中添加。

显示一个共享副本。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_replica_id

路径

字符串

共享副本的 UUID。

响应参数

名称

入参

类型

描述

share_id

body

字符串

要从中创建共享副本的共享的 UUID。

status

body

字符串

共享副本的状态。可能的取值列表:可用错误创建中删除中删除错误

cast_rules_to_readonly

body

布尔值

如果共享副本的 cast_rules_to_readonly 属性设置为 True,则所有现有的访问规则都将转换为只读。

2.30 版本新增

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

share_network_id

body

字符串

资源导出到的共享网络 ID。

share_server_id

body

字符串

共享服务器的 UUID。

host

body

字符串

共享副本的主机名。

id

body

字符串

共享副本的 UUID。

replica_state

body

字符串

共享副本的副本状态。可能的取值列表:activein_syncout_of_syncerror

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

响应示例

{
    "share_replica": {
         "status": "available",
         "share_id": "5043dffd-f033-4248-a315-319ca2bd70c8",
         "availability_zone": "nova",
         "cast_rules_to_readonly": false,
         "updated_at": "2017-08-15T20:20:50.000000",
         "share_network_id": null,
         "share_server_id": null,
         "host": "ubuntu@generic3#fake_pool_for_DummyDriver",
         "id": "57f5c47a-0216-4ee0-a517-0460d63301a6",
         "replica_state": "active",
         "created_at": "2017-08-15T20:20:45.000000"
    }
}
POST
/v2/share-replicas/{share_replica_id}/action

重置共享副本的状态

在版本 2.11 中添加。

仅限管理员。显式更新共享副本的 status

使用 policy.yaml 文件将此操作的权限授予其他角色。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_replica_id

路径

字符串

共享副本的 UUID。

reset_status

body

对象

reset_status 对象。

status

body

字符串

共享副本的状态。可能的取值列表:可用错误创建中删除中删除错误

请求示例

{
    "reset_status": {
        "status": "available"
    }
}
POST
/v2/share-replicas/{share_replica_id}/action

重置共享副本的 replica_state

在版本 2.11 中添加。

仅限管理员。显式更新共享副本的 replica state

使用 policy.yaml 文件将此操作的权限授予其他角色。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_replica_id

路径

字符串

共享副本的 UUID。

reset_replica_state

body

对象

包含 reset_replica_state 对象的请求。

replica_state

body

字符串

共享副本的副本状态。可能的取值列表:activein_syncout_of_syncerror

请求示例

{
    "reset_replica_state": {
        "replica_state": "out_of_sync"
    }
}
DELETE
/v2/share-replicas/{share_replica_id}

删除共享副本

在版本 2.11 中添加。

删除一个共享副本。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

注意

无法使用此 API 删除活动副本。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_replica_id

路径

字符串

共享副本的 UUID。

POST
/v2/share-replicas/{share_replica_id}/action

强制删除共享副本

在版本 2.11 中添加。

仅限管理员。强制删除处于任何状态的共享副本。

使用 policy.yaml 文件将此操作的权限授予其他角色。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

注意

无法使用此 API 删除活动副本。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_replica_id

路径

字符串

共享副本的 UUID。

force_delete

body

字符串

要强制删除共享副本,请将此值设置为 null。与删除操作不同,强制删除操作会忽略共享副本状态。

请求示例

{
    "force_delete": null
}

共享副本导出位置(API v2.47 起)

用于查看共享副本导出位置的 API 集合。

GET
/v2/share-replicas/{share_replica_id}/export-locations

列出导出位置

在版本 2.47 中添加。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_replica_id

路径

字符串

共享副本的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享导出位置 UUID。

share_instance_id

body

字符串

此导出位置所属的共享实例的 UUID。此参数仅对具有“管理员”角色的用户可用,并且不能通过 policy.yaml 控制。

路径

body

字符串

用于挂载操作的导出位置路径。

is_admin_only

body

布尔值

定义导出位置的目的。如果设置为 true,则预计它将仅由服务需求和管理员使用。如果设置为 false,则此导出位置可供最终用户使用。此参数仅对具有“管理员”角色的用户可用,并且不能通过 policy.json 控制。

preferred

body

布尔值

驱动程序可以使用此字段来识别最有效的导出位置,并且客户端应优先使用这些导出位置。默认设置为 false 值。

availability_zone

body

字符串

导出位置所属的可用区名称。

replica_state

body

字符串

共享副本的副本状态。可能的取值列表:activein_syncout_of_syncerror

响应示例

{
    "export_locations": [
        {
            "path": "10.254.0.3:/shares/share-e1c2d35e-fe67-4028-ad7a-45f668732b1d",
            "share_instance_id": "e1c2d35e-fe67-4028-ad7a-45f668732b1d",
            "is_admin_only": false,
            "id": "b6bd76ce-12a2-42a9-a30a-8a43b503867d",
            "preferred": false,
            "replica_state": "in_sync",
            "availability_zone": "paris"
        },
        {
            "path": "10.0.0.3:/shares/share-e1c2d35e-fe67-4028-ad7a-45f668732b1d",
            "share_instance_id": "e1c2d35e-fe67-4028-ad7a-45f668732b1d",
            "is_admin_only": true,
            "id": "6921e862-88bc-49a5-a2df-efeed9acd583",
            "preferred": false,
            "replica_state": "in_sync",
            "availability_zone": "paris"
        }
    ]
}
GET
/v2/share-replicas/{share_replica_id}/export-locations/{export-location-id}

显示单个导出位置

在版本 2.47 中添加。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_replica_id

路径

字符串

共享副本的 UUID。

export_location_id

路径

字符串

导出位置的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享导出位置 UUID。

share_instance_id

body

字符串

此导出位置所属的共享实例的 UUID。此参数仅对具有“管理员”角色的用户可用,并且不能通过 policy.yaml 控制。

路径

body

字符串

用于挂载操作的导出位置路径。

is_admin_only

body

布尔值

定义导出位置的目的。如果设置为 true,则预计它将仅由服务需求和管理员使用。如果设置为 false,则此导出位置可供最终用户使用。此参数仅对具有“管理员”角色的用户可用,并且不能通过 policy.json 控制。

preferred

body

布尔值

驱动程序可以使用此字段来识别最有效的导出位置,并且客户端应优先使用这些导出位置。默认设置为 false 值。

availability_zone

body

字符串

导出位置所属的可用区名称。

replica_state

body

字符串

共享副本的副本状态。可能的取值列表:activein_syncout_of_syncerror

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

响应示例

{
    "export_location": {
        "created_at": "2016-03-24T14:20:47.000000",
        "updated_at": "2016-03-24T14:20:47.000000",
        "preferred": false,
        "is_admin_only": true,
        "share_instance_id": "e1c2d35e-fe67-4028-ad7a-45f668732b1d",
        "path": "10.0.0.3:/shares/share-e1c2d35e-fe67-4028-ad7a-45f668732b1d",
        "id": "6921e862-88bc-49a5-a2df-efeed9acd583",
        "replica_state": "in_sync",
        "availability_zone": "paris"
    }
}

共享网络

共享网络资源存储网络信息,用于创建和管理共享服务器。使用共享网络创建的共享在这些网络上导出,借助共享服务器。

您可以创建、更新、查看和删除共享网络。

创建共享网络时,可以选择性地指定关联的 neutron 网络和子网。

有关共享网络支持的插件的更多信息,请参阅 Manila 网络插件

共享网络资源具有以下属性

  • 用于分配网络的无类别域间路由 (CIDR) 表示法中的 IP 块。

  • 网络的 IP 版本。

  • 网络类型,可以是 vlanvxlangreflat

  • 如果网络使用分段,则为分段标识符。例如,VLAN、VXLAN 和 GRE 网络使用分段。

共享网络资源还可以具有用户定义的名称和描述。

注意

从 API 版本 2.51 开始,允许共享网络跨越多个子网,并且字段 neutron_net_idneutron_subnet_idnetwork_typecidrip_versiongatewaysegmentation_idmtu 已从共享网络移动到子网。共享网络子网还包含一个名为 availability_zone 的属性。

GET
/v2/share-networks

列出共享网络

列出所有共享网络。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

all_tenants (可选)

查询

布尔值

(仅限管理员)。定义是否为所有项目列出请求的资源。设置为 1 以列出所有项目的资源。设置为 0 以仅列出当前项目的资源。资源示例包括共享、快照、共享网络、安全服务和共享组。

name~ (可选)

查询

字符串

可用于过滤共享、共享快照、共享网络、传输或共享组的名称模式。

版本 2.36 中新增

description~ (可选)

查询

字符串

可用于过滤共享、共享快照、共享网络或共享组的描述模式。

版本 2.36 中新增

name (可选)

查询

字符串

用于按资源名称过滤资源的由用户定义名称。

description(可选)

查询

字符串

可用于筛选资源的、用户定义的描述文本。

created_since (可选)

查询

字符串

搜索在指定日期之后创建的资源列表。日期格式为“yyyy-mm-dd”。

created_before (可选)

查询

字符串

搜索在指定日期之前创建的资源列表。日期格式为“yyyy-mm-dd”。

security_service_id (可选)

查询

字符串

用于过滤共享网络的安全性服务 ID。

nova_net_id (可选)

查询

字符串

用于过滤共享网络的 Nova 网络 ID。

直到版本 2.26 可用

neutron_net_id (可选)

查询

字符串

用于过滤共享网络的 neutron 网络 ID。

neutron_subnet_id (可选)

查询

字符串

用于过滤共享网络的 neutron 网络子网 ID。

network_type (可选)

查询

字符串

用于过滤共享网络的网络类型。

segmentation_id (可选)

查询

字符串

用于过滤共享网络的分割 ID。

cidr (可选)

查询

字符串

用于过滤共享网络的 CIDR。

ip_version (可选)

查询

字符串

用于过滤共享网络的 IP 版本。

offset (可选)

查询

整数

用于定义资源列表起点的偏移量。

limit (可选)

查询

整数

要返回的最大资源记录数。

响应参数

名称

入参

类型

描述

id

body

字符串

共享网络资源的 UUID。

name

body

字符串

资源的由用户定义的名称。

响应示例

{
    "share_networks": [
        {
            "id": "32763294-e3d4-456a-998d-60047677c2fb",
            "name": "net_my1"
        },
        {
            "id": "713df749-aac0-4a54-af52-10f6c991e80c",
            "name": "net_my"
        },
        {
            "id": "fa158a3d-6d9f-4187-9ca5-abbb82646eb2",
            "name": null
        }
    ]
}
GET
/v2/share-networks/detail

列出共享网络的详细信息

列出所有共享网络的详细信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

all_tenants (可选)

查询

布尔值

(仅限管理员)。定义是否为所有项目列出请求的资源。设置为 1 以列出所有项目的资源。设置为 0 以仅列出当前项目的资源。资源示例包括共享、快照、共享网络、安全服务和共享组。

name~ (可选)

查询

字符串

可用于过滤共享、共享快照、共享网络、传输或共享组的名称模式。

版本 2.36 中新增

description~ (可选)

查询

字符串

可用于过滤共享、共享快照、共享网络或共享组的描述模式。

版本 2.36 中新增

created_since (可选)

查询

字符串

搜索在指定日期之后创建的资源列表。日期格式为“yyyy-mm-dd”。

created_before (可选)

查询

字符串

搜索在指定日期之前创建的资源列表。日期格式为“yyyy-mm-dd”。

nova_net_id (可选)

查询

字符串

用于过滤共享网络的 Nova 网络 ID。

直到版本 2.26 可用

neutron_net_id (可选)

查询

字符串

用于过滤共享网络的 neutron 网络 ID。

neutron_subnet_id (可选)

查询

字符串

用于过滤共享网络的 neutron 网络子网 ID。

network_type (可选)

查询

字符串

用于过滤共享网络的网络类型。

segmentation_id (可选)

查询

字符串

用于过滤共享网络的分割 ID。

cidr (可选)

查询

字符串

用于过滤共享网络的 CIDR。

ip_version (可选)

查询

字符串

用于过滤共享网络的 IP 版本。

offset (可选)

查询

整数

用于定义资源列表起点的偏移量。

limit (可选)

查询

整数

要返回的最大资源记录数。

security_service_id (可选)

查询

字符串

用于过滤共享网络的安全性服务 ID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享网络资源的 UUID。

project_id

body

字符串

拥有资源的项目的 ID。

neutron_net_id

body

字符串

neutron 网络 ID。

直到版本 2.50 可用

neutron_subnet_id

body

字符串

neutron 子网 ID。

直到版本 2.50 可用

network_type

body

字符串

网络类型。有效值为 VLANVXLANGREflat。此参数由网络提供程序自动设置。

直到版本 2.50 可用

segmentation_id

body

整数

分割 ID。此参数由网络提供程序自动设置。对于 VLAN,此值为 1 到 4094 之间的整数。对于 VXLAN,此值为 1 到 16777215 之间的整数。对于 GRE,此值为 1 到 4294967295 之间的整数。

直到版本 2.50 可用

cidr

body

字符串

用于分配网络的 IP 块,采用 CIDR 表示法。例如,172.16.0.0/242001:DB8::/64。此参数由网络提供程序自动设置。

直到版本 2.50 可用

ip_version

body

整数

网络的 IP 版本。有效值为 46。此参数由网络提供程序自动设置。

直到版本 2.50 可用

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

gateway

body

字符串

共享网络的网关。

新增于版本 2.18

直到版本 2.50 可用

mtu

body

整数

共享网络的 MTU 值。

新增于版本 2.20

直到版本 2.50 可用

share_network_subnets

body

数组

与相关共享网络相关的共享网络子网列表。

新增于版本 2.51

security_service_update_support

body

布尔值

是否支持在共享网络正在使用时更新其安全性服务。

新增于版本 2.63

status

body

字符串

共享网络的的状态。可能的值为:activeerrornetwork_change

新增于版本 2.63

响应示例

{
    "share_networks": [
        {
            "name": "net_my1",
            "segmentation_id": null,
            "created_at": "2015-09-04T14:57:13.000000",
            "neutron_subnet_id": "53482b62-2c84-4a53-b6ab-30d9d9800d06",
            "updated_at": null,
            "id": "32763294-e3d4-456a-998d-60047677c2fb",
            "neutron_net_id": "998b42ee-2cee-4d36-8b95-67b5ca1f2109",
            "ip_version": null,
            "cidr": null,
            "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
            "network_type": null,
            "description": "descr",
            "gateway": null,
            "mtu": null
        },
        {
            "name": "net_my",
            "segmentation_id": null,
            "created_at": "2015-09-04T14:54:25.000000",
            "neutron_subnet_id": "53482b62-2c84-4a53-b6ab-30d9d9800d06",
            "updated_at": null,
            "id": "713df749-aac0-4a54-af52-10f6c991e80c",
            "neutron_net_id": "998b42ee-2cee-4d36-8b95-67b5ca1f2109",
            "ip_version": null,
            "cidr": null,
            "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
            "network_type": null,
            "description": "desecr",
            "gateway": null,
            "mtu": null
        },
        {
            "name": null,
            "segmentation_id": null,
            "created_at": "2015-09-04T14:51:41.000000",
            "neutron_subnet_id": null,
            "updated_at": null,
            "id": "fa158a3d-6d9f-4187-9ca5-abbb82646eb2",
            "neutron_net_id": null,
            "ip_version": null,
            "cidr": null,
            "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
            "network_type": null,
            "description": null,
            "gateway": null,
            "mtu": null
        }
    ]
}

注意

从 API 版本 2.51 开始,共享网络可以跨越多个子网,因此在创建共享网络时,共享文件系统服务将自动创建一个新的子网并将其附加到共享网络。

{
    "share_networks": [
        {
            "id": "03987b5f-cb79-4f5f-a590-f6936b91b49e",
            "name": "net_my1",
            "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
            "created_at": "2019-10-02T12:33:36.000000",
            "updated_at": null,
            "description": null,
            "share_network_subnets": [
                {
                    "id": "022aa495-845e-42a6-9d83-a38f164053c9",
                    "availability_zone": null,
                    "created_at": "2019-10-02T12:33:36.000000",
                    "updated_at": null,
                    "segmentation_id": null,
                    "neutron_net_id": "f00732aa-7721-455d-ba14-ec37619ea13f",
                    "neutron_subnet_id": "eb7adcf8-ce71-43e3-b4c2-cf81da9f89a",
                    "ip_version": null,
                    "cidr": null,
                    "network_type": null,
                    "mtu": null,
                    "gateway": null
                }
            ]
        },
        {
            "id": "1324e7d3-fba8-45e4-bb37-b59c12eb06dc",
            "name": "net_my2",
            "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
            "created_at": "2019-07-01T17:49:43.000000",
            "updated_at": "2019-07-02T12:17:39.000000",
            "description": null,
            "share_network_subnets": [
                {
                    "id": "8ebe964d-ac48-4e43-93ed-b1768148f8f4",
                    "availability_zone": "manila-zone-0",
                    "created_at": "2019-10-03T02:25:12.000000",
                    "updated_at": null,
                    "segmentation_id": null,
                    "neutron_net_id": "62187648-6617-4509-a780-ffc973a7fe43",
                    "neutron_subnet_id": "2276888a-27c1-47c2-82a0-ea3050128b5",
                    "ip_version": null,
                    "cidr": null,
                    "network_type": null,
                    "mtu": null,
                    "gateway": null
                },
                {
                    "id": "e4db03dc-6041-4c6a-a8f9-80bb4141a1eb",
                    "availability_zone": null,
                    "created_at": "2019-07-01T17:49:43.000000",
                    "updated_at": "2019-07-02T12:17:39.000000",
                    "segmentation_id": null,
                    "neutron_net_id": "62187648-6617-4509-a780-ffc973a7fe43",
                    "neutron_subnet_id": "2276888a-27c1-47c2-820-ea33050128b5",
                    "ip_version": 4,
                    "cidr": "172.24.5.0/24",
                    "network_type": "flat",
                    "mtu": 1500,
                    "gateway": "172.24.5.1"
                }
            ]
        }
    ]
}
GET
/v2/share-networks/{share_network_id}

显示共享网络详细信息

显示共享网络的详细信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_network_id

路径

字符串

共享网络的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享网络资源的 UUID。

project_id

body

字符串

拥有资源的项目的 ID。

neutron_net_id

body

字符串

neutron 网络 ID。

直到版本 2.50 可用

neutron_subnet_id

body

字符串

neutron 子网 ID。

直到版本 2.50 可用

network_type

body

字符串

网络类型。有效值为 VLANVXLANGREflat。此参数由网络提供程序自动设置。

直到版本 2.50 可用

segmentation_id

body

整数

分割 ID。此参数由网络提供程序自动设置。对于 VLAN,此值为 1 到 4094 之间的整数。对于 VXLAN,此值为 1 到 16777215 之间的整数。对于 GRE,此值为 1 到 4294967295 之间的整数。

直到版本 2.50 可用

cidr

body

字符串

用于分配网络的 IP 块,采用 CIDR 表示法。例如,172.16.0.0/242001:DB8::/64。此参数由网络提供程序自动设置。

直到版本 2.50 可用

ip_version

body

整数

网络的 IP 版本。有效值为 46。此参数由网络提供程序自动设置。

直到版本 2.50 可用

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

gateway

body

字符串

共享网络的网关。

新增于版本 2.18

直到版本 2.50 可用

mtu

body

整数

共享网络的 MTU 值。

新增于版本 2.20

直到版本 2.50 可用

share_network_subnets

body

数组

与相关共享网络相关的共享网络子网列表。

新增于版本 2.51

security_service_update_support

body

布尔值

是否支持在共享网络正在使用时更新其安全性服务。

新增于版本 2.63

status

body

字符串

共享网络的的状态。可能的值为:activeerrornetwork_change

新增于版本 2.63

响应示例

{
    "share_network": {
        "name": "net_my1",
        "segmentation_id": null,
        "created_at": "2015-09-04T14:56:45.000000",
        "neutron_subnet_id": "53482b62-2c84-4a53-b6ab-30d9d9800d06",
        "updated_at": null,
        "id": "7f950b52-6141-4a08-bbb5-bb7ffa3ea5fd",
        "neutron_net_id": "998b42ee-2cee-4d36-8b95-67b5ca1f2109",
        "ip_version": null,
        "cidr": null,
        "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "network_type": null,
        "description": "descr",
        "gateway": null,
        "mtu": null,
        "security_service_update_support": true,
        "status": "active"
    }
}

注意

从 API 版本 2.51 开始,共享网络可以跨越多个子网,因此在创建共享网络时,共享文件系统服务将自动创建一个新的子网并将其附加到共享网络。

{
    "share_network": {
        "id": "1324e7d3-fba8-45e4-bb37-b59c12eb06dc",
        "name": "net_my1",
        "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "created_at": "2019-10-02T17:49:43.000000",
        "description": null,
        "security_service_update_support": true,
        "status": "active",
        "share_network_subnets": [
            {
                "id": "e4db03dc-6041-4c6a-a8f9-80bb4141a1eb",
                "availability_zone": null,
                "created_at": "2019-10-02T17:49:43.000000",
                "updated_at": "2019-10-03T12:17:39.000000",
                "segmentation_id": null,
                "neutron_net_id": "62187648-6617-4509-a780-ffc973a7fe43",
                "neutron_subnet_id": "2276888a-27c1-47c2-82a0-ea33050128b5",
                "ip_version": 4,
                "cidr": "172.24.5.0/24",
                "network_type": "flat",
                "mtu": 1500,
                "gateway": "172.24.5.1"
            }
        ]
    }
}
POST
/v2/share-networks

创建共享网络

创建共享网络。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

413 - 请求实体过大

无法完成此操作。

422 - 无法处理的实体

请求的实体格式无法被请求的资源以该方法处理。

500 - 内部服务器错误

服务出现问题,导致无法满足请求。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

neutron_net_id (可选)

body

字符串

在设置或更新使用 neutron 的共享网络子网时,neutron 网络的 UUID。指定一个 neutron 网络及其所属的 neutron 子网。

neutron_subnet_id (可选)

body

字符串

在设置或更新使用 neutron 的共享网络子网时,neutron 子网的 UUID。指定一个 neutron 网络及其所属的 neutron 子网。

name (可选)

body

字符串

用户定义的资源名称。该字段的值限制为 255 个字符。

description(可选)

body

字符串

用户定义的资源描述。该字段的值限制为 255 个字符。

availability_zone(可选)

body

字符串

共享网络子网的可用区 UUID。

新增于版本 2.51

请求示例

{
    "share_network": {
        "neutron_net_id": "998b42ee-2cee-4d36-8b95-67b5ca1f2109",
        "neutron_subnet_id": "53482b62-2c84-4a53-b6ab-30d9d9800d06",
        "name": "my_network",
        "description": "This is my share network",
        "availability_zone": "manila-zone-0"
    }
}

注意

从 API 版本 2.51 开始,可以在共享网络创建请求中指定 availability_zone。如果您未指定可用区,则此字段将设置为 null,并且创建的子网将由共享文件系统服务视为 default 子网。您每个共享网络只能有一个默认子网。如果您尝试在已经具有默认子网的共享网络中创建另一个默认子网,共享文件系统服务将拒绝该操作。

响应参数

名称

入参

类型

描述

id

body

字符串

共享网络资源的 UUID。

project_id

body

字符串

拥有资源的项目的 ID。

neutron_net_id

body

字符串

neutron 网络 ID。

直到版本 2.50 可用

neutron_subnet_id

body

字符串

neutron 子网 ID。

直到版本 2.50 可用

network_type

body

字符串

网络类型。有效值为 VLANVXLANGREflat。此参数由网络提供程序自动设置。

直到版本 2.50 可用

segmentation_id

body

整数

分割 ID。此参数由网络提供程序自动设置。对于 VLAN,此值为 1 到 4094 之间的整数。对于 VXLAN,此值为 1 到 16777215 之间的整数。对于 GRE,此值为 1 到 4294967295 之间的整数。

直到版本 2.50 可用

cidr

body

字符串

用于分配网络的 IP 块,采用 CIDR 表示法。例如,172.16.0.0/242001:DB8::/64。此参数由网络提供程序自动设置。

直到版本 2.50 可用

ip_version

body

整数

网络的 IP 版本。有效值为 46。此参数由网络提供程序自动设置。

直到版本 2.50 可用

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

gateway

body

字符串

共享网络的网关。

新增于版本 2.18

直到版本 2.50 可用

mtu

body

整数

共享网络的 MTU 值。

新增于版本 2.20

直到版本 2.50 可用

share_network_subnets

body

数组

与相关共享网络相关的共享网络子网列表。

新增于版本 2.51

security_service_update_support

body

布尔值

是否支持在共享网络正在使用时更新其安全性服务。

新增于版本 2.63

status

body

字符串

共享网络的的状态。可能的值为:activeerrornetwork_change

新增于版本 2.63

响应示例

{
    "share_network": {
        "name": "my_network",
        "segmentation_id": null,
        "created_at": "2015-09-07T14:37:00.583656",
        "neutron_subnet_id": "53482b62-2c84-4a53-b6ab-30d9d9800d06",
        "updated_at": null,
        "id": "77eb3421-4549-4789-ac39-0d5185d68c29",
        "neutron_net_id": "998b42ee-2cee-4d36-8b95-67b5ca1f2109",
        "ip_version": null,
        "cidr": null,
        "project_id": "e10a683c20da41248cfd5e1ab3d88c62",
        "network_type": null,
        "description": "This is my share network",
        "gateway": null,
        "mtu": null,
        "security_service_update_support": true,
        "status": "active"
    }
}

注意

从 API 版本 2.51 开始,共享网络能够跨越多个子网,因此在创建共享网络时,共享文件系统服务将自动创建一个新的子网并将其附加到共享网络。

{
    "share_network": {
        "name": "my_network",
        "created_at": "2019-09-07T14:37:00.583656",
        "updated_at": null,
        "id": "77eb3421-4549-4789-ac39-0d5185d68c29",
        "project_id": "e10a683c20da41248cfd5e1ab3d88c62",
        "description": "This is my share network",
        "security_service_update_support": true,
        "status": "active",
        "share_network_subnets": [
            {
                "id": "91cc63b5-6c61-4078-b054-560923709654",
                "availability_zone": "manila-zone-0",
                "created_at": "2019-10-04T20:49:11.000000",
                "updated_at": null,
                "segmentation_id": null,
                "neutron_net_id": "998b42ee-2cee-4d36-8b95-67b5ca1f2109",
                "neutron_subnet_id": "53482b62-2c84-4a53-b6ab-30d9d9800d06",
                "ip_version": null,
                "cidr": null,
                "network_type": null,
                "mtu": null,
                "gateway": null
            }
        ]
    }
}
POST
/v2/share-networks/{share_network_id}/action

将安全性服务添加到共享网络

将安全性服务添加到共享网络。

注意

从 API 版本 2.63 开始,manila 允许在共享后端支持的情况下,将安全性服务添加到正在使用的共享网络。在请求将安全性服务添加到正在使用的共享网络之前,请确保使用 检查添加 API

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id

body

字符串

拥有资源的项目的 ID。

share_network_id

路径

字符串

共享网络的 UUID。

security_service_id

body

字符串

安全性服务 ID。

请求示例

{
    "add_security_service": {
        "security_service_id": "3c829734-0679-4c17-9637-801da48c0d5f"
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

共享网络资源的 UUID。

project_id

body

字符串

拥有资源的项目的 ID。

neutron_net_id

body

字符串

neutron 网络 ID。

直到版本 2.50 可用

neutron_subnet_id

body

字符串

neutron 子网 ID。

直到版本 2.50 可用

network_type

body

字符串

网络类型。有效值为 VLANVXLANGREflat。此参数由网络提供程序自动设置。

直到版本 2.50 可用

segmentation_id

body

整数

分割 ID。此参数由网络提供程序自动设置。对于 VLAN,此值为 1 到 4094 之间的整数。对于 VXLAN,此值为 1 到 16777215 之间的整数。对于 GRE,此值为 1 到 4294967295 之间的整数。

直到版本 2.50 可用

cidr

body

字符串

用于分配网络的 IP 块,采用 CIDR 表示法。例如,172.16.0.0/242001:DB8::/64。此参数由网络提供程序自动设置。

直到版本 2.50 可用

ip_version

body

整数

网络的 IP 版本。有效值为 46。此参数由网络提供程序自动设置。

直到版本 2.50 可用

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

gateway

body

字符串

共享网络的网关。

新增于版本 2.18

直到版本 2.50 可用

mtu

body

整数

共享网络的 MTU 值。

新增于版本 2.20

直到版本 2.50 可用

share_network_subnets

body

数组

与相关共享网络相关的共享网络子网列表。

新增于版本 2.51

security_service_update_support

body

布尔值

是否支持在共享网络正在使用时更新其安全性服务。

新增于版本 2.63

status

body

字符串

共享网络的的状态。可能的值为:activeerrornetwork_change

新增于版本 2.63

响应示例

{
    "share_network": {
        "name": "net2",
        "segmentation_id": null,
        "created_at": "2015-09-07T12:31:12.000000",
        "neutron_subnet_id": null,
        "updated_at": null,
        "id": "d8ae6799-2567-4a89-aafb-fa4424350d2b",
        "neutron_net_id": null,
        "ip_version": null,
        "cidr": null,
        "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "network_type": null,
        "description": null,
        "gateway": null,
        "mtu": null,
        "security_service_update_support": true,
        "status": "active"
    }
}

注意

从 API 版本 2.51 开始,共享网络可以跨越多个子网,因此在创建共享网络时,共享文件系统服务将自动创建一个新的子网并将其附加到共享网络。

{
    "share_network": {
        "name": "net2",
        "created_at": "2019-11-10T12:31:12.000000",
        "updated_at": null,
        "id": "d8ae6799-2567-4a89-aafb-fa4424350d2b",
        "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "description": null,
        "share_network_subnets": [
            {
                "id": "e4db03dc-6041-4c6a-a8f9-80bb4141a1eb",
                "availability_zone": null,
                "created_at": "2019-11-10T12:31:12.000000",
                "updated_at": "2019-11-10T12:31:12.000000",
                "segmentation_id": null,
                "neutron_net_id": "62187648-6617-4509-a780-ffc973a7fe43",
                "neutron_subnet_id": "2276888a-27c1-47c2-82a0-ea33050128b5",
                "ip_version": 4,
                "cidr": "172.24.5.0/24",
                "network_type": "flat",
                "mtu": 1500,
                "gateway": "172.24.5.1"
            }
        ]
    }
}
POST
/v2/share-networks/{share_network_id}/action

从共享网络中删除安全性服务

从共享网络中删除安全性服务。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_network_id

路径

字符串

共享网络的 UUID。

security_service_id

body

字符串

要从共享网络中删除的安全服务的 UUID。有关详细信息,请参阅安全服务部分。

请求示例

{
    "remove_security_service": {
        "security_service_id": "3c829734-0679-4c17-9637-801da48c0d5f"
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

共享网络资源的 UUID。

project_id

body

字符串

拥有资源的项目的 ID。

neutron_net_id

body

字符串

neutron 网络 ID。

直到版本 2.50 可用

neutron_subnet_id

body

字符串

neutron 子网 ID。

直到版本 2.50 可用

network_type

body

字符串

网络类型。有效值为 VLANVXLANGREflat。此参数由网络提供程序自动设置。

直到版本 2.50 可用

segmentation_id

body

整数

分割 ID。此参数由网络提供程序自动设置。对于 VLAN,此值为 1 到 4094 之间的整数。对于 VXLAN,此值为 1 到 16777215 之间的整数。对于 GRE,此值为 1 到 4294967295 之间的整数。

直到版本 2.50 可用

cidr

body

字符串

用于分配网络的 IP 块,采用 CIDR 表示法。例如,172.16.0.0/242001:DB8::/64。此参数由网络提供程序自动设置。

直到版本 2.50 可用

ip_version

body

整数

网络的 IP 版本。有效值为 46。此参数由网络提供程序自动设置。

直到版本 2.50 可用

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

gateway

body

字符串

共享网络的网关。

新增于版本 2.18

直到版本 2.50 可用

mtu

body

整数

共享网络的 MTU 值。

新增于版本 2.20

直到版本 2.50 可用

security_service_update_support

body

布尔值

是否支持在共享网络正在使用时更新其安全性服务。

新增于版本 2.63

status

body

字符串

共享网络的的状态。可能的值为:activeerrornetwork_change

新增于版本 2.63

响应示例

{
    "share_network": {
        "name": "net2",
        "segmentation_id": null,
        "created_at": "2015-09-07T12:31:12.000000",
        "neutron_subnet_id": null,
        "updated_at": null,
        "id": "d8ae6799-2567-4a89-aafb-fa4424350d2b",
        "neutron_net_id": null,
        "ip_version": null,
        "cidr": null,
        "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "network_type": null,
        "description": null,
        "gateway": null,
        "mtu": null,
        "security_service_update_support": true,
        "status": "active"
    }
}

注意

从 API 版本 2.51 开始,共享网络可以跨越多个子网,因此在创建共享网络时,共享文件系统服务将自动创建一个新的子网并将其附加到共享网络。

{
    "share_network": {
        "name": "net2",
        "created_at": "2019-11-07T12:31:12.000000",
        "updated_at": null,
        "id": "d8ae6799-2567-4a89-aafb-fa4424350d2b",
        "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "description": null,
        "security_service_update_support": true,
        "status": "active",
        "share_network_subnets": [
            {
                "id": "e4db03dc-6041-4c6a-a8f9-80bb4141a1eb",
                "availability_zone": null,
                "created_at": "2019-11-07T12:31:12.000000",
                "updated_at": "2019-12-12T12:31:12.000000",
                "segmentation_id": null,
                "neutron_net_id": "62187648-6617-4509-a780-ffc973a7fe43",
                "neutron_subnet_id": "2276888a-27c1-47c2-82a0-ea33050128b5",
                "ip_version": 4,
                "cidr": "172.24.5.0/24",
                "network_type": "flat",
                "mtu": 1500,
                "gateway": "172.24.5.1"
            }
        ]
    }
}
PUT
/v2/share-networks/{share_network_id}

更新共享网络

更新一个共享网络。

请注意,如果共享网络被任何共享服务器使用,您只能更新 namedescription 属性。

注意

自 API 版本 2.51 起,只能更新默认子网的 neutron_net_idneutron_subnet_id

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

422 - 无法处理的实体

请求的实体格式无法被请求的资源以该方法处理。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_network_id

路径

字符串

共享网络的 UUID。

name (可选)

body

字符串

用户定义的资源名称。该字段的值限制为 255 个字符。

description(可选)

body

字符串

用户定义的资源描述。该字段的值限制为 255 个字符。

neutron_net_id (可选)

body

字符串

在设置或更新使用 neutron 的共享网络子网时,neutron 网络的 UUID。指定一个 neutron 网络及其所属的 neutron 子网。

neutron_subnet_id (可选)

body

字符串

在设置或更新使用 neutron 的共享网络子网时,neutron 子网的 UUID。指定一个 neutron 网络及其所属的 neutron 子网。

请求示例

{
    "share_network": {
        "neutron_net_id": "998b42ee-2cee-4d36-8b95-67b5ca1f2109",
        "neutron_subnet_id": "53482b62-2c84-4a53-b6ab-30d9d9800d06",
        "name": "update my network",
        "description": "i'm adding a description"
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

共享网络资源的 UUID。

project_id

body

字符串

拥有资源的项目的 ID。

neutron_net_id

body

字符串

neutron 网络 ID。

直到版本 2.50 可用

neutron_subnet_id

body

字符串

neutron 子网 ID。

直到版本 2.50 可用

network_type

body

字符串

网络类型。有效值为 VLANVXLANGREflat。此参数由网络提供程序自动设置。

直到版本 2.50 可用

segmentation_id

body

整数

分割 ID。此参数由网络提供程序自动设置。对于 VLAN,此值为 1 到 4094 之间的整数。对于 VXLAN,此值为 1 到 16777215 之间的整数。对于 GRE,此值为 1 到 4294967295 之间的整数。

直到版本 2.50 可用

cidr

body

字符串

用于分配网络的 IP 块,采用 CIDR 表示法。例如,172.16.0.0/242001:DB8::/64。此参数由网络提供程序自动设置。

直到版本 2.50 可用

ip_version

body

整数

网络的 IP 版本。有效值为 46。此参数由网络提供程序自动设置。

直到版本 2.50 可用

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

gateway

body

字符串

共享网络的网关。

新增于版本 2.18

直到版本 2.50 可用

mtu

body

整数

共享网络的 MTU 值。

新增于版本 2.20

直到版本 2.50 可用

security_service_update_support

body

布尔值

是否支持在共享网络正在使用时更新其安全性服务。

新增于版本 2.63

status

body

字符串

共享网络的的状态。可能的值为:activeerrornetwork_change

新增于版本 2.63

响应示例

{
    "share_network": {
        "name": "net_my",
        "segmentation_id": null,
        "created_at": "2015-09-04T14:54:25.000000",
        "neutron_subnet_id": "53482b62-2c84-4a53-b6ab-30d9d9800d06",
        "updated_at": "2015-09-07T08:02:53.512184",
        "id": "713df749-aac0-4a54-af52-10f6c991e80c",
        "neutron_net_id": "998b42ee-2cee-4d36-8b95-67b5ca1f2109",
        "ip_version": "4",
        "cidr": null,
        "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "network_type": null,
        "description": "i'm adding a description",
        "gateway": null,
        "mtu": null,
        "security_service_update_support": true,
        "status": "active"
    }
}

注意

从 API 版本 2.51 开始,共享网络可以跨越多个子网,因此在创建共享网络时,共享文件系统服务将自动创建一个新的子网并将其附加到共享网络。

{
    "share_network":{
        "id": "2b33cd3a-3049-4f36-a2fd-f7a211eb9202",
        "name": "update my network",
        "project_id": "79ed3be75dbb4d03afd687b758fcc2c0",
        "created_at": "2019-11-12T17:18:10.000000",
        "updated_at": null,
        "description": "i'm adding a description",
        "security_service_update_support": true,
        "status": "active",
        "share_network_subnets": [
            {
                "id": "687ab361-5c40-406e-945c-6326254782d4",
                "availability_zone": null,
                "created_at": "2019-11-13T17:18:10.000000",
                "updated_at": "2019-11-13T17:18:56.000000",
                "segmentation_id": null,
                "neutron_net_id": "998b42ee-2cee-4d36-8b95-67b5ca1f2109",
                "neutron_subnet_id": "53482b62-2c84-4a53-b6ab-30d9d9800d06",
                "ip_version": 4,
                "cidr": "172.24.5.0/24",
                "network_type": "flat",
                "mtu": 1500,
                "gateway": "172.24.5.1"
            }
        ]
    }
}
DELETE
/v2/share-networks/{share_network_id}

删除共享网络

删除一个共享网络。

先决条件

  • 如果共享网络上有创建/导出的共享,则无法删除该共享网络。

  • 如果共享网络上有创建的共享组,则无法删除该共享网络。

  • 自 API 版本 2.51 起,如果共享网络上有多个共享网络子网,则无法删除该共享网络。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_network_id

路径

字符串

共享网络的 UUID。

POST
/v2/share-networks/{share_network_id}/action

更新共享网络安全服务(自 API v2.63 起)

添加于版本 2.63。

替换共享网络中的安全服务。当前和新的安全服务必须具有相同的类型,并且必须将 security_service_update_support 功能设置为 True

重要提示

在调用更新共享网络安全服务 API 之前,请确保通过 检查更新 API 检查共享网络内的共享后端是否可以容纳该操作。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_network_id

路径

字符串

共享网络的 UUID。

current_security_service

body

字符串

当前附加到共享网络的的安全服务的 ID。

new_security_service

body

字符串

在共享网络安全服务更新操作后,必须附加到共享网络的的安全服务的 ID。

请求示例

{
    "update_security_service": {
        "current_service_id": "8971c5f6-52ec-4c53-bf6a-3fae38a9221e",
        "new_service_id": "6cff8d33-f73b-483f-88af-e5429ad9daef"
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

资源导出到的共享网络 ID。

project_id

body

字符串

拥有资源的项目的 ID。

neutron_net_id

body

字符串

neutron 网络 ID。

直到版本 2.50 可用

neutron_subnet_id

body

字符串

neutron 子网 ID。

直到版本 2.50 可用

network_type

body

字符串

网络类型。有效值为 VLANVXLANGREflat。此参数由网络提供程序自动设置。

直到版本 2.50 可用

segmentation_id

body

整数

分割 ID。此参数由网络提供程序自动设置。对于 VLAN,此值为 1 到 4094 之间的整数。对于 VXLAN,此值为 1 到 16777215 之间的整数。对于 GRE,此值为 1 到 4294967295 之间的整数。

直到版本 2.50 可用

cidr

body

字符串

用于分配网络的 IP 块,采用 CIDR 表示法。例如,172.16.0.0/242001:DB8::/64。此参数由网络提供程序自动设置。

直到版本 2.50 可用

ip_version

body

整数

网络的 IP 版本。有效值为 46。此参数由网络提供程序自动设置。

直到版本 2.50 可用

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

gateway

body

字符串

共享网络的网关。

新增于版本 2.18

直到版本 2.50 可用

mtu

body

整数

共享网络的 MTU 值。

新增于版本 2.20

直到版本 2.50 可用

share_network_subnets

body

数组

与相关共享网络相关的共享网络子网列表。

新增于版本 2.51

security_service_update_support

body

布尔值

是否支持在共享网络正在使用时更新其安全性服务。

新增于版本 2.63

status

body

字符串

共享网络的的状态。可能的值为:activeerrornetwork_change

新增于版本 2.63

响应示例

{
    "share_network": {
        "id": "1e3f43b2-2290-4fb8-bdc3-fb741c336c2a",
        "name": "my_share_network",
        "project_id": "838f27f65c1d43baa37743c6884958ce",
        "created_at": "2021-03-25T17: 48: 51.925433",
        "updated_at": "2021-03-29T15: 06: 19.464021",
        "description": null,
        "share_network_subnets": [
            {
                "id": "14f7f4f6-b6b6-4b7e-a89c-1040700f3166",
                "availability_zone": null,
                "created_at": "2021-03-25T17: 48: 52.014525",
                "updated_at": "2021-03-29T14: 50: 56.993391",
                "segmentation_id": 1010,
                "neutron_net_id": null,
                "neutron_subnet_id": null,
                "ip_version": 4,
                "cidr": "10.0.0.0/24",
                "network_type": "vlan",
                "mtu": 1500,
                "gateway": "10.0.0.1"
            }
        ],
        "status": "network_change",
        "security_service_update_support": true
    }
}
POST
/v2/share-networks/{share_network_id}/action

检查共享网络安全服务更新(自 API v2.63 起)

添加于版本 2.63。

检查是否可以替换正在使用的共享网络上的现有安全服务。在请求实际更新共享网络安全服务之前,必须触发此操作。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_network_id

路径

字符串

共享网络的 UUID。

current_service_id

body

字符串

当前附加到共享网络的的安全服务的 ID。

new_service_id

body

字符串

在共享网络安全服务更新操作后,必须附加到共享网络的的安全服务的 ID。

reset_operation

body

布尔值

是否应忽略给定共享网络之前的检查结果,并再次检查操作的兼容性,以进行共享网络安全服务检查更新或添加操作。

请求示例

{
    "update_security_service_check": {
        "current_service_id": "8971c5f6-52ec-4c53-bf6a-3fae38a9221e",
        "new_service_id": "6cff8d33-f73b-483f-88af-e5429ad9daef",
        "reset_operation": false
    }
}

响应参数

名称

入参

类型

描述

operation

body

字符串

触发的检查操作的名称,为 add_security_serviceupdate_security_service

current_security_service

body

字符串

当前附加到共享网络的的安全服务的 ID。

new_security_service

body

字符串

在共享网络安全服务更新操作后,必须附加到共享网络的的安全服务的 ID。

compatible

body

布尔值

指示检查操作的结果。如果为 True,则表示可以添加/更新安全服务。

requested_operation

body

对象

有关请求的操作的信息。

hosts_check_result

body

对象

(仅限管理员)。在安全服务更新检查操作中,从每个主机接收到的结果。

响应示例

{
    "compatible": true,
    "requested_operation": {
        "operation": "update_security_service",
        "current_security_service": "8971c5f6-52ec-4c53-bf6a-3fae38a9221e",
        "new_security_service": "6cff8d33-f73b-483f-88af-e5429ad9daef"
    },
    "hosts_check_result": {
        "ubuntu@dummy2": true
    }
}
POST
/v2/share-networks/{share_network_id}/action

检查共享网络安全服务添加(自 API v2.63 起)

添加于版本 2.63。

检查是否可以将新的安全服务添加到正在使用的共享网络。在请求实际将安全服务添加到正在使用的共享网络之前,必须触发此操作。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_network_id

路径

字符串

共享网络的 UUID。

security_service_id

body

字符串

当前附加到共享网络的的安全服务的 ID。

reset_operation

body

布尔值

是否应忽略给定共享网络之前的检查结果,并再次检查操作的兼容性,以进行共享网络安全服务检查更新或添加操作。

请求示例

{
    "add_security_service_check": {
        "security_service_id": "8971c5f6-52ec-4c53-bf6a-3fae38a9221e",
        "reset_operation": false
    }
}

响应参数

名称

入参

类型

描述

operation

body

字符串

触发的检查操作的名称,为 add_security_serviceupdate_security_service

current_security_service

body

字符串

当前附加到共享网络的的安全服务的 ID。

new_security_service

body

字符串

在共享网络安全服务更新操作后,必须附加到共享网络的的安全服务的 ID。

compatible

body

布尔值

指示检查操作的结果。如果为 True,则表示可以添加/更新安全服务。

requested_operation

body

对象

有关请求的操作的数据。

hosts_check_result

body

对象

(仅限管理员)。在安全服务更新检查操作中,从每个主机接收到的结果。

响应示例

{
    "compatible": true,
    "requested_operation": {
        "operation": "add_security_service",
        "current_security_service": null,
        "new_security_service": "8971c5f6-52ec-4c53-bf6a-3fae38a9221e"
    },
    "hosts_check_result": {
        "ubuntu@dummy2": true
    }
}
POST
/v2/share-networks/{share_network_id}/action

重置状态(自 API v2.63 起)

添加于版本 2.63。

重置共享网络状态。

仅限管理员。显式更新共享网络的状态。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求参数

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_network_id

路径

字符串

共享网络的 UUID。

status

body

字符串

共享网络的的状态。可能的值为:activeerrornetwork_change

新增于版本 2.63

请求示例

{
    "reset_status": {
        "status": "active"
    }
}

响应参数

响应中没有正文内容。

共享网络子网(自 API v2.51 起)

共享网络子网存储网络信息,用于创建和管理共享服务器。

您可以列出与共享网络相关的所有子网,还可以创建、删除和查看共享网络子网。

创建共享网络时,您可以选择性地指定关联的 neutron 网络、子网和可用区。如果您未指定可用区,则您创建的子网将具有空的可用区字段,并且此子网将被视为默认子网。共享文件系统服务将默认子网识别为跨所有可用存储可用区的子网。

注意

共享网络只能有一个默认子网。同样,共享网络不能在给定的可用区拥有多个子网。

有关共享网络子网支持的插件的更多信息,请参阅 Manila 网络插件

共享网络子网资源具有这些属性

  • 用于分配网络的无类别域间路由 (CIDR) 表示法中的 IP 块。

  • 网络的 IP 版本。

  • 网络类型,可以是 vlanvxlangreflat

  • 如果网络使用分段,则为分段标识符。例如,VLAN、VXLAN 和 GRE 网络使用分段。

  • null 时,可用区表示共享网络子网在共享文件系统服务已知的所有存储可用区中可用。

GET
/v2/share-networks/{share_network_id}/subnets

列出共享网络子网

添加于版本 2.51。

列出给定共享网络中的所有共享网络子网。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_network_id

路径

字符串

共享网络的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享网络子网的 UUID。

availability_zone

body

字符串

共享网络子网所属的可用区的名称。

share_network_id

body

字符串

共享网络子网所属的共享网络的 UUID。

share_network_name

body

字符串

共享网络子网所属的共享网络的名称。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

segmentation_id

body

整数

分割 ID。此参数由网络提供程序自动设置。对于 VLAN,此值为 1 到 4094 之间的整数。对于 VXLAN,此值为 1 到 16777215 之间的整数。对于 GRE,此值为 1 到 4294967295 之间的整数。

neutron_net_id

body

字符串

neutron 网络 ID。

neutron_subnet_id

body

字符串

neutron 子网 ID。

ip_version

body

整数

网络的 IP 版本。有效值为 46。此参数由网络提供程序自动设置。

cidr

body

字符串

用于分配网络的 IP 块,采用 CIDR 表示法。例如,172.16.0.0/242001:DB8::/64。此参数由网络提供程序自动设置。

network_type

body

字符串

网络类型。有效值为 VLANVXLANGREflat。此参数由网络提供程序自动设置。

gateway

body

字符串

共享网络子网的网关。

mtu

body

字符串

共享网络子网的 MTU。

响应示例

{
    "share_network_subnets": [
    {
        "id": "a7507a16-98bb-476c-ba90-487e4b4775fa",
        "availability_zone": null,
        "share_network_id": "8bc488d8-52f7-46cb-91b1-89dd92cae972",
        "share_network_name": "sn_test",
        "created_at": "2019-10-03T18:30:15.000000",
        "segmentation_id": null,
        "neutron_subnet_id": "dc0a37f0-81b0-4eb5-aad8-deffda5ff4ca",
        "updated_at": null,
        "neutron_net_id": "70bc8f03-525c-4334-a51b-261a024681c5",
        "ip_version": 4,
        "cidr": "10.190.5.0/24",
        "network_type": "flat",
        "mtu": 1500,
        "gateway": "10.190.5.1"
    },
    {
        "id": "8ebe964d-ac48-4e43-93ed-b1768148f8f4",
        "availability_zone": "manila-zone-0",
        "share_network_id": "8bc488d8-52f7-46cb-91b1-89dd92cae972",
        "share_network_name": "sn_test",
        "created_at": "2019-10-02T01:35:10.000000",
        "segmentation_id": null,
        "neutron_subnet_id": "2276888a-27c1-47c2-82a0-ea33050128b5",
        "updated_at": null,
        "neutron_net_id": "62187648-6617-4509-a780-ffc973a7fe43",
        "ip_version": 4,
        "cidr": "172.24.5.0/24",
        "network_type": "flat",
        "mtu": 1500,
        "gateway": "172.24.5.1"
    }
    ]
}
GET
/v2/share-networks/{share_network_id}/subnets/{share_network_subnet_id}

显示共享网络子网详细信息

添加于版本 2.51。

显示共享网络子网的详细信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_network_id

路径

字符串

共享网络的 UUID。

share_network_subnet_id

路径

字符串

共享网络子网的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享网络子网的 UUID。

neutron_net_id

body

字符串

neutron 网络 ID。

neutron_subnet_id

body

字符串

neutron 子网 ID。

network_type

body

字符串

网络类型。有效值为 VLANVXLANGREflat。此参数由网络提供程序自动设置。

segmentation_id

body

整数

分割 ID。此参数由网络提供程序自动设置。对于 VLAN,此值为 1 到 4094 之间的整数。对于 VXLAN,此值为 1 到 16777215 之间的整数。对于 GRE,此值为 1 到 4294967295 之间的整数。

cidr

body

字符串

用于分配网络的 IP 块,采用 CIDR 表示法。例如,172.16.0.0/242001:DB8::/64。此参数由网络提供程序自动设置。

ip_version

body

整数

网络的 IP 版本。有效值为 46。此参数由网络提供程序自动设置。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

gateway

body

字符串

共享网络子网的网关。

mtu

body

字符串

共享网络子网的 MTU。

availability_zone

body

字符串

共享网络子网所属的可用区的名称。

share_network_id

body

字符串

共享网络子网所属的共享网络的 UUID。

share_network_name

body

字符串

共享网络子网所属的共享网络的名称。

响应示例

{
    "share_network_subnet": {
        "id": "e4db03dc-6041-4c6a-a8f9-80bb4141a1eb",
        "availability_zone": null,
        "share_network_id":"1324e7d3-fba8-45e4-bb37-b59c12eb06dc",
        "share_network_name": "net_my1",
        "created_at": "2019-10-01T17:49:43.000000",
        "segmentation_id": null,
        "neutron_subnet_id": "2276888a-27c1-47c2-82a0-ea33050128b5",
        "updated_at": "2019-11-02T12:17:39.000000",
        "neutron_net_id": "62187648-6617-4509-a780-ffc973a7fe43",
        "ip_version": 4,
        "cidr": "172.24.5.0/24",
        "network_type": "flat",
        "mtu": 1500,
        "gateway": "172.24.5.1"
    }
}
POST
/v2/share-networks/{share_network_id}/subnets

创建共享网络子网

添加于版本 2.51。

在给定的共享网络中创建一个共享网络子网。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

500 - 内部服务器错误

服务出现问题,导致无法满足请求。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_network_id

路径

字符串

共享网络的 UUID。

neutron_net_id (可选)

body

字符串

在设置或更新使用 neutron 的共享网络子网时,neutron 网络的 UUID。指定一个 neutron 网络及其所属的 neutron 子网。

neutron_subnet_id (可选)

body

字符串

在设置或更新使用 neutron 的共享网络子网时,neutron 子网的 UUID。指定一个 neutron 网络及其所属的 neutron 子网。

availability_zone(可选)

body

字符串

要在其中创建资源的可用区 UUID 或名称。

请求示例

{
    "share-network-subnet": {
        "neutron_net_id": "62187648-6617-4509-a780-ffc973a7fe43",
        "neutron_subnet_id": "2276888a-27c1-47c2-82a0-ea33050128b5",
        "availability_zone": "manila-zone-0"
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

共享网络子网的 UUID。

neutron_net_id

body

字符串

neutron 网络 ID。

neutron_subnet_id

body

字符串

neutron 子网 ID。

network_type

body

字符串

网络类型。有效值为 VLANVXLANGREflat。此参数由网络提供程序自动设置。

segmentation_id

body

整数

分割 ID。此参数由网络提供程序自动设置。对于 VLAN,此值为 1 到 4094 之间的整数。对于 VXLAN,此值为 1 到 16777215 之间的整数。对于 GRE,此值为 1 到 4294967295 之间的整数。

cidr

body

字符串

用于分配网络的 IP 块,采用 CIDR 表示法。例如,172.16.0.0/242001:DB8::/64。此参数由网络提供程序自动设置。

ip_version

body

整数

网络的 IP 版本。有效值为 46。此参数由网络提供程序自动设置。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

gateway

body

字符串

共享网络子网的网关。

mtu

body

字符串

共享网络子网的 MTU。

availability_zone

body

字符串

共享网络子网所属的可用区的名称。

share_network_id

body

字符串

共享网络子网所属的共享网络的 UUID。

share_network_name

body

字符串

共享网络子网所属的共享网络的名称。

响应示例

{
    "share_network_subnet": {
        "id": "8ebe964d-ac48-4e43-93ed-b1768148f8f4",
        "availability_zone": "manila-zone-0",
        "share_network_id": "1324e7d3-fba8-45e4-bb37-b59c12eb06dc",
        "share_network_name": "net_my1",
        "created_at": "2019-10-03T02:25:12.000000",
        "segmentation_id": null,
        "neutron_subnet_id": "2276888a-27c1-47c2-82a0-ea33050128b5",
        "updated_at": null,
        "neutron_net_id": "62187648-6617-4509-a780-ffc973a7fe43",
        "ip_version": null,
        "cidr": null,
        "network_type": null,
        "mtu": null,
        "gateway": null
    }
}
DELETE
/v2/share-networks/{share_network_id}/subnets/{share_network_subnet_id}

删除共享网络子网

添加于版本 2.51。

删除一个共享网络子网。

先决条件

  • 如果共享网络上有创建/导出的共享,则无法删除该共享网络子网。

  • 如果共享网络子网具有标志 is_auto_deletable 设置为 False 的共享服务器,则无法删除该共享网络子网。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_network_id

路径

字符串

共享网络的 UUID。

share_network_subnet_id

路径

字符串

共享网络子网的 UUID。

共享网络子网元数据(自 API v2.78 起)

显示、设置、更新和取消设置共享网络子网元数据。

GET
/v2/share-networks/{share_network_id}/subnets/{share_network_subnet_id}/metadata

显示所有共享网络子网元数据

显示给定共享网络子网中的所有共享网络子网元数据。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_network_id

路径

字符串

共享网络的 UUID。

share_network_subnet_id

路径

字符串

共享网络子网的 UUID。

响应参数

名称

入参

类型

描述

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

响应示例

{
    "metadata": {
        "project": "my_app",
        "key": "value"
    }
}
GET
/v2/share-networks/{share_network_id}/subnets/{share_network_subnet_id}/metadata/{key}

显示共享网络子网元数据项

通过其键从共享网络子网的元数据中检索特定的元数据项。如果指定的键不代表有效的元数据项,则 API 将响应 HTTP 404。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_network_id

路径

字符串

共享网络的 UUID。

share_network_subnet_id

路径

字符串

共享网络子网的 UUID。

key

body

对象

元数据项的键。例如,如果现有资源上的元数据如下:"project": "my_test", "aim": "testing",则键为“project”和“aim”。

响应参数

名称

入参

类型

描述

meta

body

对象

单个元数据键值对。

响应示例

{
    "meta": {
        "project": "my_app"
    }
}
POST
/v2/share-networks/{share_network_id}/subnets/{share_network_subnet_id}/metadata

设置共享网络子网元数据

允许添加新的元数据项作为键值对。此 API 不会删除预先存在的元数据项。如果请求对象包含已存在的元数据项,则它们将使用请求对象中指定的新值进行更新。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_network_id

路径

字符串

共享网络的 UUID。

share_network_subnet_id

路径

字符串

共享网络子网的 UUID。

metadata

body

对象

一个或多个元数据键值对,以字符串字典的形式。例如,"project": "my_test", "aim": "testing"。共享服务器不尊重区分大小写的键名称。例如,"key": "v1""KEY": "V1" 是等效的。如果您指定这两个键值对,服务器将仅设置并返回 "KEY": "V1" 键值对。

请求示例

{
    "metadata": {
        "key1": "value1"
    }
}

响应参数

名称

入参

类型

描述

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

响应示例

{
    "metadata": {
        "aim": "changed_doc",
        "project": "my_app",
        "key1": "value1",
        "new_metadata_key": "new_information",
        "key": "value"
    }
}
PUT
/v2/share-networks/{share_network_id}/subnets/{share_network_subnet_id}/metadata

更新共享网络子网元数据

使用请求对象中指定的元数据(键值对)替换给定共享网络子网的元数据。共享网络子网的所有预先存在的元数据都将被删除并替换为提供的新元数据。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_network_id

路径

字符串

共享网络的 UUID。

share_network_subnet_id

路径

字符串

共享网络子网的 UUID。

metadata

body

对象

一个或多个元数据键值对,以字符串字典的形式。例如,"project": "my_test", "aim": "testing"。共享服务器不尊重区分大小写的键名称。例如,"key": "v1""KEY": "V1" 是等效的。如果您指定这两个键值对,服务器将仅设置并返回 "KEY": "V1" 键值对。

请求示例

{
    "metadata": {
        "aim": "changed_doc",
        "project": "my_app",
        "new_metadata_key": "new_information"
    }
}

响应参数

名称

入参

类型

描述

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

响应示例

{
    "metadata": {
        "aim": "changed_doc",
        "project": "my_app",
        "new_metadata_key": "new_information"
    }
}

要删除给定共享网络子网上的所有现有元数据项,请求对象需要指定一个空的元数据对象

请求示例

{
    "metadata": null
}

响应示例

{
    "metadata": null
}
DELETE
/v2/share-networks/{share_network_id}/subnets/{share_network_subnet_id}/metadata/{key}

删除共享网络子网元数据项

删除共享网络子网上的单个元数据项,通过其键标识。如果指定的键不代表有效的元数据项,API 将使用 HTTP 404 响应。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_network_id

路径

字符串

共享网络的 UUID。

share_network_subnet_id

路径

字符串

共享网络子网的 UUID。

key

body

对象

元数据项的键。例如,如果现有资源上的元数据如下:"project": "my_test", "aim": "testing",则键为“project”和“aim”。

安全服务

您可以创建、更新、查看和删除安全服务。安全服务资源代表客户端的配置信息,用于身份验证和授权 (AuthN/AuthZ)。例如,共享服务器将是现有安全服务(如 LDAP、Kerberos 或 Microsoft Active Directory)的客户端。

共享文件系统服务支持三种安全服务类型

  • ldap. LDAP。

  • kerberos. Kerberos。

  • active_directory. Microsoft Active Directory。

您可以配置具有以下选项的安全服务

  • DNS IP 地址。某些驱动程序可能允许逗号分隔的多个地址列表,例如 NetApp ONTAP。

  • IP 地址或主机名。

  • 域名。

  • ou,组织单元。(从 API 版本 2.44 开始可用)

  • 用户名或组名。

  • 如果指定了用户名,则用户的密码。

  • 默认 AD 站点,可选(从 API 版本 2.76 开始可用)

安全服务资源还可以赋予用户定义的名称和描述。

GET
/v2/security-services

列出安全服务

列出所有安全服务。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

all_tenants (可选)

查询

布尔值

(仅限管理员)。定义是否为所有项目列出请求的资源。设置为 1 以列出所有项目的资源。设置为 0 以仅列出当前项目的资源。资源示例包括共享、快照、共享网络、安全服务和共享组。

响应参数

名称

入参

类型

描述

status

body

字符串

安全服务状态。

类型

body

字符串

安全服务类型。有效值为 ldapkerberosactive_directory

id

body

字符串

安全性服务 ID。

name

body

字符串

资源的由用户定义的名称。

响应示例

{
    "security_services": [
        {
            "status": "new",
            "type": "kerberos",
            "id": "3c829734-0679-4c17-9637-801da48c0d5f",
            "name": "SecServ1"
        },
        {
            "status": "new",
            "type": "ldap",
            "id": "5a1d3a12-34a7-4087-8983-50e9ed03509a",
            "name": "SecServ2"
        }
    ]
}
GET
/v2/security-services/detail

列出带有详细信息的安全服务

列出所有带有详细信息的安全服务。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

all_tenants (可选)

查询

布尔值

(仅限管理员)。定义是否为所有项目列出请求的资源。设置为 1 以列出所有项目的资源。设置为 0 以仅列出当前项目的资源。资源示例包括共享、快照、共享网络、安全服务和共享组。

响应参数

名称

入参

类型

描述

status

body

字符串

安全服务状态。

id

body

字符串

安全性服务 ID。

project_id

body

字符串

拥有资源的项目的 ID。

类型

body

字符串

安全服务类型。有效值为 ldapkerberosactive_directory

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

dns_ip

body

字符串

项目网络内使用的 DNS IP 地址。

user

body

字符串

项目使用的安全服务用户名或组名。

password

body

字符串

如果指定了 user,则用户密码。

domain

body

字符串

安全服务域名。

ou

body

字符串

安全服务的 ou。

新增于版本 2.44

server

body

字符串

安全服务主机名或 IP 地址。

default_ad_site

body

字符串

安全服务的默认 AD 站点。

新增于版本 2.76

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

响应示例

{
    "security_services": [
        {
            "status": "new",
            "domain": null,
            "ou": null,
            "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
            "name": "SecServ1",
            "created_at": "2015-09-07T12:19:10.000000",
            "description": "Creating my first Security Service",
            "updated_at": null,
            "server": null,
            "default_ad_site": null,
            "dns_ip": "10.0.0.0/24",
            "user": "demo",
            "password": "supersecret",
            "type": "kerberos",
            "id": "3c829734-0679-4c17-9637-801da48c0d5f",
            "share_networks": []
        },
        {
            "status": "new",
            "domain": null,
            "ou": null,
            "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
            "name": "SecServ2",
            "created_at": "2015-09-07T12:25:03.000000",
            "description": "Creating my second Security Service",
            "updated_at": null,
            "server": null,
            "default_ad_site": null,
            "dns_ip": "10.0.0.0/24",
            "user": null,
            "password": null,
            "type": "ldap",
            "id": "5a1d3a12-34a7-4087-8983-50e9ed03509a",
            "share_networks": []
        }
    ]
}
GET
/v2/security-services/{security_service_id}

显示安全服务详细信息

显示安全服务的详细信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

security_service_id

路径

字符串

安全服务的 UUID。

响应参数

名称

入参

类型

描述

status

body

字符串

安全服务状态。

id

body

字符串

安全性服务 ID。

project_id

body

字符串

拥有资源的项目的 ID。

类型

body

字符串

安全服务类型。有效值为 ldapkerberosactive_directory

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

dns_ip

body

字符串

项目网络内使用的 DNS IP 地址。

user

body

字符串

项目使用的安全服务用户名或组名。

password

body

字符串

如果指定了 user,则用户密码。

domain

body

字符串

安全服务域名。

ou

body

字符串

安全服务的 ou。

新增于版本 2.44

server

body

字符串

安全服务主机名或 IP 地址。

default_ad_site

body

字符串

安全服务的默认 AD 站点。

新增于版本 2.76

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

响应示例

{
    "security_service": {
        "status": "new",
        "domain": null,
        "ou": null,
        "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "name": "SecServ1",
        "created_at": "2015-09-07T12:19:10.000000",
        "updated_at": null,
        "server": null,
        "default_ad_site": null,
        "dns_ip": "10.0.0.0/24",
        "user": "demo",
        "password": "supersecret",
        "type": "kerberos",
        "id": "3c829734-0679-4c17-9637-801da48c0d5f",
        "description": "Creating my first Security Service"
    }
}
POST
/v2/security-services

创建安全服务

创建安全服务。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

422 - 无法处理的实体

请求的实体格式无法被请求的资源以该方法处理。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

类型

body

字符串

安全服务类型。有效值为 ldapkerberosactive_directory

name (可选)

body

字符串

用户定义的资源名称。该字段的值限制为 255 个字符。

description(可选)

body

字符串

用户定义的资源描述。该字段的值限制为 255 个字符。

dns_ip (可选)

body

字符串

项目网络内使用的 DNS IP 地址。

user (可选)

body

字符串

项目使用的安全服务用户名或组名。

password (可选)

body

字符串

如果指定了 user,则用户密码。

domain (可选)

body

字符串

安全服务域名。

ou (可选)

body

字符串

安全服务的 ou。可以添加组织单元来指定共享最终存储的位置。

新增于版本 2.44

server (可选)

body

字符串

安全服务主机名或 IP 地址。

default_ad_site (可选)

body

字符串

安全服务的默认 AD 站点。

新增于版本 2.76

请求示例

{
    "security_service": {
        "description": "Creating my first Security Service",
        "dns_ip": "10.0.0.0/24",
        "user": "demo",
        "password": "***",
        "type": "kerberos",
        "name": "SecServ1"
    }
}

响应参数

名称

入参

类型

描述

status

body

字符串

安全服务状态。

id

body

字符串

安全性服务 ID。

project_id

body

字符串

拥有资源的项目的 ID。

类型

body

字符串

安全服务类型。有效值为 ldapkerberosactive_directory

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

dns_ip

body

字符串

项目网络内使用的 DNS IP 地址。

user

body

字符串

项目使用的安全服务用户名或组名。

password

body

字符串

如果指定了 user,则用户密码。

domain

body

字符串

安全服务域名。

ou

body

字符串

安全服务的 ou。

新增于版本 2.44

server

body

字符串

安全服务主机名或 IP 地址。

default_ad_site

body

字符串

安全服务的默认 AD 站点。

新增于版本 2.76

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

响应示例

{
    "security_service": {
        "status": "new",
        "domain": null,
        "ou": null,
        "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "name": "SecServ1",
        "created_at": "2015-09-07T12:19:10.695211",
        "updated_at": null,
        "server": null,
        "default_ad_site": null,
        "dns_ip": "10.0.0.0/24",
        "user": "demo",
        "password": "supersecret",
        "type": "kerberos",
        "id": "3c829734-0679-4c17-9637-801da48c0d5f",
        "description": "Creating my first Security Service"
    }
}
PUT
/v2/security-services/{security_service_id}

更新安全服务

更新安全服务。

如果安全服务处于 active 状态,则只能更新 namedescription 属性。处于 active 状态的安全服务已附加到具有关联共享服务器的共享网络。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

422 - 无法处理的实体

请求的实体格式无法被请求的资源以该方法处理。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

security_service_id

路径

字符串

安全服务的 UUID。

类型

body

字符串

安全服务类型。有效值为 ldapkerberosactive_directory

name (可选)

body

字符串

用户定义的资源名称。该字段的值限制为 255 个字符。

description(可选)

body

字符串

用户定义的资源描述。该字段的值限制为 255 个字符。

dns_ip (可选)

body

字符串

项目网络内使用的 DNS IP 地址。

user (可选)

body

字符串

项目使用的安全服务用户名或组名。

password (可选)

body

字符串

如果指定了 user,则用户密码。

domain (可选)

body

字符串

安全服务域名。

ou (可选)

body

字符串

安全服务的 ou。可以添加组织单元来指定共享最终存储的位置。

新增于版本 2.44

server (可选)

body

字符串

安全服务主机名或 IP 地址。

default_ad_site (可选)

body

字符串

安全服务的默认 AD 站点。

新增于版本 2.76

请求示例

{
    "security_service": {
        "domain": "my_domain",
        "ou": "CN=Computers",
        "password": "***",
        "user": "new_user",
        "description": "Adding a description"
    }
}

响应参数

名称

入参

类型

描述

status

body

字符串

安全服务状态。

id

body

字符串

安全性服务 ID。

project_id

body

字符串

拥有资源的项目的 ID。

类型

body

字符串

安全服务类型。有效值为 ldapkerberosactive_directory

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

dns_ip

body

字符串

项目网络内使用的 DNS IP 地址。

user

body

字符串

项目使用的安全服务用户名或组名。

password

body

字符串

如果指定了 user,则用户密码。

domain

body

字符串

安全服务域名。

ou

body

字符串

安全服务的 ou。

新增于版本 2.44

server

body

字符串

安全服务主机名或 IP 地址。

default_ad_site

body

字符串

安全服务的默认 AD 站点。

新增于版本 2.76

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

响应示例

{
    "security_service": {
        "status": "new",
        "domain": "my_domain",
        "ou": "CN=Computers",
        "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "name": "SecServ1",
        "created_at": "2015-09-07T12:19:10.000000",
        "updated_at": "2015-09-07T12:47:21.858737",
        "server": null,
        "dns_ip": "10.0.0.0/24",
        "user": "new_user",
        "password": "pass",
        "type": "kerberos",
        "id": "3c829734-0679-4c17-9637-801da48c0d5f",
        "description": "Adding a description"
    }
}
DELETE
/v2/security-services/{security_service_id}

删除安全服务

删除安全服务。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

security_service_id

路径

字符串

安全服务的 UUID。

共享服务器

共享服务器由多租户后端驱动程序创建,这些驱动程序托管共享。例如,使用 generic 驱动程序,共享托管在计算虚拟机上。

管理员可以对共享服务器执行读取和删除操作。只有在不包含依赖共享的情况下,管理员才能删除活动共享服务器。如果管理员删除共享服务器,共享文件系统服务将在后续创建共享请求响应中创建一个共享服务器。

管理员可以使用 policy.yaml 文件将共享服务器操作的权限授予其他角色。

共享服务器的状态指示其当前状态。成功设置共享服务器后,其状态为 active。如果在设置过程中发生错误,例如服务器数据无效,其状态为 error

可能的共享服务器状态是

共享服务器状态

状态

描述

active

共享服务器已成功设置。

error

设置或删除共享服务器失败。

deleting

共享服务器没有依赖共享,正在被删除。

creating

共享服务器正在后端使用数据库中的数据创建。

GET
/v2/share-servers

列出共享服务器

列出所有共享服务器。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

响应参数

名称

入参

类型

描述

id

body

字符串

共享服务器的 UUID。

project_id

body

字符串

拥有资源的项目的 ID。

status

body

字符串

共享服务器状态,为 activeerrorcreatingdeleting

share_network_id

body

字符串

与共享服务器关联的共享网络的 UUID。

share_network_name

body

字符串

与共享服务器关联的共享网络的名称。

host

body

字符串

共享服务器的主机名或 IP 地址。

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

share_network_subnet_id

body

字符串

共享服务器所关联的共享网络子网的 UUID。

新增于版本 2.51

security_service_update_support

body

布尔值

是否支持在创建后更新共享服务器的安全服务。

新增于版本 2.63

响应示例

{
    "share_servers": [
        {
            "status": "active",
            "updated_at": "2015-09-07T08:52:15.000000",
            "share_network_id": "713df749-aac0-4a54-af52-10f6c991e80c",
            "host": "manila2@generic1",
            "share_network_name": "net_my",
            "share_network_subnet_id": "f53252f0-c2a9-4d7c-af41-1c6f3cfb3af3",
            "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
            "id": "ba11930a-bf1a-4aa7-bae4-a8dfbaa3cc73",
            "security_service_update_support": true
        }
    ]
}
GET
/v2/share-servers/{share_server_id}

显示共享服务器

显示共享服务器的详细信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_server_id

body

字符串

共享服务器的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享服务器的 UUID。

project_id

body

字符串

拥有资源的项目的 ID。

status

body

字符串

共享服务器状态,为 activeerrorcreatingdeleting

backend_details

body

对象

服务器的后端详细信息。每个后端可以存储其需要的任何键值信息。例如,通用后端驱动程序可能会存储路由器 ID。

share_network_id

body

字符串

与共享服务器关联的共享网络的 UUID。

share_network_name

body

字符串

与共享服务器关联的共享网络的名称。

host

body

字符串

共享服务器的主机名或 IP 地址。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

identifier

body

字符串

后端存储系统中共享服务器的标识符。

2.49 版本新增

is_auto_deletable

body

布尔值

定义共享服务器是否可以由服务自动删除。可以通过配置自动删除共享服务器。但是,曾经从服务管理中删除共享的共享服务器不能由服务自动删除。

2.49 版本新增

share_network_subnet_id

body

字符串

共享服务器所关联的共享网络子网的 UUID。

新增于版本 2.51

security_service_update_support

body

布尔值

共享网络或服务器是否支持安全服务更新。

新增于版本 2.63

encryption_key_ref

body

对象

加密密钥引用是有效的 barbican secret UUID,存储驱动程序将使用它来获取加密密钥。

响应示例

{
    "share_server": {
        "status": "active",
        "backend_details": {
            "username": "manila",
            "router_id": "4b62ce91-56c5-45c1-b0ef-8cbbe5dd34f4",
            "pk_path": "/opt/stack/.ssh/id_rsa",
            "subnet_id": "16e99ad6-5191-461c-9f34-ac84a39c3adb",
            "ip": "10.254.0.3",
            "instance_id": "75f2f282-af65-49ba-a7b1-525705b1bf1a",
            "public_address": "10.254.0.3",
            "service_port_id": "8ff21760-961e-4b83-a032-03fd559bb1d3"
        },
        "created_at": "2015-09-07T08:37:19.000000",
        "updated_at": "2015-09-07T08:52:15.000000",
        "share_network_name": "net_my",
        "host": "manila2@generic1",
        "share_network_id": "713df749-aac0-4a54-af52-10f6c991e80c",
        "share_network_subnet_id": "f53252f0-c2a9-4d7c-af41-1c6f3cfb3af3",
        "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "id": "ba11930a-bf1a-4aa7-bae4-a8dfbaa3cc73",
        "security_service_update_support": true
    }
}
GET
/v2/share-servers/{share_server_id}/details

显示共享服务器后端详细信息

显示共享服务器的后端详细信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_server_id

body

字符串

共享服务器的 UUID。

响应参数

响应参数可能因使用的后端而异。每个后端可以存储其需要的任何键值信息。例如,通用后端驱动程序可能会存储路由器 ID。

响应示例

{
    "details": {
        "username": "manila",
        "router_id": "4b62ce91-56c5-45c1-b0ef-8cbbe5dd34f4",
        "pk_path": "/opt/stack/.ssh/id_rsa",
        "subnet_id": "16e99ad6-5191-461c-9f34-ac84a39c3adb",
        "ip": "10.254.0.3",
        "instance_id": "75f2f282-af65-49ba-a7b1-525705b1bf1a",
        "public_address": "10.254.0.3",
        "service_port_id": "8ff21760-961e-4b83-a032-03fd559bb1d3"
    }
}
DELETE
/v2/share-servers/{share_server_id}

删除共享服务器

删除共享服务器。

只有在不包含依赖共享的情况下,管理员才能删除活动共享服务器。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_server_id

body

字符串

共享服务器的 UUID。

POST
/v2/share-servers/manage

管理共享服务器(自 API v2.49 起)

新增于版本 2.49。

管理共享服务器

如果后端驱动程序以 driver_handles_share_servers=True 模式运行,管理员可以引入预先存在的共享服务器。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

403 - 禁止

策略不允许当前用户执行此操作。

422 - 无法处理的实体

请求的实体格式无法被请求的资源以该方法处理。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

host

body

字符串

目标后端的宿主,格式为:host@backend

  • host:目标后端的宿主名。

  • backend:目标后端的名称。

identifier

body

字符串

后端存储系统中共享服务器的标识符。

share_network

body

字符串

共享服务器将与之关联的共享网络的 UUID。

driver_options(可选)

body

对象

一组键值对,以字符串字典的形式,描述驱动程序选项。驱动程序选项的详细信息应从 相应的共享驱动程序文档 中获取。

share_network_subnet_id (可选)

body

字符串

共享服务器将与之关联的共享网络子网的 UUID。如果未指定,将使用共享网络的默认子网 UUID。

新增于版本 2.51

请求示例

{
    "share_server": {
        "host": "myhost@mybackend",
        "share_network_id": "78cef6eb-648a-4bbd-9ae1-d2eaaf594cc0",
        "share_network_subnet_id": "f53252f0-c2a9-4d7c-af41-1c6f3cfb3af3",
        "identifier": "4ef3507e-0513-4140-beda-f619ab30d424",
        "driver_options": {
            "opt1": "opt1_value"
        }
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

共享服务器的 UUID。

project_id

body

字符串

拥有资源的项目的 ID。

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

status

body

字符串

共享服务器状态,可以是 activeerrorcreatingdeletingmanage_startingmanage_errorunmanage_startingunmanage_errorerror_deleting

host

body

字符串

目标后端的宿主,格式为:host@backend

  • host:目标后端的宿主名。

  • backend:目标后端的名称。

share_network_name

body

字符串

与共享服务器关联的共享网络的名称。

share_network_id

body

字符串

与共享服务器关联的共享网络的 UUID。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

backend_details

body

对象

服务器的后端详细信息。每个后端可以存储其需要的任何键值信息。例如,通用后端驱动程序可能会存储路由器 ID。

is_auto_deletable

body

布尔值

定义共享服务器是否可以由服务自动删除。可以通过配置自动删除共享服务器。但是,曾经从服务管理中删除共享的共享服务器不能由服务自动删除。

identifier

body

字符串

后端存储系统中共享服务器的标识符。

share_network_subnet_id

body

字符串

共享服务器所关联的共享网络子网的 UUID。

新增于版本 2.51

security_service_update_support

body

布尔值

共享网络或服务器是否支持安全服务更新。

新增于版本 2.63

encryption_key_ref

body

对象

加密密钥引用是有效的 barbican secret UUID,存储驱动程序将使用它来获取加密密钥。

响应示例

{
    "share_server": {
        "id": "dd218d97-6b16-45b7-9b23-19681ccdec3a",
        "project_id": "5b23075b4b504261a5987b18588f86cf",
        "updated_at": null,
        "status": "manage_starting",
        "host": "myhost@mybackend",
        "share_network_name": "share-net-name",
        "share_network_id": "78cef6eb-648a-4bbd-9ae1-d2eaaf594cc0",
        "share_network_subnet_id": "f53252f0-c2a9-4d7c-af41-1c6f3cfb3af3",
        "created_at": "2019-03-06T11:59:41.000000",
        "backend_details": {},
        "is_auto_deletable": false,
        "identifier": "4ef3507e-0513-4140-beda-f619ab30d424",
        "security_service_update_support": true
    }
}
POST
/v2/share-servers/{share_server_id}/action

取消管理共享服务器(自 API v2.49 起)

新增于版本 2.49。

取消管理共享服务器

如果服务不了解任何关联的共享,管理员可以从共享文件系统服务的管理中删除共享服务器。共享服务器不会在后端被拆除。

先决条件

  • 共享服务器状态必须是 errormanage_erroractiveunmanage_error

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

404 - Not Found

找不到请求的资源。

请求参数

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_server_id

body

字符串

共享服务器的 UUID。

force (可选)

body

布尔值

指示是否允许强制更新已使用的配额,以及请求值是否超过配置的配额。设置为 True 以允许强制更新配额。设置为 False 以拒绝强制更新配额。

unmanage

body

对象

要取消管理共享服务器,请将此值设置为 null 或 {}。可选地,可以将 force 属性包含在此对象中。

请求示例

{
  "unmanage": {
    "force": "false"
  }
}

响应参数

响应中没有正文内容。

POST
/v2/share-servers/{share_server_id}/action

重置状态(自 API v2.49 起)

新增于版本 2.49。

重置共享服务器状态

仅限管理员。显式更新共享服务器的状态。

使用 policy.yaml 文件将此操作的权限授予其他角色。

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

404 - Not Found

找不到请求的资源。

请求参数

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_server_id

body

字符串

共享服务器的 UUID。

status

body

字符串

共享服务器状态,可以是 activeerrorcreatingdeletingmanage_startingmanage_errorunmanage_startingunmanage_errorerror_deleting

请求示例

{
    "reset_status": {
        "status": "active"
    }
}

响应参数

响应中没有正文内容。

共享实例(自 API v2.3 起)

共享实例是共享的内部表示形式。已复制或正在迁移的共享在物理上存储在多个位置。共享文件系统服务中的每个这些单独的位置都称为“实例”。最终用户无需关心这种内部表示形式。作为管理员,您可以列出、显示共享实例的信息、显式设置共享实例的状态以及强制删除共享实例。使用 policy.yaml 文件将这些操作的权限授予其他角色。

GET
/v2/share_instances

列出共享实例

版本 2.3 中新增。

列出所有共享实例。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

export_location_id (可选)

查询

字符串

可用于过滤共享或共享实例的导出位置 UUID。

版本 2.35 中新增

export_location_path (可选)

查询

字符串

可用于过滤共享或共享实例的导出位置路径。

版本 2.35 中新增

响应参数

名称

入参

类型

描述

status

body

字符串

共享或共享实例的状态。可能的值在上方部分中列出。

access_rules_status

body

字符串

共享实例访问规则状态。有效值为 activeerrorsyncing。在版本 2.28 之前,syncing 用状态 out_of_sync 表示。

版本 2.10 中新增

share_id

body

字符串

共享实例所属的共享的 UUID。

progress

body

字符串

共享创建的进度。

版本 2.54 中新增

availability_zone

body

字符串

共享所在的可用区的名称。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

replica_state

body

字符串

共享副本状态。仅在使用了复制时才具有设置值。可能的取值包括:activein_syncout_of_syncerror

版本 2.11 中新增

export_location

body

字符串

导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

export_locations

body

数组

导出位置列表。例如,当共享服务器具有多个网络接口时,它可以具有多个导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

cast_rules_to_readonly

body

布尔值

如果共享实例的 cast_rules_to_readonly 属性设置为 True,则所有现有的访问规则将被转换为只读。

2.30 版本新增

share_network_id

body

字符串

资源导出到的共享网络 ID。

share_server_id

body

字符串

共享服务器的 UUID。

host

body

字符串

资源所在的服务的后端宿主机名。此参数始终存在于响应模式中,但对于非管理员用户,该值可能表示为“null”。

access_rules_status

body

字符串

共享实例访问规则状态。有效值为 activeerrorsyncing。在版本 2.28 之前,syncing 用状态 out_of_sync 表示。

版本 2.10 中新增

share_type_id

路径

字符串

共享类型的 UUID。

id

body

字符串

共享实例 ID。

响应示例

{
    "share_instances": [
        {
            "status": "error",
            "progress": null,
            "share_id": "406ea93b-32e9-4907-a117-148b3945749f",
            "availability_zone": "nova",
            "replica_state": null,
            "created_at": "2015-09-07T08:41:20.000000",
            "updated_at": "2015-09-07T08:43:10.000000",
            "share_network_id": "713df749-aac0-4a54-af52-10f6c991e80c",
            "cast_rules_to_readonly": false,
            "share_server_id": "ba11930a-bf1a-4aa7-bae4-a8dfbaa3cc73",
            "host": "manila2@generic1#GENERIC1",
            "access_rules_status": "active",
            "share_type_id": "78dee8a9-1ee6-4a29-9081-14e6596fbb96",
            "id": "081f7030-c54f-42f5-98ee-93a37393e0f2"
        },
        {
            "status": "available",
            "progress": "100%",
            "share_id": "d94a8548-2079-4be0-b21c-0a887acd31ca",
            "availability_zone": "nova",
            "replica_state": null,
            "created_at": "2015-09-07T08:51:34.000000",
            "updated_at": "2015-09-10T02:01:22.000000",
            "share_network_id": "713df749-aac0-4a54-af52-10f6c991e80c",
            "cast_rules_to_readonly": false,
            "share_server_id": "ba11930a-bf1a-4aa7-bae4-a8dfbaa3cc73",
            "host": "manila2@generic1#GENERIC1",
            "access_rules_status": "active",
            "share_type_id": "78dee8a9-1ee6-4a29-9081-14e6596fbb96",
            "id": "75559a8b-c90c-42a7-bda2-edbe86acfb7b"
        },
        {
            "status": "creating_from_snapshot",
            "progress": "30%",
            "share_id": "9bb15af4-27e5-4174-ae15-dc549d4a3b51",
            "availability_zone": "nova",
            "replica_state": null,
            "created_at": "2015-09-07T09:01:15.000000",
            "updated_at": "2015-09-07T09:02:30.000000",
            "share_network_id": "713df749-aac0-4a54-af52-10f6c991e80c",
            "cast_rules_to_readonly": false,
            "share_server_id": "ba11930a-bf1a-4aa7-bae4-a8dfbaa3cc73",
            "host": "manila2@generic1#GENERIC1",
            "access_rules_status": "active",
            "share_type_id": "78dee8a9-1ee6-4a29-9081-14e6596fbb96",
            "id": "48155648-2fd3-480d-b02b-44b995c24bab"
        }
    ]
}
GET
/v2/share_instances/{share_instance_id}

显示共享实例详情

版本 2.3 中新增。

显示共享实例的详细信息。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_instance_id

路径

字符串

共享实例的 UUID。

响应参数

名称

入参

类型

描述

status

body

字符串

共享或共享实例的状态。可能的值在上方部分中列出。

access_rules_status

body

字符串

共享实例访问规则状态。有效值为 activeerrorsyncing。在版本 2.28 之前,syncing 用状态 out_of_sync 表示。

版本 2.10 中新增

share_id

body

字符串

共享实例所属的共享的 UUID。

progress

body

字符串

共享创建的进度。

版本 2.54 中新增

availability_zone

body

字符串

共享所在的可用区的名称。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

replica_state

body

字符串

共享副本状态。仅在使用了复制时才具有设置值。可能的取值包括:activein_syncout_of_syncerror

版本 2.11 中新增

export_location

body

字符串

导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

export_locations

body

数组

导出位置列表。例如,当共享服务器具有多个网络接口时,它可以具有多个导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

cast_rules_to_readonly

body

布尔值

如果共享实例的 cast_rules_to_readonly 属性设置为 True,则所有现有的访问规则将被转换为只读。

2.30 版本新增

share_network_id

body

字符串

资源导出到的共享网络 ID。

share_server_id

body

字符串

共享服务器的 UUID。

host

body

字符串

资源所在的服务的后端宿主机名。此参数始终存在于响应模式中,但对于非管理员用户,该值可能表示为“null”。

id

body

字符串

共享实例 ID。

响应示例

{
    "share_instance": {
        "status": "available",
        "progress": "100%",
        "share_id": "d94a8548-2079-4be0-b21c-0a887acd31ca",
        "availability_zone": "nova",
        "replica_state": null,
        "created_at": "2015-09-07T08:51:34.000000",
        "updated_at": "2015-09-07T08:52:20.000000",
        "cast_rules_to_readonly": false,
        "share_network_id": "713df749-aac0-4a54-af52-10f6c991e80c",
        "share_server_id": "ba11930a-bf1a-4aa7-bae4-a8dfbaa3cc73",
        "host": "manila2@generic1#GENERIC1",
        "access_rules_status": "active",
        "id": "75559a8b-c90c-42a7-bda2-edbe86acfb7b"
    }
}
POST
/v2/share_instances/{share_instance_id}/action

重置共享实例状态

版本 2.3 中新增。

仅限管理员。显式更新共享实例的状态。

使用 policy.yaml 文件将此操作的权限授予其他角色。

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_instance_id

路径

字符串

共享实例的 UUID。

status

body

字符串

要设置的共享或共享实例状态。可能的值列在 上面的部分 中。

请求示例

{
    "reset_status": {
        "status": "available"
    }
}
POST
/v2/share_instances/{share_instance_id}/action

强制删除共享实例

版本 2.3 中新增。

仅限管理员。强制删除共享实例。

使用 policy.yaml 文件将此操作的权限授予其他角色。

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_instance_id

路径

字符串

共享实例的 UUID。

force_delete

body

字符串

要强制删除共享实例,请将此值设置为 null。与删除操作不同,强制删除操作会忽略共享实例状态。

请求示例

{
    "force_delete": null
}

共享实例导出位置(自 API v2.9 起)

用于查看共享实例导出位置的一组 API。

默认情况下,这些 API 仅限管理员使用。使用 policy.yaml 文件将这些操作的权限授予其他角色。

列出共享实例的所有导出位置。

显示属于共享实例的导出位置的详细信息。

GET
/v2/share_instances/{share_instance_id}/export_locations

列出导出位置

2.9 版本新增。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_instance_id

路径

字符串

共享实例的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享导出位置 UUID。

share_instance_id

body

字符串

此导出位置所属的共享实例的 UUID。此参数仅对具有“管理员”角色的用户可用,并且不能通过 policy.yaml 控制。

路径

body

字符串

用于挂载操作的导出位置路径。

is_admin_only

body

布尔值

定义导出位置的目的。如果设置为 true,则预计它将仅由服务需求和管理员使用。如果设置为 false,则此导出位置可供最终用户使用。此参数仅对具有“管理员”角色的用户可用,并且不能通过 policy.json 控制。

preferred

body

布尔值

驱动程序可以使用此字段来识别最有效的导出位置,并且客户端应优先使用这些导出位置。默认设置为 false 值。

2.14 版本新增

响应示例

{
    "export_locations": [
        {
            "path": "10.254.0.3:/shares/share-e1c2d35e-fe67-4028-ad7a-45f668732b1d",
            "share_instance_id": "e1c2d35e-fe67-4028-ad7a-45f668732b1d",
            "is_admin_only": false,
            "id": "b6bd76ce-12a2-42a9-a30a-8a43b503867d",
            "preferred": false
        },
        {
            "path": "10.0.0.3:/shares/share-e1c2d35e-fe67-4028-ad7a-45f668732b1d",
            "share_instance_id": "e1c2d35e-fe67-4028-ad7a-45f668732b1d",
            "is_admin_only": true,
            "id": "6921e862-88bc-49a5-a2df-efeed9acd583",
            "preferred": false
        }
    ]
}
GET
/v2/share_instances/{share_instance_id}/export_locations/{export_location_id}

显示单个导出位置

2.9 版本新增。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_instance_id

路径

字符串

共享实例的 UUID。

export_location_id

路径

字符串

导出位置的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享导出位置 UUID。

share_instance_id

body

字符串

此导出位置所属的共享实例的 UUID。此参数仅对具有“管理员”角色的用户可用,并且不能通过 policy.yaml 控制。

路径

body

字符串

用于挂载操作的导出位置路径。

is_admin_only

body

布尔值

定义导出位置的目的。如果设置为 true,则预计它将仅由服务需求和管理员使用。如果设置为 false,则此导出位置可供最终用户使用。此参数仅对具有“管理员”角色的用户可用,并且不能通过 policy.json 控制。

preferred

body

布尔值

驱动程序可以使用此字段来识别最有效的导出位置,并且客户端应优先使用这些导出位置。默认设置为 false 值。

2.14 版本新增

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

响应示例

{
    "export_location": {
        "created_at": "2016-03-24T14:20:47.000000",
        "updated_at": "2016-03-24T14:20:47.000000",
        "preferred": false,
        "is_admin_only": true,
        "share_instance_id": "e1c2d35e-fe67-4028-ad7a-45f668732b1d",
        "path": "10.0.0.3:/shares/share-e1c2d35e-fe67-4028-ad7a-45f668732b1d",
        "id": "6921e862-88bc-49a5-a2df-efeed9acd583"
    }
}

共享类型

共享类型为调度器服务提供提示,以帮助放置新的工作负载。它包含额外的规范,这些规范可以匹配后端存储功能,也可以为共享文件系统服务提供有关请求的工作负载的说明。共享类型的工作方式与块存储卷类型的工作方式相同。有关更多信息,请参阅 共享类型的管理参考

您可以创建对所有项目和云中的用户可见的公共共享类型,或者使其私有并控制哪些项目可以访问它们。

当您发出创建共享类型请求时,您可以提交带有 share_typevolume_type 对象的请求体。

重要提示

使用 volume_type 对象已被弃用但仍受支持。建议您在创建共享类型时使用 share_type 对象。

无论您在请求中包含哪种对象类型,API 都会创建 volume_type 对象和 share_type 对象。这两个对象具有相同的 ID。当您发出列出共享类型请求时,响应会显示 share_typevolume_type 对象。

您可以将共享类型设置为公共或私有。默认情况下,共享类型创建为可公开访问。将 share_type_access:is_public(API 版本 1.0-2.6 的 os-share-type-access:is_public)设置为 False 以使共享类型私有。

您可以管理不同项目的私有共享类型的访问权限。您可以添加访问权限、删除访问权限以及获取有关私有共享类型的访问权限信息。

管理员可以创建带有这些额外规范的共享类型,这些规范用于过滤后端

  • driver_handles_share_servers。必需。定义了驱动程序模式,用于共享服务器或存储生命周期管理。共享文件系统服务为共享的导出创建共享服务器。

    当共享驱动程序管理或处理共享服务器生命周期时,设置为 True

    当管理员而不是共享驱动程序管理共享服务器生命周期时,设置为 False

  • snapshot_support。按后端是否支持共享快照进行过滤。

    设置为 True 以查找支持共享快照的后端。

    设置为 False 以查找不支持共享快照的后端。

管理员还可以为共享类型设置其他额外的规范,用于以下目的

  • 过滤后端。以这种格式指定这些不合格的额外规范:extra_spec=value。例如,netapp_raid_type=raid4

  • 设置驱动程序的数据。除了特殊的 capabilities 前缀之外,您使用其前缀后跟冒号指定这些合格的额外规范:vendor:extra_spec=value。例如,netapp:thin_provisioned=true

调度器使用特殊的 capabilities 前缀进行过滤。调度器只能在报告与共享类型的不带范围的 extra-spec 键匹配的功能的后端上创建共享。有关详细信息,请参阅 功能和额外规范

每个驱动程序实现确定它使用哪些额外的规范键。有关详细信息,请参阅驱动程序的文档。

管理员可以使用 policy.yaml 文件将创建具有额外规范的共享类型的权限授予其他角色。

GET
/v2/types?is_public={is_public}&extra-specs={extra-specs-as-dict}

列出共享类型

列出所有共享类型。

响应码

成功

代码

原因

200 - 正常

请求成功。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

is_public (可选)

查询

布尔值

一个布尔查询参数,当设置为 true 时,允许检索属于所有项目的公共资源。

extra_specs (可选)

查询

字符串

作为一组键值对的额外规范。在每个对中,键是额外规范的名称,值是用于过滤共享类型列表的共享类型。查询必须是“百分比编码”字符串,例如,以下查询参数:{‘extra-specs’: {‘snapshot_support’: ‘true’, ‘availability_zones’: ‘az1’}} 编码为 ‘extra_specs=%7B%27snapshot_support%27%3A+%27true%27%2C+%27availability_zones%27%3A+%27az1%27%7D’

版本 2.43 中新增

响应参数

名称

入参

类型

描述

id

body

字符串

共享类型的 UUID。

name

body

字符串

共享类型的名称。

required_extra_specs

body

对象

共享类型的必需额外规范:driver_handles_share_serverssnapshot_support 在 api 版本 2.24 之前被视为必需的额外规范。

extra_specs

body

对象

共享类型的额外规范。这些是共享类型预期具有的功能的键值对。有关更多信息,请参阅 共享类型。一些示例包括:driver_handles_share_serversreplication_typesnapshot_supportmount_snapshot_supportrevert_to_snapshot_supportcreate_share_from_snapshot_support

share_type_access:is_public

body

布尔值

指示共享类型是否可供云中的所有项目(租户)访问。

description

body

字符串

共享类型的描述。

新增于版本 2.41

is_default

body

布尔值

定义创建的共享类型是否为默认类型。如果返回值为 true,则它是默认共享类型,否则不是默认类型。

新增于版本 2.46

响应示例

{
    "volume_types": [
        {
            "required_extra_specs": {
                "driver_handles_share_servers": "True"
            },
            "share_type_access:is_public": true,
            "extra_specs": {
                "driver_handles_share_servers": "True"
            },
            "id": "420e6a31-3f3d-4ed7-9d11-59450372182a",
            "name": "default",
            "is_default": true,
            "description": "share type description"
        },
        {
            "required_extra_specs": {
                "driver_handles_share_servers": "True"
            },
            "share_type_access:is_public": true,
            "extra_specs": {
                "replication_type": "readable",
                "driver_handles_share_servers": "True",
                "mount_snapshot_support": "False",
                "revert_to_snapshot_support": "False",
                "create_share_from_snapshot_support": "True",
                "snapshot_support": "True"
            },
            "id": "7fa1342b-de9d-4d89-bdc8-af67795c0e52",
            "name": "testing",
            "is_default": false,
            "description": "share type description"
        }
    ],
    "share_types": [
        {
            "required_extra_specs": {
                "driver_handles_share_servers": "True"
            },
            "share_type_access:is_public": true,
            "extra_specs": {
                "driver_handles_share_servers": "True"
            },
            "id": "420e6a31-3f3d-4ed7-9d11-59450372182a",
            "name": "default",
            "is_default": true,
            "description": "share type description"
        },
        {
            "required_extra_specs": {
                "driver_handles_share_servers": "True"
            },
            "share_type_access:is_public": true,
            "extra_specs": {
                "replication_type": "readable",
                "driver_handles_share_servers": "True",
                "mount_snapshot_support": "False",
                "revert_to_snapshot_support": "False",
                "create_share_from_snapshot_support": "True",
                "snapshot_support": "True"
            },
            "id": "7fa1342b-de9d-4d89-bdc8-af67795c0e52",
            "name": "testing",
            "is_default": false,
            "description": "share type description"
        }
    ]
}
GET
/v2/types/default

列出默认共享类型

列出默认共享类型。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

响应参数

名称

入参

类型

描述

id

body

字符串

共享类型的 UUID。

required_extra_specs

body

对象

共享类型的必需额外规范:driver_handles_share_serverssnapshot_support 在 api 版本 2.24 之前被视为必需的额外规范。

extra_specs

body

对象

共享类型的额外规范。这些是共享类型预期具有的功能的键值对。有关更多信息,请参阅 共享类型。一些示例包括:driver_handles_share_serversreplication_typesnapshot_supportmount_snapshot_supportrevert_to_snapshot_supportcreate_share_from_snapshot_support

share_type_access:is_public

body

布尔值

指示共享类型是否可供云中的所有项目(租户)访问。

name

body

字符串

共享类型的名称。

description

body

字符串

共享类型的描述。

新增于版本 2.41

is_default

body

布尔值

定义创建的共享类型是否为默认类型。如果返回值为 true,则它是默认共享类型,否则不是默认类型。

新增于版本 2.46

响应示例

{
    "share_type": {
        "required_extra_specs": {
            "driver_handles_share_servers": "True"
        },
        "share_type_access:is_public": true,
        "extra_specs": {
            "driver_handles_share_servers": "True"
        },
        "id": "420e6a31-3f3d-4ed7-9d11-59450372182a",
        "name": "default",
        "is_default": true,
        "description": "share type description"
    },
    "volume_type": {
        "required_extra_specs": {
            "driver_handles_share_servers": "True"
        },
        "share_type_access:is_public": true,
        "extra_specs": {
            "driver_handles_share_servers": "True"
        },
        "id": "420e6a31-3f3d-4ed7-9d11-59450372182a",
        "name": "default",
        "is_default": true,
        "description": "share type description"
    }
}
GET
/v2/types/{share_type_id}

显示共享类型详情

显示指定共享类型的详细信息。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_type_id

路径

字符串

共享类型的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享类型的 UUID。

required_extra_specs

body

对象

共享类型的必需额外规范:driver_handles_share_serverssnapshot_support 在 api 版本 2.24 之前被视为必需的额外规范。

extra_specs

body

对象

共享类型的额外规范。这些是共享类型预期具有的功能的键值对。有关更多信息,请参阅 共享类型。一些示例包括:driver_handles_share_serversreplication_typesnapshot_supportmount_snapshot_supportrevert_to_snapshot_supportcreate_share_from_snapshot_support

share_type_access:is_public

body

布尔值

指示共享类型是否可供云中的所有项目(租户)访问。

name

body

字符串

共享类型的名称。

description

body

字符串

共享类型的描述。

新增于版本 2.41

is_default

body

布尔值

定义创建的共享类型是否为默认类型。如果返回值为 true,则它是默认共享类型,否则不是默认类型。

新增于版本 2.46

响应示例

{
    "share_type": {
        "required_extra_specs": {
            "driver_handles_share_servers": "True"
        },
        "share_type_access:is_public": true,
        "extra_specs": {
            "driver_handles_share_servers": "True"
        },
        "id": "2780fc88-526b-464a-a72c-ecb83f0e3929",
        "name": "default-share-type",
        "is_default": true,
        "description": "manila share type"
    },
    "volume_type": {
        "required_extra_specs": {
            "driver_handles_share_servers": "True"
        },
        "share_type_access:is_public": true,
        "extra_specs": {
            "driver_handles_share_servers": "True"
        },
        "id": "2780fc88-526b-464a-a72c-ecb83f0e3929",
        "name": "default-share-type",
        "is_default": true,
        "description": "manila share type"
    }
}
GET
/v2/types/{share_type_id}/extra_specs

列出额外规范

列出共享类型的额外规范。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_type_id

路径

字符串

共享类型的 UUID。

响应参数

名称

入参

类型

描述

extra_specs

body

对象

共享类型的额外规范。这些是共享类型预期具有的功能的键值对。有关更多信息,请参阅 共享类型。一些示例包括:driver_handles_share_serversreplication_typesnapshot_supportmount_snapshot_supportrevert_to_snapshot_supportcreate_share_from_snapshot_support

响应示例

{
    "extra_specs": {
        "replication_type": "readable",
        "driver_handles_share_servers": "True",
        "create_share_from_snapshot_support": "True",
        "revert_to_snapshot_support": "False",
        "mount_snapshot_support": "False",
        "snapshot_support": "True"
    }
}
POST
/v2/types

创建共享类型

创建共享类型。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

extra_specs

body

对象

共享类型的额外规范。这些是共享类型预期具有的功能的键值对。有关更多信息,请参阅 共享类型。创建新的共享类型时,必须提供必需的额外规范。driver_handles_share_servers 是必需的额外规范,并且 snapshot_support 在 API 版本 2.24 之前被认为是必需的额外规范。更新共享类型的额外规范时,除非需要更新它们,否则无需提供必需的额外规范。一些额外的规范示例包括:replication_typesnapshot_supportmount_snapshot_supportrevert_to_snapshot_supportcreate_share_from_snapshot_support

os-share-type-access:is_public(可选)

body

布尔值

指示共享类型是否可供公开访问。默认值为 true,即公开访问。

可用至版本 2.6

name

body

字符串

共享类型的名称。

description(可选)

body

字符串

共享类型的描述。此字段的值限制为 255 个字符。

新增于版本 2.41

请求示例

{
    "share_type": {
        "extra_specs": {
            "replication_type": "readable",
            "driver_handles_share_servers": true,
            "mount_snapshot_support": false,
            "revert_to_snapshot_support": false,
            "create_share_from_snapshot_support": true,
            "snapshot_support": true
        },
        "share_type_access:is_public": true,
        "name": "testing",
        "description": "share type description"
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

共享类型的 UUID。

required_extra_specs

body

对象

共享类型的必需额外规范:driver_handles_share_serverssnapshot_support 在 api 版本 2.24 之前被视为必需的额外规范。

extra_specs

body

对象

共享类型的额外规范。这些是共享类型预期具有的功能的键值对。有关更多信息,请参阅 共享类型。一些示例包括:driver_handles_share_serversreplication_typesnapshot_supportmount_snapshot_supportrevert_to_snapshot_supportcreate_share_from_snapshot_support

os-share-type-access:is_public(可选)

body

布尔值

指示共享类型是否可供公开访问。默认值为 true,即公开访问。

可用至版本 2.6

share_type_access:is_public (可选)

body

布尔值

指示共享类型是否可供公开访问。默认值为 true,即公开访问。

新增于版本 2.7

name

body

字符串

共享类型的名称。

description

body

字符串

共享类型的描述。

新增于版本 2.41

is_default

body

布尔值

定义创建的共享类型是否为默认类型。如果返回值为 true,则它是默认共享类型,否则不是默认类型。

新增于版本 2.46

响应示例

{
    "share_type": {
        "required_extra_specs": {
            "driver_handles_share_servers": true
        },
        "share_type_access:is_public": true,
        "extra_specs": {
            "replication_type": "readable",
            "driver_handles_share_servers": "True",
            "mount_snapshot_support": "False",
            "revert_to_snapshot_support": "False",
            "create_share_from_snapshot_support": "True",
            "snapshot_support": "True"
        },
        "id": "7fa1342b-de9d-4d89-bdc8-af67795c0e52",
        "name": "testing",
        "is_default": false,
        "description": "share type description"
    },
    "volume_type": {
        "required_extra_specs": {
            "driver_handles_share_servers": true
        },
        "share_type_access:is_public": true,
        "extra_specs": {
            "replication_type": "readable",
            "driver_handles_share_servers": "True",
            "mount_snapshot_support": "False",
            "revert_to_snapshot_support": "False",
            "create_share_from_snapshot_support": "True",
            "snapshot_support": "True"
        },
        "id": "7fa1342b-de9d-4d89-bdc8-af67795c0e52",
        "name": "testing",
        "is_default": false,
        "description": "share type description"
    }
}
GET
/v2/types/{share_type_id}/share_type_access

显示共享类型访问详情

显示共享类型的访问详情。

您只能查看私有共享类型的访问详情。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_type_id

路径

字符串

共享类型的 UUID。

响应参数

名称

入参

类型

描述

project_id

body

字符串

已授予访问该类型资源的项目的 ID。

share_type_id

body

字符串

共享类型的 UUID。

响应示例

{
    "share_type_access": [
        {
            "share_type_id": "1732f284-401d-41d9-a494-425451e8b4b8",
            "project_id": "818a3f48dcd644909b3fa2e45a399a27"
        },
        {
            "share_type_id": "1732f284-401d-41d9-a494-425451e8b4b8",
            "project_id": "e1284adea3ee4d2482af5ed214f3ad90"
        }
    ]
}
POST
/v2/types/{share_type_id}/extra_specs

设置共享类型的额外规范

为共享类型设置额外的规范。

每个驱动程序实现确定它使用哪些额外的规范键。有关详细信息,请参阅 功能和额外规范 以及您的驱动程序的文档。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_type_id

路径

字符串

共享类型的 UUID。

extra_specs

body

对象

共享类型的额外规范。这些是共享类型预期具有的功能的键值对。有关更多信息,请参阅 共享类型。创建新的共享类型时,必须提供必需的额外规范。driver_handles_share_servers 是必需的额外规范,并且 snapshot_support 在 API 版本 2.24 之前被认为是必需的额外规范。更新共享类型的额外规范时,除非需要更新它们,否则无需提供必需的额外规范。一些额外的规范示例包括:replication_typesnapshot_supportmount_snapshot_supportrevert_to_snapshot_supportcreate_share_from_snapshot_support

请求示例

{
    "extra_specs": {
        "my_key": "my_value"
    }
}

响应参数

名称

入参

类型

描述

extra_specs

body

对象

共享类型的额外规范。这些是共享类型预期具有的功能的键值对。有关更多信息,请参阅 共享类型。一些示例包括:driver_handles_share_serversreplication_typesnapshot_supportmount_snapshot_supportrevert_to_snapshot_supportcreate_share_from_snapshot_support

响应示例

{
    "extra_specs": {
        "my_key": "my_value"
    }
}
DELETE
/v2/types/{share_type_id}/extra_specs/{extra-spec-key}

取消设置一个额外的规范

取消设置共享类型的额外规范。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_type_id

路径

字符串

共享类型的 UUID。

extra-spec-key

路径

字符串

额外的规范键

POST
/v2/types/{share_type_id}/action

添加共享类型访问权限

为项目添加共享类型访问权限。

您只能添加私有共享类型的访问权限。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_type_id

路径

字符串

共享类型的 UUID。

addProjectAccess

body

对象

表示应授予访问权限的项目资源的的对象。

project

body

字符串

需要授予访问该类型资源的项目的 ID。

请求示例

{
    "addProjectAccess": {
        "project": "e1284adea3ee4d2482af5ed214f3ad90"
    }
}
POST
/v2/types/{share_type_id}/action

移除共享类型访问权限

从项目移除共享类型访问权限。

您只能从私有共享类型移除访问权限。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_type_id

路径

字符串

共享类型的 UUID。

removeProjectAccess

body

对象

表示应撤销访问权限的项目资源的的对象。

project

body

字符串

必须撤销访问权限的项目的 ID。

请求示例

{
    "removeProjectAccess": {
        "project": "818a3f48dcd644909b3fa2e45a399a27"
    }
}
DELETE
/v2/types/{share_type_id}

删除共享类型

删除共享类型。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_type_id

路径

字符串

共享类型的 UUID。

PUT
/v2/types/{share_type_id}

更新共享类型(自 API v2.50 起)

新增于版本 2.50。

更新共享类型。不能使用此 API 更新共享类型额外的规范。请使用各自的 API 来 设置额外的规范取消设置额外的规范

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_type_id

路径

字符串

共享类型的 UUID。

name (可选)

body

字符串

共享类型的名称。此字段的值限制为 255 个字符。

share_type_access:is_public (可选)

body

布尔值

指示共享类型是否应可供云中的所有项目(租户)访问。如果未指定,则不会更改共享类型的可见性。

description(可选)

body

字符串

共享类型的新的描述。

请求示例

{
  "share_type":
  {
    "share_type_access:is_public": true,
    "name": "testing",
    "description": "share type description"
  }
}

响应参数

名称

入参

类型

描述

id

body

字符串

共享类型的 UUID。

required_extra_specs

body

对象

共享类型的必需额外规范:driver_handles_share_serverssnapshot_support 在 api 版本 2.24 之前被视为必需的额外规范。

extra_specs

body

对象

共享类型的额外规范。这些是共享类型预期具有的功能的键值对。有关更多信息,请参阅 共享类型。一些示例包括:driver_handles_share_serversreplication_typesnapshot_supportmount_snapshot_supportrevert_to_snapshot_supportcreate_share_from_snapshot_support

share_type_access:is_public

body

布尔值

指示共享类型是否可供云中的所有项目(租户)访问。

name

body

字符串

共享类型的名称。

description

body

字符串

共享类型的描述。

is_default

body

布尔值

定义创建的共享类型是否为默认类型。如果返回值为 true,则它是默认共享类型,否则不是默认类型。

响应示例

{
    "share_type": {
        "required_extra_specs": {
            "driver_handles_share_servers": true
        },
        "share_type_access:is_public": true,
        "extra_specs": {
            "replication_type": "readable",
            "driver_handles_share_servers": "True",
            "mount_snapshot_support": "False",
            "revert_to_snapshot_support": "False",
            "create_share_from_snapshot_support": "True",
            "snapshot_support": "True"
        },
        "id": "7fa1342b-de9d-4d89-bdc8-af67795c0e52",
        "name": "testing",
        "is_default": false,
        "description": "share type description"
    },
    "volume_type": {
        "required_extra_specs": {
            "driver_handles_share_servers": true
        },
        "share_type_access:is_public": true,
        "extra_specs": {
            "replication_type": "readable",
            "driver_handles_share_servers": "True",
            "mount_snapshot_support": "False",
            "revert_to_snapshot_support": "False",
            "create_share_from_snapshot_support": "True",
            "snapshot_support": "True"
        },
        "id": "7fa1342b-de9d-4d89-bdc8-af67795c0e52",
        "name": "testing",
        "is_default": false,
        "description": "share type description"
    }
}

调度器统计信息 - 存储池

管理员可以列出调度器服务已知的所有后端存储池。

GET
/v2/scheduler-stats/pools?pool={pool_name}&host={host_name}&backend={backend_name}&capabilities={capabilities}&share_type={share_type}

列出后端存储池

列出所有后端存储池。如果提供了搜索选项,则返回的池列表将使用这些选项进行过滤。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

pool_name (可选)

查询

字符串

后端的池名称。

host_name (可选)

查询

字符串

后端的宿主机名称。

backend_name (可选)

查询

字符串

后端名称。

capabilities (可选)

查询

字符串

存储后端的功能。

share_type(可选)

查询

字符串

共享类型名称或 UUID。允许根据共享类型中的额外规范过滤后端池。

新增于版本 2.23

响应参数

名称

入参

类型

描述

backend

body

字符串

后端名称。

host

body

字符串

后端的宿主机名称。

pool

body

字符串

后端的池名称。

name

body

字符串

后端的名称,格式为:host@backend#POOL

  • host。后端的主机名。

  • backend。后端名称。

  • POOL。后端池名称。

响应示例

{
  "pools": [
    {
      "name": "opencloud@alpha#ALPHA_pool",
      "host": "opencloud",
      "backend": "alpha",
      "pool": "ALPHA_pool"
    },
    {
      "name": "opencloud@beta#BETA_pool",
      "host": "opencloud",
      "backend": "beta",
      "pool": "BETA_pool"
    },
    {
      "name": "opencloud@gamma#GAMMA_pool",
      "host": "opencloud",
      "backend": "gamma",
      "pool": "GAMMA_pool"
    },
    {
      "name": "opencloud@delta#DELTA_pool",
      "host": "opencloud",
      "backend": "delta",
      "pool": "DELTA_pool"
    }
  ]
}
GET
/v2/scheduler-stats/pools/detail?pool={pool_name}&host={host_name}&backend={backend_name}&capabilities={capabilities}&share_type={share_type}

列出带有详情的后端存储池

列出带有详情的所有后端存储池。如果提供了搜索选项,则返回的池列表将使用这些选项进行过滤。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

pool_name (可选)

查询

字符串

后端的池名称。

host_name (可选)

查询

字符串

后端的宿主机名称。

backend_name (可选)

查询

字符串

后端名称。

capabilities (可选)

查询

字符串

存储后端的功能。

share_type(可选)

查询

字符串

共享类型名称或 UUID。允许根据共享类型中的额外规范过滤后端池。

新增于版本 2.23

响应参数

名称

入参

类型

描述

pools

body

字符串

后端的池。此值为 null 或一个字符串值,指示每个池的功能。例如,pool_nametotal_capacity_gbqos 等。

name

body

字符串

后端的名称,格式为:host@backend#POOL

  • host。后端的主机名。

  • backend。后端名称。

  • POOL。后端池名称。

backend

body

字符串

后端名称。

pool

body

字符串

后端的池名称。

host

body

字符串

后端的宿主机名称。

capabilities

body

对象

后端功能,包括 qostotal_capacity_gb 等。

qos

body

布尔值

服务质量 (QoS) 支持。

timestamp

body

字符串

发出 API 请求的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2015-08-27T09:49:58-05:00

share_backend_name

body

字符串

共享后端的名称。

server_pools_mapping

body

对象

服务器和池之间的映射。

driver_handles_share_servers

body

布尔值

共享服务器通常是用于导出共享文件系统的存储虚拟机或轻量级容器。存储后端可能能够使用配置的共享服务器,或者允许共享驱动程序创建和管理共享服务器的生命周期。此功能指定关联的池的共享驱动程序是否负责创建和管理共享服务器的生命周期。如果为 false,则共享文件系统服务的管理员已根据给定的后端配置共享服务器。

driver_version

body

字符串

后端的驱动程序版本。

total_capacity_gb

body

字符串

后端的总容量,以 GiB 为单位。有效值为字符串,例如 unknown,或整数。

free_capacity_gb

body

字符串

后端的可用容量,以 GiB 为单位。有效值为字符串,例如 unknown,或整数。

reserved_percentage

body

整数

后端内部使用保留的总容量的百分比。

vendor_name

body

字符串

后端的供应商名称。

snapshot_support

body

布尔值

指定后端是否支持共享快照。

replication_domain

body

字符串

后端复制域。

storage_protocol

body

字符串

后端的存储协议。例如,NFS_CIFSglusterfsHDFS 等。

响应示例

{
  "pools": [
    {
      "name": "opencloud@alpha#ALPHA_pool",
      "host": "opencloud",
      "backend": "alpha",
      "pool": "ALPHA_pool",
      "capabilities": {
        "pool_name": "ALPHA_pool",
        "total_capacity_gb": 1230.0,
        "free_capacity_gb": 1210.0,
        "reserved_percentage": 0,
        "share_backend_name": "ALPHA",
        "storage_protocol": "NFS_CIFS",
        "vendor_name": "Open Source",
        "driver_version": "1.0",
        "timestamp": "2019-05-07T00:28:02.935569",
        "driver_handles_share_servers": true,
        "snapshot_support": true,
        "create_share_from_snapshot_support": true,
        "revert_to_snapshot_support": true,
        "mount_snapshot_support": true,
        "dedupe": false,
        "compression": false,
        "replication_type": null,
        "replication_domain": null,
        "sg_consistent_snapshot_support": "pool",
        "ipv4_support": true,
        "ipv6_support": false
      }
    },
    {
      "name": "opencloud@beta#BETA_pool",
      "host": "opencloud",
      "backend": "beta",
      "pool": "BETA_pool",
      "capabilities": {
        "pool_name": "BETA_pool",
        "total_capacity_gb": 1230.0,
        "free_capacity_gb": 1210.0,
        "reserved_percentage": 0,
        "share_backend_name": "BETA",
        "storage_protocol": "NFS_CIFS",
        "vendor_name": "Open Source",
        "driver_version": "1.0",
        "timestamp": "2019-05-07T00:28:02.817309",
        "driver_handles_share_servers": true,
        "snapshot_support": true,
        "create_share_from_snapshot_support": true,
        "revert_to_snapshot_support": true,
        "mount_snapshot_support": true,
        "dedupe": false,
        "compression": false,
        "replication_type": null,
        "replication_domain": null,
        "sg_consistent_snapshot_support": "pool",
        "ipv4_support": true,
        "ipv6_support": false
      }
    },
    {
      "name": "opencloud@gamma#GAMMA_pool",
      "host": "opencloud",
      "backend": "gamma",
      "pool": "GAMMA_pool",
      "capabilities": {
        "pool_name": "GAMMA_pool",
        "total_capacity_gb": 1230.0,
        "free_capacity_gb": 1210.0,
        "reserved_percentage": 0,
        "replication_type": "readable",
        "share_backend_name": "GAMMA",
        "storage_protocol": "NFS_CIFS",
        "vendor_name": "Open Source",
        "driver_version": "1.0",
        "timestamp": "2019-05-07T00:28:02.899888",
        "driver_handles_share_servers": false,
        "snapshot_support": true,
        "create_share_from_snapshot_support": true,
        "revert_to_snapshot_support": true,
        "mount_snapshot_support": true,
        "dedupe": false,
        "compression": false,
        "replication_domain": "replica_domain_store1",
        "sg_consistent_snapshot_support": "pool",
        "ipv4_support": true,
        "ipv6_support": false
      }
    },
    {
      "name": "opencloud@delta#DELTA_pool",
      "host": "opencloud",
      "backend": "delta",
      "pool": "DELTA_pool",
      "capabilities": {
        "pool_name": "DELTA_pool",
        "total_capacity_gb": 1230.0,
        "free_capacity_gb": 1210.0,
        "reserved_percentage": 0,
        "replication_type": "readable",
        "share_backend_name": "DELTA",
        "storage_protocol": "NFS_CIFS",
        "vendor_name": "Open Source",
        "driver_version": "1.0",
        "timestamp": "2019-05-07T00:28:02.963660",
        "driver_handles_share_servers": false,
        "snapshot_support": true,
        "create_share_from_snapshot_support": true,
        "revert_to_snapshot_support": true,
        "mount_snapshot_support": true,
        "dedupe": false,
        "compression": false,
        "replication_domain": "replica_domain_store1",
        "sg_consistent_snapshot_support": "pool",
        "ipv4_support": true,
        "ipv6_support": false
      }
    }
  ]
}

服务

这些 API 帮助与共享文件系统服务 manila-schedulermanila-sharemanila-data 交互。

重要提示

对于 API 版本 2.6 及更早版本,请将 URL 中的 services 替换为 os-services

注意

从 API 版本 2.83 开始,在启用或禁用服务的响应中,disabled 字段将被 status 字段替换。重新启用禁用的服务将自动清除 disable reason

GET
/v2/services?host={host}&binary={binary}&zone={zone}&state={state}&status={status}

列出服务

列出所有服务,可以选择使用指定的搜索选项进行过滤。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

host (可选)

查询

字符串

服务的宿主机名称。

binary (可选)

查询

字符串

服务二进制名称。默认值为可执行文件的基本名称。

zone (可选)

查询

字符串

可用区。

state (可选)

查询

字符串

服务的当前状态。有效值为 updown

status (可选)

查询

字符串

服务的状态,为 enableddisabled

响应参数

名称

入参

类型

描述

services

body

字符串

响应体中的顶层元素。

id

body

整数

服务 ID。

status

body

字符串

服务的状态,为 enableddisabled

binary

body

字符串

服务二进制名称。默认值为可执行文件的基本名称。

zone

body

字符串

服务的可用区。

host

body

字符串

服务的宿主机名称。

state

body

字符串

服务的当前状态。有效值为 updown

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

disabled_reason

body

字符串

服务被禁用的原因。

新增于版本 2.83

ensuring

body

字符串

服务当前是否正在确保共享。

新增于版本 2.86

响应示例

{
    "services": [
        {
            "status": "enabled",
            "binary": "manila-share",
            "zone": "nova",
            "host": "manila2@generic1",
            "updated_at": "2015-09-07T13:03:57.000000",
            "state": "up",
            "id": 1
        },
        {
            "status": "enabled",
            "binary": "manila-scheduler",
            "zone": "nova",
            "host": "manila2",
            "updated_at": "2015-09-07T13:03:57.000000",
            "state": "up",
            "id": 2
        }
    ]
}
PUT
/v2/services/enable

启用服务

启用服务。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

binary

body

字符串

您想要启用的服务二进制文件的名称。通常,此名称是可执行文件的基本名称。

host

body

字符串

您想要启用的服务的宿主机名称。

请求示例

{
    "binary": "manila-share",
    "host": "openstackhost@generic#pool_0"
}

响应参数

名称

入参

类型

描述

host

body

字符串

已启用服务的宿主机名称。

binary

body

字符串

服务二进制名称。默认值为可执行文件的基本名称。

disabled

body

布尔值

指示服务是否被禁用。

可用至版本 2.82

status

body

字符串

服务的状态,为 enableddisabled

新增于版本 2.83

disabled_reason

body

字符串

服务被禁用的原因。

新增于版本 2.83

响应示例

{
    "binary": "manila-share",
    "host": "openstackhost@generic#pool_0",
    "status": "enabled",
    "disabled_reason": ""
}
PUT
/v2/services/disable

禁用服务

禁用服务。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

binary

body

字符串

您想要禁用的服务二进制文件的名称。通常,此名称是可执行文件的基本名称。

host

body

字符串

您想要禁用的服务的宿主机名称。

disabled_reason (可选)

body

字符串

服务被禁用的原因。

新增于版本 2.83

请求示例

{
    "binary": "manila-share",
    "host": "openstackhost@generic#pool_0",
    "disabled_reason": "Service taken down for maintenance until May"
}

响应参数

名称

入参

类型

描述

host

body

字符串

已禁用服务的宿主机名。

binary

body

字符串

已禁用服务的二进制文件名称。通常,此名称是可执行文件的基本名称。

disabled

body

布尔值

指示服务是否被禁用。

可用至版本 2.82

status

body

字符串

服务的状态,为 enableddisabled

新增于版本 2.83

disabled_reason

body

字符串

服务被禁用的原因。

新增于版本 2.83

响应示例

{
    "binary": "manila-share",
    "host": "openstackhost@generic#pool_0",
    "status": "disabled",
    "disabled_reason": "Service taken down for maintenance until May"
}
POST
/v2/services/ensure-shares

确保共享 (自 API 版本 2.86 起)

启动 manila-share 二进制文件的确保共享过程。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

host

body

字符串

您想要在 host@backend 格式中启动确保共享过程的 manila-share 二进制文件的宿主机名。

请求示例

{
    "host": "openstackhost@storagebackend"
}

响应参数

响应中没有正文内容。

可用区

描述共享文件系统服务配置的可用区。

重要提示

对于 API 版本 2.6 及更早版本,请将 URL 中的 availability-zones 替换为 os-availability-zone

GET
/v2/availability-zones

列出可用区

列出所有可用区。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

响应参数

名称

入参

类型

描述

availability_zones

body

字符串

顶级响应体元素。

id

body

字符串

资源所在的可用区 ID。

name

body

字符串

可用区的名称。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

响应示例

{
    "availability_zones": [
        {
            "name": "nova",
            "created_at": "2015-09-18T09:50:55.000000",
            "updated_at": null,
            "id": "388c983d-258e-4a0e-b1ba-10da37d766db"
        }
    ]
}

管理和取消管理共享 (已弃用)

允许将共享文件系统置于服务管理之下。

POST
/v2/os-share-manage

管理共享 (已弃用)

警告

从 microversion 2.7 开始,此 API 已弃用,从 microversion 2.7 开始,对此 API 的请求将以 404 失败。请使用 共享管理 API 代替此 API,版本为 2.7。

使用此 API 将共享置于共享文件系统服务的管理之下。在服务中,共享将表示为数据库中的资源。它可以具有用户定义的名称和描述。

仅限管理员。使用 policy.yaml 文件将此操作的权限授予其他角色。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share

body

对象

一个 share 对象。

协议

body

字符串

要管理的共享的共享文件系统协议。有效值为 NFSCIFSGlusterFSCEPHFSHDFSMAPRFS

name (可选)

body

字符串

用户定义的资源名称。该字段的值限制为 255 个字符。

display_name(可选)

body

字符串

用户定义的资源名称。该字段设置 name 参数。

share_type(可选)

body

字符串

用于创建资源的共享类型名称或 ID。如果省略此参数,则使用默认共享类型。要查看管理员设置的默认共享类型,请发出列出默认共享类型请求。

driver_options(可选)

body

对象

一组键值对,以字符串字典的形式,描述驱动程序选项。驱动程序选项的详细信息应从 相应的共享驱动程序文档 中获取。

export_path

body

字符串

适用于协议的格式的共享导出路径

  • NFS 协议。10.0.0.1:/foo_path。例如,10.254.0 .5:/shares/share-42033c24-0261-424f-abda-4fef2f6dbfd5

  • CIFS 协议。例如,\\10.0.0.1\foo_name_of_cifs_share

service_host

body

字符串

manage-share 服务主机,格式为:host@backend#POOL

  • host。后端的主机名。

  • backend。后端名称。

  • POOL。后端池名称。

description(可选)

body

字符串

用户定义的资源描述。该字段的值限制为 255 个字符。

display_description(可选)

body

字符串

用户定义的资源描述。该字段设置 description 参数。

请求示例

{
    "share": {
        "protocol": "nfs",
        "name": "accounting_p8787",
        "share_type": "gold",
        "driver_options": {
            "opt1": "opt1",
            "opt2": "opt2"
        },
        "export_path": "192.162.10.6:/shares/share-accounting_p8787",
        "service_host": "manila2@openstackstor01#accountingpool",
        "is_public": true,
        "description": "Common storage for spreadsheets and presentations. Please contact John Accessman to be added to the users of this drive.",
        "share_server_id": "00137b40-ca06-4ae8-83a3-2c5989eebcce"
    }
}

响应参数

名称

入参

类型

描述

share

body

对象

一个 share 对象。

links

body

数组

资源的分页和书签链接。

availability_zone

body

字符串

共享所在的可用区的名称。

share_network_id

body

字符串

资源导出到的共享网络 ID。

export_locations

body

数组

导出位置列表。例如,当共享服务器具有多个网络接口时,它可以具有多个导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

share_server_id

body

字符串

共享服务器的 UUID。

snapshot_id

body

字符串

用于创建共享的快照的 UUID。

id

body

字符串

共享的 UUID。

size

body

整数

共享大小,以 GiB 为单位。

share_type

body

字符串

共享所属的共享类型 UUID。在 API 版本 2.6 之前,此参数解析为共享类型的名称。在 API 版本 2.6 及更高版本中,此参数持有共享类型 ID 而不是名称。

share_type_name

body

字符串

共享类型的名称。

export_location

body

字符串

导出位置。对于较新的 API 版本,它在单独的 API 中可用。请参阅部分 共享导出位置共享实例导出位置

直到版本 2.8 可用

project_id

body

字符串

拥有资源的项目的 ID。

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

status

body

字符串

共享或共享实例的状态。可能的值在上方部分中列出。

description

body

字符串

资源的由用户定义的描述。

host

body

字符串

资源所在的服务的后端宿主机名。此参数始终存在于响应模式中,但对于非管理员用户,该值可能表示为“null”。

is_public

body

布尔值

共享是否对公众可见(云中的所有项目)或不是。

snapshot_support

body

布尔值

一个额外的规范,用于按后端是否支持共享快照来过滤后端。

版本 2.2 中新增

name

body

字符串

资源的由用户定义的名称。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

share_proto

body

字符串

共享文件系统协议。有效值为 NFSCIFSGlusterFSHDFSCephFSMAPRFSCephFS,API v2.13 开始支持。

响应示例

{
    "share": {
        "links": [
            {
                "href": "http://172.18.198.54:8786/v2/16e1ab15c35a457e9c2b2aa189f544e1/shares/00137b40-ca06-4ae8-83a3-2c5989eebcce",
                "rel": "self"
            },
            {
                "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/shares/00137b40-ca06-4ae8-83a3-2c5989eebcce",
                "rel": "bookmark"
            }
        ],
        "availability_zone": null,
        "share_network_id": null,
        "export_locations": [],
        "share_server_id": "00137b40-ca06-4ae8-83a3-2c5989eebcce",
        "share_group_id": null,
        "snapshot_id": null,
        "id": "00137b40-ca06-4ae8-83a3-2c5989eebcce",
        "size": null,
        "share_type": "14747856-08e5-494f-ab40-a64b9d20d8f7",
        "share_type_name": "d",
        "export_location": "10.254.0.5:/shares/share-42033c24-0261-424f-abda-4fef2f6dbfd5",
        "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "metadata": {},
        "status": "manage_starting",
        "description": "Lets manage share.",
        "user_id": "66ffd308757e44b9a8bec381322b0b88",
        "host": "manila2@unmanage1#UNMANAGE1",
        "access_rules_status": "active",
        "has_replicas": false,
        "replication_type": null,
        "is_public": false,
        "snapshot_support": true,
        "name": "share_texas1",
        "created_at": "2019-03-05T10:00:00.000000",
        "share_proto": "NFS",
        "volume_type": "d"
    }
}
POST
/v2/os-share-unmanage/{share_id}/unmanage

取消管理共享 (已弃用)

警告

从 microversion 2.7 开始,此 API 已弃用,从 microversion 2.7 开始,对此 API 的请求将以 404 失败。请使用 共享取消管理 API 代替此 API,版本为 2.7。

使用此 API 从共享文件系统服务的管理中删除共享,而不删除共享。

仅限管理员。使用 policy.yaml 文件将此操作的权限授予其他角色。

先决条件

  • 此 API 不支持取消管理在共享服务器之上创建的共享(即使用共享网络创建的共享)。

  • 在尝试取消管理共享之前,应删除任何快照和共享副本。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

路径

字符串

共享的 UUID。

响应参数

响应中没有正文内容。

配额集

提供配额管理支持。

重要提示

对于 API 版本 2.6 及更早版本,请将 URL 中的 quota-sets 替换为 os-quota-sets

共享类型配额是在 API 版本 2.39 中添加的。可以为以下配额资源设置每个共享类型的配额

  • 千兆字节

  • 快照

  • 共享

  • 千兆字节的快照

  • share_groups (自 API 版本 2.40 起)

  • share_group_snapshots (自 API 版本 2.40 起)

  • share_replicas (自 API 版本 2.53 起)

  • replica_gigabytes (自 API 版本 2.53 起)

  • per_share_gigabytes (自 API 版本 2.62 起)

  • backups (自 API 版本 2.80 起)

  • backup_gigabytes (自 API 版本 2.80 起)

  • encryption_keys (自 API 版本 2.90 起)

为了操作共享类型配额,请求将类似于以下示例,但必须将请求路径中的 user_id={user_id} 替换为 share_type={share_type_name_or_id}

共享组和共享组快照已添加到 API 版本 2.40 中的配额管理 API 中。

共享副本和副本千兆字节已添加到 API 版本 2.53 中的配额管理 API 中。

每个共享千兆字节已添加到 API 版本 2.62 中的配额管理 API 中。

共享备份和备份千兆字节已添加到 API 版本 2.80 中的配额管理 API 中。

加密密钥已添加到 API 版本 2.90 中的配额管理 API 中。

GET
/v2/quota-sets/{project_id_quota_request_path}/defaults

显示默认配额集

显示给定项目的默认配额。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

project_id_quota_request_path (可选)

路径

字符串

必须对 API 执行操作的项目 ID。这是可选的,如果未指定,则项目 ID 将从调用者的 API 令牌派生。具有系统/域范围用户的用户与此 API 交互必须指定需要查询或操作配额的项目 ID。

请注意,此 ID 可能与 URL 中资源名称“quota-sets”之前面的项目 ID 不同。例如,在多租户云中,URL 中的第一个 ID 通常是能够创建、查询或删除云中其他项目配额的特权用户(例如云管理员)的项目 ID。如果服务器支持 API 版本 2.60,则 URL 无需在资源名称之前使用特权用户的项目 ID。

响应参数

名称

入参

类型

描述

quota_set

body

对象

quota_set 对象。

id

body

字符串

配额所针对的项目 ID。

千兆字节

body

整数

每个项目允许的千兆字节数。

快照

body

整数

每个项目允许的快照数。

共享

body

整数

每个项目允许的共享数。

千兆字节的快照

body

整数

每个项目允许的快照千兆字节数。

share_networks (可选)

body

整数

用户和项目,但不包括共享类型,允许的共享网络数。

share_groups

body

整数

每个项目或用户允许的共享组数。

版本 2.40 中新增

share_group_snapshots

body

整数

每个项目或用户允许的共享组快照数。

版本 2.40 中新增

share_networks

body

整数

每个项目允许的共享网络数。

share_replicas

body

整数

每个项目允许的共享副本数。

新增于版本 2.53

replica_gigabytes

body

整数

每个项目允许的共享副本千兆字节数。

新增于版本 2.53

per_share_gigabytes

body

整数

每个项目允许的每个共享千兆字节数。

版本 2.62 中新增

backups

body

整数

每个项目允许的备份数。

新增于版本 2.80

backup_gigabytes

body

整数

每个项目允许的备份千兆字节数。

新增于版本 2.80

encryption_keys

body

整数

每个项目允许的加密密钥数。

版本 2.90 中新增

响应示例

{
    "quota_set": {
        "gigabytes": 1000,
        "shares": 50,
        "snapshot_gigabytes": 1000,
        "snapshots": 50,
        "id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "share_networks": 10,
        "share_groups": 10,
        "share_group_snapshots": 10,
        "share_replicas": 100,
        "replica_gigabytes": 1000,
        "per_share_gigabytes": -1,
        "backups": 50,
        "backup_gigabytes": 1000
    }
}
GET
/v2/quota-sets/{project_id_quota_request_path}?user_id={user_id}

显示配额集

显示给定项目的配额。

如果您指定可选的 user_id 查询参数,您将获得项目中此用户的配额。如果您省略此参数,您将获得项目的配额。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

project_id_quota_request_path (可选)

路径

字符串

必须对 API 执行操作的项目 ID。这是可选的,如果未指定,则项目 ID 将从调用者的 API 令牌派生。具有系统/域范围用户的用户与此 API 交互必须指定需要查询或操作配额的项目 ID。

请注意,此 ID 可能与 URL 中资源名称“quota-sets”之前面的项目 ID 不同。例如,在多租户云中,URL 中的第一个 ID 通常是能够创建、查询或删除云中其他项目配额的特权用户(例如云管理员)的项目 ID。如果服务器支持 API 版本 2.60,则 URL 无需在资源名称之前使用特权用户的项目 ID。

user_id (可选)

查询

字符串

用户 ID。如果您指定此查询参数,您将检索或更新项目中此用户的配额。如果您省略此参数,您将查询或更新整个项目的配额。此参数与“share_type”参数互斥。

share_type(可选)

路径

字符串

URI 中的此参数是共享类型的名称或 UUID。如果您在 URI 中指定此参数,您将显示、更新或删除此共享类型的配额。此参数与“user_id”查询参数互斥。

版本 2.39 中新增

响应参数

名称

入参

类型

描述

quota_set

body

对象

quota_set 对象。

id

body

字符串

配额所针对的项目 ID。

千兆字节

body

整数

每个项目允许的千兆字节数。

快照

body

整数

每个项目允许的快照数。

共享

body

整数

每个项目允许的共享数。

千兆字节的快照

body

整数

每个项目允许的快照千兆字节数。

share_networks (可选)

body

整数

用户和项目,但不包括共享类型,允许的共享网络数。

share_groups

body

整数

每个项目或用户允许的共享组数。

版本 2.40 中新增

share_group_snapshots

body

整数

每个项目或用户允许的共享组快照数。

版本 2.40 中新增

share_replicas

body

整数

每个项目允许的共享副本数。

新增于版本 2.53

replica_gigabytes

body

整数

每个项目允许的共享副本千兆字节数。

新增于版本 2.53

per_share_gigabytes

body

整数

每个项目允许的每个共享千兆字节数。

版本 2.62 中新增

backups

body

整数

每个项目允许的备份数。

新增于版本 2.80

backup_gigabytes

body

整数

每个项目允许的备份千兆字节数。

新增于版本 2.80

encryption_keys

body

整数

每个项目允许的加密密钥数。

版本 2.90 中新增

响应示例

{
    "quota_set": {
        "gigabytes": 1000,
        "shares": 50,
        "snapshot_gigabytes": 1000,
        "snapshots": 50,
        "id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "share_networks": 10,
        "share_groups": 10,
        "share_group_snapshots": 10,
        "share_replicas": 100,
        "replica_gigabytes": 1000,
        "per_share_gigabytes": -1,
        "backups": 50,
        "backup_gigabytes": 1000
    }
}
GET
/v2/quota-sets/{project_id_quota_request_path}/detail?user_id={user_id}

显示配额集详细信息 (自 API v2.25 起)

版本 2.25 中新增。

以详细信息显示项目的配额。

如果您指定可选的 user_id 查询参数,您将获得项目中此用户的配额。如果您省略此参数,您将获得项目的配额。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

project_id_quota_request_path (可选)

路径

字符串

必须对 API 执行操作的项目 ID。这是可选的,如果未指定,则项目 ID 将从调用者的 API 令牌派生。具有系统/域范围用户的用户与此 API 交互必须指定需要查询或操作配额的项目 ID。

请注意,此 ID 可能与 URL 中资源名称“quota-sets”之前面的项目 ID 不同。例如,在多租户云中,URL 中的第一个 ID 通常是能够创建、查询或删除云中其他项目配额的特权用户(例如云管理员)的项目 ID。如果服务器支持 API 版本 2.60,则 URL 无需在资源名称之前使用特权用户的项目 ID。

user_id (可选)

查询

字符串

用户 ID。如果您指定此查询参数,您将检索或更新项目中此用户的配额。如果您省略此参数,您将查询或更新整个项目的配额。此参数与“share_type”参数互斥。

share_type(可选)

路径

字符串

URI 中的此参数是共享类型的名称或 UUID。如果您在 URI 中指定此参数,您将显示、更新或删除此共享类型的配额。此参数与“user_id”查询参数互斥。

版本 2.39 中新增

响应参数

名称

入参

类型

描述

quota_set

body

对象

quota_set 对象。

id

body

字符串

配额所针对的项目 ID。

千兆字节

body

对象

每个项目允许的千兆字节数的限制、使用中、保留数量。

版本 2.25 中新增

快照

body

对象

每个项目允许的快照数的限制、使用中、保留数量。

版本 2.25 中新增

共享

body

对象

每个项目允许的共享数的限制、使用中、保留数量。

版本 2.25 中新增

千兆字节的快照

body

对象

每个项目允许的快照千兆字节数的限制、使用中、保留数量。

版本 2.25 中新增

share_networks (可选)

body

对象

用户和项目,但不包括共享类型,允许的共享网络数的限制、使用中、保留数量。

版本 2.25 中新增

share_groups

body

对象

每个项目或用户允许的共享组数的限制、使用中、保留数量。

版本 2.40 中新增

share_group_snapshots

body

对象

每个项目或用户允许的共享组快照数的限制、使用中、保留数量。

版本 2.40 中新增

share_replicas

body

对象

每个项目允许的共享副本数的限制、使用中、保留数量。

新增于版本 2.53

replica_gigabytes

body

对象

每个项目允许的共享副本千兆字节数的限制、使用中、保留数量。

新增于版本 2.53

per_share_gigabytes

body

对象

每个项目允许的每个共享千兆字节数的限制、使用中、保留数量。

版本 2.62 中新增

backups

body

对象

每个项目允许的备份数的限制、使用中、保留数量。

新增于版本 2.80

backup_gigabytes

body

对象

每个项目允许的备份千兆字节数的限制、使用中、保留数量。

新增于版本 2.80

encryption_keys

body

对象

每个项目允许的加密密钥数的限制、使用中、保留数量。

版本 2.90 中新增

响应示例

{
    "quota_set": {
        "id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "gigabytes": {"in_use": 0,
                      "limit": 1000,
                      "reserved": 0},
        "shares": {"in_use": 0,
                   "limit": 50,
                   "reserved": 0},
        "snapshot_gigabytes": {"in_use": 0,
                               "limit": 1000,
                               "reserved": 0},
        "snapshots": {"in_use": 0,
                      "limit": 50,
                      "reserved": 0},
        "share_networks": {"in_use": 0,
                           "limit": 10,
                           "reserved": 0},
        "share_groups": {"in_use": 0,
                         "limit": 10,
                         "reserved": 0},
        "share_group_snapshots": {"in_use": 0,
                                  "limit": 10,
                                  "reserved": 0},
        "share_replicas": {"in_use": 0,
                           "limit": 100,
                           "reserved": 0},
        "replica_gigabytes": {"in_use": 0,
                              "limit": 1000,
                              "reserved": 0},
        "per_share_gigabytes": {"in_use": 0,
                                "limit": -1,
                                "reserved": 0},
        "backup_gigabytes": {"in_use": 0,
                             "limit": 1000,
                             "reserved": 0},
        "backups": {"in_use": 0,
                    "limit": 50,
                    "reserved": 0}
    }
}
PUT
/v2/quota-sets/{project_id_quota_request_path}?user_id={user_id}

更新配额集

更新项目的配额。

如果您指定可选的 user_id 查询参数,您将更新项目中此用户的配额。如果您省略此参数,您将更新项目的配额。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

project_id_quota_request_path (可选)

路径

字符串

必须对 API 执行操作的项目 ID。这是可选的,如果未指定,则项目 ID 将从调用者的 API 令牌派生。具有系统/域范围用户的用户与此 API 交互必须指定需要查询或操作配额的项目 ID。

请注意,此 ID 可能与 URL 中资源名称“quota-sets”之前面的项目 ID 不同。例如,在多租户云中,URL 中的第一个 ID 通常是能够创建、查询或删除云中其他项目配额的特权用户(例如云管理员)的项目 ID。如果服务器支持 API 版本 2.60,则 URL 无需在资源名称之前使用特权用户的项目 ID。

user_id (可选)

查询

字符串

用户 ID。如果您指定此查询参数,您将检索或更新项目中此用户的配额。如果您省略此参数,您将查询或更新整个项目的配额。此参数与“share_type”参数互斥。

quota_set

body

对象

quota_set 对象。

force (可选)

body

布尔值

指示是否允许强制更新已使用的配额,以及请求值是否超过配置的配额。设置为 True 以允许强制更新配额。设置为 False 以拒绝强制更新配额。

gigabytes (可选)

body

整数

项目的千兆字节数。

snapshots (可选)

body

整数

项目的快照数。

snapshot_gigabytes (可选)

body

整数

项目的快照千兆字节数。

shares (可选)

body

整数

项目的共享数。

share_networks (可选)

body

整数

项目的共享网络数。

share_groups (可选)

body

整数

每个项目或用户允许的共享组数。

版本 2.40 中新增

share_group_snapshots (可选)

body

整数

每个项目或用户允许的共享组快照数。

版本 2.40 中新增

share_type(可选)

路径

字符串

URI 中的此参数是共享类型的名称或 UUID。如果您在 URI 中指定此参数,您将显示、更新或删除此共享类型的配额。此参数与“user_id”查询参数互斥。

版本 2.39 中新增

share_replicas (可选)

body

整数

每个项目或用户允许的共享副本数。

新增于版本 2.53

replica_gigabytes (可选)

body

整数

项目的共享副本千兆字节数。

新增于版本 2.53

per_share_gigabytes (可选)

body

整数

每个项目允许的每个共享千兆字节数。

版本 2.62 中新增

backups (可选)

body

整数

项目的备份数。

新增于版本 2.80

backup_gigabytes (可选)

body

整数

项目的备份千兆字节数。

新增于版本 2.80

encryption_keys (可选)

body

整数

每个项目允许的加密密钥数。

版本 2.90 中新增

请求示例

{
    "quota_set": {
        "snapshot_gigabytes": 999,
        "snapshots": 49,
        "share_networks": 9,
        "share_replicas": 89,
        "per_share_gigabytes": 5
    }
}

响应参数

名称

入参

类型

描述

quota_set

body

对象

quota_set 对象。

id

body

字符串

配额所针对的项目 ID。

千兆字节

body

整数

每个项目允许的千兆字节数。

快照

body

整数

每个项目允许的快照数。

共享

body

整数

每个项目允许的共享数。

千兆字节的快照

body

整数

每个项目允许的快照千兆字节数。

share_networks (可选)

body

整数

用户和项目,但不包括共享类型,允许的共享网络数。

share_groups

body

整数

每个项目或用户允许的共享组数。

版本 2.40 中新增

share_group_snapshots

body

整数

每个项目或用户允许的共享组快照数。

版本 2.40 中新增

share_replicas

body

整数

每个项目允许的共享副本数。

新增于版本 2.53

replica_gigabytes

body

整数

每个项目允许的共享副本千兆字节数。

新增于版本 2.53

per_share_gigabytes

body

整数

每个项目允许的每个共享千兆字节数。

版本 2.62 中新增

backups

body

整数

每个项目允许的备份数。

新增于版本 2.80

backup_gigabytes

body

整数

每个项目允许的备份千兆字节数。

新增于版本 2.80

encryption_keys

body

整数

每个项目允许的加密密钥数。

版本 2.90 中新增

响应示例

{
    "quota_set": {
        "gigabytes": 1000,
        "snapshot_gigabytes": 999,
        "shares": 50,
        "snapshots": 49,
        "share_networks": 9,
        "share_groups": 12,
        "share_group_snapshots": 12,
        "share_replicas": 89,
        "replica_gigabytes": 1000,
        "per_share_gigabytes": -1,
        "backups": 40,
        "backup_gigabytes": 500
    }
}
DELETE
/v2/quota-sets/{project_id_quota_request_path}?user_id={user_id}

删除配额集

删除项目的配额。配额恢复为默认配额。

如果您指定可选的 user_id 查询参数,您将删除项目中此用户的配额。如果您省略此参数,您将删除项目的配额。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

project_id_quota_request_path (可选)

路径

字符串

必须对 API 执行操作的项目 ID。这是可选的,如果未指定,则项目 ID 将从调用者的 API 令牌派生。具有系统/域范围用户的用户与此 API 交互必须指定需要查询或操作配额的项目 ID。

请注意,此 ID 可能与 URL 中资源名称“quota-sets”之前面的项目 ID 不同。例如,在多租户云中,URL 中的第一个 ID 通常是能够创建、查询或删除云中其他项目配额的特权用户(例如云管理员)的项目 ID。如果服务器支持 API 版本 2.60,则 URL 无需在资源名称之前使用特权用户的项目 ID。

user_id (可选)

查询

字符串

用户 ID。如果您指定此查询参数,您将检索或更新项目中此用户的配额。如果您省略此参数,您将查询或更新整个项目的配额。此参数与“share_type”参数互斥。

share_type(可选)

路径

字符串

URI 中的此参数是共享类型的名称或 UUID。如果您在 URI 中指定此参数,您将显示、更新或删除此共享类型的配额。此参数与“user_id”查询参数互斥。

版本 2.39 中新增

配额类集

可以显示和更新项目的配额类。

重要提示

共享副本和副本千兆字节已添加到 API 版本 2.53 中的配额管理 API 中。每个共享千兆字节已添加到 API 版本 2.62 中的配额管理 API 中。共享备份和备份千兆字节已添加到 API 版本 2.80 中的配额管理 API 中。加密密钥已添加到 API 版本 2.90 中的配额管理 API 中。

GET
/v2/quota-class-sets/{quota_class_name}

显示项目的配额类

显示项目的配额类设置。如果配额类资源不存在特定值,则将报告默认值。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

quota_class_name

路径

字符串

要设置配额的配额类的名称。

响应参数

名称

入参

类型

描述

quota_class_set

body

对象

一个 quota_class_set 对象。

share_groups

body

整数

允许的共享组的最大数量。

版本 2.40 中新增

千兆字节

body

整数

项目中允许的总最大共享千兆字节数。您不能请求超过允许的千兆字节配额的共享。

share_group_snapshots

body

整数

允许的共享组快照的最大数量。

版本 2.40 中新增

快照

body

整数

项目中允许的总最大共享快照数。

千兆字节的快照

body

整数

项目中允许的总最大快照千兆字节数。

共享

body

整数

项目中允许的总最大共享数。

id

body

字符串

一个 quota_class_set ID。

share_networks

body

整数

项目中允许的总最大共享网络数。

share_replicas

body

整数

允许的最大共享副本数。

新增于版本 2.53

replica_gigabytes

body

整数

允许的最大副本千兆字节数。如果创建共享、共享副本、管理共享或扩展共享将超过允许的副本千兆字节配额,则无法创建共享。

新增于版本 2.53

per_share_gigabytes

body

整数

项目中允许的每个共享的千兆字节数。

版本 2.62 中新增

backups

body

整数

项目中允许的总最大共享备份数。

新增于版本 2.80

backup_gigabytes

body

整数

项目中允许的总最大备份千兆字节数。

新增于版本 2.80

encryption_keys

body

整数

项目中允许的加密密钥数量。

版本 2.90 中新增

响应示例

{
    "quota_class_set": {
        "share_groups": 50,
        "gigabytes": 1000,
        "share_group_snapshots": 50,
        "snapshots": 50,
        "snapshot_gigabytes": 1000,
        "shares": 50,
        "id": "default",
        "share_networks": 10,
        "share_replicas": 100,
        "replica_gigabytes": 1000,
        "per_share_gigabytes": -1,
        "backups": 50,
        "backup_gigabytes": 1000
    }
}
PUT
/v2/quota-class-sets/{quota_class_name}

更新项目的配额类

更新项目的配额类设置。如果 quota_class_name 键不存在,则 API 将创建一个。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

quota_class_name

路径

字符串

要设置配额的配额类的名称。

shares (可选)

body

整数

项目中允许的总最大共享数。

snapshots (可选)

body

整数

项目中允许的总最大共享快照数。

gigabytes (可选)

body

整数

项目中允许的总最大共享千兆字节数。您不能请求超过允许的千兆字节配额的共享。

snapshot-gigabytes (可选)

body

整数

项目中允许的总最大快照千兆字节数。

share-networks (可选)

body

整数

项目中允许的总最大共享网络数。

share-replicas (可选)

body

整数

允许的最大共享副本数。

新增于版本 2.53

replica-gigabytes (可选)

body

整数

允许的最大副本千兆字节数。如果创建共享、共享副本、管理共享或扩展共享将超过允许的副本千兆字节配额,则无法创建共享。

新增于版本 2.53

per-share-gigabytes (可选)

body

整数

项目中允许的每个共享的千兆字节数。

版本 2.62 中新增

backups (可选)

body

整数

项目中允许的总最大共享备份数。

新增于版本 2.80

backup-gigabytes (可选)

body

整数

项目中允许的总最大备份千兆字节数。

新增于版本 2.80

encryption_keys (可选)

body

整数

项目中允许的加密密钥数量。

版本 2.90 中新增

请求示例

{
    "quota_class_set": {
        "class_name": "test-qupta-class-update",
        "gigabytes": 20
    }
}

响应参数

名称

入参

类型

描述

quota_class_set

body

对象

一个 quota_class_set 对象。

share_groups

body

整数

允许的共享组的最大数量。

版本 2.40 中新增

千兆字节

body

整数

项目中允许的总最大共享千兆字节数。您不能请求超过允许的千兆字节配额的共享。

share_group_snapshots

body

整数

允许的共享组快照的最大数量。

版本 2.40 中新增

快照

body

整数

项目中允许的总最大共享快照数。

千兆字节的快照

body

整数

项目中允许的总最大快照千兆字节数。

共享

body

整数

项目中允许的总最大共享数。

share_networks

body

整数

项目中允许的总最大共享网络数。

share_replicas

body

整数

允许的最大共享副本数。

新增于版本 2.53

replica_gigabytes

body

整数

允许的最大副本千兆字节数。如果创建共享、共享副本、管理共享或扩展共享将超过允许的副本千兆字节配额,则无法创建共享。

新增于版本 2.53

per_share_gigabytes

body

整数

项目中允许的每个共享的千兆字节数。

版本 2.62 中新增

backups

body

整数

项目中允许的总最大共享备份数。

新增于版本 2.80

backup_gigabytes

body

整数

项目中允许的总最大备份千兆字节数。

新增于版本 2.80

encryption_keys

body

整数

项目中允许的加密密钥数量。

版本 2.90 中新增

响应示例

{
    "quota_class_set": {
        "share_groups": 50,
        "gigabytes": 20,
        "share_group_snapshots": 50,
        "snapshots": 50,
        "snapshot_gigabytes": 1000,
        "shares": 50,
        "share_networks": 10,
        "share_replicas": 100,
        "replica_gigabytes": 1000,
        "per_share_gigabytes": -1,
        "backups": 50,
        "backup_gigabytes": 1000
    }
}

用户消息 (自 API 2.37 起)

列出、显示和删除用户消息。

当资源上的异步操作失败时,会自动创建用户消息。在这种情况下,错误会记录在适当的日志文件中,但用户可能无法访问日志文件。用户消息可供用户获取失败操作的错误详细信息。例如,在创建共享时 - 如果共享创建失败,因为调度过滤器找不到适合共享的后端主机,则此共享将进入错误状态,但从用户消息 API 用户可以获取有关上次执行的过滤器的详细信息,这有助于他们识别问题并可能使用不同的参数重新尝试创建请求。

GET
/v2/messages

列出用户消息

在版本 2.37 中添加。

列出所有用户消息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

limit (可选)

查询

整数

要返回的最大资源记录数。

offset (可选)

查询

整数

用于定义资源列表起点的偏移量。

sort_key (可选)

查询

字符串

用于对消息列表进行排序的键。有效值为 idproject_idrequest_idresource_typeaction_iddetail_idresource_idmessage_levelexpires_atcreated_at

sort_dir (可选)

查询

字符串

用于对资源列表进行排序的方向。有效值为 ascdesc

action_id (可选)

查询

字符串

创建消息期间的操作的 ID。

detail_id (可选)

查询

字符串

消息详细信息的 ID。

message_level (可选)

查询

字符串

消息级别。

project_id (可选)

查询

字符串

创建消息的项目 ID。

request_id (可选)

查询

字符串

创建消息期间请求的 ID。

resource_id (可选)

查询

字符串

创建消息的资源的 UUID。

resource_type (可选)

查询

字符串

创建消息的资源的类型。

created_since (可选)

查询

字符串

查询操作的日期和时间戳,仅返回该时间之后的用户消息。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2021-11-10T09:49:58+08:00

在版本 2.52 中新增

created_before (可选)

查询

字符串

查询操作的日期和时间戳,仅返回该时间之前用户消息。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2021-11-10T09:49:58+08:00

在版本 2.52 中新增

响应参数

名称

入参

类型

描述

id

body

字符串

消息的 UUID。

action_id

body

字符串

创建消息期间的操作的 ID。

detail_id

body

字符串

消息详细信息的 ID。

message_level

body

字符串

消息级别。

project_id

body

字符串

创建消息的项目 ID。

request_id

body

字符串

创建消息期间请求的 UUID。

resource_id

body

字符串

创建消息的资源的 UUID。

resource_type

body

字符串

创建消息的资源的类型。

message_members_links

body

数组

消息成员链接。

expires_at

body

字符串

资源消息将在服务数据库中过期的时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

响应示例

{
    "messages": [
        {
            "links": [
                {
                    "href": "http://192.168.122.180:8786/v2/2e3de76b49b444fd9dc7ca9f7048ce6b/messages/4b319d29-d5b7-4b6e-8e7c-8d6e53f3c3d5",
                    "rel": "self"
                },
                {
                    "href": "http://192.168.122.180:8786/2e3de76b49b444fd9dc7ca9f7048ce6b/messages/4b319d29-d5b7-4b6e-8e7c-8d6e53f3c3d5",
                    "rel": "bookmark"
                }
            ],
            "id": "4b319d29-d5b7-4b6e-8e7c-8d6e53f3c3d5",
            "resource_id": "351cc796-2d79-4a08-b878-a8ed933b6b68",
            "message_level": "ERROR",
            "user_message": "allocate host: No storage could be allocated for this share request. Trying again with a different size or share type may succeed.",
            "expires_at": "2017-07-10T10:27:43.000000",
            "created_at": "2017-07-10T10:26:43.000000",
            "detail_id": "002",
            "request_id": "req-24e7ccb6-a7d5-4ddd-a8e4-d8f72a4509c8",
            "project_id": "2e3de76b49b444fd9dc7ca9f7048ce6b",
            "resource_type": "SHARE",
            "action_id": "001"
        }
    ]
}
GET
/v2/messages/{message_id}

显示用户消息详细信息

在版本 2.37 中添加。

显示用户消息的详细信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

message_id (可选)

路径

字符串

消息的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

消息的 UUID。

action_id

body

字符串

创建消息期间的操作的 ID。

detail_id

body

字符串

消息详细信息的 ID。

message_level

body

字符串

消息级别。

project_id

body

字符串

创建消息的项目 ID。

request_id

body

字符串

创建消息期间请求的 UUID。

resource_id

body

字符串

创建消息的资源的 UUID。

resource_type

body

字符串

创建消息的资源的类型。

message_links

body

数组

消息链接。

expires_at

body

字符串

资源消息将在服务数据库中过期的时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

响应示例

{
    "message": {
        "links": [
            {
                "href": "http://192.168.122.180:8786/v2/2e3de76b49b444fd9dc7ca9f7048ce6b/messages/4b319d29-d5b7-4b6e-8e7c-8d6e53f3c3d5",
                "rel": "self"
            },
            {
                "href": "http://192.168.122.180:8786/2e3de76b49b444fd9dc7ca9f7048ce6b/messages/4b319d29-d5b7-4b6e-8e7c-8d6e53f3c3d5",
                "rel": "bookmark"
            }
        ],
        "resource_id": "351cc796-2d79-4a08-b878-a8ed933b6b68",
        "message_level": "ERROR",
        "user_message": "allocate host: No storage could be allocated for this share request. Trying again with a different size or share type may succeed.",
        "expires_at": "2017-07-10T10:27:43.000000",
        "id": "4b319d29-d5b7-4b6e-8e7c-8d6e53f3c3d5",
        "created_at": "2017-07-10T10:26:43.000000",
        "detail_id": "002",
        "request_id": "req-24e7ccb6-a7d5-4ddd-a8e4-d8f72a4509c8",
        "project_id": "2e3de76b49b444fd9dc7ca9f7048ce6b",
        "resource_type": "SHARE",
        "action_id": "001"
    }
}
DELETE
/v2/messages/{message_id}

删除消息

在版本 2.37 中添加。

删除用户消息。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

message_id (可选)

路径

字符串

消息的 UUID。

共享访问规则 (自 API v2.45 起)

检索访问规则的详细信息

注意

从 API 版本 2.82 开始,访问规则可见性可以由项目用户或具有“service”或“admin”角色的任何用户限制。当受到限制时,access_to 和 access_key 字段将对其他用户进行编辑。无论 API 版本如何,此编辑都适用。

GET
/v2/share-access-rules/{access_id}

描述共享访问规则

在版本 2.45 中添加。

检索指定访问规则的详细信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

access_id

路径

字符串

授予访问权限的访问规则的 UUID。

响应参数

名称

入参

类型

描述

share_id

body

字符串

您被授予或拒绝访问权限的共享的 UUID。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

access_type

body

字符串

访问规则类型。共享访问规则类型的有效值是以下值之一

  • ip:通过 IP 地址(可以是 IPv4 或 IPv6)验证客户端。您可以指定单个客户端 IP 地址或 CIDR 表示法中的 IP 地址范围。例如,IPv4 的 0.0.0.0/0 或 IPv6 的 ::/0

  • cert:通过 TLS 证书验证客户端。将 TLS 身份指定为 IDENTKEY。有效值是证书的常见名称 (CN) 中最多 64 个字符的任何字符串。字符串的含义取决于其解释。

  • user:通过用户名或组名进行身份验证。有效值是包含一些特殊字符的字母数字字符串,长度为 4 到 32 个字符。

access_to

body

字符串

定义访问权限的值。后端授予或拒绝对其的访问权限。有效值是以下值之一

  • ip:通过 IP 地址(可以是 IPv4 或 IPv6)验证客户端。您可以指定单个客户端 IP 地址或 CIDR 表示法中的 IP 地址范围。例如,IPv4 的 0.0.0.0/0 或 IPv6 的 ::/0

  • cert:通过 TLS 证书验证实例。指定 TLS 身份作为 IDENTKEY。有效值是证书的常见名称 (CN) 中最多 64 个字符的任何字符串。字符串的含义取决于其解释。

  • user:通过用户名或组名进行身份验证。有效值是包含一些特殊字符的字母数字字符串,长度为 4 到 32 个字符。

access_key

body

字符串

授予共享访问权限的实体的访问凭据。

state

body

字符串

在版本 2.28 之前,给定共享的所有访问规则的状态始终相同。这可能是 newactiveerror。从 2.28 开始,共享的每个访问规则的状态彼此独立,可以是 queued_to_applyapplyingactiveerrorqueued_to_denydenying。新规则从 queued_to_apply 状态开始,如果过渡到 active 状态,则成功应用。

access_level

body

字符串

共享的访问级别。要授予或拒绝共享的访问权限,您需要指定以下共享访问级别之一

  • rw。读写 (RW) 访问权限。

  • ro。只读 (RO) 访问权限。

id

body

字符串

访问规则 ID。

metadata

body

对象

一个或多个访问规则元数据键值对,作为字符串字典。

响应示例

{
    "access": {
        "access_level": "rw",
        "state": "error",
        "id": "507bf114-36f2-4f56-8cf4-857985ca87c1",
        "share_id": "fb213952-2352-41b4-ad7b-2c4c69d13eef",
        "access_type": "cert",
        "access_to": "example.com",
        "access_key": null,
        "created_at": "2018-07-17T02:01:04.000000",
        "updated_at": "2018-07-17T02:01:04.000000",
        "metadata": {
            "key1": "value1",
            "key2": "value2"
        }
    }
}
GET
/v2/share-access-rules?share_id={share-id}

列出共享访问规则

在版本 2.45 中添加。

列出共享上的共享访问规则。

注意

此 API 替换了版本 2.45 的较旧的 列出共享访问规则 API。

注意

从 API 版本 2.82 开始,访问规则可见性可以由项目用户或具有“service”或“admin”角色的任何用户限制。当受到限制时,access_to 和 access_key 字段将对其他用户进行编辑。无论 API 版本如何,此编辑都适用。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_id

查询

字符串

用于筛选共享访问规则的共享 ID。

metadata

body

对象

一个或多个元数据键值对,作为字符串的字典。

响应参数

名称

入参

类型

描述

metadata

body

对象

一个或多个访问规则元数据键值对,作为字符串字典。

access_type

body

字符串

访问规则类型。共享访问规则类型的有效值是以下值之一

  • ip:通过 IP 地址(可以是 IPv4 或 IPv6)验证客户端。您可以指定单个客户端 IP 地址或 CIDR 表示法中的 IP 地址范围。例如,IPv4 的 0.0.0.0/0 或 IPv6 的 ::/0

  • cert:通过 TLS 证书验证客户端。将 TLS 身份指定为 IDENTKEY。有效值是证书的常见名称 (CN) 中最多 64 个字符的任何字符串。字符串的含义取决于其解释。

  • user:通过用户名或组名进行身份验证。有效值是包含一些特殊字符的字母数字字符串,长度为 4 到 32 个字符。

access_key

body

字符串

授予共享访问权限的实体的访问凭据。

access_to

body

字符串

定义访问权限的值。后端授予或拒绝对其的访问权限。有效值是以下值之一

  • ip:通过 IP 地址(可以是 IPv4 或 IPv6)验证客户端。您可以指定单个客户端 IP 地址或 CIDR 表示法中的 IP 地址范围。例如,IPv4 的 0.0.0.0/0 或 IPv6 的 ::/0

  • cert:通过 TLS 证书验证实例。指定 TLS 身份作为 IDENTKEY。有效值是证书的常见名称 (CN) 中最多 64 个字符的任何字符串。字符串的含义取决于其解释。

  • user:通过用户名或组名进行身份验证。有效值是包含一些特殊字符的字母数字字符串,长度为 4 到 32 个字符。

access_level

body

字符串

共享的访问级别。要授予或拒绝共享的访问权限,您需要指定以下共享访问级别之一

  • rw。读写 (RW) 访问权限。

  • ro。只读 (RO) 访问权限。

state

body

字符串

在版本 2.28 之前,给定共享的所有访问规则的状态始终相同。这可能是 newactiveerror。从 2.28 开始,共享的每个访问规则的状态彼此独立,可以是 queued_to_applyapplyingactiveerrorqueued_to_denydenying。新规则从 queued_to_apply 状态开始,如果过渡到 active 状态,则成功应用。

access_list

body

字符串

访问规则的对象。要列出访问规则,请将此值设置为 null

id

body

字符串

访问规则 ID。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

响应示例

{
    "access_list": [
        {
            "access_level": "rw",
            "state": "error",
            "id": "507bf114-36f2-4f56-8cf4-857985ca87c1",
            "access_type": "cert",
            "access_to": "example.com",
            "access_key": null,
            "created_at": "2018-07-17T02:01:04.000000",
            "updated_at": "2018-07-17T02:01:04.000000",
            "metadata": {
                "key1": "value1",
                "key2": "value2"
            }
        },
        {
            "access_level": "rw",
            "state": "active",
            "id": "a25b2df3-90bd-4add-afa6-5f0dbbd50452",
            "access_type": "ip",
            "access_to": "0.0.0.0/0",
            "access_key": null,
            "created_at": "2018-07-16T01:03:21.000000",
            "updated_at": "2018-07-16T01:03:21.000000",
            "metadata": {
                "key3": "value3",
                "key4": "value4"
            }
        }
    ]
}
PUT
/v2/share-access-rules/{access_id}

更新共享访问规则

在版本 2.88 中添加。

更新指定访问规则的 access_level

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

access_id

路径

字符串

授予访问权限的访问规则的 UUID。

access_level

body

字符串

共享的访问级别。要授予或拒绝共享的访问权限,您需要指定以下共享访问级别之一

  • rw。读写 (RW) 访问权限。

  • ro。只读 (RO) 访问权限。

请求示例

{
    "update_access": {
        "access_level": "ro"
    }
}

响应参数

名称

入参

类型

描述

share_id

body

字符串

您被授予或拒绝访问权限的共享的 UUID。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

access_type

body

字符串

访问规则类型。共享访问规则类型的有效值是以下值之一

  • ip:通过 IP 地址(可以是 IPv4 或 IPv6)验证客户端。您可以指定单个客户端 IP 地址或 CIDR 表示法中的 IP 地址范围。例如,IPv4 的 0.0.0.0/0 或 IPv6 的 ::/0

  • cert:通过 TLS 证书验证客户端。将 TLS 身份指定为 IDENTKEY。有效值是证书的常见名称 (CN) 中最多 64 个字符的任何字符串。字符串的含义取决于其解释。

  • user:通过用户名或组名进行身份验证。有效值是包含一些特殊字符的字母数字字符串,长度为 4 到 32 个字符。

access_to

body

字符串

定义访问权限的值。后端授予或拒绝对其的访问权限。有效值是以下值之一

  • ip:通过 IP 地址(可以是 IPv4 或 IPv6)验证客户端。您可以指定单个客户端 IP 地址或 CIDR 表示法中的 IP 地址范围。例如,IPv4 的 0.0.0.0/0 或 IPv6 的 ::/0

  • cert:通过 TLS 证书验证实例。指定 TLS 身份作为 IDENTKEY。有效值是证书的常见名称 (CN) 中最多 64 个字符的任何字符串。字符串的含义取决于其解释。

  • user:通过用户名或组名进行身份验证。有效值是包含一些特殊字符的字母数字字符串,长度为 4 到 32 个字符。

access_key

body

字符串

授予共享访问权限的实体的访问凭据。

state

body

字符串

在版本 2.28 之前,给定共享的所有访问规则的状态始终相同。这可能是 newactiveerror。从 2.28 开始,共享的每个访问规则的状态彼此独立,可以是 queued_to_applyapplyingactiveerrorqueued_to_denydenying。新规则从 queued_to_apply 状态开始,如果过渡到 active 状态,则成功应用。

access_level

body

字符串

共享的访问级别。要授予或拒绝共享的访问权限,您需要指定以下共享访问级别之一

  • rw。读写 (RW) 访问权限。

  • ro。只读 (RO) 访问权限。

id

body

字符串

访问规则 ID。

metadata

body

对象

一个或多个访问规则元数据键值对,作为字符串字典。

响应示例

{
    "access": {
        "access_level": "ro",
        "state": "error",
        "id": "507bf114-36f2-4f56-8cf4-857985ca87c1",
        "share_id": "fb213952-2352-41b4-ad7b-2c4c69d13eef",
        "access_type": "ip",
        "access_to": "0.0.0.0/0",
        "access_key": null,
        "created_at": "2024-12-17T02:01:04.000000",
        "updated_at": "2024-12-17T02:01:04.000000",
        "metadata": {
            "key1": "value1",
            "key2": "value2"
        }
    }
}

共享访问规则元数据 (自 API v2.45 起)

更新和取消设置共享访问规则元数据。

PUT
/v2/share-access-rules/{access_id}/metadata

更新共享访问规则元数据

在版本 2.45 中添加。

更新共享访问规则的元数据。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

access_id

路径

字符串

授予访问权限的访问规则的 UUID。

metadata

body

对象

一个或多个访问规则元数据键值对,作为字符串字典。

请求示例

{
    "metadata": {
        "aim": "changed_doc",
        "speed": "my_fast_access",
        "new_metadata_key": "new_information"
    }
}

响应参数

名称

入参

类型

描述

metadata

body

对象

一个或多个访问规则元数据键值对,作为字符串字典。

响应示例

{
    "metadata": {
        "aim": "changed_doc",
        "speed": "my_fast_access",
        "new_metadata_key": "new_information"
    }
}
DELETE
/v2/share-access-rules/{access_id}/metadata/{key}

取消设置共享访问规则元数据

在版本 2.45 中添加。

取消设置共享访问规则上的元数据。

要取消设置元数据键值,请在 URI 中仅指定键名。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

access_id

路径

字符串

授予访问权限的访问规则的 UUID。

key(可选)

路径

字符串

元数据项的键。例如,如果现有共享或访问规则上的元数据如下:"project": "my_test", "aim": "testing",则键为“project”和“aim”。

共享组 (自 API v2.31 起)

共享组使您能够创建一个卷组并一起管理它们。项目可以将用于同一应用程序的共享放在一个共享组中,例如一致性组快照、克隆、备份、迁移、复制、重新类型化等。

共享应仅在共享创建步骤中才能成为共享组的一部分。如果未提供 share_group_id 创建共享,则该共享将无法成为任何共享组的一部分。

您可以创建一个共享组并将其与多个共享关联,列出共享组以及显示信息以删除共享组。

注意

自 API 版本 2.55 起,共享组 API 不再被视为实验性的。availability_zone_idconsistent_snapshot_support 字段已添加到 share_group 对象中,版本为 2.34。

GET
/v2/share-groups

列出共享组

在版本 2.31 中添加。

列出所有共享组。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

all_tenants (可选)

查询

布尔值

(仅限管理员)。定义是否为所有项目列出请求的资源。设置为 1 以列出所有项目的资源。设置为 0 以仅列出当前项目的资源。资源示例包括共享、快照、共享网络、安全服务和共享组。

name (可选)

查询

字符串

用于按资源名称过滤资源的由用户定义名称。

description(可选)

查询

字符串

可用于筛选资源的、用户定义的描述文本。

status (可选)

查询

字符串

按共享组状态进行筛选。有效值为 creatingerroravailabledeletingerror_deleting

share_server_id (可选)

查询

字符串

共享服务器的 UUID。

snapshot_id (可选)

查询

字符串

用于基于快照过滤请求的共享的基本快照的 UUID。

host (可选)

查询

字符串

后端的宿主机名称。

share_network_id (可选)

查询

字符串

用于按共享网络过滤资源的 UUID。

share_group_type_id (可选)

查询

字符串

用于筛选共享组的共享组类型 ID。

share_group_snapshot_id (可选)

查询

字符串

要列出共享组的源共享组快照 ID。

版本 2.31 中新增

share_types (可选)

查询

数组

一个或多个共享类型 ID 的列表。允许筛选共享组。

limit (可选)

查询

整数

要返回的共享组成员的最大数量。

offset (可选)

查询

整数

用于定义资源列表起点的偏移量。

sort_key (可选)

查询

字符串

用于对共享列表进行排序的键。有效值为 idstatussizehostshare_protoexport_locationavailability_zoneuser_idproject_idcreated_atupdated_atdisplay_namenameshare_type_idshare_typeshare_network_idshare_networksnapshot_idsnapshot

sort_dir (可选)

查询

字符串

用于对资源列表进行排序的方向。有效值为 ascdesc

name~ (可选)

查询

字符串

可用于过滤共享、共享快照、共享网络、传输或共享组的名称模式。

版本 2.36 中新增

description~ (可选)

查询

字符串

可用于过滤共享、共享快照、共享网络或共享组的描述模式。

版本 2.36 中新增

响应参数

名称

入参

类型

描述

id

body

字符串

共享组的 UUID。

版本 2.31 中新增

links

body

字符串

共享组主机名。

name

body

字符串

资源的由用户定义的名称。

status

body

字符串

共享组状态,为 availableerrorcreatingdeleting

description

body

字符串

资源的由用户定义的描述。

响应示例

{
    "share_groups": [
        {
            "id": "b94a8548-2079-4be0-b21c-0a887acd31ca",
            "links": [
                {
                    "href": "http://172.18.198.54:8786/v2/16e1ab15c35a457e9c2b2aa189f544e1/share_groups/b94a8548-2079-4be0-b21c-0a887acd31ca",
                    "rel": "self"
                },
                {
                    "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/share_groups/b94a8548-2079-4be0-b21c-0a887acd31ca",
                    "rel": "bookmark"
                }
            ],
            "name": "My_share_group"
        },
        {
            "id": "306ea93c-32e9-4907-a117-148b3945749f",
            "links": [
                {
                    "href": "http://172.18.198.54:8786/v2/16e1ab15c35a457e9c2b2aa189f544e1/share_groups/306ea93c-32e9-4907-a117-148b3945749f",
                    "rel": "self"
                },
                {
                    "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/share_groups/306ea93c-32e9-4907-a117-148b3945749f",
                    "rel": "bookmark"
                }
            ],
            "name": "Test_Share_group"
        }
    ]
}
GET
/v2/share-groups/detail

列出共享组详细信息

在版本 2.31 中添加。

列出所有共享组的详细信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

all_tenants (可选)

查询

布尔值

(仅限管理员)。定义是否为所有项目列出请求的资源。设置为 1 以列出所有项目的资源。设置为 0 以仅列出当前项目的资源。资源示例包括共享、快照、共享网络、安全服务和共享组。

name (可选)

查询

字符串

用于按资源名称过滤资源的由用户定义名称。

description(可选)

查询

字符串

可用于筛选资源的、用户定义的描述文本。

status (可选)

查询

字符串

按共享组状态进行筛选。有效值为 creatingerroravailabledeletingerror_deleting

share_server_id (可选)

查询

字符串

共享服务器的 UUID。

snapshot_id (可选)

查询

字符串

用于基于快照过滤请求的共享的基本快照的 UUID。

host (可选)

查询

字符串

后端的宿主机名称。

share_network_id (可选)

查询

字符串

用于按共享网络过滤资源的 UUID。

share_group_type_id (可选)

查询

字符串

用于筛选共享组的共享组类型 ID。

share_group_snapshot_id (可选)

查询

字符串

要列出共享组的源共享组快照 ID。

版本 2.31 中新增

share_types (可选)

查询

数组

一个或多个共享类型 ID 的列表。允许筛选共享组。

limit (可选)

查询

整数

要返回的共享组成员的最大数量。

offset (可选)

查询

整数

用于定义资源列表起点的偏移量。

sort_key (可选)

查询

字符串

用于对共享列表进行排序的键。有效值为 idstatussizehostshare_protoexport_locationavailability_zoneuser_idproject_idcreated_atupdated_atdisplay_namenameshare_type_idshare_typeshare_network_idshare_networksnapshot_idsnapshot

sort_dir (可选)

查询

字符串

用于对资源列表进行排序的方向。有效值为 ascdesc

name~ (可选)

查询

字符串

可用于过滤共享、共享快照、共享网络、传输或共享组的名称模式。

版本 2.36 中新增

description~ (可选)

查询

字符串

可用于过滤共享、共享快照、共享网络或共享组的描述模式。

版本 2.36 中新增

响应参数

名称

入参

类型

描述

id

body

字符串

共享组的 UUID。

版本 2.31 中新增

name

body

字符串

资源的由用户定义的名称。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

status

body

字符串

共享组状态,为 availableerrorcreatingdeleting

description

body

字符串

资源的由用户定义的描述。

project_id

body

字符串

拥有资源的项目的 ID。

host

body

字符串

后端的宿主机名称。

share_group_type_id

body

字符串

共享组类型 ID。

source_share_group_snapshot_id

body

字符串

用于创建共享组的源共享组快照 ID。

share_network_id

body

字符串

资源导出到的共享网络 ID。

share_types

body

数组

共享类型 ID 的列表。

links

body

字符串

共享组主机名。

availability_zone

body

字符串

共享组所在的可用区 ID。

在版本 2.34 中新增

consistent_snapshot_support

body

字符串

一致性快照支持。

在版本 2.34 中新增

响应示例

{
    "share_groups": [
        {
            "id": "b94a8548-2079-4be0-b21c-0a887acd31ca",
            "links": [
                {
                    "href": "http://172.18.198.54:8786/v2/16e1ab15c35a457e9c2b2aa189f544e1/share_groups/b94a8548-2079-4be0-b21c-0a887acd31ca",
                    "rel": "self"
                },
                {
                    "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/share_groups/b94a8548-2079-4be0-b21c-0a887acd31ca",
                    "rel": "bookmark"
                }
            ],
            "name": "My_share_group",
            "availability_zone": "nova",
            "consistent_snapshot_support": true,
            "share_group_type_id": "313df749-aac0-1a54-af52-10f6c991e80c",
            "share_network_id": "713df749-aac0-4a54-af52-10f6c991e80c",
            "share_types": ["25747776-08e5-494f-ab40-a64b9d20d8f7"],
            "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
            "status": "available",
            "description": "My share group",
            "host": "manila2@generic1#GENERIC1",
            "source_share_group_snapshot_id": null,
            "created_at": "2015-09-18T10:25:24.000000"
        },
        {
            "id": "306ea93c-32e9-4907-a117-148b3945749f",
            "links": [
                {
                    "href": "http://172.18.198.54:8786/v2/16e1ab15c35a457e9c2b2aa189f544e1/share_groups/306ea93c-32e9-4907-a117-148b3945749f",
                    "rel": "self"
                },
                {
                    "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/share_groups/306ea93c-32e9-4907-a117-148b3945749f",
                    "rel": "bookmark"
                }
            ],
            "name": "Test_Share_group",
            "availability_zone": "nova",
            "consistent_snapshot_support": true,
            "share_group_type_id": "313df749-aac0-1a54-af52-10f6c991e80c",
            "share_network_id": "713df749-aac0-4a54-af52-10f6c991e80c",
            "share_types": ["25747776-08e5-494f-ab40-a64b9d20d8f7"],
            "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
            "status": "available",
            "description": "Test share group",
            "host": "manila2@generic1#GENERIC1",
            "source_share_group_snapshot_id": null,
            "created_at": "2015-09-18T10:25:24.000000"
        }
    ]
}
GET
/v2/share-groups/{share_group_id}

显示共享组详细信息

在版本 2.31 中添加。

显示共享组的详细信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_group_id

路径

字符串

共享组的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享组的 UUID。

版本 2.31 中新增

name

body

字符串

资源的由用户定义的名称。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

status

body

字符串

共享组状态,为 availableerrorcreatingdeleting

description

body

字符串

资源的由用户定义的描述。

project_id

body

字符串

拥有资源的项目的 ID。

host

body

字符串

后端的宿主机名称。

share_group_type_id

body

字符串

共享组类型 ID。

source_share_group_snapshot_id

body

字符串

用于创建共享组的源共享组快照 ID。

share_network_id

body

字符串

资源导出到的共享网络 ID。

share_types

body

数组

共享类型 ID 的列表。

links

body

字符串

共享组主机名。

availability_zone

body

字符串

共享组所在的可用区 ID。

在版本 2.34 中新增

consistent_snapshot_support

body

字符串

一致性快照支持。

在版本 2.34 中新增

响应示例

{
    "share_groups": {
        "links": [
            {
                "href": "http://172.18.198.54:8786/v2/16e1ab15c35a457e9c2b2aa189f544e1/share_groups/011d21e2-fbc3-4e4a-9993-9ea223f73264",
                "rel": "self"
            },
            {
                "href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/share_groups/011d21e2-fbc3-4e4a-9993-9ea223f73264",
                "rel": "bookmark"
            }
        ],
        "availability_zone": "nova",
        "consistent_snapshot_support": true,
        "share_group_type_id": "313df749-aac0-1a54-af52-10f6c991e80c",
        "share_network_id": "713df749-aac0-4a54-af52-10f6c991e80c",
        "id": "011d21e2-fbc3-4e4a-9993-9ea223f73264",
        "share_types": ["25747776-08e5-494f-ab40-a64b9d20d8f7"],
        "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
        "status": "available",
        "description": "My custom share London",
        "host": "manila2@generic1#GENERIC1",
        "source_share_group_snapshot_id": null,
        "name": "share_London",
        "created_at": "2015-09-18T10:25:24.000000"
    }
}
POST
/v2/share-groups

创建共享组

在版本 2.31 中添加。

创建共享组。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

422 - 无法处理的实体

请求的实体格式无法被请求的资源以该方法处理。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

name (可选)

body

字符串

用户定义的资源名称。该字段的值限制为 255 个字符。

description(可选)

body

字符串

用户定义的资源描述。该字段的值限制为 255 个字符。

share_types (可选)

body

数组

一个或多个共享类型 ID 的列表。

share_group_type (可选)

body

字符串

用于创建共享组的共享组类型 ID。

share_network (可选)

body

字符串

资源必须导出的共享网络的 ID。请注意,在使用具有 driver_handles_share_servers 附加规范为 False 的共享类型时,不应提供 share_network_id

source_share_group_snapshot (可选)

body

字符串

用于创建共享组的源共享组快照 ID。

availability_zone

body

字符串

共享组所在的可用区 ID。

在版本 2.34 中新增

请求示例

{
    "share_group": {
        "share_types": ["ecd11f4c-d811-4471-b656-c755c77e02ba"],
        "name": "my_group",
        "description": "for_test",
        "share_group_type_id": "89861c2a-10bf-4013-bdd4-3d020466aee4",
        "availability_zone": "nova",
        "share_network_id": "82168c2a-10bf-4013-bcc4-3d984136aee3",
        "source_share_group_snapshot_id": "69861c2a-10bf-4013-bcc4-3d020466aee3"
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

共享组的 UUID。

版本 2.31 中新增

name

body

字符串

资源的由用户定义的名称。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

status

body

字符串

共享组状态,为 availableerrorcreatingdeleting

description

body

字符串

资源的由用户定义的描述。

project_id

body

字符串

拥有资源的项目的 ID。

host (可选)

body

字符串

共享组主机名。

share_group_type_id

body

字符串

共享组类型 ID。

source_share_group_snapshot_id

body

字符串

用于创建共享组的源共享组快照 ID。

share_network_id

body

字符串

资源导出到的共享网络 ID。

share_types

body

数组

共享类型 ID 的列表。

links

body

字符串

共享组主机名。

availability_zone

body

字符串

共享组所在的可用区 ID。

在版本 2.34 中新增

consistent_snapshot_support

body

字符串

一致性快照支持。

在版本 2.34 中新增

响应示例

{
    "share_groups": {
        "status": "creating",
        "description": null,
        "links": [
            {
                "href": "http://192.168.98.191:8786/v2/e23850eeb91d4fa3866af634223e454c/share_groups/f9c1f80c-2392-4e34-bd90-fc89cdc5bf93",
                "rel": "self"
            },
            {
                "href": "http://192.168.98.191:8786/e23850eeb91d4fa3866af634223e454c/share_groups/f9c1f80c-2392-4e34-bd90-fc89cdc5bf93",
                "rel": "bookmark"
            }
        ],
        "availability_zone": null,
        "source_share_group_snapshot_id": null,
        "share_network_id": null,
        "share_server_id": null,
        "host": null,
        "share_group_type_id": "89861c2a-10bf-4013-bdd4-3d020466aee4",
        "consistent_snapshot_support": null,
        "id": "f9c1f80c-2392-4e34-bd90-fc89cdc5bf93",
        "name": null,
        "created_at": "2017-08-03T19:20:33.974421",
        "project_id": "e23850eeb91d4fa3866af634223e454c",
        "share_types": ["ecd11f4c-d811-4471-b656-c755c77e02ba"]
    }
}
POST
/v2/share-groups/{share_group_id}/action

重置共享组状态

在版本 2.31 中添加。

仅限管理员。显式更新共享组的状态。

使用 policy.yaml 文件将此操作的权限授予其他角色。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_group_id

路径

字符串

共享组的 UUID。

reset_status

body

对象

reset_status 对象。

status

body

字符串

共享组状态,为 availableerrorcreatingdeleting

请求示例

{
    "reset_status": {
        "status": "error"
    }
}
PUT
/v2/share-groups/{share_group_id}

更新共享组

在版本 2.31 中添加。

更新一个共享组。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

422 - 无法处理的实体

请求的实体格式无法被请求的资源以该方法处理。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_group_id

路径

字符串

共享组的 UUID。

name (可选)

body

字符串

用户定义的资源名称。该字段的值限制为 255 个字符。

description(可选)

body

字符串

用户定义的资源描述。该字段的值限制为 255 个字符。

请求示例

{
    "share_group": {
        "name": "new name",
        "description": "Changing the share group description."
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

共享组的 UUID。

版本 2.31 中新增

name

body

字符串

资源的由用户定义的名称。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

status

body

字符串

共享组状态,为 availableerrorcreatingdeleting

description

body

字符串

资源的由用户定义的描述。

project_id

body

字符串

拥有资源的项目的 ID。

host (可选)

body

字符串

共享组主机名。

share_group_type_id

body

字符串

共享组类型 ID。

source_share_group_snapshot_id (可选)

body

字符串

用于创建共享组的源共享组快照 ID。

share_network_id

body

字符串

资源导出到的共享网络 ID。

share_types

body

数组

共享类型 ID 的列表。

links

body

字符串

共享组主机名。

availability_zone

body

字符串

共享组所在的可用区 ID。

在版本 2.34 中新增

consistent_snapshot_support

body

字符串

一致性快照支持。

在版本 2.34 中新增

响应示例

{
    "share_groups": {
        "status": "creating",
        "description": "Changing the share group description.",
        "links": [
            {
                "href": "http://192.168.98.191:8786/v2/e23850eeb91d4fa3866af634223e454c/share_groups/f9c1f80c-2392-4e34-bd90-fc89cdc5bf93",
                "rel": "self"
            },
            {
                "href": "http://192.168.98.191:8786/e23850eeb91d4fa3866af634223e454c/share_groups/f9c1f80c-2392-4e34-bd90-fc89cdc5bf93",
                "rel": "bookmark"
            }
        ],
        "availability_zone": null,
        "source_share_group_snapshot_id": null,
        "share_network_id": null,
        "share_server_id": null,
        "host": null,
        "share_group_type_id": "89861c2a-10bf-4013-bdd4-3d020466aee4",
        "consistent_snapshot_support": null,
        "id": "f9c1f80c-2392-4e34-bd90-fc89cdc5bf93",
        "name": "new name",
        "created_at": "2017-08-03T19:20:33.974421",
        "project_id": "e23850eeb91d4fa3866af634223e454c",
        "share_types": ["ecd11f4c-d811-4471-b656-c755c77e02ba"]
    }
}
DELETE
/v2/share-groups/{share_group_id}

删除共享组

在版本 2.31 中添加。

删除一个共享组。

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_group_id

路径

字符串

共享组的 UUID。

force

body

字符串

要强制删除共享或共享组,请将此值设置为 null。与删除操作不同,强制删除操作会忽略共享或共享组的状态。

共享组类型 (自 API v2.31 起)

共享组类型允许您在创建共享组之前过滤或选择后端。

您可以将共享组类型设置为公共或私有。默认情况下,共享组类型创建为可公开访问。将 share_group_type_access:is_public 设置为 False 以使共享组类型私有。

您可以管理不同项目的私有共享组类型的访问权限。您可以添加访问权限、删除访问权限以及获取有关私有共享组类型访问权限的信息。

管理员可以指定给定组类型可能包含的 共享类型。如果管理员未显式将共享类型与给定的共享组类型关联,则服务将配置为 default_share_type 的共享类型与共享组类型关联。创建共享组时,调度器会选择与指定共享类型和共享组类型中的额外规范组合匹配的一个后端。

管理员还可以为共享组类型设置其他组额外规范,用于以下目的

  • 按组调度器过滤后端。以这种格式指定这些组额外规范:group_specs=value。例如,consistent_snapshot_support=true

注意

自 API 版本 2.55 起,共享组类型 API 不再被视为实验性。

GET
/v2/share-group-types

列出共享组类型

在版本 2.31 中添加。

列出所有共享组类型。

响应码

成功

代码

原因

200 - 正常

请求成功。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

is_public (可选)

查询

布尔值

一个布尔查询参数,当设置为 true 时,允许检索属于所有项目的公共资源。

group_specs (可选)

查询

字符串

组规范,作为一组或多个键值对。在每个对中,键是组规范的名称,值是用于过滤搜索共享组类型列表的共享组类型。查询必须是“百分比编码”字符串,例如,以下查询参数:{‘group-specs’: {‘consistent_snapshot_support’: ‘true’}} 编码为 ‘group_specs=%7B%27consistent_snapshot_support%27%3A+%27True%27%7D’

新增于版本 2.66

响应参数

名称

入参

类型

描述

id

body

字符串

共享组类型 ID。

is_public

body

布尔值

共享组类型的可见性级别。设置为 true 以使共享组类型公开。设置为 false 以使其私有。默认值为 true

share_types

body

数组

共享类型 ID 的列表。

name

body

字符串

共享组类型名称。

group_specs

body

对象

共享组类型的额外规范。

is_default

body

布尔值

定义创建的共享组类型是默认类型还是不是。如果返回值为 true,则它是默认共享组类型,否则不是默认类型。

新增于版本 2.46

响应示例

{
    "share_group_types": [
        {
            "is_public": true,
            "group_specs": {},
            "share_types": ["ecd11f4c-d811-4471-b656-c755c77e02ba"],
            "id": "89861c2a-10bf-4013-bdd4-3d020466aee4",
            "name": "test_group_type",
            "is_default": false
        }
    ]
}
GET
/v2/share-group-types/default

列出默认共享组类型

在版本 2.31 中添加。

列出默认共享组类型。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

响应参数

名称

入参

类型

描述

id

body

字符串

共享组类型 ID。

is_public

body

布尔值

共享组类型的可见性级别。设置为 true 以使共享组类型公开。设置为 false 以使其私有。默认值为 true

share_types

body

数组

共享类型 ID 的列表。

name

body

字符串

共享组类型名称。

group_specs

body

对象

共享组类型的额外规范。

is_default

body

布尔值

定义创建的共享组类型是默认类型还是不是。如果返回值为 true,则它是默认共享组类型,否则不是默认类型。

新增于版本 2.46

响应示例

{
    "share_group_type": {
        "is_public": true,
        "group_specs": {},
        "share_types": ["ecd11f4c-d811-4471-b656-c755c77e02ba"],
        "id": "89861c2a-10bf-4013-bdd4-3d020466aee4",
        "name": "test_group_type",
        "is_default": true
    }
}
GET
/v2/share-group-types/{share_group_type_id}/group-specs

列出共享组类型额外规范

在版本 2.31 中添加。

列出共享组类型的额外规范。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_group_type_id

body

字符串

共享组类型 ID。

响应参数

名称

入参

类型

描述

group_specs

body

对象

共享组类型的额外规范。

响应示例

{
    "group_specs": {
        "snapshot_support": "True"
    }
}
POST
/v2/share-group-types

创建共享组类型

在版本 2.31 中添加。

创建一个共享组类型。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_types

body

数组

共享类型 ID 的列表。

name (可选)

body

字符串

共享组类型资源的名称。该字段的值限制为 255 个字符。

group_specs (可选)

body

对象

共享组类型的额外规范。

is_public (可选)

body

布尔值

共享组类型的可见性级别。设置为 true 以使共享组类型公开。设置为 false 以使其私有。默认值为 false

请求示例

{
    "share_group_type": {
        "is_public": true,
        "group_specs": {
            "snapshot_support": true
        },
        "share_types": ["ecd11f4c-d811-4471-b656-c755c77e02ba"],
        "name": "my_new_group_type"
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

共享组类型 ID。

group_specs

body

对象

共享组类型的额外规范。

name

body

字符串

共享组类型名称。

share_types

body

数组

共享类型 ID 的列表。

is_public

body

布尔值

共享组类型的可见性级别。设置为 true 以使共享组类型公开。设置为 false 以使其私有。默认值为 true

is_default

body

布尔值

定义创建的共享组类型是默认类型还是不是。如果返回值为 true,则它是默认共享组类型,否则不是默认类型。

新增于版本 2.46

响应示例

{
    "share_group_type": {
        "is_public": true,
        "group_specs": {},
        "share_types": ["ecd11f4c-d811-4471-b656-c755c77e02ba"],
        "id": "89861c2a-10bf-4013-bdd4-3d020466aee4",
        "name": "test_group_type",
        "is_default": false
    }
}
GET
/v2/share-group-types/{share_group_type_id}/access

显示共享组类型访问详情

在版本 2.31 中添加。

显示共享组类型的访问详情。

您只能查看私有共享组类型的访问详情。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_group_type_id

body

字符串

共享组类型 ID。

响应参数

名称

入参

类型

描述

share_group_type_id

body

字符串

共享组类型 ID。

project_id

body

字符串

已授予访问该类型资源的项目的 ID。

响应示例

{
    "share_group_type_access": [
        {
            "share_group_type_id": "1732f284-401d-41d9-a494-425451e8b4b8",
            "project_id": "818a3f48dcd644909b3fa2e45a399a27"
        },
        {
            "share_group_type_id": "1732f284-401d-41d9-a494-425451e8b4b8",
            "project_id": "e1284adea3ee4d2482af5ed214f3ad90"
        }
    ]
}
POST
/v2/share-group-types/{share_group_type_id}/group-specs

为共享组类型设置额外规范

在版本 2.31 中添加。

为共享组类型设置一个额外规范。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_group_type_id

body

字符串

共享组类型 ID。

group_specs

body

对象

共享组类型的额外规范。

请求示例

{
    "group_specs": {
        "my_group_key": "my_group_value"
    }
}

响应参数

名称

入参

类型

描述

group_specs

body

对象

共享组类型的额外规范。

响应示例

{
    "group_specs": {
        "my_group_key": "my_group_value"
    }
}
DELETE
/v2/share-group-types/{share_group_type_id}/group-specs/{group_spec_key}

取消设置一个组规范

在版本 2.31 中添加。

取消设置共享类型的额外规范。

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_group_type_id

body

字符串

共享组类型 ID。

group_spec_key

body

字符串

共享组类型的额外规范键。

POST
/v2/share-group-types/{share_group_type_id}/action

添加共享组类型访问权限

在版本 2.31 中添加。

为项目添加共享组类型访问权限。

您只能添加私有共享组类型的访问权限。

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_group_type_id

路径

字符串

共享组类型的 UUID。

addProjectAccess

body

对象

表示应授予访问权限的项目资源的的对象。

project

body

字符串

需要授予访问该类型资源的项目的 ID。

请求示例

{
    "addProjectAccess": {
        "project": "e1284adea3ee4d2482af5ed214f3ad90"
    }
}
POST
/v2/share-group-types/{share_group_type_id}/action

删除共享组类型访问权限

在版本 2.31 中添加。

从项目删除共享组类型访问权限。

您只能删除私有共享组类型的访问权限。

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_group_type_id

路径

字符串

共享组类型的 UUID。

removeProjectAccess

body

对象

表示应撤销访问权限的项目资源的的对象。

project

body

字符串

必须撤销访问权限的项目的 ID。

请求示例

{
    "removeProjectAccess": {
        "project": "818a3f48dcd644909b3fa2e45a399a27"
    }
}
DELETE
/v2/share-group-types/{share_group_type_id}

删除共享组类型

在版本 2.31 中添加。

删除一个共享组类型。

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

share_group_type_id

路径

字符串

共享组类型的 UUID。

共享组快照 (自 API v2.31 起)

使用共享文件系统服务创建共享组的快照。共享组快照是包含在共享组中的数据的某个时间点的只读副本。您可以创建、更新和删除共享组快照。创建共享组快照后,您可以从该快照创建共享组。

您可以更新共享组快照以重命名它、更改其描述或更新其状态。

作为管理员,您还可以重置组快照的状态。使用 policy.yaml 文件将权限授予其他角色的这些操作。

注意

自 API 版本 2.55 起,共享组快照 API 不再被视为实验性。

GET
/v2/share-group-snapshots

列出共享组快照

在版本 2.31 中添加。

列出所有共享组快照。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

all_tenants (可选)

查询

布尔值

(仅限管理员)。定义是否为所有项目列出请求的资源。设置为 1 以列出所有项目的资源。设置为 0 以仅列出当前项目的资源。资源示例包括共享、快照、共享网络、安全服务和共享组。

name (可选)

查询

字符串

用于按资源名称过滤资源的由用户定义名称。

description(可选)

查询

字符串

可用于筛选资源的、用户定义的描述文本。

status (可选)

查询

字符串

按共享组快照状态进行过滤。有效值为 creatingerroravailabledeletingerror_deleting

share_group_id (可选)

查询

字符串

用于过滤资源的共享组的 UUID。

版本 2.31 中新增

limit (可选)

查询

整数

要返回的共享组成员的最大数量。

offset (可选)

查询

整数

用于定义资源列表起点的偏移量。

sort_key (可选)

查询

字符串

用于对共享列表进行排序的键。有效值为 idstatussizehostshare_protoexport_locationavailability_zoneuser_idproject_idcreated_atupdated_atdisplay_namenameshare_type_idshare_typeshare_network_idshare_networksnapshot_idsnapshot

sort_dir (可选)

查询

字符串

用于对资源列表进行排序的方向。有效值为 ascdesc

响应参数

名称

入参

类型

描述

id

body

对象

共享组快照 ID。

name

body

字符串

资源的由用户定义的名称。

links

body

字符串

共享组快照链接。

响应示例

{
    "share_group_snapshot": [
        {
            "links": [
                {
                    "href": "http://192.168.98.191:8786/v2/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
                    "rel": "self"
                },
                {
                    "href": "http://192.168.98.191:8786/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
                    "rel": "bookmark"
                }
            ],
            "name": null,
            "id": "46bf5875-58d6-4816-948f-8828423b0b9f"
        }
    ]
}
GET
/v2/share-group-snapshots/detail

列出带有详情的共享组快照

在版本 2.31 中添加。

列出带有详情的所有共享组快照。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

all_tenants (可选)

查询

布尔值

(仅限管理员)。定义是否为所有项目列出请求的资源。设置为 1 以列出所有项目的资源。设置为 0 以仅列出当前项目的资源。资源示例包括共享、快照、共享网络、安全服务和共享组。

name (可选)

查询

字符串

用于按资源名称过滤资源的由用户定义名称。

description(可选)

查询

字符串

可用于筛选资源的、用户定义的描述文本。

status (可选)

查询

字符串

按共享组快照状态进行过滤。有效值为 creatingerroravailabledeletingerror_deleting

share_group_id (可选)

查询

字符串

用于过滤资源的共享组的 UUID。

版本 2.31 中新增

limit (可选)

查询

整数

要返回的共享组成员的最大数量。

offset (可选)

查询

整数

用于定义资源列表起点的偏移量。

sort_key (可选)

查询

字符串

用于对共享列表进行排序的键。有效值为 idstatussizehostshare_protoexport_locationavailability_zoneuser_idproject_idcreated_atupdated_atdisplay_namenameshare_type_idshare_typeshare_network_idshare_networksnapshot_idsnapshot

sort_dir (可选)

查询

字符串

用于对资源列表进行排序的方向。有效值为 ascdesc

响应参数

名称

入参

类型

描述

id

body

对象

共享组快照 ID。

project_id

body

字符串

拥有资源的项目的 ID。

status

body

字符串

按共享组快照状态进行过滤。有效值为 creatingerroravailabledeletingerror_deleting

share_group_id

body

字符串

共享组的 UUID。

版本 2.31 中新增

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

members

body

字符串

共享组快照成员。

links

body

字符串

共享组快照链接。

响应示例

{
    "share_group_snapshots": [
        {
            "status": "available",
            "share_group_id": "cd7a3d06-23b3-4d05-b4ca-7c9a20faa95f",
            "links": [
                {
                    "href": "http://192.168.98.191:8786/v2/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
                    "rel": "self"
                },
                {
                    "href": "http://192.168.98.191:8786/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
                    "rel": "bookmark"
                }
            ],
            "name": null,
            "members": [],
            "created_at": "2017-08-10T03:01:39.000000",
            "project_id": "e23850eeb91d4fa3866af634223e454c",
            "id": "46bf5875-58d6-4816-948f-8828423b0b9f",
            "description": null
        },
        {
            "status": "available",
            "share_group_id": "cd7a3d06-23b3-4d05-b4ca-7c9a20faa95f",
            "links": [
                {
                    "href": "http://192.168.98.191:8786/v2/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/9d8ed9be-4454-4df0-b0ae-8360b623d93d",
                    "rel": "self"
                },
                {
                    "href": "http://192.168.98.191:8786/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/9d8ed9be-4454-4df0-b0ae-8360b623d93d",
                    "rel": "bookmark"
                }
            ],
            "name": null,
            "members": [],
            "created_at": "2017-08-10T03:01:28.000000",
            "project_id": "e23850eeb91d4fa3866af634223e454c",
            "id": "9d8ed9be-4454-4df0-b0ae-8360b623d93d",
            "description": null
        }
    ]
}
GET
/v2/share-group-snapshots/{group_snapshot_id}/members

列出共享组快照成员

在版本 2.31 中添加。

列出所有共享组快照成员。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

group_snapshot_id

路径

字符串

组快照 ID。

响应参数

名称

入参

类型

描述

id

body

对象

共享组快照 ID。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

project_id

body

字符串

拥有资源的项目的 ID。

size

body

整数

快照大小,以 GiB 为单位。

share_protocol

body

字符串

共享快照的文件系统协议。有效值为 NFSCIFSGlusterFSHDFSCephFSMAPRFSCephFS 从 API v2.13 开始支持。

name

body

字符串

资源的由用户定义的名称。

share_group_snapshot_id

body

对象

共享组快照 ID。

share_id

body

字符串

用于创建快照的源共享的 UUID。

响应示例

{
    "share_group_snapshot_members": [
        {
            "status": "available",
            "share_id": "406ea93b-32e9-4907-a117-148b3945749f",
            "created_at": "2017-09-07T11:50:39.000000",
            "share_proto": "NFS",
            "share_size": 1,
            "id": "6d221c1d-0200-461e-8d20-24b4776b9ddb",
            "size": 1
        },
        {
            "status": "available",
            "share_id": "406ea93b-32e9-4907-a117-148b3945749f",
            "created_at": "2015-09-07T11:50:39.000000",
            "share_proto": "NFS",
            "share_size": 1,
            "id": "6d221c1d-0200-461e-8d20-24b4776b9ddb",
            "size": 1
        }
    ]
}
GET
/v2/share-group-snapshots/{group_snapshot_id}

显示共享组快照详情

在版本 2.31 中添加。

显示共享组快照的详情。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

group_snapshot_id

路径

字符串

组快照 ID。

响应参数

名称

入参

类型

描述

id

body

对象

共享组快照 ID。

project_id

body

字符串

拥有资源的项目的 ID。

status

body

字符串

按共享组快照状态进行过滤。有效值为 creatingerroravailabledeletingerror_deleting

share_group_id

body

字符串

共享组的 UUID。

版本 2.31 中新增

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

members

body

字符串

共享组快照成员。

links

body

字符串

共享组快照链接。

响应示例

{
    "share_group_snapshot": {
        "status": "creating",
        "share_group_id": "cd7a3d06-23b3-4d05-b4ca-7c9a20faa95f",
        "links": [
            {
                "href": "http://192.168.98.191:8786/v2/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
                "rel": "self"
            },
            {
                "href": "http://192.168.98.191:8786/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
                "rel": "bookmark"
            }
        ],
        "name": null,
        "members": [],
        "created_at": "2017-08-10T03:01:39.442509",
        "project_id": "e23850eeb91d4fa3866af634223e454c",
        "id": "46bf5875-58d6-4816-948f-8828423b0b9f",
        "description": null
    }
}
POST
/v2/share-group-snapshots

创建共享组快照

在版本 2.31 中添加。

从共享创建快照。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

422 - 无法处理的实体

请求的实体格式无法被请求的资源以该方法处理。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

name (可选)

body

字符串

用户定义的资源名称。该字段的值限制为 255 个字符。

description(可选)

body

字符串

用户定义的资源描述。该字段的值限制为 255 个字符。

share_group_id

body

字符串

共享组的 UUID。

版本 2.31 中新增

请求示例

{
    "share_group_snapshot": {
        "share_group_id": "cd7a3d06-23b3-4d05-b4ca-7c9a20faa95f",
        "name": "test",
        "description": "test description"
    }
}

响应参数

名称

入参

类型

描述

id

body

对象

共享组快照 ID。

project_id

body

字符串

拥有资源的项目的 ID。

status

body

字符串

按共享组快照状态进行过滤。有效值为 creatingerroravailabledeletingerror_deleting

share_group_id

body

字符串

共享组的 UUID。

版本 2.31 中新增

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

members

body

字符串

共享组快照成员。

links

body

字符串

共享组快照链接。

响应示例

{
    "share_group_snapshot": {
        "status": "creating",
        "share_group_id": "cd7a3d06-23b3-4d05-b4ca-7c9a20faa95f",
        "links": [
            {
                "href": "http://192.168.98.191:8786/v2/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
                "rel": "self"
            },
            {
                "href": "http://192.168.98.191:8786/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
                "rel": "bookmark"
            }
        ],
        "name": null,
        "members": [],
        "created_at": "2017-08-10T03:01:39.442509",
        "project_id": "e23850eeb91d4fa3866af634223e454c",
        "id": "46bf5875-58d6-4816-948f-8828423b0b9f",
        "description": null
    }
}
POST
/v2/share-group-snapshots/{group_snapshot_id}/action

重置共享组快照状态

在版本 2.31 中添加。

仅管理员可用。显式更新共享组快照的状态。

使用 policy.yaml 文件将此操作的权限授予其他角色。

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

group_snapshot_id

路径

字符串

组快照 ID。

status

body

字符串

按共享组快照状态进行过滤。有效值为 creatingerroravailabledeletingerror_deleting

请求示例

{
    "reset_status": {
        "status": "error"
    }
}
PUT
/v2/share-group-snapshots/{group_snapshot_id}

更新共享组快照

在版本 2.31 中添加。

更新一个共享组快照。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

422 - 无法处理的实体

请求的实体格式无法被请求的资源以该方法处理。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

group_snapshot_id

路径

字符串

组快照 ID。

name (可选)

body

字符串

用户定义的资源名称。该字段的值限制为 255 个字符。

description(可选)

body

字符串

用户定义的资源描述。该字段的值限制为 255 个字符。

请求示例

{
    "snapshot": {
        "display_name": "snapshot_Share1",
        "display_description": "I am changing a description also. Here is a snapshot of share Share1"
    }
}

响应参数

名称

入参

类型

描述

id

body

对象

共享组快照 ID。

project_id

body

字符串

拥有资源的项目的 ID。

status

body

字符串

按共享组快照状态进行过滤。有效值为 creatingerroravailabledeletingerror_deleting

share_group_id

body

字符串

共享组的 UUID。

版本 2.31 中新增

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

members

body

字符串

共享组快照成员。

links

body

字符串

共享组快照链接。

响应示例

{
    "share_group_snapshot": {
        "status": "creating",
        "share_group_id": "cd7a3d06-23b3-4d05-b4ca-7c9a20faa95f",
        "links": [
            {
                "href": "http://192.168.98.191:8786/v2/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
                "rel": "self"
            },
            {
                "href": "http://192.168.98.191:8786/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
                "rel": "bookmark"
            }
        ],
        "name": null,
        "members": [],
        "created_at": "2017-08-10T03:01:39.442509",
        "project_id": "e23850eeb91d4fa3866af634223e454c",
        "id": "46bf5875-58d6-4816-948f-8828423b0b9f",
        "description": null
    }
}
DELETE
/v2/share-group-snapshots/{group_snapshot_id}

删除共享组快照

在版本 2.31 中添加。

删除一个共享组快照。

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

group_snapshot_id

路径

字符串

组快照 ID。

共享传输 (自 API v2.77 起)

在项目之间传输共享。

POST
/v2/share-transfers

创建共享传输

从源项目命名空间到目标项目命名空间的启动共享传输。

先决条件

  • 共享 status 必须为 available

  • 如果共享具有快照,则这些快照必须为 available

  • 共享不能属于共享组

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

transfer

body

对象

传输对象。

name (可选)

body

字符串

传输显示名称。

share_id

body

字符串

共享的 UUID。

请求示例

{
    "transfer": {
        "share_id": "29476819-28a9-4b1a-a21d-3b2d203025a0",
        "name": "test_transfer"
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

传输 UUID。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

name (可选)

body

字符串

传输显示名称。

resource_type

body

字符串

传输资源的类型。

resource_id

body

字符串

传输资源的 UUID。

auth_key

body

字符串

传输的身份验证密钥。

source_project_id

body

字符串

拥有资源的项目的 ID。

destination_project_id

body

字符串

接受传输资源的目标项目的 UUID。

accepted

body

布尔值

传输是否已被接受。

expires_at

body

字符串

资源传输到期的时间戳。到期后,将自动删除。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

links

body

数组

资源的分页和书签链接。

响应示例

{
    "transfer": {
        "id": "f21c72c4-2b77-445b-aa12-e8d1b44163a2",
        "created_at": "2022-09-06T08:17:43.629495",
        "name": "test_transfer",
        "resource_type": "share",
        "resource_id": "29476819-28a9-4b1a-a21d-3b2d203025a0",
        "auth_key": "406a2d67cdb09afe",
        "source_project_id": "714198c7ac5e45a4b785de732ea4695d",
        "destination_project_id": null,
        "accepted": false,
        "expires_at": "2022-09-06T08:22:43.629495",
        "links": [
            {
                "rel": "self",
                "href": "http://192.168.48.129/shar/v2/share-transfer/f21c72c4-2b77-445b-aa12-e8d1b44163a2"
            },
            {
                "rel": "bookmark",
                "href": "http://192.168.48.129/shar/share-transfer/f21c72c4-2b77-445b-aa12-e8d1b44163a2"
            }
        ]
    }
}
POST
/v2/share-transfers/{transfer_id}/accept

在目标项目命名空间中接受共享传输

接受共享传输。

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

413 - 请求实体过大

无法完成此操作。

请求

名称

入参

类型

描述

transfer_id

路径

字符串

传输的唯一标识符。

auth_key

body

字符串

传输的身份验证密钥。

clear_access_rules (可选)

body

布尔值

接受共享时是否清除所有访问规则。

请求示例

{
    "accept": {
        "auth_key": "d7ef426932068a33",
        "clear_access_rules": true
    }
}
GET
/v2/share-transfers

列出项目的共享传输

列出共享传输。

响应码

成功

代码

原因

200 - 正常

请求成功。

请求

名称

入参

类型

描述

all_tenants (可选)

查询

布尔值

(仅限管理员)。定义是否为所有项目列出请求的资源。设置为 1 以列出所有项目的资源。设置为 0 以仅列出当前项目的资源。资源示例包括共享、快照、共享网络、安全服务和共享组。

limit (可选)

查询

整数

要返回的共享组成员的最大数量。

offset (可选)

查询

整数

用于定义资源列表起点的偏移量。

sort_key (可选)

查询

字符串

用于对传输列表进行排序的键。有效值为 idnameresource_typeresource_idsource_project_iddestination_project_idcreated_atexpires_at

sort_dir (可选)

查询

字符串

用于对资源列表进行排序的方向。有效值为 ascdesc

name (可选)

查询

字符串

用于按资源名称过滤资源的由用户定义名称。

name~ (可选)

查询

字符串

可用于过滤共享、共享快照、共享网络、传输或共享组的名称模式。

版本 2.36 中新增

resource_type (可选)

查询

字符串

创建传输的资源的类型。

响应参数

名称

入参

类型

描述

transfers

body

数组

传输列表。

id

body

字符串

传输 UUID。

resource_type

body

字符串

传输资源的类型。

resource_id

body

字符串

传输资源的 UUID。

name (可选)

body

字符串

传输显示名称。

links

body

数组

资源的分页和书签链接。

响应示例

{
    "transfers": [
        {
            "id": "02a948b4-671b-4c62-b13a-18d613cb4576",
            "resource_type": "share",
            "resource_id": "0fe7cf64-b879-4902-9d86-f80aeff12b06",
            "name": "transfer2",
            "links": [
                {
                    "rel": "self",
                    "href": "http://192.168.48.129/shar/v2/share-transfer/02a948b4-671b-4c62-b13a-18d613cb4576"
                },
                {
                    "rel": "bookmark",
                    "href": "http://192.168.48.129/shar/share-transfer/02a948b4-671b-4c62-b13a-18d613cb4576"
                }
            ]
        },
        {
            "id": "a10209ff-b55d-4fed-9f63-abea53b6f107",
            "resource_type": "share",
            "resource_id": "29476819-28a9-4b1a-a21d-3b2d203025a0",
            "name": "transfer1",
            "links": [
                {
                    "rel": "self",
                    "href": "http://192.168.48.129/shar/v2/share-transfer/a10209ff-b55d-4fed-9f63-abea53b6f107"
                },
                {
                    "rel": "bookmark",
                    "href": "http://192.168.48.129/shar/share-transfer/a10209ff-b55d-4fed-9f63-abea53b6f107"
                }
            ]
        }
    ]
}
GET
/v2/share-transfers/detail

列出共享传输和详细信息

列出共享传输,包含详细信息。

响应码

成功

代码

原因

200 - 正常

请求成功。

请求

名称

入参

类型

描述

all_tenants (可选)

查询

布尔值

(仅限管理员)。定义是否为所有项目列出请求的资源。设置为 1 以列出所有项目的资源。设置为 0 以仅列出当前项目的资源。资源示例包括共享、快照、共享网络、安全服务和共享组。

limit (可选)

查询

整数

要返回的共享组成员的最大数量。

offset (可选)

查询

整数

用于定义资源列表起点的偏移量。

sort_key (可选)

查询

字符串

用于对传输列表进行排序的键。有效值为 idnameresource_typeresource_idsource_project_iddestination_project_idcreated_atexpires_at

sort_dir (可选)

查询

字符串

用于对资源列表进行排序的方向。有效值为 ascdesc

响应参数

名称

入参

类型

描述

transfers

body

数组

传输列表。

id

body

字符串

传输 UUID。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

name (可选)

body

字符串

传输显示名称。

resource_type

body

字符串

传输资源的类型。

resource_id

body

字符串

传输资源的 UUID。

source_project_id

body

字符串

拥有资源的项目的 ID。

destination_project_id

body

字符串

接受传输资源的目标项目的 UUID。

accepted

body

布尔值

传输是否已被接受。

expires_at

body

字符串

资源传输到期的时间戳。到期后,将自动删除。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

links

body

数组

资源的分页和书签链接。

响应示例

{
    "transfers": [
        {
            "id": "42b0fab4-df77-4f25-a958-5370e1c95ed2",
            "created_at": "2022-09-07T01:52:39.000000",
            "name": "transfer2",
            "resource_type": "share",
            "resource_id": "0fe7cf64-b879-4902-9d86-f80aeff12b06",
            "source_project_id": "714198c7ac5e45a4b785de732ea4695d",
            "destination_project_id": null,
            "accepted": false,
            "expires_at": "2022-09-07T01:57:39.000000",
            "links": [
                {
                    "rel": "self",
                    "href": "http://192.168.48.129/shar/v2/share-transfer/42b0fab4-df77-4f25-a958-5370e1c95ed2"
                },
                {
                    "rel": "bookmark",
                    "href": "http://192.168.48.129/shar/share-transfer/42b0fab4-df77-4f25-a958-5370e1c95ed2"
                }
            ]
        },
        {
            "id": "506a7e77-42e7-4f33-ac36-1d1dd7f2b9af",
            "created_at": "2022-09-07T01:52:30.000000",
            "name": "transfer1",
            "resource_type": "share",
            "resource_id": "29476819-28a9-4b1a-a21d-3b2d203025a0",
            "source_project_id": "714198c7ac5e45a4b785de732ea4695d",
            "destination_project_id": null,
            "accepted": false,
            "expires_at": "2022-09-07T01:57:30.000000",
            "links": [
                {
                    "rel": "self",
                    "href": "http://192.168.48.129/shar/v2/share-transfer/506a7e77-42e7-4f33-ac36-1d1dd7f2b9af"
                },
                {
                    "rel": "bookmark",
                    "href": "http://192.168.48.129/shar/share-transfer/506a7e77-42e7-4f33-ac36-1d1dd7f2b9af"
                }
            ]
        }
    ]
}
GET
/v2/share-transfers/{transfer_id}

显示共享传输详细信息

显示共享传输的详细信息。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

transfer_id

路径

字符串

传输的唯一标识符。

响应参数

名称

入参

类型

描述

id

body

字符串

传输 UUID。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

name (可选)

body

字符串

传输显示名称。

resource_type

body

字符串

传输资源的类型。

resource_id

body

字符串

传输资源的 UUID。

source_project_id

body

字符串

拥有资源的项目的 ID。

destination_project_id

body

字符串

接受传输资源的目标项目的 UUID。

accepted

body

布尔值

传输是否已被接受。

expires_at

body

字符串

资源传输到期的时间戳。到期后,将自动删除。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

links

body

数组

资源的分页和书签链接。

响应示例

{
    "transfer": {
        "id": "d2035732-d0c0-4380-a44c-f978a264ab1a",
        "created_at": "2022-09-07T01:12:29.000000",
        "name": "transfer1",
        "resource_type": "share",
        "resource_id": "29476819-28a9-4b1a-a21d-3b2d203025a0",
        "source_project_id": "714198c7ac5e45a4b785de732ea4695d",
        "destination_project_id": null,
        "accepted": false,
        "expires_at": "2022-09-07T01:17:29.000000",
        "links": [
            {
                "rel": "self",
                "href": "http://192.168.48.129/shar/v2/share-transfer/d2035732-d0c0-4380-a44c-f978a264ab1a"
            },
            {
                "rel": "bookmark",
                "href": "http://192.168.48.129/shar/share-transfer/d2035732-d0c0-4380-a44c-f978a264ab1a"
            }
        ]
    }
}
DELETE
/v2/share-transfers/{transfer_id}

删除共享传输

删除共享传输。

响应码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

请求

名称

入参

类型

描述

transfer_id

路径

字符串

传输的唯一标识符。

资源锁 (自 API v2.81 起)

创建、列出、更新和删除资源上用户操作的锁。

POST
/v2/resource-locks

创建资源锁

在版本 2.81 中添加。

锁定给定资源上的特定操作。

并非所有资源都受支持,并且并非受支持资源上的操作都可以使用此机制防止。只有创建锁的用户或权限更高的用户才能删除或操作锁。云管理员可以使用 policy.yaml 文件来调整其他用户创建的锁的权限。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

service_token (可选)

标头

字符串

通过 X-Service-Token 标头指定的身份验证令牌。在 OpenStack Identity (Keystone) 上下文中,此令牌可以由具有 service 角色的用户获得。此标头的存在由资源锁 API 方法用于设置或匹配锁用户上下文。由服务用户创建的资源锁不能由非服务用户操作。

resource_lock

body

对象

在进行资源锁请求时使用的资源锁对象。所有其他参数都包含在此对象中。

resource_id

body

字符串

锁所针对的资源的 UUID。例如,这可以是锁定的共享的 ID。

resource_type

body

字符串

ID 在 resource_id 中表示的资源的类型。例如,share 是当资源锁与锁定的共享的删除相关时指定的资源类型。资源锁并非对所有资源都受支持。当前仅支持 share

resource_action (可选)

body

字符串

资源锁阻止的与资源相关的操作。例如,如果资源锁阻止删除共享,则 resource_action 的值为 delete。资源锁并非对所有 API 操作都受支持。当前仅支持 delete,并且仅针对特定资源。如果未提供,则此参数的值默认为 delete

lock_reason (可选)

body

字符串

表示特定资源锁定的原因的文本块。

请求示例

{
    "resource_lock": {
        "resource_id": "5a313549-d346-44b6-9650-738ce08a9fee",
        "resource_type": "share",
        "resource_action": "delete",
        "lock_reason": "Locked for deletion until year end audit."
    }
}

响应参数

名称

入参

类型

描述

resource_lock

body

对象

在进行资源锁请求时使用的资源锁对象。所有其他参数都包含在此对象中。

id

body

字符串

标识特定资源锁的 UUID。

user_id

body

字符串

创建资源锁的用户 ID。

project_id

body

字符串

创建资源锁的项目 ID。

lock_context

body

字符串

锁创建者的上下文。资源锁可以由具有不同角色的用户创建。如果具有 admin 角色的用户创建锁,则此字段的值为 admin。如果具有 service 角色的用户创建锁,则此字段的值为 service。对于所有其他上下文,此字段的值为 user。此字段还确定了通过服务的默认 RBAC 需要解锁或操作锁的用户角色。

resource_type

body

字符串

ID 在 resource_id 中表示的资源的类型。例如,share 是当资源锁与锁定的共享的删除相关时指定的资源类型。资源锁并非对所有资源都受支持。当前仅支持 share

resource_id

body

字符串

锁所针对的资源的 UUID。例如,这可以是锁定的共享的 ID。

resource_action

body

字符串

资源锁阻止的与资源相关的操作。例如,如果资源锁阻止删除共享,则 resource_action 的值为 delete。资源锁并非对所有 API 操作都受支持。

lock_reason

body

字符串

表示特定资源锁定的原因的文本块。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

links

body

数组

资源的分页和书签链接。

响应示例

{
  "resource_lock": {
    "id": "713dc92d-bf5e-4b04-875b-2b2d284d8f94",
    "user_id": "89de351d3b5744b9853ec4829aa0e714",
    "project_id": "db2e72fef7864bbbbf210f22da7f1158",
    "lock_context": "user",
    "resource_type": "share",
    "resource_id": "5a313549-d346-44b6-9650-738ce08a9fee",
    "resource_action": "delete",
    "lock_reason": "Locked for deletion until year end audit.",
    "created_at": "2023-07-17T22:11:48.144302",
    "updated_at": null,
    "links": [
      {
        "rel": "self",
        "href": "http://203.0.113.30/share/v2/resource_locks/713dc92d-bf5e-4b04-875b-2b2d284d8f94"
      },
      {
        "rel": "bookmark",
        "href": "http://203.0.113.30/share/resource_locks/713dc92d-bf5e-4b04-875b-2b2d284d8f94"
      }
    ]
  }
}
GET
/v2/resource-locks

列出资源锁

在版本 2.81 中添加。

使用过滤器检索资源锁

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

service_token (可选)

标头

字符串

通过 X-Service-Token 标头指定的身份验证令牌。在 OpenStack Identity (Keystone) 上下文中,此令牌可以由具有 service 角色的用户获得。此标头的存在由资源锁 API 方法用于设置或匹配锁用户上下文。由服务用户创建的资源锁不能由非服务用户操作。

id (可选)

查询

字符串

用于按资源锁 ID 过滤资源锁的 ID。

resource_id (可选)

查询

字符串

用于按锁所针对的资源 ID 过滤资源锁的 ID。

resource_action (可选)

查询

字符串

用于过滤资源锁的 action

resource_type (可选)

查询

字符串

用于按锁所针对的资源类型过滤资源锁的资源类型。

user_id (可选)

查询

字符串

用于按用户 ID 过滤资源锁的 ID。

project_id (可选)

查询

字符串

用于按项目 ID 过滤资源锁的 ID。

all_projects (可选)

查询

字符串

将此参数设置为 True 以获取所有项目命名空间中的资源锁。

lock_context (可选)

查询

字符串

用于按锁创建者的上下文过滤锁。

created_since (可选)

查询

字符串

搜索在指定日期之后创建的资源列表。日期格式为“yyyy-mm-dd”。

created_before (可选)

查询

字符串

搜索在指定日期之前创建的资源列表。日期格式为“yyyy-mm-dd”。

lock_reason (可选)

查询

字符串

可用于过滤资源锁的锁原因。

lock_reason~ (可选)

查询

字符串

可用于过滤资源锁的锁原因模式。

sort_key (可选)

查询

字符串

用于对资源锁列表进行排序的键。有效值为 idresource_idresource_typeresource_actionuser_idproject_idcreated_atupdated_actlock_context

sort_dir (可选)

查询

字符串

用于对资源列表进行排序的方向。有效值为 ascdesc

offset (可选)

查询

整数

用于定义资源列表起点的偏移量。

with_count (可选)

查询

布尔值

是否在 API 响应中显示 count,默认值为 False。此查询参数在使用分页时很有用。

响应参数

名称

入参

类型

描述

resource_locks

body

对象

包含资源锁集合或列表的资源锁对象。

id

body

字符串

标识特定资源锁的 UUID。

user_id

body

字符串

创建资源锁的用户 ID。

project_id

body

字符串

创建资源锁的项目 ID。

lock_context

body

字符串

锁创建者的上下文。资源锁可以由具有不同角色的用户创建。如果具有 admin 角色的用户创建锁,则此字段的值为 admin。如果具有 service 角色的用户创建锁,则此字段的值为 service。对于所有其他上下文,此字段的值为 user。此字段还确定了通过服务的默认 RBAC 需要解锁或操作锁的用户角色。

resource_type

body

字符串

ID 在 resource_id 中表示的资源的类型。例如,share 是当资源锁与锁定的共享的删除相关时指定的资源类型。资源锁并非对所有资源都受支持。当前仅支持 share

resource_id

body

字符串

锁所针对的资源的 UUID。例如,这可以是锁定的共享的 ID。

resource_action

body

字符串

资源锁阻止的与资源相关的操作。例如,如果资源锁阻止删除共享,则 resource_action 的值为 delete。资源锁并非对所有 API 操作都受支持。

lock_reason

body

字符串

表示特定资源锁定的原因的文本块。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

links

body

数组

资源的分页和书签链接。

count (可选)

body

整数

应用分页之前请求的资源的计数。如果查询中提供了“with_count=True”,则此参数仅存在于 API 响应中。

响应示例

{
  "resource_locks": [
    {
      "id": "118750ee-b62b-4cae-9a94-7da29a4f831f",
      "user_id": "89de351d3b5744b9853ec4829aa0e714",
      "project_id": "db2e72fef7864bbbbf210f22da7f1158",
      "lock_context": "user",
      "resource_type": "share",
      "resource_id": "4c0b4d35-4ea8-4811-a1e2-a065c64225a8",
      "resource_action": "delete",
      "lock_reason": null,
      "created_at": "2023-07-17T22:53:18.894553",
      "updated_at": null,
      "links": [
        {
          "rel": "self",
          "href": "http://203.0.113.30/share/v2/resource_locks/118750ee-b62b-4cae-9a94-7da29a4f831f"
        },
        {
          "rel": "bookmark",
          "href": "http://203.0.113.30/share/resource_locks/118750ee-b62b-4cae-9a94-7da29a4f831f"
        }
      ]
    },
    {
      "id": "713dc92d-bf5e-4b04-875b-2b2d284d8f94",
      "user_id": "89de351d3b5744b9853ec4829aa0e714",
      "project_id": "db2e72fef7864bbbbf210f22da7f1158",
      "lock_context": "user",
      "resource_type": "share",
      "resource_id": "5a313549-d346-44b6-9650-738ce08a9fee",
      "resource_action": "delete",
      "lock_reason": "Locked for deletion until year end audit.",
      "created_at": "2023-07-17T22:11:48.144302",
      "updated_at": null,
      "links": [
        {
          "rel": "self",
          "href": "http://203.0.113.30/share/v2/resource_locks/713dc92d-bf5e-4b04-875b-2b2d284d8f94"
        },
        {
          "rel": "bookmark",
          "href": "http://203.0.113.30/share/resource_locks/713dc92d-bf5e-4b04-875b-2b2d284d8f94"
        }
      ]
    }
  ]
}
GET
/v2/resource-locks/{resource-lock-id}

获取资源锁

在版本 2.81 中添加。

检索特定的资源锁

默认情况下,项目内所有用户都可以查看资源锁。云管理员可以使用 policy.yaml 文件来调整此行为。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

service_token (可选)

标头

字符串

通过 X-Service-Token 标头指定的身份验证令牌。在 OpenStack Identity (Keystone) 上下文中,此令牌可以由具有 service 角色的用户获得。此标头的存在由资源锁 API 方法用于设置或匹配锁用户上下文。由服务用户创建的资源锁不能由非服务用户操作。

resource_lock_id

路径

字符串

资源锁的 UUID。

响应参数

名称

入参

类型

描述

resource_lock

body

对象

在进行资源锁请求时使用的资源锁对象。所有其他参数都包含在此对象中。

id

body

字符串

标识特定资源锁的 UUID。

user_id

body

字符串

创建资源锁的用户 ID。

project_id

body

字符串

创建资源锁的项目 ID。

lock_context

body

字符串

锁创建者的上下文。资源锁可以由具有不同角色的用户创建。如果具有 admin 角色的用户创建锁,则此字段的值为 admin。如果具有 service 角色的用户创建锁,则此字段的值为 service。对于所有其他上下文,此字段的值为 user。此字段还确定了通过服务的默认 RBAC 需要解锁或操作锁的用户角色。

resource_type

body

字符串

ID 在 resource_id 中表示的资源的类型。例如,share 是当资源锁与锁定的共享的删除相关时指定的资源类型。资源锁并非对所有资源都受支持。当前仅支持 share

resource_id

body

字符串

锁所针对的资源的 UUID。例如,这可以是锁定的共享的 ID。

resource_action

body

字符串

资源锁阻止的与资源相关的操作。例如,如果资源锁阻止删除共享,则 resource_action 的值为 delete。资源锁并非对所有 API 操作都受支持。

lock_reason

body

字符串

表示特定资源锁定的原因的文本块。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

links

body

数组

资源的分页和书签链接。

响应示例

{
  "resource_lock": {
    "id": "713dc92d-bf5e-4b04-875b-2b2d284d8f94",
    "user_id": "89de351d3b5744b9853ec4829aa0e714",
    "project_id": "db2e72fef7864bbbbf210f22da7f1158",
    "lock_context": "user",
    "resource_type": "share",
    "resource_id": "5a313549-d346-44b6-9650-738ce08a9fee",
    "resource_action": "delete",
    "lock_reason": "Locked for deletion until year end audit.",
    "created_at": "2023-07-17T22:11:48.144302",
    "updated_at": null,
    "links": [
      {
        "rel": "self",
        "href": "http://203.0.113.30/share/v2/resource_locks/713dc92d-bf5e-4b04-875b-2b2d284d8f94"
      },
      {
        "rel": "bookmark",
        "href": "http://203.0.113.30/share/resource_locks/713dc92d-bf5e-4b04-875b-2b2d284d8f94"
      }
    ]
  }
}
PUT
/v2/resource-locks/{resource-lock-id}

更新资源锁

在版本 2.81 中添加。

更新特定的资源锁

默认情况下,资源锁可以由创建锁的用户更新,除非 lock_context 设置为 adminservice。具有 service 角色的用户需要操作具有 lock_context 设置为 service 的锁。具有 admin 角色的用户可以操作所有锁。管理员可以使用 policy.yaml 来调整此行为。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

service_token (可选)

标头

字符串

通过 X-Service-Token 标头指定的身份验证令牌。在 OpenStack Identity (Keystone) 上下文中,此令牌可以由具有 service 角色的用户获得。此标头的存在由资源锁 API 方法用于设置或匹配锁用户上下文。由服务用户创建的资源锁不能由非服务用户操作。

resource_lock_id

路径

字符串

资源锁的 UUID。

resource_lock

body

对象

在进行资源锁请求时使用的资源锁对象。所有其他参数都包含在此对象中。

resource_action (可选)

body

字符串

资源锁阻止的与资源相关的操作。例如,如果资源锁阻止删除共享,则 resource_action 的值为 delete。资源锁并非对所有 API 操作都受支持。

lock_reason (可选)

body

字符串

表示特定资源锁定的原因的文本块。

请求示例

{
    "resource_lock": {
        "lock_reason": "This is a protected share"
    }
}

响应参数

名称

入参

类型

描述

resource_lock

body

对象

在进行资源锁请求时使用的资源锁对象。所有其他参数都包含在此对象中。

id

body

字符串

标识特定资源锁的 UUID。

user_id

body

字符串

创建资源锁的用户 ID。

project_id

body

字符串

创建资源锁的项目 ID。

lock_context

body

字符串

锁创建者的上下文。资源锁可以由具有不同角色的用户创建。如果具有 admin 角色的用户创建锁,则此字段的值为 admin。如果具有 service 角色的用户创建锁,则此字段的值为 service。对于所有其他上下文,此字段的值为 user。此字段还确定了通过服务的默认 RBAC 需要解锁或操作锁的用户角色。

resource_type

body

字符串

ID 在 resource_id 中表示的资源的类型。例如,share 是当资源锁与锁定的共享的删除相关时指定的资源类型。资源锁并非对所有资源都受支持。当前仅支持 share

resource_id

body

字符串

锁所针对的资源的 UUID。例如,这可以是锁定的共享的 ID。

resource_action

body

字符串

资源锁阻止的与资源相关的操作。例如,如果资源锁阻止删除共享,则 resource_action 的值为 delete。资源锁并非对所有 API 操作都受支持。

lock_reason

body

字符串

表示特定资源锁定的原因的文本块。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

links

body

数组

资源的分页和书签链接。

响应示例

{
  "resource_lock": {
    "id": "118750ee-b62b-4cae-9a94-7da29a4f831f",
    "user_id": "89de351d3b5744b9853ec4829aa0e714",
    "project_id": "db2e72fef7864bbbbf210f22da7f1158",
    "lock_context": "user",
    "resource_type": "share",
    "resource_id": "4c0b4d35-4ea8-4811-a1e2-a065c64225a8",
    "resource_action": "delete",
    "lock_reason": "This is a protected share",
    "created_at": "2023-07-17T22:53:18.894553",
    "updated_at": "2023-07-17T23:18:44.284565",
    "links": [
      {
        "rel": "self",
        "href": "http://203.0.113.30/share/v2/resource_locks/118750ee-b62b-4cae-9a94-7da29a4f831f"
      },
      {
        "rel": "bookmark",
        "href": "http://203.0.113.30/share/resource_locks/118750ee-b62b-4cae-9a94-7da29a4f831f"
      }
    ]
  }
}
DELETE
/v2/resource-locks/{resource-lock-id}

删除资源锁

在版本 2.81 中添加。

删除特定的资源锁

默认情况下,资源锁可以由创建锁的用户删除,除非 lock_context 设置为 adminservice。具有 service 角色的用户需要删除具有 lock_context 设置为 service 的锁。具有 admin 角色的用户可以删除任何锁。管理员可以使用 policy.yaml 来调整此行为。

此请求不提供响应体。

响应代码

成功

代码

原因

204 - 无内容

请求已满足,但服务未返回任何内容。

错误

代码

原因

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

service_token (可选)

标头

字符串

通过 X-Service-Token 标头指定的身份验证令牌。在 OpenStack Identity (Keystone) 上下文中,此令牌可以由具有 service 角色的用户获得。此标头的存在由资源锁 API 方法用于设置或匹配锁用户上下文。由服务用户创建的资源锁不能由非服务用户操作。

resource_lock_id

路径

字符串

资源锁的 UUID。

共享文件系统 API (实验性)

实验性 API

重要提示

以下 API 是版本 2.4 中引入的 实验性功能 的一部分。这些 API 可能会在共享文件系统 API 的未来版本中更改或删除。所有实验性 API 都要求在请求中发送 X-OpenStack-Manila-API-Experimental: True 标头。

共享迁移 (自 API v2.22 起)

共享迁移 API 是仅限管理员的实验性 API,允许调用者选择将共享迁移到的目标池,同时仍然允许客户端在迁移期间访问源“共享实例”。

共享迁移采用两阶段方法。迁移的第一阶段是执行最耗时的操作,例如数据复制或复制。在完成第一阶段的数据复制后,管理员需要触发第二阶段,通常称为切换阶段,该阶段可以执行最终同步和删除源共享实例等操作。

在数据复制阶段,用户可以保持连接到源,并且可能需要在切换阶段之后重新连接。为了迁移共享,manila 可能会采用两种机制之一,即驱动程序辅助迁移和主机辅助迁移。

  • 驱动程序辅助 迁移:此机制旨在利用驱动程序

    优化在相同存储供应商的池之间迁移共享。此机制允许在源保持可写的同时无中断地迁移共享,从而保留所有文件系统元数据和快照。迁移工作负载在存储后端执行。

  • 主机辅助 迁移:此机制旨在以

    无感知的的方式在两个不同的池之间迁移共享,无论存储供应商如何。此机制的实现不提供驱动程序辅助迁移中找到的相同属性。在主机辅助迁移中,源保持可读,必须在开始迁移之前删除快照,可能会丢失文件系统元数据,并且客户端将在迁移结束时断开连接。迁移工作负载由数据服务执行,数据服务是 manila 用于密集数据操作的专用服务。

这些方法提供不同的功能并影响数据复制和切换的效率。通常,驱动程序辅助迁移仅限于同构存储后端,并且在可用时,预计比主机辅助迁移更快、更高效。驱动程序辅助迁移在存储后端上发生,而主机辅助迁移在运行 manila 数据服务的 OpenStack 节点上发生。

在开始迁移时,首先尝试 驱动程序辅助 迁移。如果共享文件系统服务检测到无法执行 驱动程序辅助 迁移,则它将继续尝试 主机辅助 迁移

数据迁移的可能用例包括

  • 迁移带有快照的共享。

  • 为维护关闭物理存储设备

  • 释放稀疏配置后端中的空间。

  • 在共享服务器之间进行负载均衡。

  • 重新配置共享

注意

共享迁移 API 是 实验性 API

POST
/v2/shares/{share_id}/action

启动迁移

在版本 2.22 中添加。

启动共享迁移。此 API 将启动共享数据复制到新主机。复制操作不会中断。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id

body

字符串

拥有资源的项目的 ID。

share_id

路径

字符串

共享的 UUID。

force_host_assisted_migration (可选)

body

布尔值

强制使用主机辅助机制,从而使用数据服务在后端之间复制数据。此参数值默认为 False。设置为 True 时,它将跳过否则会首先尝试的驱动程序辅助方法。如果将此选项设置为 True,则所有驱动程序辅助选项必须设置为 False

preserve_snapshots

body

布尔值

指定是否应强制在目标处保留所有现有快照。如果设置为 True 并且驱动程序无法迁移快照,则迁移将导致错误状态。截至 Ocata 版本,主机辅助迁移无法提供此功能。

preserve_metadata

body

布尔值

指定是否应强制保留所有文件系统元数据。如果设置为 True 并且驱动程序无法确保保留文件系统元数据,则迁移将导致错误状态。截至 Ocata 版本,主机辅助迁移无法保证保留文件系统元数据。

nondisruptive

body

布尔值

指定是否应仅在不中断迁移期间客户端的情况下执行迁移。为此,预计导出位置不会更改。如果设置为 True 并且驱动程序无法允许共享在迁移的两个阶段中保持可访问,则迁移将导致错误状态。截至 Ocata 版本,主机辅助迁移无法提供此功能。

可写

body

布尔值

指定是否应仅在共享可以保持可写的情况下执行迁移。如果将此行为设置为 True 并且驱动程序无法允许共享保持可写,则迁移将导致错误状态。如果驱动程序无法执行无中断迁移,manila 将确保共享在迁移的数据复制阶段保持可写。但是,在切换阶段,共享将在目标处重新导出,导致共享在该阶段的持续时间内无法访问。截至 Ocata 版本,主机辅助迁移无法提供此功能。

new_share_type_id (可选)

body

字符串

如果希望重新配置共享,以便可以在所需的目标池中分配它,调用者可以提供要使用的新共享类型。这通常适用于要迁移到以相反驱动程序模式运行的池的共享。

new_share_network_id (可选)

body

字符串

如果希望更改共享的共享网络,以便可以在所需的目标池中分配它,调用者可以提供要使用的新共享网络。这通常适用于要迁移到由处理共享服务器的驱动程序管理的不同的可用区或池的共享。

host

body

字符串

目标池,格式为 host@backend#pool。例如,ubuntu@generic1#GENERIC1

请求示例

{
    "migration_start":
        {
            "share_id": "406ea93b-32e9-4907-a117-148b3945749f",
            "writable": true,
            "preserve_snapshots": true,
            "preserve_metadata": true,
            "nondisruptive": true,
            "host": "ubuntu@generic2#GENERIC2",
            "new_share_type_id": "foo_share_type_id",
            "new_share_network_id": "bar_share_network_id",
            "force_host_assisted_migration": false
        }
}
POST
/v2/shares/{share_id}/action

完成迁移

在版本 2.22 中添加。

完成共享迁移。此 API 将启动从源到目标的切换。此操作可能会中断。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id

body

字符串

拥有资源的项目的 ID。

share_id

路径

字符串

共享的 UUID。

请求示例

{
    "migration_complete":
        {
            "share_id": "406ea93b-32e9-4907-a117-148b3945749f"
        }
}
POST
/v2/shares/{share_id}/action

迁移获取进程

在版本 2.22 中添加。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

share_id

路径

字符串

共享的 UUID。

project_id

body

字符串

拥有资源的项目的 ID。

响应参数

名称

入参

类型

描述

details

body

对象

迁移进度的其他驱动程序特定详细信息。

版本 2.59 中新增

total_progress

body

整数

定义共享迁移的总进度。

task_state

body

字符串

对于共享迁移,迁移任务状态。有效值为 nullmigration_startingmigration_errormigration_successmigration_completingmigrating。如果共享从一个后端迁移到另一个后端,则 task_statenull

版本 2.5 中新增

请求示例

{
    "migration_get_process":
        {
            "share_id": "406ea93b-32e9-4907-a117-148b3945749f"
        }
}

Response_parameters

{
    "total_progress": 100,
    "task_state": "migration_driver_phase1_done"
}
POST
/v2/shares/{share_id}/action

取消迁移

在版本 2.22 中添加。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

share_id

路径

字符串

共享的 UUID。

project_id

body

字符串

拥有资源的项目的 ID。

请求示例

{
    "migration_cancel":
        {
            "share_id": "406ea93b-32e9-4907-a117-148b3945749f"
        }
}

共享服务器迁移 (自 API v2.57 起)

共享服务器迁移 API 是仅限管理员的实验性 API,允许调用者选择将共享服务器迁移到的目标后端。

共享服务器迁移使用两阶段方法。在迁移的第一阶段,执行数据复制或复制操作,因此是较长的阶段。在完成第一阶段的数据复制后,管理员可以触发第二阶段,该阶段包括最终同步并使新的共享服务器可用以使用,而后者变为非活动状态。

在数据复制阶段,源共享将保持可用和可写,如果管理员要求并且驱动程序支持,则源共享将保持可用和可写。在第二阶段之后,用户可能需要重新连接到受迁移影响的共享。属于共享服务器的所有共享都会被迁移,并且它们的访问规则将在迁移过程中保留。如果管理员指定并且/或驱动程序支持,共享快照将被复制。

重要提示

为了迁移共享服务器,管理员必须确保服务器上的任何共享都不是复制的或在共享组中。

注意

共享服务器迁移 API 是 实验性 API

数据迁移的可能用途包括

  • 迁移共享服务器及其所有共享和快照。

  • 为维护关闭物理存储设备。

  • 释放稀疏配置后端中的空间。

  • 在后端之间进行负载均衡。

POST
/v2/{project_id}/share_servers/{share_server_id}/action

共享服务器迁移检查兼容性

在版本 2.57 中添加。

检查共享驱动程序是否可以根据指定的目的地主机和 new_share_network_id,以及 writablenondisruptivepreserve_snapshots 标志来处理共享服务器迁移。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id

body

字符串

拥有资源的项目的 ID。

share_server_id

body

字符串

共享服务器的 UUID。

preserve_snapshots

body

布尔值

指定迁移是否强制保留目标端的现有所有快照。如果设置为 True 并且驱动程序无法迁移快照,则迁移将导致错误状态。

nondisruptive

body

布尔值

指定共享服务器迁移是否应在不中断客户端的情况下执行。为此,预计导出位置不会更改。如果设置为 True 并且驱动程序无法允许共享服务器在迁移的两个阶段保持可访问状态,则迁移将导致错误状态。

可写

body

布尔值

指定迁移是否仅在共享可以保持可写状态的情况下执行。如果将此行为设置为 True 并且驱动程序无法允许共享保持可写状态,则迁移将导致错误状态。如果驱动程序无法执行非破坏性迁移,manila 将确保共享在迁移的数据复制阶段保持可写状态。但是,在切换阶段,所有共享将在目标端重新导出,导致共享在该阶段期间不可访问。

new_share_network_id (可选)

body

字符串

如果愿意更改共享服务器的共享网络,以便可以在所需的的目标后端中分配,调用者可以提供要使用的新共享网络。

host

body

字符串

应迁移共享服务器到的目标后端,格式为 host@backend。例如 ubuntu@generic1

响应参数

名称

入参

类型

描述

compatible

body

布尔值

考虑到收到的 share_network_idhostnondisruptivewritablepreserve_snapshots 条目,目标后端是否可以处理共享服务器迁移,以及与驱动程序支持的功能相匹配。

requested_capabilities

body

对象

发送到服务器的参数,以检查目标主机是否可以处理共享服务器迁移。此对象包含以下属性:writablenondisruptivepreserve_snapshotsshare_network_idhost

supported_capabilities

body

对象

驱动程序支持的共享服务器迁移的属性。它将包含以下项目:writablenondisruptivepreserve_snapshotsshare_network_id。驱动程序还会报告它们是否可以执行 migration_cancelmigration_get_progress 操作。所有提到的参数都将包含在此对象中。除了 share_network_id 之外,所有参数都是布尔值。

请求示例

{
    "migration_check": {
        "host": "foohost2@backend2",
        "preserve_snapshots": "True",
        "writable": "True",
        "nondisruptive": "True",
        "new_share_network_id": null
    }
}

响应示例

{
    "compatible": false,
    "requested_capabilities": {
        "writable": "True",
        "nondisruptive": "True",
        "preserve_snapshots": "True",
        "share_network_id": null,
        "host": "foohost2@backend2"
    },
    "supported_capabilities": {
        "writable": true,
        "nondisruptive": false,
        "preserve_snapshots": true,
        "share_network_id": "1d04b755-649f-46a4-964c-be9f0395af13",
        "migration_cancel": true,
        "migration_get_progress": true
    }
}
POST
/v2/{project_id}/share_servers/{share_server_id}/action

启动共享服务器迁移

在版本 2.57 中添加。

触发共享服务器迁移。此 API 将启动到新主机的共享服务器迁移的第一阶段。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

project_id

body

字符串

拥有资源的项目的 ID。

share_server_id

body

字符串

共享服务器的 UUID。

preserve_snapshots

body

布尔值

指定迁移是否强制保留目标端的现有所有快照。如果设置为 True 并且驱动程序无法迁移快照,则迁移将导致错误状态。

nondisruptive

body

布尔值

指定共享服务器迁移是否应在不中断客户端的情况下执行。为此,预计导出位置不会更改。如果设置为 True 并且驱动程序无法允许共享服务器在迁移的两个阶段保持可访问状态,则迁移将导致错误状态。

可写

body

布尔值

指定迁移是否仅在共享可以保持可写状态的情况下执行。如果将此行为设置为 True 并且驱动程序无法允许共享保持可写状态,则迁移将导致错误状态。如果驱动程序无法执行非破坏性迁移,manila 将确保共享在迁移的数据复制阶段保持可写状态。但是,在切换阶段,所有共享将在目标端重新导出,导致共享在该阶段期间不可访问。

new_share_network_id (可选)

body

字符串

如果愿意更改共享服务器的共享网络,以便可以在所需的的目标后端中分配,调用者可以提供要使用的新共享网络。

host

body

字符串

应迁移共享服务器到的目标后端,格式为 host@backend。例如 ubuntu@generic1

请求示例

{
    "migration_start": {
        "host": "foohost2@backend2",
        "preserve_snapshots": "True",
        "writable": "True",
        "nondisruptive": "False",
        "new_share_network_id": null
    }
}
POST
/v2/{project_id}/share_servers/{share_server_id}/action

完成共享服务器迁移

在版本 2.57 中添加。

完成共享服务器迁移。此 API 将启动从源到目标共享服务器的切换。此操作可能会中断服务。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id

body

字符串

拥有资源的项目的 ID。

share_server_id

body

字符串

共享服务器的 UUID。

响应参数

名称

入参

类型

描述

total_progress

body

整数

定义共享服务器迁移的总进度。

task_state

body

字符串

对于共享服务器迁移,迁移任务状态。有效值为 nullmigration_in_progressmigration_cancel_in_progressmigration_cancelledmigration_driver_startingmigration_driver_in_progressmigration_phase_1_done

destination_share_server_id

body

字符串

在共享服务器迁移操作期间在目标后端创建的共享服务器的 UUID。

请求示例

{
    "migration_complete": null
}

响应示例

{
    "destination_share_server_id": "c2f71561-85e2-4ccb-a91a-e44f9ff6f7ef"
}
POST
/v2/{project_id}/share_servers/{share_server_id}/action

获取共享服务器迁移进度

在版本 2.57 中添加。

返回正在进行的共享服务器迁移的完成百分比和目标共享服务器 ID。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

请求

名称

入参

类型

描述

share_server_id

body

字符串

共享服务器的 UUID。

project_id

body

字符串

拥有资源的项目的 ID。

响应参数

名称

入参

类型

描述

total_progress

body

整数

定义共享服务器迁移的总进度。

task_state

body

字符串

对于共享服务器迁移,迁移任务状态。有效值为 nullmigration_in_progressmigration_cancel_in_progressmigration_cancelledmigration_driver_startingmigration_driver_in_progressmigration_phase_1_done

destination_share_server_id

body

字符串

在共享服务器迁移操作期间在目标后端创建的共享服务器的 UUID。

请求示例

{
    "migration_get_progress": null
}

响应示例

{
    "total_progress": 50,
    "task_state": "migration_driver_in_progress",
    "destination_share_server_id": "c2f71561-85e2-4ccb-a91a-e44f9ff6f7ef"
}
POST
/v2/{project_id}/share_servers/{share_server_id}/action

取消共享服务器迁移

在版本 2.57 中添加。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

share_server_id

body

字符串

共享服务器的 UUID。

project_id

body

字符串

拥有资源的项目的 ID。

请求示例

{
    "migration_cancel":null
}

共享备份(自 API v2.80 起)

使用共享文件系统服务备份共享。共享备份是包含在共享中的数据的某个时间点的只读副本。以下 API 允许控制共享备份。它们在共享文件系统服务中表示为“备份”资源,并且可以具有用户定义的元数据,例如名称和描述。

您可以创建、还原、更新、列出和删除共享备份。创建共享备份后,您可以访问备份并使用它。只要满足某些条件(例如大小),您也可以将备份还原到共享中。

您可以更新共享备份以更改其名称或描述。作为管理员,您还可以重置备份的状态。备份可以是以下状态之一

  • available

  • error

  • creating

  • deleting

  • 恢复中

在备份或还原操作期间,共享可以是以下状态之一

  • available

  • backup_creating

  • backup_restoring

  • backup_restoring_error

GET
/v2/share-backups

列出共享备份

自版本 2.80 起添加。

列出所有共享备份。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

请求

名称

入参

类型

描述

share_id (可选)

查询

字符串

备份所针对的共享的 UUID。

name~ (可选)

查询

字符串

可用于筛选共享备份的名称模式。

description~ (可选)

查询

字符串

可用于筛选共享备份的描述模式。

limit (可选)

查询

整数

要返回的最大资源记录数。

offset (可选)

查询

整数

用于定义资源列表起点的偏移量。

sort_key (可选)

查询

字符串

用于对共享备份列表进行排序的键。有效值为 idstatussizehostshare_id availability_zonecreated_atupdated_atdisplay_nametopicprogressrestore_progress

sort_dir (可选)

查询

字符串

用于对资源列表进行排序的方向。有效值为 ascdesc

status (可选)

查询

字符串

按备份状态进行筛选。有效的筛选值可以是“creating”、“error”、“available”、“restoring”。

host (可选)

查询

字符串

要查询的备份的主机名。通过主机名查询是一项特权操作。如果受 API 策略限制,服务器可能会静默忽略此查询参数。

topic(可选)

查询

字符串

按备份主题进行筛选。有效的筛选值可以是“manila-data”、“manila-share”。

响应参数

名称

入参

类型

描述

id

body

字符串

共享备份的 UUID。

share_id

body

字符串

备份所针对的共享的 UUID。

status

body

字符串

备份的状态,可以是 creatingerroravailablerestoring 中的一种。

响应示例

{
    "share_backups": [
        {
            "id": "1125c47a-0216-4ee0-a517-0460d63301a6",
            "name": "backup3",
            "share_id": "112dffd-f033-4248-a315-319ca2bd70c8",
            "status": "available"
        },
        {
            "id": "c1cdc0ce-4ddc-4018-9796-505d2e26fcc7",
            "name": "backup1",
            "share_id": "7b11dd53-546e-43cd-af0e-875434238c30",
            "status": "creating"
        }
    ]
}
GET
/v2/share-backups/detail

列出带有详细信息的共享备份

自版本 2.80 起添加。

列出带有详细信息的共享备份。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

请求

名称

入参

类型

描述

share_id (可选)

查询

字符串

备份所针对的共享的 UUID。

name~ (可选)

查询

字符串

可用于筛选共享备份的名称模式。

description~ (可选)

查询

字符串

可用于筛选共享备份的描述模式。

limit (可选)

查询

整数

要返回的最大资源记录数。

offset (可选)

查询

整数

用于定义资源列表起点的偏移量。

sort_key (可选)

查询

字符串

用于对共享备份列表进行排序的键。有效值为 idstatussizehostshare_id availability_zonecreated_atupdated_atdisplay_nametopicprogressrestore_progress

sort_dir (可选)

查询

字符串

用于对资源列表进行排序的方向。有效值为 ascdesc

status (可选)

查询

字符串

按备份状态进行筛选。有效的筛选值可以是“creating”、“error”、“available”、“restoring”。

host (可选)

查询

字符串

要查询的备份的主机名。通过主机名查询是一项特权操作。如果受 API 策略限制,服务器可能会静默忽略此查询参数。

topic(可选)

查询

字符串

按备份主题进行筛选。有效的筛选值可以是“manila-data”、“manila-share”。

响应参数

名称

入参

类型

描述

id

body

字符串

共享备份的 UUID。

share_id

body

字符串

备份所针对的共享的 UUID。

status

body

字符串

备份的状态,可以是 creatingerroravailablerestoring 中的一种。

size

body

整数

备份大小,以 GiB 为单位。

availability_zone

body

字符串

可用区。

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

progress

body

字符串

备份创建的进度百分比。

restore_progress

body

字符串

备份还原的进度百分比。

响应示例

{
    "share_backups": [
        {
            "id": "1125c47a-0216-4ee0-a517-0460d63301a6",
            "share_id": "112dffd-f033-4248-a315-319ca2bd70c8",
            "status": "available",
            "name": "backup3",
            "description": null,
            "size": 1,
            "created_at": "2023-08-16T12:34:57.000000",
            "updated_at": "2023-08-17T12:14:15.000000",
            "availability_zone": null,
            "progress": "100",
            "restore_progress": "0"
        },
        {
            "id": "c1cdc0ce-4ddc-4018-9796-505d2e26fcc7",
            "share_id": "7b11dd53-546e-43cd-af0e-875434238c30",
            "status": "creating",
            "name": "backup1",
            "description": null,
            "size": 1,
            "created_at": "2023-08-16T13:03:59.020692",
            "updated_at": "2023-08-16T13:13:15.000002",
            "availability_zone": null,
            "progress": "0",
            "restore_progress": "0"
        }
    ]
}
GET
/v2/share-backups/{backup_id}

显示共享备份详细信息

自版本 2.80 起添加。

显示共享备份的详细信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

backup_id

路径

字符串

共享备份的 UUID。

响应参数

名称

入参

类型

描述

id

body

字符串

共享备份的 UUID。

share_id

body

字符串

备份所针对的共享的 UUID。

status

body

字符串

备份的状态,可以是 creatingerroravailablerestoring 中的一种。

size

body

整数

备份大小,以 GiB 为单位。

availability_zone

body

字符串

可用区。

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

progress

body

字符串

备份创建的进度百分比。

restore_progress

body

字符串

备份还原的进度百分比。

响应示例

{
    "share_backup": {
        "id": "c1cdc0ce-4ddc-4018-9796-505d2e26fcc7",
        "share_id": "7b11dd53-546e-43cd-af0e-875434238c30",
        "status": "available",
        "name": "backup1",
        "description": null,
        "size": 1,
        "created_at": "2023-08-16T13:03:59.000000",
        "updated_at": "2023-08-16T13:04:15.000000",
        "availability_zone": null,
        "progress": "100",
        "restore_progress": "0"
    }
}
POST
/v2/share-backups

创建共享备份

自版本 2.80 起添加。

从共享创建备份。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此资源有一个正在进行的操作,与此请求冲突。

422 - 无法处理的实体

请求的实体格式无法被请求的资源以该方法处理。

请求

名称

入参

类型

描述

share_id

body

字符串

备份所针对的共享的 UUID。

name (可选)

body

字符串

用户定义的资源名称。该字段的值限制为 255 个字符。

description(可选)

body

字符串

用户定义的资源描述。该字段的值限制为 255 个字符。

backup_options(可选)

body

对象

一个或多个备份选项键值对,作为字符串的 URL 编码字典。

请求示例

{
    "share_backup": {
        "share_id": "7b11dd53-546e-43cd-af0e-875434238c30",
        "backup_options": {},
        "description": null,
        "name": "backup1"
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

共享备份的 UUID。

share_id

body

字符串

备份所针对的共享的 UUID。

status

body

字符串

备份的状态,可以是 creatingerroravailablerestoring 中的一种。

size

body

整数

备份大小,以 GiB 为单位。

availability_zone

body

字符串

可用区。

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

progress

body

字符串

备份创建的进度百分比。

restore_progress

body

字符串

备份还原的进度百分比。

响应示例

{
    "share_backup": {
        "id": "c1cdc0ce-4ddc-4018-9796-505d2e26fcc7",
        "share_id": "7b11dd53-546e-43cd-af0e-875434238c30",
        "status": "creating",
        "name": "backup1",
        "description": null,
        "size": 1,
        "created_at": "2023-08-16T13:03:59.020692",
        "updated_at": "2023-08-16T13:03:59.020692",
        "availability_zone": null,
        "progress": "0",
        "restore_progress": "0"
    }
}
PUT
/v2/share-backups/{backup_id}

更新共享备份

自版本 2.80 起添加。

更新共享备份。

您可以更新这些属性

  • display_name,它更改共享备份的 name

  • display_description,它更改共享备份的 description

如果您尝试更新其他属性,它们将保留其先前的值。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

backup_id

路径

字符串

共享备份的 UUID。

display_name(可选)

body

字符串

用户定义的资源名称。该字段设置 name 参数。

display_description(可选)

body

字符串

用户定义的资源描述。该字段设置 description 参数。

请求示例

{
    "share_backup": {
        "display_name": "backup2",
        "display_description": "I am changing a description also. Here is a backup"
    }
}

响应参数

名称

入参

类型

描述

id

body

字符串

共享备份的 UUID。

share_id

body

字符串

备份所针对的共享的 UUID。

status

body

字符串

备份的状态,可以是 creatingerroravailablerestoring 中的一种。

size

body

整数

备份大小,以 GiB 为单位。

availability_zone

body

字符串

可用区。

name

body

字符串

资源的由用户定义的名称。

description

body

字符串

资源的由用户定义的描述。

created_at

body

字符串

资源在服务数据库中创建的日期和时间戳。

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2019-03-27T09:49:58-05:00

updated_at

body

字符串

资源上次在服务数据库中更新的日期和时间戳。如果资源在创建后从未更新,则此参数的值设置为 null

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

如果包含 ±hh:mm 值,则返回 UTC 的时区偏移量。

例如,2016-12-31T13:14:15-05:00

progress

body

字符串

备份创建的进度百分比。

restore_progress

body

字符串

备份还原的进度百分比。

响应示例

{
    "share_backup": {
        "id": "fa32a89f-ed0f-4906-b1d7-92eedf98fbb5",
        "share_id": "7b11dd53-546e-43cd-af0e-875434238c30",
        "status": "available",
        "name": "backup2",
        "description": "I am changing a description also. Here is a backup",
        "size": 1,
        "created_at": "2023-08-16T13:18:55.000000",
        "updated_at": "2023-08-16T13:33:15.000000",
        "availability_zone": null,
        "progress": "100",
        "restore_progress": "0"
    }
}
DELETE
/v2/share-backups/{backup_id}

删除共享备份

自版本 2.80 起添加。

删除共享备份。

先决条件

  • 共享备份状态必须为 availableerror

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

backup_id

路径

字符串

共享备份的 UUID。

POST
/v2/share-backups/{backup_id}/action

还原共享备份

自版本 2.80 起添加。

将备份还原到原始共享。

先决条件

  • 共享备份状态必须为 available

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

backup_id

路径

字符串

共享备份的 UUID。

请求示例

{
    "restore": null
}

响应参数

名称

入参

类型

描述

backup_id

body

字符串

共享备份的 UUID。

share_id

body

字符串

备份所针对的共享的 UUID。

响应示例

{
    "restore": {
        "backup_id": "c1cdc0ce-4ddc-4018-9796-505d2e26fcc7",
        "share_id": "7b11dd53-546e-43cd-af0e-875434238c30"
    }
}
POST
/v2/share-backups/{backup_id}/action

重置共享备份状态

自版本 2.80 起添加。

仅限管理员。显式更新共享备份的状态。

使用 policy.yaml 文件将此操作的权限授予其他角色。

响应代码

成功

代码

原因

202 - Accepted

请求已接受,但处理可能需要一些时间。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

project_id (可选)

路径

字符串

发出 API 请求的用户或服务的项目 ID。如果服务支持 API 版本 2.60,则此参数是可选的。如果服务尚未支持 API 版本 2.60,请确保为服务获取的服务目录端点在“/v2/”组件之后具有用户的 project_id,例如,检索共享的 API 是 GET /v2/{project_id}/shares。如果服务尚未支持 API 版本 2.60,并且 API URL 中省略了 project_id,则会返回格式错误的请求错误 (HTTP 400)。

backup_id

路径

字符串

共享备份的 UUID。

status (可选)

body

字符串

备份状态,可以是 available(可用)、error(错误)、creating(创建中)、deleting(删除中)、restoring(恢复中)。

请求示例

{
    "reset_status": {
        "status": "error"
    }
}