Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am trying to add a new user with a python script but it does not like my useradmin-user-info element and I am out of guesses for what is wrong.
Here is the command I am trying to get to work.
out = s.invoke("useradmin-user-add", "password", service_acct_passwd, "useradmin-user", opsmgr_user)
This is the error that I am getting.
Didn't find expected typedef useradmin-user-info for element useradmin-user
Below is how I am constructing the useradmin-user-info element.
opsmgr_user = NaElement("useradmin-user-info")
opsmgr_user.child_add_string("name", "OpsManager")
opsmgr_user.child_add_string("comment", "")
opsmgr_user.child_add(admin_group)
I have tried both building the admin_group element and pulling it. No luck with either.
#admin_group_pull = s.invoke("useradmin-group-list", "group-name", "administrators" )
#admin_group_pull = admin_group.child_get("useradmin-groups")
#admin_group_pull = admin_group.child_get("useradmin-group-info")
admin_group_make = NaElement("useradmin-group-info")
admin_group_make.child_add_string("name", "Administrators")
admin_group = NaElement("useradmin-groups")
admin_group.child_add(admin_group_make)
Here is a sprintf() of the opsmgr_user
<useradmin-user-info>
<name>OpsManager</name>
<comment></comment>
<useradmin-groups>
<useradmin-group-info>
<name>Administrators</name>
</useradmin-group-info>
</useradmin-groups>
</useradmin-user-info>
This seems to match perfectly with a sample pulled from an existing user.
test = s.invoke("useradmin-user-list", "user-name", "sftp_user2")
test = test.child_get("useradmin-users")
test = test.child_get("useradmin-user-info")
print(test.sprintf())
<useradmin-user-info>
<name>sftp_user2</name>
<comment></comment>
<useradmin-groups>
<useradmin-group-info>
<name>sftp_group</name>
</useradmin-group-info>
</useradmin-groups>
</useradmin-user-info>
Any help is greatly appreciated.
Thanks,
Daniel DeCristofaro
Solved! See The Solution
1 ACCEPTED SOLUTION
migration has accepted the solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Got the issue sorted out. Thanks Ben!
My problem was that the .invoke method only supports simple name value pairs and was not compatible with elements. I had use the .invoke_elem() method to pass the objects correctly.
snapdrive_user = NaElement("useradmin-user")
useradminuserinfoElement = NaElement("useradmin-user-info")
snapdrive_user.child_add(useradminuserinfoElement)
useradminuserinfoElement.child_add_string("name", "snapdrive")
useradmingroupsElement = NaElement("useradmin-groups")
useradminuserinfoElement.child_add(useradmingroupsElement)
useradmingroupinfoElement = NaElement("useradmin-group-info")
useradmingroupsElement.child_add(useradmingroupinfoElement)
useradmingroupinfoElement.child_add_string("name", "Administrators")
#print(snapdrive_user.sprintf())
opsmgr_user = NaElement("useradmin-user")
useradminuserinfoElement = NaElement("useradmin-user-info")
opsmgr_user.child_add(useradminuserinfoElement)
useradminuserinfoElement.child_add_string("name", "OpsManager")
useradmingroupsElement = NaElement("useradmin-groups")
useradminuserinfoElement.child_add(useradmingroupsElement)
useradmingroupinfoElement = NaElement("useradmin-group-info")
useradmingroupsElement.child_add(useradmingroupinfoElement)
useradmingroupinfoElement.child_add_string("name", "Administrators")
#print(opsmgr_user.sprintf())
add_snapdrive_user = NaElement("useradmin-user-add")
add_snapdrive_user.child_add_string("password", service_acct_passwd)
add_snapdrive_user.child_add(snapdrive_user)
#print(add_snapdrive_user.sprintf())
out = s.invoke_elem(add_snapdrive_user)
if (out.results_status() == "failed") :
print ("Error:\n")
print (out.sprintf())
sys.exit (1)
add_opsmgr_user = NaElement("useradmin-user-add")
add_opsmgr_user.child_add_string("password", service_acct_passwd)
add_opsmgr_user.child_add(opsmgr_user)
#print(add_opsmgr_user.sprintf())
out = s.invoke_elem(add_opsmgr_user)
if (out.results_status() == "failed") :
print ("Error:\n")
print (out.sprintf())
sys.exit (1)
1 REPLY 1
migration has accepted the solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Got the issue sorted out. Thanks Ben!
My problem was that the .invoke method only supports simple name value pairs and was not compatible with elements. I had use the .invoke_elem() method to pass the objects correctly.
snapdrive_user = NaElement("useradmin-user")
useradminuserinfoElement = NaElement("useradmin-user-info")
snapdrive_user.child_add(useradminuserinfoElement)
useradminuserinfoElement.child_add_string("name", "snapdrive")
useradmingroupsElement = NaElement("useradmin-groups")
useradminuserinfoElement.child_add(useradmingroupsElement)
useradmingroupinfoElement = NaElement("useradmin-group-info")
useradmingroupsElement.child_add(useradmingroupinfoElement)
useradmingroupinfoElement.child_add_string("name", "Administrators")
#print(snapdrive_user.sprintf())
opsmgr_user = NaElement("useradmin-user")
useradminuserinfoElement = NaElement("useradmin-user-info")
opsmgr_user.child_add(useradminuserinfoElement)
useradminuserinfoElement.child_add_string("name", "OpsManager")
useradmingroupsElement = NaElement("useradmin-groups")
useradminuserinfoElement.child_add(useradmingroupsElement)
useradmingroupinfoElement = NaElement("useradmin-group-info")
useradmingroupsElement.child_add(useradmingroupinfoElement)
useradmingroupinfoElement.child_add_string("name", "Administrators")
#print(opsmgr_user.sprintf())
add_snapdrive_user = NaElement("useradmin-user-add")
add_snapdrive_user.child_add_string("password", service_acct_passwd)
add_snapdrive_user.child_add(snapdrive_user)
#print(add_snapdrive_user.sprintf())
out = s.invoke_elem(add_snapdrive_user)
if (out.results_status() == "failed") :
print ("Error:\n")
print (out.sprintf())
sys.exit (1)
add_opsmgr_user = NaElement("useradmin-user-add")
add_opsmgr_user.child_add_string("password", service_acct_passwd)
add_opsmgr_user.child_add(opsmgr_user)
#print(add_opsmgr_user.sprintf())
out = s.invoke_elem(add_opsmgr_user)
if (out.results_status() == "failed") :
print ("Error:\n")
print (out.sprintf())
sys.exit (1)
