svn commit: samba r23178 - in branches/SAMBA_4_0/testprogs/ejs: . ejsnet

mimir at samba.org mimir at samba.org
Tue May 29 05:49:36 GMT 2007


Author: mimir
Date: 2007-05-29 05:49:35 +0000 (Tue, 29 May 2007)
New Revision: 23178

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=23178

Log:
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


Added:
   branches/SAMBA_4_0/testprogs/ejs/ejsnet/
   branches/SAMBA_4_0/testprogs/ejs/ejsnet/nethost.js
   branches/SAMBA_4_0/testprogs/ejs/ejsnet/netusr.js
Modified:
   branches/SAMBA_4_0/testprogs/ejs/ejsnet.js


Changeset:
Added: branches/SAMBA_4_0/testprogs/ejs/ejsnet/nethost.js
===================================================================
--- branches/SAMBA_4_0/testprogs/ejs/ejsnet/nethost.js	2007-05-29 01:20:47 UTC (rev 23177)
+++ branches/SAMBA_4_0/testprogs/ejs/ejsnet/nethost.js	2007-05-29 05:49:35 UTC (rev 23178)
@@ -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");
+	}
+}

Added: branches/SAMBA_4_0/testprogs/ejs/ejsnet/netusr.js
===================================================================
--- branches/SAMBA_4_0/testprogs/ejs/ejsnet/netusr.js	2007-05-29 01:20:47 UTC (rev 23177)
+++ branches/SAMBA_4_0/testprogs/ejs/ejsnet/netusr.js	2007-05-29 05:49:35 UTC (rev 23178)
@@ -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);
+	}
+}

Modified: branches/SAMBA_4_0/testprogs/ejs/ejsnet.js
===================================================================
--- branches/SAMBA_4_0/testprogs/ejs/ejsnet.js	2007-05-29 01:20:47 UTC (rev 23177)
+++ branches/SAMBA_4_0/testprogs/ejs/ejsnet.js	2007-05-29 05:49:35 UTC (rev 23178)
@@ -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;



More information about the samba-cvs mailing list