diff options
author | Rafal Szczesniak <mimir@samba.org> | 2007-05-29 05:49:35 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:53:00 -0500 |
commit | 262dc06b99a4840f2487ee5e3ea913c1e5de588b (patch) | |
tree | 03fab1314d327c86e145d0eb88c78cebc14eaa5b | |
parent | 5fb459e4fa3201a3d5cbc22c5ff011bfc98a9519 (diff) | |
download | samba-262dc06b99a4840f2487ee5e3ea913c1e5de588b.tar.gz samba-262dc06b99a4840f2487ee5e3ea913c1e5de588b.tar.bz2 samba-262dc06b99a4840f2487ee5e3ea913c1e5de588b.zip |
r23178: add simple js code I use for testing and which starts to look like
ejsnet command line utility (perhaps to be moved to utils later...)
rafal
(This used to be commit 43f9d9ba71f51007e80b340600a55fb07d89fd4c)
-rwxr-xr-x | testprogs/ejs/ejsnet.js | 54 | ||||
-rw-r--r-- | testprogs/ejs/ejsnet/nethost.js | 45 | ||||
-rw-r--r-- | testprogs/ejs/ejsnet/netusr.js | 86 |
3 files changed, 155 insertions, 30 deletions
diff --git a/testprogs/ejs/ejsnet.js b/testprogs/ejs/ejsnet.js index b39d888c39..a5570de34c 100755 --- a/testprogs/ejs/ejsnet.js +++ b/testprogs/ejs/ejsnet.js @@ -1,52 +1,46 @@ #!/usr/bin/env smbscript +libinclude("base.js"); + +/* note: these require specifying a proper path in "js include" parameter */ +libinclude("ejsnet/netusr.js"); +libinclude("ejsnet/nethost.js"); + +function PrintNetHelp() +{ + println("Usage: ejsnet.js <cmd> [options]"); +} + +/* here we start */ + var options = GetOptions(ARGV, "POPT_AUTOHELP", "POPT_COMMON_SAMBA", "POPT_COMMON_CREDENTIALS"); if (options == undefined) { - println("Failed to parse options"); - return -1; + PrintNetHelp(); + return -1; } -if (options.ARGV.length != 2) { - println("Usage: ejsnet.js <DOMAIN> <NEW USER NAME>"); - return -1; +if (options.ARGV.length < 1) { + PrintNetHelp(); + return -1; } /* use command line creds if available */ var creds = options.get_credentials(); - var ctx = NetContext(creds); -var usr_ctx = ctx.UserMgr(options.ARGV[0]); -if (usr_ctx == undefined) { - println("Couldn't get user management context."); - return -1; -} -var status = usr_ctx.Create(options.ARGV[1]); -if (status.is_ok != true) { - println("Failed to create user account " + options.ARGV[1] + ": " + status.errstr); - return -1; -} +var cmd = options.ARGV[0]; +if (cmd == "user") { + UserManager(ctx, options); +} else if (cmd == "host") { + HostManager(ctx, options); -var info = usr_ctx.Info(options.ARGV[1]); -if (info != null) { - println("UserInfo.AccountName = " + info.AccountName); - println("UserInfo.Description = " + info.Description); - println("UserInfo.FullName = " + info.FullName); - println("UserInfo.AcctExpiry = " + info.AcctExpiry); } else { - println("Null UserInfo returned - account unknown"); -} - - -var status = usr_ctx.Delete(options.ARGV[1]); -if (status.is_ok != true) { - println("Failed to delete user account " + options.ARGV[1] + ": " + status.errstr); + PrintNetHelp(); return -1; } -print ("OK\n"); return 0; diff --git a/testprogs/ejs/ejsnet/nethost.js b/testprogs/ejs/ejsnet/nethost.js new file mode 100644 index 0000000000..9e11ae89c5 --- /dev/null +++ b/testprogs/ejs/ejsnet/nethost.js @@ -0,0 +1,45 @@ +function PrintNetHostHelp() +{ + println("Host management - available commands:"); + println("\t domainlist - list users in specified domain"); +} + + +function ListDomains(hostCtx) +{ + var domain; + + var list = hostCtx.DomainList(); + if (list == undefined) { + println("Error when listing domains"); + return -1; + } + + for (var i = 0; i < list.Count; i++) { + domain = list.Domains[i]; + printf("%s\n", domain.Name); + } + + printf("\nResult: %s\n", list.Status.errstr); +} + + +function HostManager(ctx, options) +{ + var hostCtx; + + if (options.ARGV.length < 2) { + PrintNetHostHelp(); + return -1; + } + + var hostCmd = options.ARGV[1]; + + if (hostCmd == "domainlist") { + hostCtx = ctx.HostMgr(); + ListDomains(hostCtx); + + } else { + println("unknown command"); + } +} diff --git a/testprogs/ejs/ejsnet/netusr.js b/testprogs/ejs/ejsnet/netusr.js new file mode 100644 index 0000000000..da6e851ce7 --- /dev/null +++ b/testprogs/ejs/ejsnet/netusr.js @@ -0,0 +1,86 @@ +function PrintNetUsrHelp(options) +{ + println("User management - available commands:"); + println("\t list - list users in specified domain"); + println("\t info - display user account information"); +} + + +function ListUsers(usrCtx) +{ + var list, user; + var finished = false; + + for (list = usrCtx.List(list); list.Status.is_ok && !finished; list = usrCtx.List(list)) { + for (i = 0; i < list.Count; i++) { + user = list.Users[i]; + printf("%s\n", user.Username); + } + + finished = list.EndOfList; + } + + printf("\nResult: %s\n", list.Status.errstr); +} + + +function UserInfo(usrCtx, username) +{ + var info; + + info = usrCtx.Info(username); + if (info == null) { + println("Account unknown"); + return -1; + } + + println("User account info:\n"); + printf("AccountName = %s\n", info.AccountName); + printf("Description = %s\n", info.Description); + printf("FullName = %s\n", info.FullName); + printf("AcctExpiry = %s\n", info.AcctExpiry); +} + + +function UserManager(ctx, options) +{ + var usrCtx; + + if (options.ARGV.length < 2) { + PrintNetUsrHelp(options); + return -1; + + } + + var usrCmd = options.ARGV[1]; + + if (usrCmd == "create") { + + } else if (usrCmd == "info") { + var userName; + + if (options.ARGV.length > 2) { + userName = options.ARGV[2]; + } else { + println("No username provided"); + return -1; + } + usrCtx = ctx.UserMgr(); + + UserInfo(usrCtx, userName); + + } else if (usrCmd == "list") { + + if (options.ARGV.length > 2) { + usrCtx = ctx.UserMgr(options.ARGV[2]); + } else { + usrCtx = ctx.UserMgr(); + } + + ListUsers(usrCtx); + + } else { + println("Unknown command specified."); + PrintNetUsrHelp(options); + } +} |