summaryrefslogtreecommitdiff
path: root/testprogs
diff options
context:
space:
mode:
authorRafal Szczesniak <mimir@samba.org>2007-05-29 05:49:35 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:53:00 -0500
commit262dc06b99a4840f2487ee5e3ea913c1e5de588b (patch)
tree03fab1314d327c86e145d0eb88c78cebc14eaa5b /testprogs
parent5fb459e4fa3201a3d5cbc22c5ff011bfc98a9519 (diff)
downloadsamba-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)
Diffstat (limited to 'testprogs')
-rwxr-xr-xtestprogs/ejs/ejsnet.js54
-rw-r--r--testprogs/ejs/ejsnet/nethost.js45
-rw-r--r--testprogs/ejs/ejsnet/netusr.js86
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);
+ }
+}