Hi Ian
I still have the same problem even if I expand the node several times...
Here is what it says:
#~ sudo xenman
Valid, writable configuration found, using /etc/xenman.conf
cyberxen2 True
/************ I get the gui in which I can find 2 nodes: localhost and
cyberxen2************************
************* If I click on localhost to expand it I can see "Domain0
and only **************************
************* the following output in the console:
*****************************************************/
resetting last_error
/************ When I click on cyberxen2 (my remote xen host) to expand
its ***************************
************* contents, in the console output I get:
****************************************************/
Warning : Host not found ! cyberxen2
Could not initialize ssh for cyberxen2 22
/************ And the GUI shows a dialog box asking for SSH login/pass
******************************
************ So I fil in the boxes with the appropriated credentials and
here is what I get:*************/
Warning : Host not found ! cyberxen2
got expat error no element found: line 1, column 0
got expat error no element found: line 1, column 0
got expat error no element found: line 1, column 0
got expat error no element found: line 1, column 0
Traceback (most recent call last):
File "/usr/share/xenman/src/xenman.py", line 547, in handle_timer_callback
cls.notebook.showSummaryTab()
File "/usr/share/xenman/src/xenman.py", line 751, in showSummaryTab
self.summary_tab.refresh()
File "/usr/share/xenman/src/xenman.py", line 1159, in refresh
doms = managed_node.get_dom_names()
File "/usr/share/xenman/src/XenNode.py", line 122, in get_dom_names
return self.dom_list.iterkeys()
File "/usr/share/xenman/src/XenNode.py", line 357, in iterkeys
return self.dom_dict.keys()
File "/usr/share/xenman/src/XenNode.py", line 290, in __getattr__
return self._init_dom_list()
File "/usr/share/xenman/src/XenNode.py", line 285, in _init_dom_list
self.refresh()
File "/usr/share/xenman/src/XenNode.py", line 296, in refresh
dom_list_info = self.node.node_proxy.xend.domains(1)
File "/usr/share/xenman/src/XenServerProxy.py", line 165, in __call__
ret = self.__send(self.__name, args)
File "/usr/lib/xen-3.0.3-1/lib/python/xen/util/xmlrpclib2.py", line
122, in __request
response = xmlrpclib.ServerProxy.__request(self, methodname, params)
File "xmlrpclib.py", line 1383, in __request
verbose=self.__verbose
File "/usr/share/xenman/src/XenServerProxy.py", line 133, in request
return Transport.request(self, host, '/RPC2', request_body, verbose)
File "xmlrpclib.py", line 1147, in request
return self._parse_response(h.getfile(), sock)
File "xmlrpclib.py", line 1284, in _parse_response
p.close()
File "xmlrpclib.py", line 530, in close
self._parser.Parse("", 1) # end of data
ExpatError: no element found: line 1, column 0
Exception in callback...ignoring None
got expat error no element found: line 1, column 0
/******** And the error recursivly continues as if it came from a
loop**********/
Does It help?
Ian Norton-Badrul wrote:
> Hi Alex,
>
> If i put in a remote hostname I
> get:
>
> Warning : Host not found ! gaspode
> got expat error junk after document element: line 6, column 0
> Valid, writable configuration found, using /etc/xenman.conf
> got expat error syntax error: line 1, column 0
> Traceback (most recent call last):
> File "/usr/share/xenman/src/xenman.py", line 181, in handle_row_expanded
> ....
>
> But,
>
> Wierldy, If i click the new server in the sidebar again then I can see
> all of the VMs running on my remote machine. But I always have to click
> twice.
>
> I think it is some bad string being extracted from the cpu usage stats
> for each domU on the other host as I don't get this locally.
>
> Also, (see my patch) I get alot of errors like this if one of my domUs
> has a space in a device name (eg from a symlink or file vbd)
>
> Ian
>
> Ian
>
> On Thu, Mar 22, 2007 at 12:03:48PM +0100, Alexandre Chapellon wrote:
>
>> Ian Norton-Badrul wrote:
>>
>>> Hm, it looks like the xmlrpc server itself is working.
>>>
>>> Are you connecting with xenman remotely? or locally?
>>>
>>>
>> Well I try connect with xenman remotely (as I want to get a centralised
>> management station)
>>
>>
>>> Ian
>>>
>>> On Thu, Mar 22, 2007 at 08:18:24AM +0100, Alexandre Chapellon wrote:
>>>
>>>
>>>> Hello there,
>>>>
>>>> this is what I get:
>>>>
>>>> ~# ./xml-rpc-api2html [1]http://localhost:8005
>>>> <html>
>>>> <head><title>XML API for [2]http://localhost:8005</title>
>>>> </head>
>>>> <body>
>>>> <h1>XML-RPC API for [3]http://localhost:8005</h1>
>>>>
>>>> See [4]http://www.linuxdoc.org/HOWTO/XML-RPC-HOWTO/index.html for
>>>> instructions
>>>> on using XML-RPC with Perl, Python, Java, C, C++, PHP, etc.
>>>> <h2>Methods</h2>
>>>> <hr>
>>>>
>>>> <h3>system.listMethods</h3>
>>>> system.listMethods() => ['add', 'subtract', 'multiple'] Returns a list
>>>> of the methods supported by the server.<hr>
>>>>
>>>> <h3>system.methodHelp</h3>
>>>> system.methodHelp('add') => "Adds two integers together" Returns a
>>>> string containing documentation for the specified method.<hr>
>>>>
>>>> <h3>system.methodSignature</h3>
>>>> system.methodSignature('add') => [double, int, int] Returns a list
>>>> describing the signature of the method. In the above example, the add
>>>> method takes two integers as arguments and returns a double result.
>>>> This
>>>> server does NOT support system.methodSignature.<hr>
>>>>
>>>> <h3>xend.domain</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.configure</h3>
>>>> Configure an existing domain. <br><b>param: </b> vmconfig: vm
>>>> configuration<hr>
>>>>
>>>> <h3>xend.domain.cpu_sedf_get</h3>
>>>> Get Simple EDF scheduler parameters for a domain.<hr>
>>>>
>>>> <h3>xend.domain.cpu_sedf_set</h3>
>>>> Set Simple EDF scheduler parameters for a domain.<hr>
>>>>
>>>> <h3>xend.domain.create</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.destroy</h3>
>>>> Terminate domain immediately.<hr>
>>>>
>>>> <h3>xend.domain.destroyDevice</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.device_configure</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.device_create</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.dump</h3>
>>>> Dump domain core.<hr>
>>>>
>>>> <h3>xend.domain.getDeviceSxprs</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.getRestartCount</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.getVCPUInfo</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.ioport_range_disable</h3>
>>>> Disable access to a range of IO ports for a domain <br><b>param: </b>
>>>> first: first IO port <br><b>param: </b> last: last IO port
>>>> <br><b>returns: </b>: 0 on success, -1 on error<hr>
>>>>
>>>> <h3>xend.domain.ioport_range_enable</h3>
>>>> Enable access to a range of IO ports for a domain <br><b>param: </b>
>>>> first: first IO port <br><b>param: </b> last: last IO port
>>>> <br><b>returns: </b>: 0 on success, -1 on error<hr>
>>>>
>>>> <h3>xend.domain.lookup</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.lookup_by_name_nr</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.lookup_by_name_or_id</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.lookup_by_name_or_id_nr</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.lookup_nr</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.maxmem_set</h3>
>>>> Set the memory limit for a domain. <br><b>param: </b> mem: memory
>>>> limit
>>>> (in MiB) <br><b>returns: </b>: 0 on success, -1 on error<hr>
>>>>
>>>> <h3>xend.domain.migrate</h3>
>>>> Start domain migration.<hr>
>>>>
>>>> <h3>xend.domain.pause</h3>
>>>> Pause domain execution.<hr>
>>>>
>>>> <h3>xend.domain.pincpu</h3>
>>>> Set which cpus vcpu can use <br><b>param: </b> cpumap: string repr of
>>>> list of usable cpus<hr>
>>>>
>>>> <h3>xend.domain.restore</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.restore_fd</h3>
>>>> Restore a domain from the given file descriptor.<hr>
>>>>
>>>> <h3>xend.domain.save</h3>
>>>> Start saving a domain to file. <br><b>param: </b> dst:
>>>> destination
>>>> file<hr>
>>>>
>>>> <h3>xend.domain.sched_credit_get</h3>
>>>> Get credit scheduler parameters for a domain.<hr>
>>>>
>>>> <h3>xend.domain.sched_credit_set</h3>
>>>> Set credit scheduler parameters for a domain.<hr>
>>>>
>>>> <h3>xend.domain.send_sysrq</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.setMemoryTarget</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.setName</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.setVCpuCount</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.shadow_control</h3>
>>>> Shadow page control.<hr>
>>>>
>>>> <h3>xend.domain.shadow_mem_get</h3>
>>>> Get shadow pagetable memory allocation.<hr>
>>>>
>>>> <h3>xend.domain.shadow_mem_set</h3>
>>>> Set shadow pagetable memory allocation.<hr>
>>>>
>>>> <h3>xend.domain.shutdown</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domain.unpause</h3>
>>>> Unpause domain execution.<hr>
>>>>
>>>> <h3>xend.domain.waitForDevices</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.domains</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.node.dmesg.clear</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.node.dmesg.info</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.node.info</h3>
>>>> <hr>
>>>>
>>>> <h3>xend.node.log</h3>
>>>> <hr>
>>>>
>>>> Ian Norton-Badrul wrote:
>>>>
>>>> Ah, I forgot it was broken,
>>>>
>>>> here use my modified version: (attached)
>>>>
>>>> Ian
>>>>
>>>> On Wed, Mar 21, 2007 at 05:58:44PM +0100, Alexandre Chapellon wrote:
>>>>
>>>>
>>>> Here is what I get
>>>>
>>>> ~# xml-rpc-api2txt [1][5]http://localhost:8005
>>>> XML-RPC API for [2][6]http://localhost:8005
>>>>
>>>> See [3][7]http://www.linuxdoc.org/HOWTO/XML-RPC-HOWTO/index.html for
>>>> instructions
>>>> on using XML-RPC with Perl, Python, Java, C, C++, PHP, etc.
>>>>
>>>> Can't use string ("signatures not supported") as an ARRAY ref while
>>>> "strict refs" in use at /usr/bin/xml-rpc-api2txt line 118.
>>>>
>>>> doesn't seem very good, does it?
>>>>
>>>> Ian Norton-Badrul wrote:
>>>>
>>>> On Wed, Mar 21, 2007 at 04:03:55PM +0100, Alexandre Chapellon wrote:
>>>>
>>>>
>>>> Ian Norton-Badrul wrote:
>>>>
>>>>
>>>> Hi Alex,
>>>>
>>>> I belive the xmlrpc server listens on port 8006
>>>>
>>>>
>>>>
>>>> Apparently not as if I comment the line "(xend-tcp-xmlrpc-server yes)"
>>>> there is no more 8005 port listening according to netstat, in addition
>>>> xenman specify a port in the dialog box when you add a new node which
>>>> is 8005 by default
>>>>
>>>> Any other Idea?
>>>>
>>>> Do you (or anyone else) have it working with debian and xen 3.0.3?
>>>>
>>>>
>>>> My xen 3.0.3 (27th sept 2006) is also listening on 8005 ( ubuntu dapper
>>>> server )
>>>> My 3.0.4 machine ( ubuntu dapper desktop ) is listening on 8006.
>>>>
>>>> Can you install xml-rpc-api2txt (apt-get install) and point it at
>>>> [4][8]http://localhost:8005
>>>>
>>>> Regards
>>>>
>>>> Ian
>>>>
>>>>
>>>>
>>>> Ian
>>>>
>>>> On Wed, Mar 21, 2007 at 03:01:17PM +0100, Alexandre Chapellon wrote:
>>>>
>>>>
>>>>
>>>> Ian Norton-Badrul wrote:
>>>>
>>>> Hi Alex,
>>>>
>>>>
>>>>
>>>> Hi and first thanks for this fast answer
>>>>
>>>> What version of xen are you running on your remote system? And are you
>>>> sure that machine has the xml rpc server running?
>>>>
>>>>
>>>> I'm running Xen 3.0.3-1 (debian package)
>>>> And I have activated xml rpc as show below:
>>>> (xend-tcp-xmlrpc-server yes)
>>>>
>>>> By the way netstat shows its listenning on lo:8005... as you can see
>>>>
>>>> ~#netstat -tan
>>>> Connexions Internet actives (serveurs et etablies)
>>>> Proto Recv-Q Send-Q Adresse locale Adresse distante Etat
>>>> tcp 0 0 0.0.0.0:8000 0.0.0.0:*
>>>> LISTEN
>>>> tcp 0 0 0.0.0.0:8002 0.0.0.0:*
>>>> LISTEN
>>>> tcp 0 0 127.0.0.1:8005 0.0.0.0:*
>>>> LISTEN
>>>> tcp 0 0 0.0.0.0:9102 0.0.0.0:*
>>>> LISTEN
>>>> tcp6 0 0 :::22 :::*
>>>> LISTEN
>>>> tcp6 0 128 ::ffff:172.20.255.60:22 ::ffff:172.30.0.1:37519
>>>> ESTABLISHED
>>>>
>>>> Am I right?
>>>>
>>>> Ian
>>>>
>>>> On Wed, Mar 21, 2007 at 01:59:49PM +0100, Alexandre Chapellon wrote:
>>>>
>>>>
>>>> Hy all!
>>>>
>>>> I'm interresting in using xenman to manage my Domain0 and and domU upon
>>>> several machines.
>>>> Unfortunatly, when I try to connect to a remote node I get a Domain0 not
>>>> found in the gui and the following error in the console where I launch
>>>> xemna (using sudo xenman):
>>>>
>>>> got expat error no element found: line 1, column 0
>>>>
>>>> The localhost seems to be working but not the remote ones...
>>>>
>>>> I have configured ssh so that It uses login/pass to connect and tcpdump
>>>> shows traffic on the loopback interface when I connect:
>>>>
>>>> 16:02:06.662754 IP 127.0.0.1.1134 > 127.0.0.1.8005: . ack 53 win 4099
>>>> <nop,nop,timestamp 106887986 106887986>16:02:06.662853 IP 127.0.0.1.8005
>>>> > 127.0.0.1.1134: P 53:90(37) ack 298 win 4096 <nop,nop,timestamp
>>>> 106887986 106887986>
>>>> 16:02:06.662860 IP 127.0.0.1.1134 > 127.0.0.1.8005: . ack 90 win 4099
>>>> <nop,nop,timestamp 106887986 106887986>16:02:06.662920 IP 127.0.0.1.8005
>>>> > 127.0.0.1.1134: P 90:114(24) ack 298 win 4096 <nop,nop,timestamp
>>>> 106887986 106887986>
>>>> 16:02:06.662926 IP 127.0.0.1.1134 > 127.0.0.1.8005: . ack 114 win 4099
>>>> <nop,nop,timestamp 106887986 106887986>
>>>> 16:02:06.662984 IP 127.0.0.1.8005 > 127.0.0.1.1134: P 114:136(22) ack
>>>> 298 win 4096 <nop,nop,timestamp 106887986 106887986>
>>>> 16:02:06.662991 IP 127.0.0.1.1134 > 127.0.0.1.8005: . ack 136 win 4099
>>>> <nop,nop,timestamp 106887986 106887986>
>>>> 16:02:06.663036 IP 127.0.0.1.8005 > 127.0.0.1.1134: P 136:138(2) ack 298
>>>> win 4096 <nop,nop,timestamp 106887986 106887986>
>>>> 16:02:06.663042 IP 127.0.0.1.1134 > 127.0.0.1.8005: . ack 138 win 4099
>>>> <nop,nop,timestamp 106887986 106887986>
>>>> 16:02:06.663083 IP 127.0.0.1.8005 > 127.0.0.1.1134: P 138:2339(2201) ack
>>>> 298 win 4096 <nop,nop,timestamp 106887986 106887986>
>>>> 16:02:06.663089 IP 127.0.0.1.1134 > 127.0.0.1.8005: . ack 2339 win 4650
>>>> <nop,nop,timestamp 106887986 106887986>
>>>>
>>>>
>>>> What did I miss?
>>>>
>>>> -------------------------------------------------------------------------
>>>> Take Surveys. Earn Cash. Influence the Future of IT
>>>> Join SourceForge.net's Techsay panel and you'll get the chance to share
>>>> your
>>>> opinions on IT & business topics through brief surveys-and earn cash
>>>>
>>>> [1][5][9]http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>>> _______________________________________________
>>>> XenMan-Users mailing list
>>>> [EMAIL PROTECTED]
>>>> [3][7][11]https://lists.sourceforge.net/lists/listinfo/xenman-users
>>>>
>>>>
>>>> References
>>>>
>>>> Visible links
>>>> 1.
>>>> [8][12]http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>>> 2. [9][13]mailto:[email protected]
>>>> 3. [10][14]https://lists.sourceforge.net/lists/listinfo/xenman-users
>>>>
>>>>
>>>> References
>>>>
>>>> Visible links
>>>> 1. [15]http://localhost:8005/
>>>> 2. [16]http://localhost:8005/
>>>> 3. [17]http://www.linuxdoc.org/HOWTO/XML-RPC-HOWTO/index.html
>>>> 4. [18]http://localhost:8005/
>>>> 5.
>>>> [19]http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>>> 6. [20]mail[21]mailto:[EMAIL PROTECTED]
>>>> 7. [22]https://lists.sourceforge.net/lists/listinfo/xenman-users
>>>> 8.
>>>> [23]http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>>> 9. [24]mailto:[email protected]
>>>> 10. [25]https://lists.sourceforge.net/lists/listinfo/xenman-users
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------
>>>>
>>>> #!/usr/bin/perl -w
>>>> #
>>>> # A handy little script for printing out an XML-RPC API as a
>>>> # nicely-formatted text file. (I wrote this in Perl because of all the
>>>> # spiffy report-generation features.)
>>>> #
>>>> # You'll need to get Ken MacLeod's Frontier::RPC2 module from CPAN to use
>>>> # this.
>>>> #
>>>> # Eric Kidd [26]<[EMAIL PROTECTED]>
>>>> #
>>>> # This script is part of xmlrpc-c, and may be used and distributed under
>>>> # the same terms as the rest of the package.
>>>>
>>>> use strict;
>>>>
>>>> # One global variable for use with Perl's format routines, and one for
>>>> # use inside an 'exec' block.
>>>> use vars qw/$helptext $method_list/;
>>>>
>>>> # Try to load our Perl XML-RPC bindings, but fail gracefully.
>>>> eval {
>>>> require Frontier::Client;
>>>> };
>>>> if ($@) {
>>>> print STDERR <<"EOD";
>>>> This script requires Ken MacLeod\'s Frontier::RPC2 module. You can get this
>>>> from CPAN or from his website at [27]http://bitsko.slc.ut.us/~ken/xml-rpc/
>>>> .
>>>>
>>>> For installation instructions, see the XML-RPC HOWTO at:
>>>> [28]http://www.linuxdoc.org/HOWTO/XML-RPC-HOWTO/index.html
>>>>
>>>> EOD
>>>> exit 1;
>>>> }
>>>>
>>>> # Parse our command-line arguments.
>>>> if (@ARGV != 1 || $ARGV[0] eq "--help") {
>>>> print STDERR "Usage: xml-rpc-api2txt serverURL\n";
>>>> exit 1;
>>>> }
>>>>
>>>> my $server = Frontier::Client->new(url => $ARGV[0]);
>>>>
>>>> # Try (very carefully) to get our a list of methods from the server.
>>>> local $method_list;
>>>> eval {
>>>> $method_list = $server->call('system.listMethods');
>>>> };
>>>> if ($@) {
>>>> print STDERR <<"EOD";
>>>> An error occurred while trying to talk to the XML-RPC server:
>>>>
>>>> $@
>>>>
>>>> This may have been caused by several things--the server might not support
>>>> introspection, it might not be an XML-RPC server, or your network might be
>>>> down. Try the following:
>>>>
>>>> xml-rpc-api2txt [29]http://xmlrpc-c.sourceforge.net/api/sample.php
>>>>
>>>> EOD
>>>> exit 1;
>>>> }
>>>>
>>>> # Enter the methods into a hashtable.
>>>> my @methods = sort @$method_list;
>>>> my %method_table;
>>>> foreach my $method (@methods) {
>>>> $method_table{$method} = {};
>>>> }
>>>>
>>>> # Get more information for the hash table. Since we need to make lots and
>>>> # lots of very small XML-RPC calls, we'd like to use system.multicall to
>>>> # reduce the latency.
>>>> if (defined $method_table{'system.multicall'}) {
>>>>
>>>> # This is messy but fast. Everybody hates HTTP round-trip lag, right?
>>>> my @call;
>>>> foreach my $method (@methods) {
>>>> push @call, {methodName => 'system.methodSignature',
>>>> params => [$method]};
>>>> push @call, {methodName => 'system.methodHelp',
>>>> params => [$method]};
>>>> }
>>>> my @result = @{$server->call('system.multicall', [EMAIL PROTECTED])};
>>>> for (my $i = 0; $i < @methods; $i++) {
>>>> my $method = $methods[$i];
>>>> $method_table{$method}->{'signatures'} = $result[2*$i]->[0];
>>>> $method_table{$method}->{'help'} = $result[2*$i+1]->[0];
>>>> }
>>>> } else {
>>>>
>>>> # This is easy but slow (especially over backbone links).
>>>> foreach my $method (@methods) {
>>>> my $signature = $server->call('system.methodSignature', $method);
>>>> my $help = $server->call('system.methodHelp', $method);
>>>> $method_table{$method}->{'signatures'} = $signature;
>>>> $method_table{$method}->{'help'} = $help;
>>>> }
>>>> }
>>>>
>>>> # Now, we need to dump the API.
>>>> print <<"EOD";
>>>> <html>
>>>> <head><title>XML API for $ARGV[0]</title>
>>>> </head>
>>>> <body>
>>>> <h1>XML-RPC API for $ARGV[0]</h1>
>>>>
>>>> See [30]http://www.linuxdoc.org/HOWTO/XML-RPC-HOWTO/index.html for
>>>> instructions
>>>> on using XML-RPC with Perl, Python, Java, C, C++, PHP, etc.
>>>> EOD
>>>>
>>>> print qq|<h2>Methods</h2>
>>>> <hr>
>>>> |;
>>>>
>>>> foreach my $method (@methods) {
>>>> print "\n<h3>$method</h3>\n";
>>>> my $methodinfo = "";
>>>> # Print a synopsis of the function.
>>>> if ($method_table{$method}->{'signatures'} eq 'undef') {
>>>> # No documentation. Bad server. No biscuit.
>>>> $methodinfo = "unknown $method (...)\n";
>>>> } else {
>>>> if ( $method_table{$method}->{'signatures'} =~ /^ARRAY/ ){
>>>> for my $signature
>>>> (@{$method_table{$method}->{'signatures'}}) {
>>>> if ( $signature =~ /^ARRAY/ ){
>>>> my $return_type = shift @$signature;
>>>> my $arguments = join(", ",
>>>> @$signature);
>>>> $methodinfo .= "\n<tt>$return_type
>>>> $method ($arguments)</tt>\n";
>>>> }
>>>> }
>>>> }
>>>> }
>>>> if ( $methodinfo ne "" ){
>>>> print "$methodinfo\n";
>>>> }
>>>>
>>>> my $help = $method_table{$method}->{'help'};
>>>> if ($help =~ /\n/) {
>>>> # Text has already been broken into lines by the server, so just
>>>> # indent it by two spaces and hope for the best.
>>>> my @lines = split(/\n/, $help);
>>>> my $help = " " . join("\n ", @lines);
>>>> if ( $help =~ /[a-zA-Z0-9]/ ){
>>>> print "$help\n";
>>>> }
>>>> } else {
>>>> # Print our help text in a nicely-wrapped fashion using Perl's
>>>> # formatting routines.
>>>> $helptext = $method_table{$method}->{'help'};
>>>> $helptext =~ s/\\n/\n/g;
>>>> $helptext =~ s/\\'/'/g;
>>>>
>>>> $helptext =~ s/[EMAIL PROTECTED]/<br><b>param: <\/b>/g;
>>>> $helptext =~ s/[EMAIL PROTECTED]/<br><b>returns: <\/b>/g;
>>>> $helptext =~ s/[EMAIL PROTECTED]/<br><b>return type: <\/b>/g;
>>>>
>>>> $helptext .= "<hr>";
>>>>
>>>> write;
>>>> }
>>>> }
>>>>
>>>> format STDOUT =
>>>>
>>>> ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<~~
>>>> $helptext
>>>> .
>>>>
>>>>
>>>> References
>>>>
>>>> Visible links
>>>> 1. http://localhost:8005/
>>>> 2. http://localhost:8005/
>>>> 3. http://localhost:8005/
>>>> 4. http://www.linuxdoc.org/HOWTO/XML-RPC-HOWTO/index.html
>>>> 5. http://localhost:8005/
>>>> 6. http://localhost:8005/
>>>> 7. http://www.linuxdoc.org/HOWTO/XML-RPC-HOWTO/index.html
>>>> 8. http://localhost:8005/
>>>> 9.
>>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>>> 10. mailto:[EMAIL PROTECTED]
>>>> 11. https://lists.sourceforge.net/lists/listinfo/xenman-users
>>>> 12.
>>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>>> 13. mailto:[email protected]
>>>> 14. https://lists.sourceforge.net/lists/listinfo/xenman-users
>>>> 15. http://localhost:8005/
>>>> 16. http://localhost:8005/
>>>> 17. http://www.linuxdoc.org/HOWTO/XML-RPC-HOWTO/index.html
>>>> 18. http://localhost:8005/
>>>> 19.
>>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>>> 20. mailto:2
>>>> 21. mailto:mailto:[EMAIL PROTECTED]
>>>> 22. https://lists.sourceforge.net/lists/listinfo/xenman-users
>>>> 23.
>>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>>> 24. mailto:[email protected]
>>>> 25. https://lists.sourceforge.net/lists/listinfo/xenman-users
>>>> 26. mailto:[EMAIL PROTECTED]
>>>> 27. http://bitsko.slc.ut.us/~ken/xml-rpc/
>>>> 28. http://www.linuxdoc.org/HOWTO/XML-RPC-HOWTO/index.html
>>>> 29. http://xmlrpc-c.sourceforge.net/api/sample.php
>>>> 30. http://www.linuxdoc.org/HOWTO/XML-RPC-HOWTO/index.html
>>>>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
XenMan-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xenman-users