RemoteAdmin

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Example in PHP)
(added another php rpc example)
Line 39: Line 39:
  
 
This example needs the RemoteAdmin PHP Class file available [http://code.google.com/p/opensimtools/wiki/RemoteAdminPHPClass here].
 
This example needs the RemoteAdmin PHP Class file available [http://code.google.com/p/opensimtools/wiki/RemoteAdminPHPClass here].
 
+
<source lang=php>
<pre>
+
 
<?php
 
<?php
  
Line 63: Line 62:
 
$parameters = array('user_firstname' => 'Ruth', 'user_lastname' => 'OpenSim', 'user_password' => 'MyPassword', 'start_region_x' => '1000', 'start_region_y' => '1000');
 
$parameters = array('user_firstname' => 'Ruth', 'user_lastname' => 'OpenSim', 'user_password' => 'MyPassword', 'start_region_x' => '1000', 'start_region_y' => '1000');
 
$myRemoteAdmin->SendCommand('admin_create_user', $parameters);
 
$myRemoteAdmin->SendCommand('admin_create_user', $parameters);
 
+
?>
?></pre>
+
</source>
  
 
Note: This script does not appear to work for create user because it tries to pass the start region x and y as a string when the RemoteAdmin needs a string.  The class needs to be edited to pass it as a number or edit the remoteadmin source to convert the string to a unsigned int.
 
Note: This script does not appear to work for create user because it tries to pass the start region x and y as a string when the RemoteAdmin needs a string.  The class needs to be edited to pass it as a number or edit the remoteadmin source to convert the string to a unsigned int.
 +
 +
Another example in PHP5, using CURL.
 +
<source lang="php">
 +
//This is the slightly modified RPC-class of the BSD-licensed WiXTD webportal
 +
<?php
 +
class RemotePC {
 +
 +
function __construct() {
 +
        $this->serveruri = "http://myhost";
 +
        $this->serverport ="9000";
 +
        $this->password ="foobar";
 +
}
 +
 +
function call($command,$parameters) {
 +
        $parameters['password'] = $this->password;
 +
$request = xmlrpc_encode_request($command, $parameters);
 +
$ch = curl_init();
 +
curl_setopt( $ch, CURLOPT_URL, $this->serveruri);
 +
curl_setopt( $ch, CURLOPT_PORT, $this->serverport]);
 +
curl_setopt($ch, CURLOPT_POST, 1);
 +
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1);
 +
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $request);
 +
curl_setopt ( $ch, CURLOPT_TIMEOUT, 5);
 +
$result = curl_exec($ch);
 +
curl_close($ch);
 +
return xmlrpc_decode($result);
 +
}
 +
}
 +
?>
 +
</source>
  
 
== RemoteAdmin Commands ==
 
== RemoteAdmin Commands ==

Revision as of 10:43, 4 September 2008

Caution ! The RemoteAdmin feature is unsecured at this time. For testing uses only.

Contents

How to Setup the Remote Admin

Setup OpenSim

First you should enable the remote admin interface to do so just add the following lines to your OpenSim.ini file:

[RemoteAdmin]
enabled = true
access_password = secret

Example in Python

# Author  : DrScofield 
# Source  : http://xyzzyxyzzy.net/2008/01/23/using-pythons-xmlrpclib-with-opensim/
# License : BSD License

#!/usr/bin/python  
import xmlrpclib  
  
# XML-RPC URL (http_listener_port)  
gridServerURL = ‘http://127.0.0.1:9000′  
   
# instantiate server object  
gridServer = xmlrpclib.Server(gridServerURL)  
  
# invoke admin_alert: requires password and message  
gridServer.admin_broadcast({’password’: ’secret’,   ‘message’: ‘the answer is 42′})

RemoteAdmin executable for Windows

The RemoteAdmin executable for Windows is a command line tool based on the RemoteAdmin PHP Class.

Downloads and documentation on the RemoteAdmin Executable webpage

Example in PHP

This example needs the RemoteAdmin PHP Class file available here.

<?php
 
// Author  : Olish Newman
// Source  : http://code.google.com/p/opensimtools/wiki/RemoteAdminPHPClass
// Licence : BSD License
 
// Including the RemoteAdmin PHP class. It can be downloaded from the link above.
include('RemoteAdmin.php');
 
// Instantiate the class with parameters identical to the Python example above
$myRemoteAdmin = new RemoteAdmin('127.0.0.1', 9000, 'secret');
 
// Invoke admin_broadcast
$parameters = array('message' => 'the answer is 42');
$myRemoteAdmin->SendCommand('admin_broadcast', $parameters);
 
// Invoke admin_shutdown (example for use without parameters)
$myRemoteAdmin->SendCommand('admin_shutdown');
 
// Invoke admin_create_user (multiple parameters)
$parameters = array('user_firstname' => 'Ruth', 'user_lastname' => 'OpenSim', 'user_password' => 'MyPassword', 'start_region_x' => '1000', 'start_region_y' => '1000');
$myRemoteAdmin->SendCommand('admin_create_user', $parameters);
?>

Note: This script does not appear to work for create user because it tries to pass the start region x and y as a string when the RemoteAdmin needs a string. The class needs to be edited to pass it as a number or edit the remoteadmin source to convert the string to a unsigned int.

Another example in PHP5, using CURL.

//This is the slightly modified RPC-class of the BSD-licensed WiXTD webportal
<?php
class RemotePC {
 
	function __construct() {
        $this->serveruri = "http://myhost";
        $this->serverport ="9000";
        $this->password ="foobar";
	}
 
	function call($command,$parameters) {
        $parameters['password'] = $this->password;
	$request = xmlrpc_encode_request($command, $parameters);
	$ch = curl_init();
	curl_setopt( $ch, CURLOPT_URL, $this->serveruri);
	curl_setopt( $ch, CURLOPT_PORT, $this->serverport]);	
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt ( $ch, CURLOPT_POSTFIELDS, $request);
	curl_setopt ( $ch, CURLOPT_TIMEOUT, 5);	
	$result = curl_exec($ch);
	curl_close($ch); 
	return xmlrpc_decode($result);
	}
}
?>

RemoteAdmin Commands

Name Status Description Parameters
admin_create_region Create a new region region_name, region_master_first, region_master_last, region_master_password, listen_ip, external_address
admin_shutdown Shut down the simulator No parameter needed
admin_broadcast Send a general alert message
admin_restart Restart Region regionid
admin_load_heightmap Load Height Map... filename, regionid
admin_create_user Create a new user user_firstname, user_lastname, user_password, start_region_x, start_region_y
admin_load_xml Execute the Load XML command filename

Credits

Thanks to DrScofield for the Python Script Sources : http://xyzzyxyzzy.net/2008/01/23/using-pythons-xmlrpclib-with-opensim/

Personal tools
General
About This Wiki