Мне нужна помощь в написании сценариев wsadmin.sh вместе с jython. Я создаю сценарий для предоставления доступа к консоли пользователям через wsadmin.sh. Я могу заставить его работать, если я жестко запрограммирую данные имени пользователя в файле consoleacces.py, но мое требование - предоставить данные имени пользователя во время выполнения. так что я могу использовать скрипт несколько раз для разных пользователей.
Работает:
wsadmin.sh -lang jython -f /tmp/consoleaccess.py
содержимое consoleaccess.py
AdminTask.mapUsersToAdminRole('[-accessids [user:defaultWIMFileBasedRealm/employeenumber=123,ou=people,ou=country,o=office] -roleName administrator -userids user1]')
AdminConfig.save()
agBean=AdminControl.queryNames('type=AuthorizationGroupManager,process=dmgr,*');null=AdminControl.invoke(agBean, 'refreshAll')
Не работает
wsadmin.sh -lang jython -f /tmp/consoleaccess.py 123 user1 administrator
содержимое consoleaccess.py
import sys
AdminTask.mapUsersToAdminRole('[-accessids [user:defaultWIMFileBasedRealm/employeenumber=sys.argv[1],ou=people,ou=americas,o=SIAM_ED] -roleName sys.argv[3] -userids sys.argv[2]]')
AdminConfig.save()
agBean=AdminControl.queryNames('type=AuthorizationGroupManager,process=dmgr,*');null=AdminControl.invoke(agBean, 'refreshAll')
Ошибка:
WASX7209I: Connected to process "dmgr" on node host1 using SOAP connector; The type of process is: DeploymentManager
WASX7303I: The following options are passed to the scripting environment and are available as arguments that are stored in the argv variable: "[123, user1, administrator]"
WASX7017E: Exception received while running file "/tmp/consoleaccess.py"; exception information: com.ibm.ws.scripting.ScriptingException: WASX8009E: Invalid parameter: [-accessids [user:defaultWIMFileBasedRealm/employeenumber=sys.argv[1],ou=people,ou=americas,o=SIAM_ED] -roleName sys.argv[3] -userids sys.argv[2]]