Skip to main content

List of Groups and Users in IICS

 I have written a  python script to pull list of groups and associated users in ICCS using API. 

In script you need to replace url and Id and password that has admin access in your environment. 


Here is the script

import requests
import json
sid=''
url = "https:Infaurl/api/v2/user/login"

payload = json.dumps({
"username": "Adminuser",
"password": "Adminpassword"
})
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
login=json.loads(response.text)

for i in login:
if i=="icSessionId":
sid=login[i]
#print(sid)

groupurl = "https://infaurl/public/core/v3/userGroups?limit=50"

payload = {}
grpheaders = {
'INFA-SESSION-ID': sid
}

groupresponse = requests.request("GET", groupurl, headers=grpheaders, data=payload)
data=groupresponse.json()
#print(groupresponse.text)
groupresponsestring = json.dumps(data, ensure_ascii=False)
#groupresponsestring=data.decode('utf-8')
groupresponse2=json.loads(groupresponsestring)

for block in groupresponse2:
user_group_name = block.get("userGroupName")
user_names = [user['userName'] for user in block.get('users', [])]
for user_name in user_names:
print(user_group_name, ":", user_name)

groupurl2 = "https://infaurl/public/core/v3/userGroups?limit=50&skip=50"
groupresponsepart2 = requests.request("GET", groupurl2, headers=grpheaders, data=payload)
data2=groupresponsepart2.json()
#print(groupresponse.text)
groupresponsestring2 = json.dumps(data2, ensure_ascii=False)
#groupresponsestring=data.decode('utf-8')
groupresponse21=json.loads(groupresponsestring2)

for block2 in groupresponse21:
user_group_name2 = block2.get("userGroupName")
user_names = [user['userName'] for user in block2.get('users', [])]
for user_name in user_names:
print(user_group_name2, ":", user_name)


groupurl3 = "https://infaurl/public/core/v3/userGroups?limit=50&skip=100"
groupresponsepart3 = requests.request("GET", groupurl3, headers=grpheaders, data=payload)
data3=groupresponsepart3.json()
#print(groupresponse.text)
groupresponsestring3 = json.dumps(data3, ensure_ascii=False)
#groupresponsestring=data.decode('utf-8')
groupresponse3=json.loads(groupresponsestring3)

for block3 in groupresponse3:
user_group_name3 = block3.get("userGroupName")
user_names = [user['userName'] for user in block3.get('users', [])]
for user_name in user_names:
print(user_group_name3, ":", user_name)

groupurl4 = "https://infaurl/public/core/v3/userGroups?limit=50&skip=150"
groupresponsepart4 = requests.request("GET", groupurl4, headers=grpheaders, data=payload)
data4=groupresponsepart4.json()
#print(groupresponse.text)
groupresponsestring4 = json.dumps(data4, ensure_ascii=False)
#groupresponsestring=data.decode('utf-8')
groupresponse4=json.loads(groupresponsestring4)

for block4 in groupresponse4:
user_group_name4 = block4.get("userGroupName")
user_names = [user['userName'] for user in block4.get('users', [])]
for user_name in user_names:
print(user_group_name4, ":", user_name)

Comments

Popular posts from this blog

Gateway port to use 80 to 443 on Tableau Server

Change Gateway port from 80 to 443 or 8080       To change the Gateway port from 80 to 443 then use below commands First , list your nodes with the command. tsm topology list-node  Then execute the command to set port  tsm topology set-ports --node-name node1 --port-name gateway:primary --port-value 443 The above command will ask for a restart.  Check ports using  tsm topology list-ports  If some error occurs in applying changes: try disabling (enable later) external ssl first- tsm security external-ssl disable You might need to run init command again with new port- tsm reset tabcmd initialuser --server localhost:443 --username 'ADMINUSER' --password 'adminpwd'

Creating Groups using Tableau API and Python Script

 Creating Tableau Groups using Python and API Prerequisites: Python on the machine tableauserverclient module API enabled on Tableau server. Permissions to update for the user Groups.csv file . list all groups in a csv file Changes to be made in the script for below lines in the script groups = open('<Filepath>/groups.csv') pat='getyourpersonaltoken' server = TSC.Server('http://myserver.tableau.com',use_server_version=True) tokenName = 'mytokenname' Script: import tableauserverclient as TSC import csv groups = open('<Filepath>/groups.csv') grp = csv.reader(groups) sourcegroups=[] createdgrps=[] pat='getyourpersonaltoken' server = TSC.Server('http://myserver.tableau.com',use_server_version=True) tokenName = 'mytokenname' ta = TSC.PersonalAccessTokenAuth(token_name=tokenName, personal_access_token=pat) with server.auth.sign_in_with_personal_access_token(ta):    groupslist, pagination_item  = server.groups.get() ...

Tableau dirty Backup

Steps for performing a dirty restore 1. Install Tableau Server 2019.1.0 on the Dev machine 2. Stop Tableau Server 3. Copy the following folders from the current production: D:\Tableau Server\data\tabsvc\pgsql D:\Tableau Server\data\tabsvc\dataengine 4. Update the pg_hba.conf D:\Tableau Server\data\tabsvc\config\pgsql_0.<version>/pg_hba.conf Change "md5" to "trust" for the user "tblwgadmin" like this: host    all         tblwgadmin         <address>/32          md5 to : host    all         tblwgadmin        <address>/32         trust 5. Regenerate the internal token: tsm security regenerate-internal-tokens [options] [global options] tsm pending-changes apply 6. Re-index tsm maintenance reindex-search 7. Make a proper backup: tsm maintenance backup -f myBackup At this point, we w...