Began to create grid server framework
parent
e96573b535
commit
646f8bf186
|
@ -50,6 +50,11 @@ namespace ServerConsole
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract class conscmd_callback {
|
||||||
|
public abstract void RunCmd(string cmd, string[] cmdparams);
|
||||||
|
public abstract void Show(string ShowWhat);
|
||||||
|
}
|
||||||
|
|
||||||
public abstract class ConsoleBase
|
public abstract class ConsoleBase
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<project name="OpenSim" default="build" basedir=".">
|
<project name="ServerConsole" default="build" basedir=".">
|
||||||
<description>nant buildfile for OpenSim</description>
|
|
||||||
<property name="debug" value="true" overwrite="false" />
|
<property name="debug" value="true" overwrite="false" />
|
||||||
<target name="clean" description="remove all generated files">
|
<target name="clean" description="remove all generated files">
|
||||||
<delete file="../common/bin/ServerConsole.dll" failonerror="false" />
|
<delete file="../common/bin/ServerConsole.dll" failonerror="false" />
|
||||||
|
|
|
@ -31,11 +31,9 @@ using System.Collections.Generic;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using libsecondlife;
|
|
||||||
using libsecondlife.Packets;
|
|
||||||
using ServerConsole;
|
using ServerConsole;
|
||||||
|
|
||||||
namespace OpenSim
|
namespace OpenGridServices
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Description of ServerConsole.
|
/// Description of ServerConsole.
|
||||||
|
@ -45,32 +43,34 @@ namespace OpenSim
|
||||||
|
|
||||||
private ConsoleType ConsType;
|
private ConsoleType ConsType;
|
||||||
StreamWriter Log;
|
StreamWriter Log;
|
||||||
|
public conscmd_callback cmdparser;
|
||||||
|
public string componentname;
|
||||||
|
|
||||||
// STUPID HACK ALERT!!!! STUPID HACK ALERT!!!!!
|
// STUPID HACK ALERT!!!! STUPID HACK ALERT!!!!!
|
||||||
// constype - the type of console to use (see enum ConsoleType)
|
// constype - the type of console to use (see enum ConsoleType)
|
||||||
// sparam - depending on the console type:
|
// sparam - depending on the console type:
|
||||||
// TCP - the IP to bind to (127.0.0.1 if blank)
|
// TCP - the IP to bind to (127.0.0.1 if blank)
|
||||||
// Local - param ignored
|
// Local - param ignored
|
||||||
// SimChat - the AgentID of this sim's admin
|
|
||||||
// and for the iparam:
|
// and for the iparam:
|
||||||
// TCP - the port to bind to
|
// TCP - the port to bind to
|
||||||
// Local - param ignored
|
// Local - param ignored
|
||||||
// SimChat - the chat channel to accept commands from
|
// LogFile - duh
|
||||||
public MServerConsole(ConsoleType constype, string sparam, int iparam) {
|
// componentname - which component of the OGS system? (user, asset etc)
|
||||||
|
|
||||||
|
public MServerConsole(ConsoleType constype, string sparam, int iparam, string LogFile, string componentname) {
|
||||||
ConsType = constype;
|
ConsType = constype;
|
||||||
|
this.componentname = componentname;
|
||||||
switch(constype) {
|
switch(constype) {
|
||||||
case ConsoleType.Local:
|
case ConsoleType.Local:
|
||||||
Console.WriteLine("ServerConsole.cs - creating new local console");
|
Console.WriteLine("ServerConsole.cs - creating new local console");
|
||||||
Console.WriteLine("Logs will be saved to current directory in opensim-console.log");
|
Console.WriteLine("Logs will be saved to current directory in " + LogFile);
|
||||||
Log=File.AppendText("opensim-console.log");
|
Log=File.AppendText(LogFile);
|
||||||
Log.WriteLine("========================================================================");
|
Log.WriteLine("========================================================================");
|
||||||
//Log.WriteLine("OpenSim " + VersionInfo.Version + " Started at " + DateTime.Now.ToString());
|
Log.WriteLine(componentname + VersionInfo.Version + " Started at " + DateTime.Now.ToString());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ConsoleType.TCP:
|
case ConsoleType.TCP:
|
||||||
break;
|
break;
|
||||||
case ConsoleType.SimChat:
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Console.WriteLine("ServerConsole.cs - what are you smoking? that isn't a valid console type!");
|
Console.WriteLine("ServerConsole.cs - what are you smoking? that isn't a valid console type!");
|
||||||
|
@ -79,7 +79,7 @@ namespace OpenSim
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Close() {
|
public override void Close() {
|
||||||
Log.WriteLine("OpenSim shutdown at " + DateTime.Now.ToString());
|
Log.WriteLine("Shutdown at " + DateTime.Now.ToString());
|
||||||
Log.Close();
|
Log.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,54 +141,25 @@ namespace OpenSim
|
||||||
|
|
||||||
// Runs a command with a number of parameters
|
// Runs a command with a number of parameters
|
||||||
public override Object RunCmd(string Cmd, string[] cmdparams) {
|
public override Object RunCmd(string Cmd, string[] cmdparams) {
|
||||||
switch(Cmd) {
|
cmdparser.RunCmd(Cmd, cmdparams);
|
||||||
case "help":
|
|
||||||
this.WriteLine("show users - show info about connected users");
|
|
||||||
this.WriteLine("shutdown - disconnect all clients and shutdown");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "show":
|
|
||||||
ShowCommands(cmdparams[0]);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "shutdown":
|
|
||||||
OpenSim_Main.Shutdown();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Shows data about something
|
// Shows data about something
|
||||||
public override void ShowCommands(string ShowWhat) {
|
public override void ShowCommands(string ShowWhat) {
|
||||||
switch(ShowWhat) {
|
cmdparser.Show(ShowWhat);
|
||||||
case "uptime":
|
|
||||||
this.WriteLine("OpenSim has been running since " + OpenSim_Main.sim.startuptime.ToString());
|
|
||||||
this.WriteLine("That is " + (DateTime.Now-OpenSim_Main.sim.startuptime).ToString());
|
|
||||||
break;
|
|
||||||
case "users":
|
|
||||||
OpenSim.world.Avatar TempAv;
|
|
||||||
this.WriteLine(String.Format("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16},{5,-16}","Firstname", "Lastname","Agent ID", "Session ID", "Circuit", "IP"));
|
|
||||||
foreach (libsecondlife.LLUUID UUID in OpenSim_Main.local_world.Entities.Keys) {
|
|
||||||
TempAv=(OpenSim.world.Avatar)OpenSim_Main.local_world.Entities[UUID];
|
|
||||||
this.WriteLine(String.Format("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16},{5,-16}",TempAv.firstname, TempAv.lastname,UUID, TempAv.ControllingClient.SessionID, TempAv.ControllingClient.CircuitCode, TempAv.ControllingClient.userEP.ToString()));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Displays a prompt to the user and then runs the command they entered
|
|
||||||
public override void MainConsolePrompt() {
|
|
||||||
string[] tempstrarray;
|
|
||||||
string tempstr = this.CmdPrompt("OpenSim-" + OpenSim_Main.cfg.RegionHandle.ToString() + " # ");
|
|
||||||
tempstrarray = tempstr.Split(' ');
|
|
||||||
string cmd=tempstrarray[0];
|
|
||||||
Array.Reverse(tempstrarray);
|
|
||||||
Array.Resize<string>(ref tempstrarray,tempstrarray.Length-1);
|
|
||||||
Array.Reverse(tempstrarray);
|
|
||||||
string[] cmdparams=(string[])tempstrarray;
|
|
||||||
RunCmd(cmd,cmdparams);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void MainConsolePrompt() {
|
||||||
|
string[] tempstrarray;
|
||||||
|
string tempstr = this.CmdPrompt(this.componentname + "# ");
|
||||||
|
tempstrarray = tempstr.Split(' ');
|
||||||
|
string cmd=tempstrarray[0];
|
||||||
|
Array.Reverse(tempstrarray);
|
||||||
|
Array.Resize<string>(ref tempstrarray,tempstrarray.Length-1);
|
||||||
|
Array.Reverse(tempstrarray);
|
||||||
|
string[] cmdparams=(string[])tempstrarray;
|
||||||
|
RunCmd(cmd,cmdparams);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) OpenSim project, http://osgrid.org/
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* * Neither the name of the <organization> nor the
|
||||||
|
* names of its contributors may be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
|
||||||
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace OpenGridServices
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// </summary>
|
||||||
|
public class VersionInfo
|
||||||
|
{
|
||||||
|
public static string Version = "@@VERSION";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<project name="GridServer" default="build" basedir=".">
|
||||||
|
<property name="debug" value="true" overwrite="false" />
|
||||||
|
<target name="clean" description="remove all generated files">
|
||||||
|
<delete file="bin/GridServer.exe" failonerror="false" />
|
||||||
|
<delete file="bin/GridServer.exe.mdb" failonerror="false" />
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="svnupdate" description="updates to latest SVN">
|
||||||
|
<exec program="svn">
|
||||||
|
<arg value="update" />
|
||||||
|
</exec>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="upgrade" description="updates from SVN and then builds" depends="clean,svnupdate,build">
|
||||||
|
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="build" description="compiles the source code">
|
||||||
|
|
||||||
|
<loadfile file="../VERSION" property="svnver"/>
|
||||||
|
<asminfo output="AssemblyInfo.cs" language="CSharp">
|
||||||
|
<imports>
|
||||||
|
<import namespace="System" />
|
||||||
|
<import namespace="System.Reflection" />
|
||||||
|
<import namespace="System.Runtime.InteropServices" />
|
||||||
|
</imports>
|
||||||
|
<attributes>
|
||||||
|
<attribute type="ComVisibleAttribute" value="false" />
|
||||||
|
<attribute type="CLSCompliantAttribute" value="false" />
|
||||||
|
<attribute type="AssemblyVersionAttribute" value="${svnver}" />
|
||||||
|
<attribute type="AssemblyTitleAttribute" value="ogs-GridServer" />
|
||||||
|
<attribute type="AssemblyDescriptionAttribute" value="The core OGS Grid Server" />
|
||||||
|
<attribute type="AssemblyCopyrightAttribute" value="Copyright © OGS development team 2007"/>
|
||||||
|
</attributes>
|
||||||
|
</asminfo>
|
||||||
|
|
||||||
|
<csc target="exe" output="bin/GridServer.exe" debug="${debug}" verbose="true" warninglevel="4">
|
||||||
|
<references failonempty="true">
|
||||||
|
<include name="System" />
|
||||||
|
<include name="System.Xml" />
|
||||||
|
<include name="../common/bin/ServerConsole.dll" />
|
||||||
|
</references>
|
||||||
|
<sources>
|
||||||
|
<include name="../common/src/VersionInfo.cs" />
|
||||||
|
<include name="../common/src/OGS-Console.cs" />
|
||||||
|
<include name="src/Main.cs" />
|
||||||
|
</sources>
|
||||||
|
</csc>
|
||||||
|
</target>
|
||||||
|
</project>
|
|
@ -0,0 +1,63 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) OpenSim project, http://osgrid.org/
|
||||||
|
|
||||||
|
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* * Neither the name of the <organization> nor the
|
||||||
|
* names of its contributors may be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
|
||||||
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Text;
|
||||||
|
using ServerConsole;
|
||||||
|
|
||||||
|
namespace OpenGridServices
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// </summary>
|
||||||
|
public class OpenGrid_Main
|
||||||
|
{
|
||||||
|
|
||||||
|
public static OpenGrid_Main thegrid;
|
||||||
|
|
||||||
|
[STAThread]
|
||||||
|
public static void Main( string[] args )
|
||||||
|
{
|
||||||
|
Console.WriteLine("OpenGrid " + VersionInfo.Version + "\n");
|
||||||
|
Console.WriteLine("Starting...\n");
|
||||||
|
ServerConsole.MainConsole.Instance = new MServerConsole(ServerConsole.ConsoleBase.ConsoleType.Local, "", 0, "opengrid-console.log", "OpenGrid");
|
||||||
|
|
||||||
|
thegrid = new OpenGrid_Main();
|
||||||
|
thegrid.Startup();
|
||||||
|
|
||||||
|
while(true) {
|
||||||
|
ServerConsole.MainConsole.Instance.MainConsolePrompt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Startup() {
|
||||||
|
ServerConsole.MainConsole.Instance.WriteLine("Main.cs:Startup() - Looking for configuration");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<project name="OGS" default="build" basedir=".">
|
||||||
|
<description>nant buildfile for OpenSim</description>
|
||||||
|
<property name="debug" value="true" overwrite="false" />
|
||||||
|
<target name="clean" description="remove all generated files">
|
||||||
|
<nant target="clean">
|
||||||
|
<buildfiles>
|
||||||
|
<include name="ServerConsole/default.build" />
|
||||||
|
<include name="gridserver/default.build" />
|
||||||
|
</buildfiles>
|
||||||
|
</nant>
|
||||||
|
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="svnupdate" description="updates to latest SVN">
|
||||||
|
<exec program="svn">
|
||||||
|
<arg value="update" />
|
||||||
|
</exec>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="upgrade" description="updates from SVN and then builds" depends="clean,svnupdate,build">
|
||||||
|
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="build" description="compiles the source code">
|
||||||
|
|
||||||
|
<exec program="genvers.sh" />
|
||||||
|
<loadfile file="VERSION" property="svnver"/>
|
||||||
|
|
||||||
|
<nant>
|
||||||
|
<buildfiles>
|
||||||
|
<include name="ServerConsole/default.build" />
|
||||||
|
<include name="gridserver/default.build" />
|
||||||
|
</buildfiles>
|
||||||
|
</nant>
|
||||||
|
|
||||||
|
</target>
|
||||||
|
</project>
|
Loading…
Reference in New Issue