Tags support for lb resources

Add tags support for all lb related resources. It includes:
load balancer, listener, member, pool, L7rule, L7policy
and health-monitor

Change-Id: Ib33a002b3b59820db29897454e9d4303c73310b2
Story: 2003890
Task: 26757
changes/06/606006/11
wangxiyuan 5 years ago committed by Nir Magnezi
parent ac6342ef2a
commit d62189366c

@ -1082,6 +1082,18 @@ subnet_id-optional:
in: body
required: false
type: uuid
tags:
description: |
A list of simple strings assigned to the resource.
in: body
required: true
type: list
tags-optional:
description: |
A list of simple strings assigned to the resource.
in: body
required: false
type: list
timeout_client_data:
description: |
Frontend client inactivity timeout in milliseconds. Default: 50000.

@ -1 +1 @@
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"healthmonitor":{"name":"super-pool-health-monitor","admin_state_up":true,"pool_id":"4029d267-3983-4224-a3d0-afb3fe16a2cd","delay":"10","expected_codes":"200","max_retries":"1","http_method":"GET","timeout":"5","url_path":"/","type":"HTTP","max_retries_down":3}}' http://198.51.100.10:9876/v2/lbaas/healthmonitors
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"healthmonitor":{"name":"super-pool-health-monitor","admin_state_up":true,"pool_id":"4029d267-3983-4224-a3d0-afb3fe16a2cd","delay":"10","expected_codes":"200","max_retries":"1","http_method":"GET","timeout":"5","url_path":"/","type":"HTTP","max_retries_down":3,"tags":["test_tag"]}}' http://198.51.100.10:9876/v2/lbaas/healthmonitors

@ -10,6 +10,7 @@
"timeout": "5",
"url_path": "/",
"type": "HTTP",
"max_retries_down": 3
"max_retries_down": 3,
"tags": ["test_tag"]
}
}

@ -20,6 +20,7 @@
"url_path": "/",
"type": "HTTP",
"id": "8ed3c5ac-6efa-420c-bedb-99ba14e58db5",
"operating_status": "ONLINE"
"operating_status": "ONLINE",
"tags": ["test_tag"]
}
}

@ -20,6 +20,7 @@
"url_path": "/",
"type": "HTTP",
"id": "8ed3c5ac-6efa-420c-bedb-99ba14e58db5",
"operating_status": "ONLINE"
"operating_status": "ONLINE",
"tags": ["test_tag"]
}
}

@ -1 +1 @@
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"healthmonitor":{"name":"super-pool-health-monitor-updated","admin_state_up":true,"delay":5,"expected_codes":"200","http_method":"HEAD","timeout":2,"url_path":"/index.html","max_retries":2,"max_retries_down":2}}' http://198.51.100.10:9876/v2/lbaas/healthmonitors/8ed3c5ac-6efa-420c-bedb-99ba14e58db5
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"healthmonitor":{"name":"super-pool-health-monitor-updated","admin_state_up":true,"delay":5,"expected_codes":"200","http_method":"HEAD","timeout":2,"url_path":"/index.html","max_retries":2,"max_retries_down":2,"tags":["updated_tag"]}}' http://198.51.100.10:9876/v2/lbaas/healthmonitors/8ed3c5ac-6efa-420c-bedb-99ba14e58db5

@ -8,6 +8,7 @@
"timeout": 2,
"url_path": "/index.html",
"max_retries": 2,
"max_retries_down": 2
"max_retries_down": 2,
"tags": ["updated_tag"]
}
}

@ -20,6 +20,7 @@
"url_path": "/index.html",
"type": "HTTP",
"id": "8ed3c5ac-6efa-420c-bedb-99ba14e58db5",
"operating_status": "ONLINE"
"operating_status": "ONLINE",
"tags": ["updated_tag"]
}
}

@ -21,7 +21,8 @@
"url_path": "/",
"type": "HTTP",
"id": "8ed3c5ac-6efa-420c-bedb-99ba14e58db5",
"operating_status": "ONLINE"
"operating_status": "ONLINE",
"tags": ["test_tag"]
}
]
}

@ -20,7 +20,8 @@
"project_id": "e3cd678b11784734bc366148aa37580e",
"id": "8a1412f0-4c32-4257-8b07-af4770b604fd",
"operating_status": "ONLINE",
"name": "redirect-example.com"
"name": "redirect-example.com",
"tags": ["test_tag"]
}
]
}

@ -1 +1 @@
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"l7policy":{"description":"Redirect requests to example.com","admin_state_up":true,"listener_id":"023f2e34-7806-443b-bfae-16c324569a3d","redirect_url":"http://www.example.com","name":"redirect-example.com","action":"REDIRECT_TO_URL","position":1}}' http://198.51.100.10:9876/v2/lbaas/l7policies
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"l7policy":{"description":"Redirect requests to example.com","admin_state_up":true,"listener_id":"023f2e34-7806-443b-bfae-16c324569a3d","redirect_url":"http://www.example.com","name":"redirect-example.com","action":"REDIRECT_TO_URL","position":1,"tags":["test_tag"]}}' http://198.51.100.10:9876/v2/lbaas/l7policies

@ -6,6 +6,7 @@
"redirect_url": "http://www.example.com",
"name": "redirect-example.com",
"action": "REDIRECT_TO_URL",
"position": 1
"position": 1,
"tags": ["test_tag"]
}
}

@ -20,7 +20,8 @@
"project_id": "e3cd678b11784734bc366148aa37580e",
"id": "8a1412f0-4c32-4257-8b07-af4770b604fd",
"operating_status": "OFFLINE",
"name": "redirect-example.com"
"name": "redirect-example.com",
"tags": ["test_tag"]
}
]
}

@ -20,6 +20,7 @@
"project_id": "e3cd678b11784734bc366148aa37580e",
"id": "8a1412f0-4c32-4257-8b07-af4770b604fd",
"operating_status": "ONLINE",
"name": "redirect-example.com"
"name": "redirect-example.com",
"tags": ["test_tag"]
}
}

@ -1 +1 @@
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"l7policy":{"description":"Redirect requests to images.example.com","admin_state_up":true,"redirect_url":"http://images.example.com","name":"redirect-images.example.com","action":"REDIRECT_TO_URL","position":1}}' http://198.51.100.10:9876/v2/lbaas/l7policies/8a1412f0-4c32-4257-8b07-af4770b604fd
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"l7policy":{"description":"Redirect requests to images.example.com","admin_state_up":true,"redirect_url":"http://images.example.com","name":"redirect-images.example.com","action":"REDIRECT_TO_URL","position":1,"tags":["updated_tag"]}}' http://198.51.100.10:9876/v2/lbaas/l7policies/8a1412f0-4c32-4257-8b07-af4770b604fd

@ -5,6 +5,7 @@
"redirect_url": "http://images.example.com",
"name": "redirect-images.example.com",
"action": "REDIRECT_TO_URL",
"position": 1
"position": 1,
"tags": ["updated_tag"]
}
}

@ -20,6 +20,7 @@
"project_id": "e3cd678b11784734bc366148aa37580e",
"id": "8a1412f0-4c32-4257-8b07-af4770b604fd",
"operating_status": "ONLINE",
"name": "redirect-example.com"
"name": "redirect-example.com",
"tags": ["updated_tag"]
}
}

@ -1 +1 @@
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"rule":{"compare_type":"REGEX","invert":false,"type":"PATH","value":"/images*","admin_state_up":true}}' http://198.51.100.10:9876/v2/lbaas/l7policies/8a1412f0-4c32-4257-8b07-af4770b604fd/rules
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"rule":{"compare_type":"REGEX","invert":false,"type":"PATH","value":"/images*","admin_state_up":true,"tags":["test_tag"]}}' http://198.51.100.10:9876/v2/lbaas/l7policies/8a1412f0-4c32-4257-8b07-af4770b604fd/rules

@ -4,6 +4,7 @@
"invert": false,
"type": "PATH",
"value": "/images*",
"admin_state_up": true
"admin_state_up": true,
"tags": ["test_tag"]
}
}

@ -12,6 +12,7 @@
"project_id": "e3cd678b11784734bc366148aa37580e",
"type": "PATH",
"id": "16621dbb-a736-4888-a57a-3ecd53df784c",
"operating_status": "OFFLINE"
"operating_status": "OFFLINE",
"tags": ["test_tag"]
}
}

@ -12,6 +12,7 @@
"project_id": "e3cd678b11784734bc366148aa37580e",
"type": "PATH",
"id": "16621dbb-a736-4888-a57a-3ecd53df784c",
"operating_status": "ONLINE"
"operating_status": "ONLINE",
"tags": ["test_tag"]
}
}

@ -1 +1 @@
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"rule":{"compare_type":"REGEX","invert":true,"type":"PATH","value":"/images/special*","admin_state_up":true}}' http://198.51.100.10:9876/v2/lbaas/l7policies/8a1412f0-4c32-4257-8b07-af4770b604fd/rules/16621dbb-a736-4888-a57a-3ecd53df784c
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"rule":{"compare_type":"REGEX","invert":true,"type":"PATH","value":"/images/special*","admin_state_up":true,"tags":["updated_tag"]}}' http://198.51.100.10:9876/v2/lbaas/l7policies/8a1412f0-4c32-4257-8b07-af4770b604fd/rules/16621dbb-a736-4888-a57a-3ecd53df784c

@ -4,6 +4,7 @@
"invert": true,
"type": "PATH",
"value": "/images/special*",
"admin_state_up": true
"admin_state_up": true,
"tags": ["updated_tag"]
}
}

@ -12,6 +12,7 @@
"project_id": "e3cd678b11784734bc366148aa37580e",
"type": "PATH",
"id": "16621dbb-a736-4888-a57a-3ecd53df784c",
"operating_status": "ONLINE"
"operating_status": "ONLINE",
"tags": ["updated_tag"]
}
}

@ -12,7 +12,8 @@
"project_id": "e3cd678b11784734bc366148aa37580e",
"type": "PATH",
"id": "16621dbb-a736-4888-a57a-3ecd53df784c",
"operating_status": "ONLINE"
"operating_status": "ONLINE",
"tags": ["test_tag"]
}
]
}

@ -1 +1 @@
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"listener": {"protocol": "TERMINATED_HTTPS", "description": "A great TLS listener", "admin_state_up": true, "connection_limit": 200, "protocol_port": "443", "loadbalancer_id": "607226db-27ef-4d41-ae89-f2a800e9c2db", "name": "great_tls_listener", "insert_headers": {"X-Forwarded-For": "true", "X-Forwarded-Port": "true"}, "default_tls_container_ref": "http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51", "sni_container_refs": ["http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51", "http://198.51.100.10:9311/v1/containers/aaebb31e-7761-4826-8cb4-2b829caca3ee"], "timeout_client_data": 50000, "timeout_member_connect": 5000, "timeout_member_data": 50000, "timeout_tcp_inspect": 0}}' http://198.51.100.10:9876/v2/lbaas/listeners
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"listener": {"protocol": "TERMINATED_HTTPS", "description": "A great TLS listener", "admin_state_up": true, "connection_limit": 200, "protocol_port": "443", "loadbalancer_id": "607226db-27ef-4d41-ae89-f2a800e9c2db", "name": "great_tls_listener", "insert_headers": {"X-Forwarded-For": "true", "X-Forwarded-Port": "true"}, "default_tls_container_ref": "http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51", "sni_container_refs": ["http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51", "http://198.51.100.10:9311/v1/containers/aaebb31e-7761-4826-8cb4-2b829caca3ee"], "timeout_client_data": 50000, "timeout_member_connect": 5000, "timeout_member_data": 50000, "timeout_tcp_inspect": 0, "tags": ["test_tag"]}}' http://198.51.100.10:9876/v2/lbaas/listeners

@ -19,6 +19,7 @@
"timeout_client_data": 50000,
"timeout_member_connect": 5000,
"timeout_member_data": 50000,
"timeout_tcp_inspect": 0
"timeout_tcp_inspect": 0,
"tags": ["test_tag"]
}
}

@ -34,6 +34,7 @@
"timeout_client_data": 50000,
"timeout_member_connect": 5000,
"timeout_member_data": 50000,
"timeout_tcp_inspect": 0
"timeout_tcp_inspect": 0,
"tags": ["test_tag"]
}
}

@ -34,6 +34,7 @@
"timeout_client_data": 50000,
"timeout_member_connect": 5000,
"timeout_member_data": 50000,
"timeout_tcp_inspect": 0
"timeout_tcp_inspect": 0,
"tags": ["test_tag"]
}
}

@ -1 +1 @@
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"listener": {"description": "An updated great TLS listener", "admin_state_up": true, "connection_limit": 200, "name": "great_updated_tls_listener", "insert_headers": {"X-Forwarded-For": "false", "X-Forwarded-Port": "true"}, "default_tls_container_ref": "http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51", "sni_container_refs": ["http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51", "http://198.51.100.10:9311/v1/containers/aaebb31e-7761-4826-8cb4-2b829caca3ee"], "timeout_client_data": 100000, "timeout_member_connect": 1000, "timeout_member_data": 100000, "timeout_tcp_inspect": 5}}' http://198.51.100.10:9876/v2/lbaas/listeners/023f2e34-7806-443b-bfae-16c324569a3d
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"listener": {"description": "An updated great TLS listener", "admin_state_up": true, "connection_limit": 200, "name": "great_updated_tls_listener", "insert_headers": {"X-Forwarded-For": "false", "X-Forwarded-Port": "true"}, "default_tls_container_ref": "http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51", "sni_container_refs": ["http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51", "http://198.51.100.10:9311/v1/containers/aaebb31e-7761-4826-8cb4-2b829caca3ee"], "timeout_client_data": 100000, "timeout_member_connect": 1000, "timeout_member_data": 100000, "timeout_tcp_inspect": 5, "tags": ["updated_tag"]}}' http://198.51.100.10:9876/v2/lbaas/listeners/023f2e34-7806-443b-bfae-16c324569a3d

@ -17,6 +17,7 @@
"timeout_client_data": 100000,
"timeout_member_connect": 1000,
"timeout_member_data": 100000,
"timeout_tcp_inspect": 5
"timeout_tcp_inspect": 5,
"tags": ["updated_tag"]
}
}

@ -34,6 +34,7 @@
"timeout_client_data": 100000,
"timeout_member_connect": 1000,
"timeout_member_data": 100000,
"timeout_tcp_inspect": 5
"timeout_tcp_inspect": 5,
"tags": ["updated_tag"]
}
}

@ -36,7 +36,8 @@
"timeout_client_data": 50000,
"timeout_member_connect": 5000,
"timeout_member_data": 50000,
"timeout_tcp_inspect": 0
"timeout_tcp_inspect": 0,
"tags": ["test_tag"]
}
]
}

@ -1 +1 @@
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"loadbalancer": {"description": "My favorite load balancer", "admin_state_up": true, "project_id": "e3cd678b11784734bc366148aa37580e", "flavor_id": "a7ae5d5a-d855-4f9a-b187-af66b53f4d04", "vip_subnet_id": "d4af86e1-0051-488c-b7a0-527f97490c9a", "vip_address": "203.0.113.50", "provider": "octavia", "name": "best_load_balancer", "vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3"}}' http://198.51.100.10:9876/v2/lbaas/loadbalancers
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"loadbalancer": {"description": "My favorite load balancer", "admin_state_up": true, "project_id": "e3cd678b11784734bc366148aa37580e", "flavor_id": "a7ae5d5a-d855-4f9a-b187-af66b53f4d04", "vip_subnet_id": "d4af86e1-0051-488c-b7a0-527f97490c9a", "vip_address": "203.0.113.50", "provider": "octavia", "name": "best_load_balancer", "vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3", "tags": ["test_tag"]}}' http://198.51.100.10:9876/v2/lbaas/loadbalancers

@ -7,6 +7,7 @@
"vip_address": "203.0.113.50",
"provider": "octavia",
"name": "best_load_balancer",
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3"
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3",
"tags": ["test_tag"]
}
}

@ -15,6 +15,7 @@
"id": "607226db-27ef-4d41-ae89-f2a800e9c2db",
"operating_status": "OFFLINE",
"name": "best_load_balancer",
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3"
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3",
"tags": ["test_tag"]
}
}

@ -40,7 +40,8 @@
"protocol_port": 443,
"default_pool": {
"name": "https_pool"
}
},
"tags": ["test_tag"]
},
{
"name": "redirect_listener",
@ -83,6 +84,7 @@
"vip_address": "203.0.113.50",
"provider": "octavia",
"name": "best_load_balancer",
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3"
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3",
"tags": ["test_tag"]
}
}

@ -39,7 +39,8 @@
"sni_container_refs": [],
"protocol_port": 443,
"id": "73c6c564-f215-48e9-91d6-f10bb3454954",
"name": "https_listener"
"name": "https_listener",
"tags": ["test_tag"]
},
{
"l7policies": [
@ -173,6 +174,7 @@
"id": "607226db-27ef-4d41-ae89-f2a800e9c2db",
"operating_status": "ONLINE",
"name": "best_load_balancer",
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3"
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3",
"tags": ["test_tag"]
}
}

@ -15,6 +15,7 @@
"id": "8a562351-f0fb-424c-a0af-513461424ea5",
"operating_status": "ONLINE",
"name": "best_load_balancer",
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3"
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3",
"tags": []
}
}

@ -1 +1 @@
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"loadbalancer": {"description": "Temporarily disabled load balancer", "admin_state_up": false, "name": "disabled_load_balancer", "vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3"}}' http://198.51.100.10:9876/v2/lbaas/loadbalancers/8b6fc468-07d5-4d8b-a0b9-695060e72c31
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"loadbalancer": {"description": "Temporarily disabled load balancer", "admin_state_up": false, "name": "disabled_load_balancer", "vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3", "tags": ["updated_tag"]}}' http://198.51.100.10:9876/v2/lbaas/loadbalancers/8b6fc468-07d5-4d8b-a0b9-695060e72c31

@ -3,6 +3,7 @@
"description": "Temporarily disabled load balancer",
"admin_state_up": false,
"name": "disabled_load_balancer",
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3"
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3",
"tags": ["updated_tag"]
}
}

@ -15,6 +15,7 @@
"id": "8b6fc468-07d5-4d8b-a0b9-695060e72c31",
"operating_status": "ONLINE",
"name": "disabled_load_balancer",
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3"
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3",
"tags": ["updated_tag"]
}
}

@ -26,7 +26,8 @@
"id": "607226db-27ef-4d41-ae89-f2a800e9c2db",
"operating_status": "ONLINE",
"name": "best_load_balancer",
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3"
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3",
"tags": []
}
]
}

@ -1 +1 @@
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"members":[{"name":"web-server-1","weight":"20","admin_state_up":true,"subnet_id":"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa","address":"192.0.2.16","protocol_port":"80","monitor_port":8080},{"name":"web-server-2","weight":"10","admin_state_up":true,"subnet_id":"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa","address":"192.0.2.17","protocol_port":"80","monitor_port":8080}]}' http://198.51.100.10:9876/v2/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd/members
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"members":[{"name":"web-server-1","weight":"20","admin_state_up":true,"subnet_id":"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa","address":"192.0.2.16","protocol_port":"80","monitor_port":8080,"tags":["updated_tag"]},{"name":"web-server-2","weight":"10","admin_state_up":true,"subnet_id":"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa","address":"192.0.2.17","protocol_port":"80","monitor_port":8080,"tags":["updated_tag"]}]}' http://198.51.100.10:9876/v2/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd/members

@ -7,7 +7,8 @@
"subnet_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa",
"address": "192.0.2.16",
"protocol_port": 80,
"monitor_port": 8080
"monitor_port": 8080,
"tags": ["updated_tag"]
},
{
"name": "web-server-2",
@ -16,7 +17,8 @@
"subnet_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa",
"address": "192.0.2.17",
"protocol_port": 80,
"monitor_port": 8080
"monitor_port": 8080,
"tags": ["updated_tag"]
}
]
}

@ -1 +1 @@
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"member":{"name":"web-server-1","weight":"20","admin_state_up":true,"subnet_id":"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa","address":"192.0.2.16","protocol_port":"80","monitor_port":8080,"backup":false}}' http://198.51.100.10:9876/v2/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd/members
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"member":{"name":"web-server-1","weight":"20","admin_state_up":true,"subnet_id":"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa","address":"192.0.2.16","protocol_port":"80","monitor_port":8080,"backup":false,"tags":["test_tag"]}}' http://198.51.100.10:9876/v2/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd/members

@ -7,6 +7,7 @@
"address": "192.0.2.16",
"protocol_port": "80",
"monitor_port": 8080,
"backup": false
"backup": false,
"tags": ["test_tag"]
}
}

@ -14,6 +14,7 @@
"address": "192.0.2.16",
"protocol_port": 80,
"id": "957a1ace-1bd2-449b-8455-820b6e4b63f3",
"operating_status": "NO_MONITOR"
"operating_status": "NO_MONITOR",
"tags": ["test_tag"]
}
}

@ -14,6 +14,7 @@
"address": "192.0.2.16",
"protocol_port": 80,
"id": "957a1ace-1bd2-449b-8455-820b6e4b63f3",
"operating_status": "NO_MONITOR"
"operating_status": "NO_MONITOR",
"tags": ["test_tag"]
}
}

@ -1 +1 @@
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"member":{"name":"web-server-1-2","weight":"0","admin_state_up":"true","monitor_address":"192.0.2.40","monitor_port":8888,"backup":false}}' http://198.51.100.10:9876/v2/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd/members/957a1ace-1bd2-449b-8455-820b6e4b63f3
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"member":{"name":"web-server-1-2","weight":"0","admin_state_up":"true","monitor_address":"192.0.2.40","monitor_port":8888,"backup":false,"tags":["updated_tag"]}}' http://198.51.100.10:9876/v2/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd/members/957a1ace-1bd2-449b-8455-820b6e4b63f3

@ -5,6 +5,7 @@
"admin_state_up": "true",
"monitor_address": "192.0.2.40",
"monitor_port": 8888,
"backup": false
"backup": false,
"tags": ["updated_tag"]
}
}

@ -14,6 +14,7 @@
"address": "192.0.2.16",
"protocol_port": 80,
"id": "957a1ace-1bd2-449b-8455-820b6e4b63f3",
"operating_status": "NO_MONITOR"
"operating_status": "NO_MONITOR",
"tags": ["updated_tag"]
}
}

@ -15,7 +15,8 @@
"address": "192.0.2.16",
"protocol_port": 80,
"id": "957a1ace-1bd2-449b-8455-820b6e4b63f3",
"operating_status": "NO_MONITOR"
"operating_status": "NO_MONITOR",
"tags": ["test_tag"]
}
]
}

@ -1 +1 @@
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"pool":{"lb_algorithm":"ROUND_ROBIN","protocol":"HTTP","description":"Super Round Robin Pool","admin_state_up":true,"session_persistence":{"cookie_name":"ChocolateChip","type":"APP_COOKIE"},"listener_id":"023f2e34-7806-443b-bfae-16c324569a3d","name":"super-pool"}}' http://198.51.100.10:9876/v2/lbaas/pools
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"pool":{"lb_algorithm":"ROUND_ROBIN","protocol":"HTTP","description":"Super Round Robin Pool","admin_state_up":true,"session_persistence":{"cookie_name":"ChocolateChip","type":"APP_COOKIE"},"listener_id":"023f2e34-7806-443b-bfae-16c324569a3d","name":"super-pool","tags":["test_tag"]}}' http://198.51.100.10:9876/v2/lbaas/pools

@ -9,6 +9,7 @@
"type": "APP_COOKIE"
},
"listener_id": "023f2e34-7806-443b-bfae-16c324569a3d",
"name": "super-pool"
"name": "super-pool",
"tags": ["test_tag"]
}
}

@ -26,6 +26,7 @@
"project_id": "e3cd678b11784734bc366148aa37580e",
"id": "4029d267-3983-4224-a3d0-afb3fe16a2cd",
"operating_status": "ONLINE",
"name": "super-pool"
"name": "super-pool",
"tags": ["test_tag"]
}
}

@ -26,6 +26,7 @@
"project_id": "e3cd678b11784734bc366148aa37580e",
"id": "4029d267-3983-4224-a3d0-afb3fe16a2cd",
"operating_status": "ONLINE",
"name": "super-pool"
"name": "super-pool",
"tags": ["test_tag"]
}
}

@ -1 +1 @@
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"pool":{"lb_algorithm":"LEAST_CONNECTIONS","session_persistence":{"type":"SOURCE_IP"},"description":"second description","name":"second_name"}}' http://198.51.100.10:9876/v2/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"pool":{"lb_algorithm":"LEAST_CONNECTIONS","session_persistence":{"type":"SOURCE_IP"},"description":"second description","name":"second_name","tags":["updated_tag"]}}' http://198.51.100.10:9876/v2/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd

@ -5,6 +5,7 @@
"type": "SOURCE_IP"
},
"description": "Super Least Connections Pool",
"name": "super-least-conn-pool"
"name": "super-least-conn-pool",
"tags": ["updated_tag"]
}
}

@ -26,6 +26,7 @@
"project_id": "e3cd678b11784734bc366148aa37580e",
"id": "4029d267-3983-4224-a3d0-afb3fe16a2cd",
"operating_status": "ONLINE",
"name": "super-least-conn-pool"
"name": "super-least-conn-pool",
"tags": ["updated_tag"]
}
}

@ -32,7 +32,8 @@
"project_id": "e3cd678b11784734bc366148aa37580e",
"id": "ddb2b28f-89e9-45d3-a329-a359c3e39e4a",
"operating_status": "ONLINE",
"name": "round_robin_pool"
"name": "round_robin_pool",
"tags": ["test_tag"]
}
]
}

@ -58,6 +58,7 @@ Response Parameters
- pool_id: pool-id
- project_id: project_id
- provisioning_status: provisioning_status
- tags: tags
- timeout: healthmonitor-timeout
- type: healthmonitor-type
- updated_at: updated_at
@ -161,6 +162,7 @@ Request
- max_retries_down: healthmonitor-max-retries-down-optional
- pool_id: pool-id
- project_id: project_id-optional-deprecated
- tags: tags-optional
- timeout: healthmonitor-timeout
- type: healthmonitor-type
- url_path: healthmonitor-url_path-optional
@ -195,6 +197,7 @@ Response Parameters
- pool_id: pool-id
- project_id: project_id
- provisioning_status: provisioning_status
- tags: tags
- timeout: healthmonitor-timeout
- type: healthmonitor-type
- updated_at: updated_at
@ -262,6 +265,7 @@ Response Parameters
- pool_id: pool-id
- project_id: project_id
- provisioning_status: provisioning_status
- tags: tags
- timeout: healthmonitor-timeout
- type: healthmonitor-type
- updated_at: updated_at
@ -314,6 +318,7 @@ Request
- max_retries: healthmonitor-max-retries-optional
- max_retries_down: healthmonitor-max-retries-down-optional
- name: name-optional
- tags: tags-optional
- timeout: healthmonitor-timeout-optional
- url_path: healthmonitor-url_path-optional
@ -347,6 +352,7 @@ Response Parameters
- pool_id: pool-id
- project_id: project_id
- provisioning_status: provisioning_status
- tags: tags
- timeout: healthmonitor-timeout
- type: healthmonitor-type
- updated_at: updated_at

@ -60,6 +60,7 @@ Response Parameters
- redirect_prefix: l7policy-redirect-prefix
- redirect_url: l7policy-redirect-url
- rules: l7policy-rule-ids
- tags: tags
- updated_at: updated_at
Response Example
@ -142,6 +143,7 @@ Request
- redirect_pool_id: l7policy-redirect-pool_id-optional
- redirect_prefix: l7policy-redirect-prefix-optional
- redirect_url: l7policy-redirect-url-optional
- tags: tags-optional
Request Example
----------------
@ -175,6 +177,7 @@ Response Parameters
- redirect_prefix: l7policy-redirect-prefix
- redirect_url: l7policy-redirect-url
- rules: l7policy-rule-ids
- tags: tags
- updated_at: updated_at
Response Example
@ -241,6 +244,7 @@ Response Parameters
- redirect_prefix: l7policy-redirect-prefix
- redirect_url: l7policy-redirect-url
- rules: l7policy-rule-ids
- tags: tags
- updated_at: updated_at
@ -296,6 +300,7 @@ Request
- redirect_pool_id: l7policy-redirect-pool_id-optional
- redirect_prefix: l7policy-redirect-prefix-optional
- redirect_url: l7policy-redirect-url-optional
- tags: tags-optional
Request Example
---------------
@ -329,6 +334,7 @@ Response Parameters
- redirect_prefix: l7policy-redirect-prefix
- redirect_url: l7policy-redirect-url
- rules: l7policy-rule-ids
- tags: tags
- updated_at: updated_at
Response Example

@ -55,6 +55,7 @@ Response Parameters
- operating_status: operating_status
- project_id: project_id
- provisioning_status: provisioning_status
- tags: tags
- type: l7rule-type
- updated_at: updated_at
- value: l7rule-value
@ -124,6 +125,7 @@ Request
- key: l7rule-key-optional
- l7policy_id: path-l7policy-id
- project_id: project_id-optional
- tags: tags-optional
- type: l7rule-type
- value: l7rule-value
@ -153,6 +155,7 @@ Response Parameters
- operating_status: operating_status
- project_id: project_id
- provisioning_status: provisioning_status
- tags: tags
- type: l7rule-type
- updated_at: updated_at
- value: l7rule-value
@ -216,6 +219,7 @@ Response Parameters
- operating_status: operating_status
- project_id: project_id
- provisioning_status: provisioning_status
- tags: tags
- type: l7rule-type
- updated_at: updated_at
- value: l7rule-value
@ -266,6 +270,7 @@ Request
- key: l7rule-key-optional
- l7policy_id: path-l7policy-id
- l7rule_id: path-l7rule-id
- tags: tags-optional
- type: l7rule-type-optional
- value: l7rule-value-optional
@ -295,6 +300,7 @@ Response Parameters
- operating_status: operating_status
- project_id: project_id
- provisioning_status: provisioning_status
- tags: tags
- type: l7rule-type
- updated_at: updated_at
- value: l7rule-value

@ -63,6 +63,7 @@ Response Parameters
- protocol_port: protocol_port
- provisioning_status: provisioning_status
- sni_container_refs: sni_container_refs
- tags: tags
- timeout_client_data: timeout_client_data
- timeout_member_connect: timeout_member_connect
- timeout_member_data: timeout_member_data
@ -149,6 +150,7 @@ Request
- protocol: protocol
- protocol_port: protocol_port
- sni_container_refs: sni_container_refs-optional
- tags: tags-optional
- timeout_client_data: timeout_client_data-optional
- timeout_member_connect: timeout_member_connect-optional
- timeout_member_data: timeout_member_data-optional
@ -219,6 +221,7 @@ Response Parameters
- protocol_port: protocol_port
- provisioning_status: provisioning_status
- sni_container_refs: sni_container_refs
- tags: tags
- timeout_client_data: timeout_client_data
- timeout_member_connect: timeout_member_connect
- timeout_member_data: timeout_member_data
@ -292,6 +295,7 @@ Response Parameters
- protocol_port: protocol_port
- provisioning_status: provisioning_status
- sni_container_refs: sni_container_refs
- tags: tags
- timeout_client_data: timeout_client_data
- timeout_member_connect: timeout_member_connect
- timeout_member_data: timeout_member_data
@ -346,6 +350,7 @@ Request
- listener_id: path-listener-id
- name: name-optional
- sni_container_refs: sni_container_refs-optional
- tags: tags-optional
- timeout_client_data: timeout_client_data-optional
- timeout_member_connect: timeout_member_connect-optional
- timeout_member_data: timeout_member_data-optional
@ -386,6 +391,7 @@ Response Parameters
- protocol_port: protocol_port
- provisioning_status: provisioning_status
- sni_container_refs: sni_container_refs
- tags: tags
- timeout_client_data: timeout_client_data
- timeout_member_connect: timeout_member_connect
- timeout_member_data: timeout_member_data

@ -58,6 +58,7 @@ Response Parameters
- project_id: project_id
- provider: provider
- provisioning_status: provisioning_status
- tags: tags
- updated_at: updated_at
- vip_address: vip_address
- vip_network_id: vip_network_id
@ -168,6 +169,7 @@ Request
- name: name-optional
- project_id: project_id-optional
- provider: provider-optional
- tags: tags-optional
- vip_address: vip_address-optional
- vip_network_id: vip_network_id-optional
- vip_port_id: vip_port_id-optional
@ -204,6 +206,7 @@ Response Parameters
- project_id: project_id
- provider: provider
- provisioning_status: provisioning_status
- tags: tags
- updated_at: updated_at
- vip_address: vip_address
- vip_network_id: vip_network_id
@ -296,6 +299,7 @@ Response Parameters
- project_id: project_id
- provider: provider
- provisioning_status: provisioning_status
- tags: tags
- updated_at: updated_at
- vip_address: vip_address
- vip_network_id: vip_network_id
@ -348,6 +352,7 @@ Request
- loadbalancer: loadbalancer
- loadbalancer_id: path-loadbalancer-id
- name: name-optional
- tags: tags-optional
- vip_qos_policy_id: vip_qos_policy_id-optional
Request Example
@ -380,6 +385,7 @@ Response Parameters
- project_id: project_id
- provider: provider
- provisioning_status: provisioning_status
- tags: tags
- updated_at: updated_at
- vip_address: vip_address
- vip_network_id: vip_network_id

@ -59,6 +59,7 @@ Response Parameters
- protocol_port: protocol_port-member
- provisioning_status: provisioning_status
- subnet_id: subnet_id
- tags: tags
- updated_at: updated_at
- weight: weight
@ -156,6 +157,7 @@ Request
- project_id: project_id-optional-deprecated
- protocol_port: protocol_port
- subnet_id: subnet_id-optional
- tags: tags-optional
- weight: weight-optional
Request Example
@ -188,6 +190,7 @@ Response Parameters
- protocol_port: protocol_port-member
- provisioning_status: provisioning_status
- subnet_id: subnet_id
- tags: tags
- updated_at: updated_at
- weight: weight
@ -254,6 +257,7 @@ Response Parameters
- protocol_port: protocol_port-member
- provisioning_status: provisioning_status
- subnet_id: subnet_id
- tags: tags
- updated_at: updated_at
- weight: weight
@ -307,6 +311,7 @@ Request
- monitor_port: monitor_port-optional
- name: name-optional
- pool_id: path-pool-id
- tags: tags-optional
- weight: weight-optional
Request Example
@ -339,6 +344,7 @@ Response Parameters
- protocol_port: protocol_port-member
- provisioning_status: provisioning_status
- subnet_id: subnet_id
- tags: tags
- updated_at: updated_at
- weight: weight
@ -401,6 +407,7 @@ Request
- project_id: project_id-optional-deprecated
- protocol_port: protocol_port
- subnet_id: subnet_id-optional
- tags: tags-optional
- weight: weight-optional
Request Example

@ -60,6 +60,7 @@ Response Parameters
- protocol: protocol-pools
- provisioning_status: provisioning_status
- session_persistence: session_persistence
- tags: tags
- updated_at: updated_at
Response Example
@ -167,6 +168,7 @@ Request
- project_id: project_id-optional-deprecated
- protocol: protocol-pools
- session_persistence: session_persistence-optional
- tags: tags-optional
.. _session_persistence:
@ -243,6 +245,7 @@ Response Parameters
- protocol: protocol-pools
- provisioning_status: provisioning_status
- session_persistence: session_persistence
- tags: tags
- updated_at: updated_at
Response Example
@ -309,6 +312,7 @@ Response Parameters
- protocol: protocol-pools
- provisioning_status: provisioning_status
- session_persistence: session_persistence
- tags: tags
- updated_at: updated_at
Response Example
@ -356,6 +360,7 @@ Request
- name: name-optional
- pool_id: path-pool-id
- session_persistence: session_persistence-optional
- tags: tags-optional
Request Example
---------------
@ -389,6 +394,7 @@ Response Parameters
- protocol: protocol-pools
- provisioning_status: provisioning_status
- session_persistence: session_persistence
- tags: tags
- updated_at: updated_at
Response Example

@ -86,6 +86,8 @@ def _base_to_provider_dict(current_dict, include_project_id=False):
del new_dict['project_id']
if 'tenant_id' in new_dict:
del new_dict['tenant_id']
if 'tags' in new_dict:
del new_dict['tags']
return new_dict

@ -44,6 +44,7 @@ class HealthMonitorResponse(BaseHealthMonitorType):
operating_status = wtypes.wsattr(wtypes.StringType())
created_at = wtypes.wsattr(wtypes.datetime.datetime)
updated_at = wtypes.wsattr(wtypes.datetime.datetime)
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType()))
@classmethod
def from_data_model(cls, data_model, children=False):
@ -98,6 +99,7 @@ class HealthMonitorPOST(BaseHealthMonitorType):
# TODO(johnsom) Remove after deprecation (R series)
project_id = wtypes.wsattr(wtypes.StringType(max_length=36))
pool_id = wtypes.wsattr(wtypes.UuidType(), mandatory=True)
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType(max_length=255)))
class HealthMonitorRootPOST(types.BaseType):
@ -121,6 +123,7 @@ class HealthMonitorPUT(BaseHealthMonitorType):
expected_codes = wtypes.wsattr(
wtypes.StringType(pattern=r'^(\d{3}(\s*,\s*\d{3})*)$|^(\d{3}-\d{3})$'))
admin_state_up = wtypes.wsattr(bool)
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType(max_length=255)))
class HealthMonitorRootPUT(types.BaseType):
@ -148,6 +151,7 @@ class HealthMonitorSingleCreate(BaseHealthMonitorType):
expected_codes = wtypes.wsattr(
wtypes.StringType(pattern=r'^(\d{3}(\s*,\s*\d{3})*)$|^(\d{3}-\d{3})$'))
admin_state_up = wtypes.wsattr(bool, default=True)
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType(max_length=255)))
class HealthMonitorStatusResponse(BaseHealthMonitorType):

@ -43,6 +43,7 @@ class L7PolicyResponse(BaseL7PolicyType):
rules = wtypes.wsattr([types.IdOnlyType])
created_at = wtypes.wsattr(wtypes.datetime.datetime)
updated_at = wtypes.wsattr(wtypes.datetime.datetime)
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType()))
@classmethod
def from_data_model(cls, data_model, children=False):
@ -94,6 +95,7 @@ class L7PolicyPOST(BaseL7PolicyType):
default=constants.MAX_POLICY_POSITION)
listener_id = wtypes.wsattr(wtypes.UuidType(), mandatory=True)
rules = wtypes.wsattr([l7rule.L7RuleSingleCreate])
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType(max_length=255)))
class L7PolicyRootPOST(types.BaseType):
@ -113,6 +115,7 @@ class L7PolicyPUT(BaseL7PolicyType):
position = wtypes.wsattr(wtypes.IntegerType(
minimum=constants.MIN_POLICY_POSITION,
maximum=constants.MAX_POLICY_POSITION))
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType(max_length=255)))
class L7PolicyRootPUT(types.BaseType):
@ -135,3 +138,4 @@ class L7PolicySingleCreate(BaseL7PolicyType):
maximum=constants.MAX_POLICY_POSITION),
default=constants.MAX_POLICY_POSITION)
rules = wtypes.wsattr([l7rule.L7RuleSingleCreate])
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType(max_length=255)))

@ -37,6 +37,7 @@ class L7RuleResponse(BaseL7Type):
updated_at = wtypes.wsattr(wtypes.datetime.datetime)
project_id = wtypes.wsattr(wtypes.StringType())
admin_state_up = wtypes.wsattr(bool)
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType()))
@classmethod
def from_data_model(cls, data_model, children=False):
@ -74,6 +75,7 @@ class L7RulePOST(BaseL7Type):
admin_state_up = wtypes.wsattr(bool, default=True)
# TODO(johnsom) Remove after deprecation (R series)
project_id = wtypes.wsattr(wtypes.StringType(max_length=36))
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType(max_length=255)))
class L7RuleRootPOST(types.BaseType):
@ -92,6 +94,7 @@ class L7RulePUT(BaseL7Type):
value = wtypes.wsattr(wtypes.StringType(max_length=255))
invert = wtypes.wsattr(bool)
admin_state_up = wtypes.wsattr(bool)
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType(max_length=255)))
class L7RuleRootPUT(types.BaseType):
@ -110,3 +113,4 @@ class L7RuleSingleCreate(BaseL7Type):
value = wtypes.wsattr(wtypes.StringType(max_length=255), mandatory=True)
invert = wtypes.wsattr(bool, default=False)
admin_state_up = wtypes.wsattr(bool, default=True)
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType(max_length=255)))

@ -54,6 +54,7 @@ class ListenerResponse(BaseListenerType):
timeout_member_connect = wtypes.wsattr(wtypes.IntegerType())
timeout_member_data = wtypes.wsattr(wtypes.IntegerType())
timeout_tcp_inspect = wtypes.wsattr(wtypes.IntegerType())
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType()))
@classmethod
def from_data_model(cls, data_model, children=False):
@ -133,6 +134,7 @@ class ListenerPOST(BaseListenerType):
wtypes.IntegerType(minimum=constants.MIN_TIMEOUT,
maximum=constants.MAX_TIMEOUT),
default=CONF.haproxy_amphora.timeout_tcp_inspect)
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType(max_length=255)))
class ListenerRootPOST(types.BaseType):
@ -164,6 +166,7 @@ class ListenerPUT(BaseListenerType):
timeout_tcp_inspect = wtypes.wsattr(
wtypes.IntegerType(minimum=constants.MIN_TIMEOUT,
maximum=constants.MAX_TIMEOUT))
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType(max_length=255)))
class ListenerRootPUT(types.BaseType):
@ -206,6 +209,7 @@ class ListenerSingleCreate(BaseListenerType):
wtypes.IntegerType(minimum=constants.MIN_TIMEOUT,
maximum=constants.MAX_TIMEOUT),
default=CONF.haproxy_amphora.timeout_tcp_inspect)
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType(max_length=255)))
class ListenerStatusResponse(BaseListenerType):

@ -55,6 +55,7 @@ class LoadBalancerResponse(BaseLoadBalancerType):
provider = wtypes.wsattr(wtypes.StringType())
flavor_id = wtypes.wsattr(wtypes.StringType())
vip_qos_policy_id = wtypes.wsattr(wtypes.UuidType())
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType()))
@classmethod
def from_data_model(cls, data_model, children=False):
@ -125,6 +126,7 @@ class LoadBalancerPOST(BaseLoadBalancerType):
# TODO(johnsom) This should be dynamic based on the loaded flavors
# once flavors are implemented.
flavor_id = wtypes.wsattr(wtypes.Enum(str, *constants.SUPPORTED_FLAVORS))
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType(max_length=255)))
class LoadBalancerRootPOST(types.BaseType):
@ -138,6 +140,7 @@ class LoadBalancerPUT(BaseLoadBalancerType):
description = wtypes.wsattr(wtypes.StringType(max_length=255))
vip_qos_policy_id = wtypes.wsattr(wtypes.UuidType())
admin_state_up = wtypes.wsattr(bool)
tags = wtypes.wsattr(wtypes.ArrayType(wtypes.StringType(max_length=255)))
class LoadBalancerRootPUT(types.BaseType):