* Fixes the admin_shutdown xmlrpc method
* Adds a share/python/console/shutdown.py script for shutting down a background OpenSim
* For more details see http://xyzzyxyzzy.net/2008/04/29/console-less-opensim/
* There should also be instructions in the opensimulator wiki soon as well
Note: This is the first part of some changes from Dr Scofield to support console-less operation of an OpenSim region server.
The changes are not yet complete.
* refactors OpenSimMain into two classes: OpenSimMain and
OpenSimMainConsole. OpenSimMainConsole derives from OpenSimMain
and basically is the "old" OpenSimMain
* drops StartConsole from RegionApplicationBase (was only called
from the "old" OpenSimMain anyhow)
* reverts the changes to TryGetScene(string, out scene) as that
seems to work perfectly fine
* adds a check to region-remove to see whether
m_sceneManger.CurrentScene is non-null before comparing it against
the region-to-be-removed
the attached patch set is centered around RemoteAdminPlugin and focuses
mainly on making it more robust (i.e. more parameter checking and better
error reporting) but also we've re-implemented the LoadTerrain stuff that
got disabled during the terrain code reworking:
* missing PostInitialize() calls on region modules that were loaded
for regions created via RemoteAdmin's CreateRegion XmlRpc call
* re-implements RemoteAdmin's LoadTerrain XmlRpc call (probably lost
during the TerrainModule rework)
* adds lots more parameter checking and error reporting to RemoteAdmin
* adds a read-only property to RegionApplicationBase so that we can
access the CommsManager
* adds Exceptions to TerrainModule so that we get better error case
feedback (and can report more meaningful errors in turn)
* adds a CheckForTerrainUpdate() call to
TerrainModule.LoadFromFile() to make terrain changes effective
* adds TryGetCurrentScene(LLUUID) to SceneManager so that we can
retrieve Scenes not only by name but also by LLUUID
cheers,
dr scofield
* (and Ansgar/Ansi)
* Fleshes out the voice stubs to better interact with the viewer CAPS requests - no actual voice support yet!
* In his own words
"the attached patch enhances the existing voice support by returning a proper voice account user and password and is preparing the config file so that we can specify a SIP server (not yet working). currently the SIP is hardcoded. the next step is to refactor voice support into a region module. working on that. "
* Renamed plugin console message, to send a message to a plugin, use either "plugin <message>", or any unrecognised message will be sent ("plugin" sends explicitly) This replaces the old "script <message>".
* Terrain commands - "terrain <command>" now works again. "Script terrain <command>" does not. Many of the commands have now been reimplemented, eg load-tile. However some have new syntax.
* New console command handler, you can now use things like "terrain help" or "terrain save help". See TerrainModule.cs for an example of how to use the new "Commander" class.
* Commander class - advanced processing of console input and also enables a script API to be generated from registered console commands.
Most likely doesn't really work in grid mode as the generated textures are marked as temporary and I don't think they are updated to the asset server. We have to either live with these textures being sent to the asset server, and manually clean them out from time to time or wait until there is some asset management system in place.
Also currently the texture is only generated at region startup, it is not updated after terraforming.
* This means that caps methods (editing scripts, poss map functions, etc) on non-home regions should now work with servers which are listening for http ports on a non default
(9000) port.
* If you are running a region server, this may only work properly once your grid server upgrades to this revision
* PLEASE NOTE: This shouldn't cause inter-region problems if one end of the connection hasn't upgraded to this revision. However if it does, the instability will persist until
the grid and region (and possibly all the region's neighbours) have upgraded to this revision.
* This revision also adds extra login related messages, both for success and failure conditions
* See OpenSim.ini.example for more details
* The old sqlite/mssql settings were redundant and effectively ignored anyway. Hence, there's no need for you to change your current settings, which will still work
* In fact, asset_database should probably be moved to [Network] since it's meaningless for standalone installations
Added experimental console command to:
* unload module (note: module probably doesn't support it)
* load module
Not visible in help (needs testing first).
'show assets' shows the current state of the asset cache (number of cached assets, requests, et c)
'clear-assets' forcibly re-initializes the asset cache thereby freeing all cached items.
'clear-assets' is not to be used lightly, as it probably introduces mem inconsistencies and doubling up of textures.
* The immediate upshot is that "show uptime" from the console will now show uptime on all server types (user, asset, grid, etc)
* DEV: This refactoring is far from complete - only just enough to makes the "show uptime" command common accross the servers. More is needed, but in this case it's somewhat like eating cabbage, which I prefer not to do all at once
To use, see the appearance section in opensim.ini.example, set "persist = true", then add the correct connection string for your database.(see mysql-AvatarAppearance.sql in share folder for a example of the table mysql table structure).
This could possible be used in a very small grid, but would mean each region server would need to connect to the same mysql database.
But the work to move the code to one of the grid servers shouldn't be too much.
CONFIG SET section key value value value
CONFIG GET section key
CONFIG SAVE (it saves, but does it save correctly?:)
ScriptEngine will react correctly to any config change made while it is running.
* You can type 'stats' at the REGION# prompt to get this information in grid or standalone mode
* Don't take these numbers as gospel yet, since for some reason textures displayed from inventory which require downloading from the server are being recorded as assets
rather than textures
* But I don't have any reason to believe they aren't broadly accurate.
* I've put these in so I can tell whether the high memory usage on regions is down to the asset/texture cache
* This will require a prebuild
* DEV: Only adds needed to be implemented since, as far as I can tell, assets cached are currently never released. For my part, seeing large cache memory numbers will
provoke me to think about doing something about this.
* DEV: Now switched to using a singleton to get the stats reporters rather than threading the object through various layers
* DEV: Will refactor the other server stats reporters to do this in one of the next commits
* Typing 'stats' on the command line will given total number of successful logins today and yesterday
* A little bit more to come, probably
* Refactoring will follow next
* Persistence of things apart from scripts will be implemented later on - I at least want to do some work with asset server stats so loading can be monitored first.
* No MSSQL implementation as of yet
* Progress can be followed at http://opensimulator.org/wiki/OpenSim:Prim_Inventory_Persistence
* Please let me know if you see issues resulting from this change.
** If the region fails 3 times, then ChildAgentDataUpdates no longer get sent to that region
* Enabled Child_Get_Tasks in grid mode.
* When Child_Get_Tasks is enabled on neighbor regions, the neighbor region uses the client's draw distance to send out prim. This is a lot less likely to flood the client now since the ChildAgentDataUpdate contains both the throttle settings and the draw distance. This means that with this enabled, you can see prim in other regions in grid mode. Very experimental.
* Cleaned up copyright notices in AssemblyInfo.cs's
* Added Copyright headers to a bunch of files missing them
* Replaced several common string instances with a static constant to prevent reallocation of the same strings thousands of times. "" -> String.Empty is the first such candidate.
* This can be turned on by setting storage_prim_inventories_experimental = True in OpenSim.ini
* Implemented for sqlite and MySQL, no MSSQL implementation yet
* As an experimental feature, there is no guarantee that this won't take down your region or that the db representation won't need to change.
* More (and continuing) details at http://opensimulator.org/wiki/OpenSim:Prim_Inventory_Persistence
* I'm keeping it deactivated until some issues are resolved.
* I'm patching it in deactivated so the patch doesn't get outdated
* I've deactivated it by commenting out the handler for the application/xml+llsd content type.
* While I've tested this as much as possible on my setup and found the deactivated code doesn't cause any problems, consider this update experimental (event though it's deactivated)
* Removed hackish timer based client notification about regions up (no longer needed)
* Added a comment about an inventory based login failure that causes me lots of greif testing and debugging. Comment includes *why* it's failing.
This patch adds x, y, and z offsets to the load-xml command.
If you had a prim at 100,100,20 thats where it would get loaded everytime.
This patch lets you place it at an offset from 100,100,20.. as such:
load-xml <filespec> -newUI 3 1 2
Loading the prim at 103, 101, 22
To use append "-newUID" to the end of the command, so new format is : "load-xml <filename> -newUID".
If you don't add the "-newUID", then the uuids in the xml file will be kept.
* The sims properly restart, however they don't yet notify the existing avatars that they are up. To see the sim again, you'll need to log-out and back in until I can figure out how to get the proper data to the sims and to the avatar so they reconnect again.
* Added the child_get_tasks OpenSim.ini flag for testing the UDP packet sending code and packet throttler. This flag gets purposely disabled in grid mode. This flag also has the consequence that you can see the prim in neighboring regions without going into them. Be warned, this causes tons of dropped packets.
Moved PermissionManager creation out of the Scene constructor and instead a PermissionManager is passed to the constructor as a param. So that we could create and use custom permissionsManagers.
Added AllowMovement property to ScenePresence which can be used to stop movement of avatars (for example in a custom region that wanted avatars always in one place).
Added PermissionManager call when copying objects, although currently the call will always return true so that it allows copying in places like Wright Plaza.
A few other changes/fixes.
* Now moved region storage from region to application, so we have one storage per application, instead of one per region.
* Changed so that the region store providers use connectionstrings, not filenames
* Removed various unfit fields and properties (call me Darwin)