Resource tags

Resource tags

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

Use case

Use case berikut mengacu pada menambahkan tag ke jaringan, tetapi ada kesamaan dapat berlaku untuk semua sumber daya layanan Networking lainnya:

  1. Kemampuan untuk memetakan jaringan yang berbeda di lokasi OpenStack yang berbeda untuk satu jaringan yang sama secara logis (untuk multi-site OpenStack ).

  2. Kemampuan untuk memetakan ID dari sistem management/orchestration yang berbeda untuk jaringan OpenStack di lingkungan campuran. Misalnya, dalam proyek Kuryr, Docker network ID dipetakan ke Neutron network ID.

  3. Kemampuan untuk memanfaatkan tag oleh alat deployment.

  4. Kemampuan untuk menandai informasi tentang jaringan provider (misalnya, high-bandwidth, low-latency, dan sebagainya).

Filtering dengan tags

API memungkinkan searching/filtering 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 dalam jaringan untuk dimasukkan dalam hasil query. Contoh hal mengembalikan jaringan yang memiliki tags “merah” dan “biru”:

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 hal mengembalikan jaringan yang memiliki tag “merah” atau “biru”

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 hal mengembalikan jaringan yang tidak memiliki baik 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-tag-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. Contoh hal mengembalikan jaringan yang tidak memiliki tag “merah”, atau tidak memiliki tag “biru”

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

Argumen tags, tag-any, not-tags, dan not-tag-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 “merah” dan “biru”, ditambah setidaknya satu dari “hijau” dan “oranye”.

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 user

Menambahkan 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     |
+-------------------------+--------------------------------------+

Menghapus 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     |
+-------------------------+--------------------------------------+

Bersihkan 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 adalah: uji-Net1 dengan tag “merah”, uji-NET2 dengan “merah” dan tag “biru”, uji-net3 dengan “merah”, “biru”, dan “hijau” tag, dan uji-net4 dengan ” hijau “tag.

Dapatkan daftar sumber daya dengan filter 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 filter 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 filter no-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 filter no-tag-any:

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

Limitations

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

Dukungan di masa depan

Di masa mendatang, layanan Networking akan mendukung pengaturan tag ke sumber daya lain selain jaringan.

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.