Tag sumber daya

Tag sumber daya

Berbagai sumber daya jaringan virtual mendukungan tag untuk digunakan oleh sistem eksternal atau klien lainnya dari Networking service API.

Sumber daya saat ini didukung adalah:

  • network (jaringan)
  • subnet
  • subnetpool
  • port
  • router

Use case (kasus penggunaan)

Kasus penggunaan (use case) berikut mengacu pada penambahan tag ke jaringan, tetapi hal yang sama dapat berlaku untuk setiap sumber daya layanan Networking yang didukung lainnya:

  1. Kemampuan untuk memetakan jaringan yang berbeda di lokasi OpenStack yang berbeda ke satu jaringan logis yang sama (untuk OpenStack multi-situs).
  2. Kemampuan untuk memetakan ID dari sistem management/orchestration yang berbeda untuk jaringan OpenStack di lingkungan campuran. Misalnya, dalam proyek Kuryr, ID jaringan Docker dipetakan ke ID jaringan Neutron.
  3. Kemampuan untuk memanfaatkan tag oleh alat pengerahan.
  4. Kemampuan untuk menandai informasi tentang jaringan provider (misalnya, high-bandwidth, low-latency, dan sebagainya).

Penyaringan dengan tag

API mengizinkan searching/filtering dari GET /v2.0/networks API. Parameter permintaan berikut ini didukung:

  • tags
  • tags-any
  • not-tags
  • not-tags-any

Untuk meminta daftar jaringan yang memiliki tag tunggal, argumen tags harus ditetapkan dengan nama tag yang diinginkan. Contoh:

GET /v2.0/networks?tags=red

Untuk meminta daftar jaringan yang memiliki dua atau lebih tag, argumen tags harus ditetapkan ke daftar tag, dipisahkan dengan koma. Dalam hal ini, tag yang diberikan harus semua hadir untuk jaringan untuk dimasukkan dalam hasil query. Contoh argumen mengembalikan jaringan yang memiliki tag “red” and “blue”:

GET /v2.0/networks?tags=red,blue

Untuk meminta daftar jaringan yang memiliki satu atau lebih dari daftar tag yang diberikan, argumen tag-any harus ditetapkan ke daftar tag, dipisahkan dengan koma. Dalam hal ini, selama salah satu tag yang diberikan hadir, jaringan akan dimasukkan dalam hasil query. Contoh argumen mengembalikan jaringan yang memiliki tag “red” atau “blue”

GET /v2.0/networks?tags-any=red,blue

Untuk meminta daftar jaringan yang tidak memiliki satu atau lebih tag, argumen not-tags harus ditetapkan ke daftar tag, dipisahkan dengan koma. Dalam hal ini, hanya jaringan yang tidak memiliki tag yang diberikan akan dimasukkan dalam hasil query. Contoh argumen mengembalikan jaringan yang tidak memiliki tag “merah” ataupun “biru”

GET /v2.0/networks?not-tags=red,blue

Untuk meminta daftar jaringan yang tidak memiliki setidaknya satu dari daftar tag, argumen not-tags-any harus ditetapkan ke daftar tag, dipisahkan dengan koma. Dalam hal ini, hanya jaringan yang tidak memiliki setidaknya salah satu tag yang diberikan akan dimasukkan dalam hasil query. argumen yang mengembalikan jaringan yang tidak memiliki tag “merah”, atau tidak memiliki tag “biru”

GET /v2.0/networks?not-tags-any=red,blue

Argumen tags, tags-any, not-tags, dan not-tags-any dapat dikombinasikan untuk membangun query yang lebih kompleks. Contoh:

GET /v2.0/networks?tags=red,blue&tags-any=green,orange

Contoh di atas mengembalikan setiap jaringan yang memiliki tag “red” dan “blue”, ditambah setidaknya satu dari “green” dan “orange”.

Query yang kompleks mungkin memiliki parameter bertentangan. Contoh:

GET /v2.0/networks?tags=blue&not-tags=blue

Dalam hal ini, kita harus membiarkan layanan Networking menemukan jaringan ini. Jelas, tidak ada jaringan tersebut dan layanan akan kembali daftar kosong.

Alur kerja pengguna

Tambahkan tag ke sumber daya:

$ neutron tag-add --resource-type network --resource ab442634-1cc9-49e5-bd49-0dac9c811f69 --tag red
$ neutron net-show net
+-------------------------+--------------------------------------+
| Field                   | Value                                |
+-------------------------+--------------------------------------+
| admin_state_up          | True                                 |
| availability_zone_hints |                                      |
| availability_zones      |                                      |
| id                      | ab442634-1cc9-49e5-bd49-0dac9c811f69 |
| ipv4_address_scope      |                                      |
| ipv6_address_scope      |                                      |
| mtu                     | 1450                                 |
| name                    | net                                  |
| port_security_enabled   | True                                 |
| router:external         | False                                |
| shared                  | False                                |
| status                  | ACTIVE                               |
| subnets                 |                                      |
| tags                    | red                                  |
| tenant_id               | e6710680bfd14555891f265644e1dd5c     |
+-------------------------+--------------------------------------+

Hapus tag dari sumber daya:

$ neutron tag-remove --resource-type network --resource ab442634-1cc9-49e5-bd49-0dac9c811f69 --tag red
$ neutron net-show net
+-------------------------+--------------------------------------+
| Field                   | Value                                |
+-------------------------+--------------------------------------+
| admin_state_up          | True                                 |
| availability_zone_hints |                                      |
| availability_zones      |                                      |
| id                      | ab442634-1cc9-49e5-bd49-0dac9c811f69 |
| ipv4_address_scope      |                                      |
| ipv6_address_scope      |                                      |
| mtu                     | 1450                                 |
| name                    | net                                  |
| port_security_enabled   | True                                 |
| router:external         | False                                |
| shared                  | False                                |
| status                  | ACTIVE                               |
| subnets                 |                                      |
| tags                    |                                      |
| tenant_id               | e6710680bfd14555891f265644e1dd5c     |
+-------------------------+--------------------------------------+

Ganti semua tag pada sumber daya:

$ neutron tag-replace --resource-type network --resource ab442634-1cc9-49e5-bd49-0dac9c811f69 --tag red --tag blue
$ neutron net-show net
+-------------------------+--------------------------------------+
| Field                   | Value                                |
+-------------------------+--------------------------------------+
| admin_state_up          | True                                 |
| availability_zone_hints |                                      |
| availability_zones      |                                      |
| id                      | ab442634-1cc9-49e5-bd49-0dac9c811f69 |
| ipv4_address_scope      |                                      |
| ipv6_address_scope      |                                      |
| mtu                     | 1450                                 |
| name                    | net                                  |
| port_security_enabled   | True                                 |
| router:external         | False                                |
| shared                  | False                                |
| status                  | ACTIVE                               |
| subnets                 |                                      |
| tags                    | red                                  |
|                         | blue                                 |
| tenant_id               | e6710680bfd14555891f265644e1dd5c     |
+-------------------------+--------------------------------------+

Hapus tag dari sumber daya:

$ neutron tag-remove --resource-type network --resource ab442634-1cc9-49e5-bd49-0dac9c811f69 --all
$ neutron net-show net
+-------------------------+--------------------------------------+
| Field                   | Value                                |
+-------------------------+--------------------------------------+
| admin_state_up          | True                                 |
| availability_zone_hints |                                      |
| availability_zones      |                                      |
| id                      | ab442634-1cc9-49e5-bd49-0dac9c811f69 |
| ipv4_address_scope      |                                      |
| ipv6_address_scope      |                                      |
| mtu                     | 1450                                 |
| name                    | net                                  |
| port_security_enabled   | True                                 |
| router:external         | False                                |
| shared                  | False                                |
| status                  | ACTIVE                               |
| subnets                 |                                      |
| tags                    |                                      |
| tenant_id               | e6710680bfd14555891f265644e1dd5c     |
+-------------------------+--------------------------------------+

Dapatkan daftar sumber daya dengan filter tag dari jaringan. Jaringan menjadi are: test-net1 dengan tag “red”, test-net2 dengan tag “red” and “blue”, test-net3 dengan tag “red”, “blue”, dan “green”, dan test-net4 dengan tag “green”.

Dapatkan daftar sumber daya dengan penyaring tags:

$ neutron net-list --tags red,blue
+--------------------------------------+-----------+---------+
| id                                   | name      | subnets |
+--------------------------------------+-----------+---------+
| 8ca3b9ed-f578-45fa-8c44-c53f13aec05a | test-net3 |         |
| e736e63d-42e4-4f4c-836c-6ad286ffd68a | test-net2 |         |
+--------------------------------------+-----------+---------+

Dapatkan daftar sumber daya dengan penyaring tag-any:

$ neutron net-list --tags-any red,blue
+--------------------------------------+-----------+---------+
| id                                   | name      | subnets |
+--------------------------------------+-----------+---------+
| 30491224-3855-431f-a688-fb29df004d82 | test-net1 |         |
| 8ca3b9ed-f578-45fa-8c44-c53f13aec05a | test-net3 |         |
| e736e63d-42e4-4f4c-836c-6ad286ffd68a | test-net2 |         |
+--------------------------------------+-----------+---------+

Dapatkan daftar sumber daya dengan penyaring not-tags`:

$ neutron net-list --not-tags red,blue
+--------------------------------------+-----------+---------+
| id                                   | name      | subnets |
+--------------------------------------+-----------+---------+
| 30491224-3855-431f-a688-fb29df004d82 | test-net1 |         |
| cdb3ed08-ca63-4090-ba12-30b366372993 | test-net4 |         |
+--------------------------------------+-----------+---------+

Dapatkan daftar sumber daya dengan penyaring not-tags-any:

$ neutron net-list --not-tags-any red,blue
+--------------------------------------+-----------+---------+
| id                                   | name      | subnets |
+--------------------------------------+-----------+---------+
| cdb3ed08-ca63-4090-ba12-30b366372993 | test-net4 |         |
+--------------------------------------+-----------+---------+

Limitations (keterbatasan)

Penyaringan sumber dengan tag yang namanya mengandung koma tidak didukung. Dengan demikian, tidak menempatkan seperti nama tag ke sumber daya.

Dukungan di masa depan

Dalam rilis mendatang, layanan Networking dapat mendukung pengaturan tag untuk sumber daya tambahan.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.