[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-API] Simple Java API example




This program should show all VMs' UUIDs.

I added the line

(xen-api-server (( 0.0.0.0:9363 none )))

to /etc/xen/xend-config.sxp before starting xend.

   Stefan


package test;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import org.apache.xmlrpc.XmlRpcException;
import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;

public class Test {
        private static XmlRpcClientConfigImpl config;
        private static XmlRpcClient client;        

        /**
         * @param args
         */
        public static void main(String[] args) {
                URL url = "">null;
                try {
                        url = "">new URL("http://your.xen.machine.ip.address:9363");
                } catch (MalformedURLException e) {
                        System.out.println("Malformed URL?");
                        System.exit(-1);
                }
                config = new XmlRpcClientConfigImpl();
            config.setServerURL(url);
            client = new XmlRpcClient();
            client.setConfig(config);
            String username = "any";
            String password = "any";
            Object[] params = new Object[]{username, password};
                HashMap<String, String> result = null;
                try {
                        result = (HashMap) client.execute("session.login_with_password", params);
                } catch (XmlRpcException e) {
                        System.out.println("Could not open session");
                        System.exit(-1);
                }
                String status = result.get("Status");
                if (status.compareTo("Success") == 0) {
                        String uuid = result.get("Value");
                    params = new Object[]{uuid};
                        try {
                                result = (HashMap) client.execute("VM.get_all", params);
                        } catch (XmlRpcException e) {
                                System.out.println("Could not get VMs' UUIDs");
                                System.exit(-1);
                        }
                        Object res = result.get("Value");
                        if (res.getClass() == Object[].class) {
                                Object[] arr = (Object[])res;
                                int i;
                                for (i = 0; i < arr.length; i++) {
                                        System.out.println("VM UUID: " +(String)arr[i]);
                                }
                        }
                       
                }

        }
}

xen-api-bounces@xxxxxxxxxxxxxxxxxxx wrote on 04/05/2007 08:10:10 AM:

> Hi All,
>
> I am trying to talk to the Xen API with Java and
> 'org.apache.xmlrpc.client.XmlRpcClient' (version 3).  I was wondering if
> someone could give me a very short example of connecting to the server
> and getting a list of VM's?  I have never used XML-RPC before and the
> tutorials ive found dont seem to apply to this version of the xmlrpc api.
>
> Thanks in advance,
> Christian
>
> _______________________________________________
> xen-api mailing list
> xen-api@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-api
_______________________________________________
xen-api mailing list
xen-api@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-api

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.