Modify Region table via REST
We are trying to modify(add/delete entries) of a region table. This can be done via tmsh as
modify gtm region test_region region-members add { subnet 1.1.1.1/32}
modify gtm region test_region region-members delete { subnet 1.1.1.1/32}
If I try to add entries I get the following.
{ "code": 403, "message": "Operation is not allowed on property /gtm/region/Test_Region/region-members.", "errorStack": [] }
If I try to delete entries I get
{ "code": 403, "message": "Operation is not allowed on configuration item /gtm/region/Test_Region/region-members/subnet%201.1.1.1~32.", "errorStack": [] }
The only thing we can seem to do is a PUT to replace the entire region table. Is this not possible via REST?
Yep, you have to supply the entire region member list each time, so if you want to delete one, you have to basically send the entire list again without the member you wish to remove.
Another option is to use a CLI script to do this:
cli script addRegionMemberSubnet { proc script::init {} { } proc script::run {} { if { $tmsh::argc != 3 } { puts "a region name and a subnet must be provided" exit 123 } set zero [lindex $tmsh::argv 0] set RegionName [lindex $tmsh::argv 1] set Subnet [lindex $tmsh::argv 2] puts "tmsh::modify gtm region $RegionName region-members add { subnet $Subnet }" tmsh::modify gtm region $RegionName region-members add { subnet $Subnet } exit 0 } proc script::help {} { } proc script::tabc {} { } total-signing-status not-all-signed }
You can then run this from REST using the payload format of
{"command":"run","utilCmdArgs":"addRegionMemberSubnet Test_Region 1.1.1.1/32"}
on the URL of
https://192.168.1.1/mgmt/tm/cli/script
I hope that helps.