Neutron资源添加TAG

标签(Tag)服务插件允许用户在其资源上设置标签。标签资源可由外部系统或Neutron REST API的任何客户使用(而不是后端驱动程序)。

以下用例描述添加标签到网络资源,但也适用于任何其它Neutron资源:

  1. 映射不同网络到同一个逻辑网络的不同OpenStack位置的能力(用于多站点OpenStack)

  2. 混合环境下,映射不同的管理/编排系统ID到OpenStack网络的能力,以项目Kuryr为例,将Docker网络ID映射到Neutron网络ID

  3. 部署工具可使用标签

  4. 允许运营者对有关provider网络的信息加标签(例如,高带宽、低延迟等)

  5. 新功能,如get-me-a-network或类似的端口调度程序可以根据标签为端口选择网络

哪些资源

标签系统使用standardattr机制,因此它的目标是具有此机制的资源。某些具有标准属性的资源不适合标签支持的用法(如security_group_rule)。如果新的标签支持资源被添加,资源模型应继承HasStandardAttributes,然后必须实现属性“api_parent”和“tag_support”。还有添加资源时必须为API用户包含发布声明。

当前由标签扩展增添的API资源如下:

  • floatingips
  • networks
  • policies
  • ports
  • routers
  • security_groups
  • subnetpools
  • subnets
  • trunks

模型

Tag标签不是标准的资源。Tag总是关联与已有的资源。以下显示Tag模型:

+------------------+        +------------------+
|     Network      |        |       Tag        |
+------------------+        +------------------+
| standard_attr_id +------> | standard_attr_id |
|                  |        | tag              |
|                  |        |                  |
+------------------+        +------------------+

Tag仅有两列,并且tag列为字符串类型。这些tag为每个资源而定义。在单个资源内tag是唯一的,但是它可以重叠.

API

以下显示tag的基础API。Tag被认为是资源的子资源,所有API总是包含关联与此tag的资源的ID.

在网络上增加一个tag:

PUT /v2.0/networks/{network_id}/tags/{tag}

返回201 Created. 如果tag已经存在,不触发错误,仅返回201 Created,因为在OpenStack Development Mailing List 中的讨论结果是: PUT应安全的处理已有tag的更新问题。

替换网络中的一组tag:

PUT /v2.0/networks/{network_id}/tags

带有请求负荷:

{
    'tags': ['foo', 'bar', 'baz']
}

响应:

{
    'tags': ['foo', 'bar', 'baz']
}

检查tag是否存在,或不在网络上:

GET /v2.0/networks/{network_id}/tags/{tag}

移除网络上的一个tag:

DELETE /v2.0/networks/{network_id}/tags/{tag}

移除网络上的所有tag:

DELETE /v2.0/networks/{network_id}/tags

对于collection的PUTDELETE`extending the API framework的动力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值