Finally, create the tenants … we’re using OAUTH for Kibana authentication, so I wasn’t able to use the API to export “saved objects”. Fortunately, we don’t have many tenants … and exporting/importing those saved objects manually isn’t an onerous task.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import requests from requests.auth import HTTPBasicAuth def createTenant(strTenantName, strDescription): jsonAddTenant = { "description" : strDescription } r2 = requests.put(f "https://opensearch.example.com:9200/_opendistro/_security/api/tenants/{strTenantName}" , json = jsonAddTenant, auth = HTTPBasicAuth( 'something' , 'something' ), verify = False ) print (r2.text) print (r2.status_code) # Get all tenants from ES r = requests.get(f "https://elasticsearch.example.com:9200/_opendistro/_security/api/tenants" , auth = HTTPBasicAuth( 'something' , 'something' ), verify = False ) dictAllTenants = r.json() for item in dictAllTenants.items(): if item[ 1 ].get( 'reserved' ) = = False : createTenant(item[ 0 ], item[ 1 ].get( 'description' )) |