The OvmWsRestClient class provides a method to handle server discovery. Since many of the parameters used to perform server discovery are used to construct the URI that must be used for the POST request, these parameters are passed to a the Jersey Builder after they have been processed for URI construction by a method defined in the RestClient class. The login credentials that Oracle VM Manager requires to connect to the Oracle VM Agent are sent within the body of the POST request as a simple string.
Many of the examples in this guide use basic methods that are
defined within the RestClient class in
RestClient.java
. These methods use Jersey
to set up a web client and also provide constructors to handle
tasks like URI construction and XML construction using JAXB.
These base methods are not discussed in detail within this
guide, but should be studied by the reader if further
understanding is required.
@Override public Job serverDiscover(final String serverName, final String agentPassword, final boolean takeOwnership) { final Map<String, Object> queryParameters = new HashMap<String, Object>(); queryParameters.put("serverName", serverName); queryParameters.put("takeOwnershipIfUnowned", takeOwnership); final Builder b = getResourceFromUriAndPathElementsWithQueryParameters(null, queryParameters, Server.class.getSimpleName(), "discover"); return b.type(getMediaType()).post(Job.class, agentPassword); }
The WSDevClient class, in the sample code, does not include an example of server discovery, however to do server discovery, the code in your main class can be as simple as the following:
final Job serverCreateJob = api.serverDiscover("1.example.com
", "p4ssword
",true
); System.out.println("create server job id: " + serverCreateJob.getId()); sid=waitForJobComplete(api, serverCreateJob, Server.class);
Note that the XML response returned by the API contains information about the job that has been created to carry out the process requested. This is why we use the output from the serverDiscover method to populate a Job object. Using this object, you can easily track job status with the waitForJobComplete method, which also returns the server ID object if the job is successful.
ID objects include the URI by which the complete object can
be referenced. In Java, the URI can be quickly obtained
using the getUri
method against the ID object.