mirror of
https://github.com/opensim/opensim.git
synced 2026-08-09 10:46:00 +08:00
Replace the console for all OpenSim apps with a new console featuring command
line editing, context sensitive help (press ? at any time), command line history, a new plugin command system and new appender features thet let you type while the console is scrolling. Seamlessly integrates the ICommander interfaces.
This commit is contained in:
@@ -43,7 +43,7 @@ namespace OpenSim.Grid.AssetServer
|
||||
/// <summary>
|
||||
/// An asset server
|
||||
/// </summary>
|
||||
public class OpenAsset_Main : BaseOpenSimServer, conscmd_callback
|
||||
public class OpenAsset_Main : BaseOpenSimServer
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
@@ -76,7 +76,7 @@ namespace OpenSim.Grid.AssetServer
|
||||
|
||||
public OpenAsset_Main()
|
||||
{
|
||||
m_console = new ConsoleBase("Asset", this);
|
||||
m_console = new ConsoleBase("Asset");
|
||||
|
||||
MainConsole.Instance = m_console;
|
||||
}
|
||||
@@ -99,6 +99,8 @@ namespace OpenSim.Grid.AssetServer
|
||||
AddHttpHandlers();
|
||||
|
||||
m_httpServer.Start();
|
||||
|
||||
base.StartupSpecific();
|
||||
}
|
||||
|
||||
protected void AddHttpHandlers()
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace OpenSim.Grid.GridServer
|
||||
{
|
||||
/// <summary>
|
||||
/// </summary>
|
||||
public class GridServerBase : BaseOpenSimServer, conscmd_callback
|
||||
public class GridServerBase : BaseOpenSimServer
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
@@ -59,43 +59,34 @@ namespace OpenSim.Grid.GridServer
|
||||
|
||||
public GridServerBase()
|
||||
{
|
||||
m_console = new ConsoleBase("Grid", this);
|
||||
m_console = new ConsoleBase("Grid");
|
||||
MainConsole.Instance = m_console;
|
||||
}
|
||||
|
||||
public override void RunCmd(string cmd, string[] cmdparams)
|
||||
private void HandleRegistration(string module, string[] cmd)
|
||||
{
|
||||
base.RunCmd(cmd, cmdparams);
|
||||
|
||||
switch (cmd)
|
||||
switch (cmd[0])
|
||||
{
|
||||
case "disable-reg":
|
||||
m_config.AllowRegionRegistration = false;
|
||||
m_log.Info("Region registration disabled");
|
||||
break;
|
||||
case "enable-reg":
|
||||
m_config.AllowRegionRegistration = true;
|
||||
m_log.Info("Region registration enabled");
|
||||
break;
|
||||
case "enable":
|
||||
m_config.AllowRegionRegistration = true;
|
||||
m_log.Info("Region registration enabled");
|
||||
break;
|
||||
case "disable":
|
||||
m_config.AllowRegionRegistration = false;
|
||||
m_log.Info("Region registration disabled");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public override void Show(string[] showParams)
|
||||
{
|
||||
base.Show(showParams);
|
||||
|
||||
switch (showParams[0])
|
||||
private void HandleShowStatus(string module, string[] cmd)
|
||||
{
|
||||
if (m_config.AllowRegionRegistration)
|
||||
{
|
||||
case "status":
|
||||
if (m_config.AllowRegionRegistration)
|
||||
{
|
||||
m_log.Info("Region registration enabled.");
|
||||
}
|
||||
else
|
||||
{
|
||||
m_log.Info("Region registration disabled.");
|
||||
}
|
||||
break;
|
||||
m_log.Info("Region registration enabled.");
|
||||
}
|
||||
else
|
||||
{
|
||||
m_log.Info("Region registration disabled.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,6 +111,20 @@ namespace OpenSim.Grid.GridServer
|
||||
// Timer simCheckTimer = new Timer(3600000 * 3); // 3 Hours between updates.
|
||||
// simCheckTimer.Elapsed += new ElapsedEventHandler(CheckSims);
|
||||
// simCheckTimer.Enabled = true;
|
||||
|
||||
base.StartupSpecific();
|
||||
|
||||
m_console.Commands.AddCommand("gridserver", "enable registration",
|
||||
"enable registration",
|
||||
"Enable new regions to register", HandleRegistration);
|
||||
|
||||
m_console.Commands.AddCommand("gridserver", "disable registration",
|
||||
"disable registration",
|
||||
"Disable registering new regions", HandleRegistration);
|
||||
|
||||
m_console.Commands.AddCommand("gridserver", "show status",
|
||||
"show status",
|
||||
"Show registration status", HandleShowStatus);
|
||||
}
|
||||
|
||||
protected void AddHttpHandlers()
|
||||
|
||||
@@ -38,7 +38,7 @@ using OpenSim.Framework.Servers;
|
||||
|
||||
namespace OpenSim.Grid.InventoryServer
|
||||
{
|
||||
public class OpenInventory_Main : BaseOpenSimServer, conscmd_callback
|
||||
public class OpenInventory_Main : BaseOpenSimServer
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace OpenSim.Grid.InventoryServer
|
||||
|
||||
public OpenInventory_Main()
|
||||
{
|
||||
m_console = new ConsoleBase("Inventory", this);
|
||||
m_console = new ConsoleBase("Inventory");
|
||||
MainConsole.Instance = m_console;
|
||||
}
|
||||
|
||||
@@ -77,6 +77,12 @@ namespace OpenSim.Grid.InventoryServer
|
||||
m_httpServer.Start();
|
||||
|
||||
m_log.Info("[" + LogName + "]: Started HTTP server");
|
||||
|
||||
base.StartupSpecific();
|
||||
|
||||
m_console.Commands.AddCommand("inventoryserver", "add user",
|
||||
"add user",
|
||||
"Add a random user inventory", HandleAddUser);
|
||||
}
|
||||
|
||||
protected void AddHttpHandlers()
|
||||
@@ -146,16 +152,9 @@ namespace OpenSim.Grid.InventoryServer
|
||||
}
|
||||
}
|
||||
|
||||
public override void RunCmd(string cmd, string[] cmdparams)
|
||||
private void HandleAddUser(string module, string[] args)
|
||||
{
|
||||
base.RunCmd(cmd, cmdparams);
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
case "add-user":
|
||||
m_inventoryService.CreateUsersInventory(UUID.Random().Guid);
|
||||
break;
|
||||
}
|
||||
m_inventoryService.CreateUsersInventory(UUID.Random().Guid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ namespace OpenSim.Grid.MessagingServer
|
||||
{
|
||||
/// <summary>
|
||||
/// </summary>
|
||||
public class OpenMessage_Main : BaseOpenSimServer, conscmd_callback
|
||||
public class OpenMessage_Main : BaseOpenSimServer
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace OpenSim.Grid.MessagingServer
|
||||
|
||||
public OpenMessage_Main()
|
||||
{
|
||||
m_console = new ConsoleBase("Messaging", this);
|
||||
m_console = new ConsoleBase("Messaging");
|
||||
MainConsole.Instance = m_console;
|
||||
}
|
||||
|
||||
@@ -124,6 +124,16 @@ namespace OpenSim.Grid.MessagingServer
|
||||
registerWithUserServer();
|
||||
|
||||
m_log.Info("[SERVER]: Messageserver 0.5 - Startup complete");
|
||||
|
||||
base.StartupSpecific();
|
||||
|
||||
m_console.Commands.AddCommand("messageserver", "clear cache",
|
||||
"clear cache",
|
||||
"Clear presence cache", HandleClearCache);
|
||||
|
||||
m_console.Commands.AddCommand("messageserver", "register",
|
||||
"register",
|
||||
"Re-register with user server(s)", HandleRegister);
|
||||
}
|
||||
|
||||
public void do_create(string what)
|
||||
@@ -154,29 +164,17 @@ namespace OpenSim.Grid.MessagingServer
|
||||
}
|
||||
}
|
||||
|
||||
public override void RunCmd(string cmd, string[] cmdparams)
|
||||
private void HandleClearCache(string module, string[] cmd)
|
||||
{
|
||||
base.RunCmd(cmd, cmdparams);
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
case "clear-cache":
|
||||
int entries = msgsvc.ClearRegionCache();
|
||||
m_console.Notice("Region cache cleared! Cleared " + entries.ToString() + " entries");
|
||||
break;
|
||||
case "register":
|
||||
deregisterFromUserServer();
|
||||
registerWithUserServer();
|
||||
break;
|
||||
}
|
||||
int entries = msgsvc.ClearRegionCache();
|
||||
m_console.Notice("Region cache cleared! Cleared " +
|
||||
entries.ToString() + " entries");
|
||||
}
|
||||
|
||||
protected override void ShowHelp(string[] helpArgs)
|
||||
|
||||
private void HandleRegister(string module, string[] cmd)
|
||||
{
|
||||
base.ShowHelp(helpArgs);
|
||||
|
||||
m_console.Notice("clear-cache - Clears region cache. Should be done when regions change position. The region cache gets stale after a while.");
|
||||
m_console.Notice("register - (Re-)registers with user-server. This might be necessary if the userserver crashed/restarted");
|
||||
deregisterFromUserServer();
|
||||
registerWithUserServer();
|
||||
}
|
||||
|
||||
public override void ShutdownSpecific()
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace OpenSim.Grid.UserServer
|
||||
/// <summary>
|
||||
/// Grid user server main class
|
||||
/// </summary>
|
||||
public class OpenUser_Main : BaseOpenSimServer, conscmd_callback
|
||||
public class OpenUser_Main : BaseOpenSimServer
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
@@ -73,7 +73,7 @@ namespace OpenSim.Grid.UserServer
|
||||
|
||||
public OpenUser_Main()
|
||||
{
|
||||
m_console = new ConsoleBase("User", this);
|
||||
m_console = new ConsoleBase("User");
|
||||
MainConsole.Instance = m_console;
|
||||
}
|
||||
|
||||
@@ -119,6 +119,37 @@ namespace OpenSim.Grid.UserServer
|
||||
m_httpServer = new BaseHttpServer(Cfg.HttpPort);
|
||||
AddHttpHandlers();
|
||||
m_httpServer.Start();
|
||||
|
||||
base.StartupSpecific();
|
||||
|
||||
m_console.Commands.AddCommand("userserver", "create user",
|
||||
"create user [<first> [<last> [<x> <y> [email]]]]",
|
||||
"Create a new user account", RunCommand);
|
||||
|
||||
m_console.Commands.AddCommand("userserver", "reset user password",
|
||||
"reset user password [<first> [<last> [<new password>]]]",
|
||||
"Reset a user's password", RunCommand);
|
||||
|
||||
m_console.Commands.AddCommand("userserver", "login level",
|
||||
"login level <level>",
|
||||
"Set the minimum user level to log in", HandleLoginCommand);
|
||||
|
||||
m_console.Commands.AddCommand("userserver", "login reset",
|
||||
"login reset",
|
||||
"Reset the login level to allow all users",
|
||||
HandleLoginCommand);
|
||||
|
||||
m_console.Commands.AddCommand("userserver", "login text",
|
||||
"login text <text>",
|
||||
"Set the text users will see on login", HandleLoginCommand);
|
||||
|
||||
m_console.Commands.AddCommand("userserver", "test-inventory",
|
||||
"test-inventory",
|
||||
"Perform a test inventory transaction", RunCommand);
|
||||
|
||||
m_console.Commands.AddCommand("userserver", "logoff-user",
|
||||
"logoff-user <first> <last> <message>",
|
||||
"Log off a named user", RunCommand);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -301,10 +332,45 @@ namespace OpenSim.Grid.UserServer
|
||||
m_userManager.ResetUserPassword(firstName, lastName, newPassword);
|
||||
}
|
||||
|
||||
public override void RunCmd(string cmd, string[] cmdparams)
|
||||
private void HandleLoginCommand(string module, string[] cmd)
|
||||
{
|
||||
base.RunCmd(cmd, cmdparams);
|
||||
switch (cmd)
|
||||
string subcommand = cmd[1];
|
||||
|
||||
switch (subcommand)
|
||||
{
|
||||
case "level":
|
||||
// Set the minimal level to allow login
|
||||
// Useful to allow grid update without worrying about users.
|
||||
// or fixing critical issues
|
||||
//
|
||||
if (cmd.Length > 2)
|
||||
{
|
||||
int level = Convert.ToInt32(cmd[2]);
|
||||
m_loginService.setloginlevel(level);
|
||||
}
|
||||
break;
|
||||
case "reset":
|
||||
m_loginService.setloginlevel(0);
|
||||
break;
|
||||
case "text":
|
||||
if (cmd.Length > 2)
|
||||
{
|
||||
m_loginService.setwelcometext(cmd[2]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void RunCommand(string module, string[] cmd)
|
||||
{
|
||||
List<string> args = new List<string>(cmd);
|
||||
string command = cmd[0];
|
||||
|
||||
args.RemoveAt(0);
|
||||
|
||||
string[] cmdparams = args.ToArray();
|
||||
|
||||
switch (command)
|
||||
{
|
||||
case "create":
|
||||
do_create(cmdparams);
|
||||
@@ -315,26 +381,6 @@ namespace OpenSim.Grid.UserServer
|
||||
break;
|
||||
|
||||
|
||||
case "login-level":
|
||||
// Set the minimal level to allow login
|
||||
// Usefull to allow grid update without worrying about users.
|
||||
// or fixing critical issue
|
||||
if (cmdparams.Length == 1)
|
||||
{
|
||||
int level = Convert.ToInt32(cmdparams[0]);
|
||||
m_loginService.setloginlevel(level);
|
||||
}
|
||||
break;
|
||||
case "login-reset":
|
||||
m_loginService.setloginlevel(0);
|
||||
break;
|
||||
case "login-text":
|
||||
if (cmdparams.Length == 1)
|
||||
{
|
||||
m_loginService.setwelcometext(cmdparams[0]);
|
||||
}
|
||||
break;
|
||||
|
||||
case "test-inventory":
|
||||
// RestObjectPosterResponse<List<InventoryFolderBase>> requester = new RestObjectPosterResponse<List<InventoryFolderBase>>();
|
||||
// requester.ReturnResponseVal = TestResponse;
|
||||
|
||||
Reference in New Issue
Block a user