// Copyright 2012 Citrix Systems, Inc. Licensed under the // Apache License, Version 2.0 (the "License"); you may not use this // file except in compliance with the License. Citrix Systems, Inc. // reserves all rights not expressly granted by the License. // You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Automatically generated by addcopyright.py at 04/03/2012 * follows: * Linking this library statically or dynamically with other modules is * making a combined work based on this library. Thus, the terms and * permission to link this library with independent modules to produce an * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. package com.xensource.xenapi; import com.xensource.xenapi.Types.BadServerResponse; import com.xensource.xenapi.Types.VersionException; import com.xensource.xenapi.Types.XenAPIException; import java.io.PrintWriter; import java.io.StringWriter; import java.util.Date; import java.util.HashMap; import java.util.LinkedHashSet; import java.util.Map; import java.util.Set; import org.apache.xmlrpc.XmlRpcException; /** * * * @author Citrix Systems, Inc. */ public class Bond extends XenAPIObject { /** * The XenAPI reference to this object. */ protected final String ref; /** * For internal use only. */ Bond(String ref) { this.ref = ref; } public String toWireString() { return this.ref; } /** * If obj is a Bond, compares XenAPI references for equality. */ @Override public boolean equals(Object obj) { if (obj != null && obj instanceof Bond) { Bond other = (Bond) obj; return other.ref.equals(this.ref); } else { return false; } } @Override public int hashCode() { return ref.hashCode(); } /** * Represents all the fields in a Bond */ public static class Record implements Types.Record { public String toString() { StringWriter writer = new StringWriter(); PrintWriter print = new PrintWriter(writer); print.printf("%1$20s: %2$s\n", "uuid", this.uuid); print.printf("%1$20s: %2$s\n", "master", this.master); print.printf("%1$20s: %2$s\n", "slaves", this.slaves); print.printf("%1$20s: %2$s\n", "otherConfig", this.otherConfig); return writer.toString(); } /** * Convert a Bond.Record to a Map */ public Map<String,Object> toMap() { Map<String,Object> map = new HashMap<String,Object>(); map.put("uuid", this.uuid == null ? "" : this.uuid); map.put("master", this.master == null ? new PIF("OpaqueRef:NULL") : this.master); map.put("slaves", this.slaves == null ? new LinkedHashSet<PIF>() : this.slaves); map.put("other_config", this.otherConfig == null ? new HashMap<String, String>() : this.otherConfig); return map; } /** * Unique identifier/object reference */ public String uuid; /** * The bonded interface */ public PIF master; /** * The interfaces which are part of this bond */ public Set<PIF> slaves; /** * additional configuration */ public Map<String, String> otherConfig; } /** * Get a record containing the current state of the given Bond. * * @return all fields from the object */ public Bond.Record getRecord(Connection c) throws BadServerResponse, XenAPIException, XmlRpcException { String method_call = "Bond.get_record"; String session = c.getSessionReference(); Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; Map response = c.dispatch(method_call, method_params); Object result = response.get("Value"); return Types.toBondRecord(result); } /** * Get a reference to the Bond instance with the specified UUID. * * @param uuid UUID of object to return * @return reference to the object */ public static Bond getByUuid(Connection c, String uuid) throws BadServerResponse, XenAPIException, XmlRpcException { String method_call = "Bond.get_by_uuid"; String session = c.getSessionReference(); Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(uuid)}; Map response = c.dispatch(method_call, method_params); Object result = response.get("Value"); return Types.toBond(result); } /** * Get the uuid field of the given Bond. * * @return value of the field */ public String getUuid(Connection c) throws BadServerResponse, XenAPIException, XmlRpcException { String method_call = "Bond.get_uuid"; String session = c.getSessionReference(); Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; Map response = c.dispatch(method_call, method_params); Object result = response.get("Value"); return Types.toString(result); } /** * Get the master field of the given Bond. * * @return value of the field */ public PIF getMaster(Connection c) throws BadServerResponse, XenAPIException, XmlRpcException { String method_call = "Bond.get_master"; String session = c.getSessionReference(); Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; Map response = c.dispatch(method_call, method_params); Object result = response.get("Value"); return Types.toPIF(result); } /** * Get the slaves field of the given Bond. * * @return value of the field */ public Set<PIF> getSlaves(Connection c) throws BadServerResponse, XenAPIException, XmlRpcException { String method_call = "Bond.get_slaves"; String session = c.getSessionReference(); Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; Map response = c.dispatch(method_call, method_params); Object result = response.get("Value"); return Types.toSetOfPIF(result); } /** * Get the other_config field of the given Bond. * * @return value of the field */ public Map<String, String> getOtherConfig(Connection c) throws BadServerResponse, XenAPIException, XmlRpcException { String method_call = "Bond.get_other_config"; String session = c.getSessionReference(); Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; Map response = c.dispatch(method_call, method_params); Object result = response.get("Value"); return Types.toMapOfStringString(result); } /** * Set the other_config field of the given Bond. * * @param otherConfig New value to set */ public void setOtherConfig(Connection c, Map<String, String> otherConfig) throws BadServerResponse, XenAPIException, XmlRpcException { String method_call = "Bond.set_other_config"; String session = c.getSessionReference(); Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(otherConfig)}; Map response = c.dispatch(method_call, method_params); return; } /** * Add the given key-value pair to the other_config field of the given Bond. * * @param key Key to add * @param value Value to add */ public void addToOtherConfig(Connection c, String key, String value) throws BadServerResponse, XenAPIException, XmlRpcException { String method_call = "Bond.add_to_other_config"; String session = c.getSessionReference(); Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(key), Marshalling.toXMLRPC(value)}; Map response = c.dispatch(method_call, method_params); return; } /** * Remove the given key and its corresponding value from the other_config field of the given Bond. If the key is not in that Map, then do nothing. * * @param key Key to remove */ public void removeFromOtherConfig(Connection c, String key) throws BadServerResponse, XenAPIException, XmlRpcException { String method_call = "Bond.remove_from_other_config"; String session = c.getSessionReference(); Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(key)}; Map response = c.dispatch(method_call, method_params); return; } /** * Create an interface bond * * @param network Network to add the bonded PIF to * @param members PIFs to add to this bond * @param MAC The MAC address to use on the bond itself. If this parameter is the empty string then the bond will inherit its MAC address from the first of the specified 'members' * @return Task */ public static Task createAsync(Connection c, Network network, Set<PIF> members, String MAC) throws BadServerResponse, XenAPIException, XmlRpcException { String method_call = "Async.Bond.create"; String session = c.getSessionReference(); Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(network), Marshalling.toXMLRPC(members), Marshalling.toXMLRPC(MAC)}; Map response = c.dispatch(method_call, method_params); Object result = response.get("Value"); return Types.toTask(result); } /** * Create an interface bond * * @param network Network to add the bonded PIF to * @param members PIFs to add to this bond * @param MAC The MAC address to use on the bond itself. If this parameter is the empty string then the bond will inherit its MAC address from the first of the specified 'members' * @return The reference of the created Bond object */ public static Bond create(Connection c, Network network, Set<PIF> members, String MAC) throws BadServerResponse, XenAPIException, XmlRpcException { String method_call = "Bond.create"; String session = c.getSessionReference(); Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(network), Marshalling.toXMLRPC(members), Marshalling.toXMLRPC(MAC)}; Map response = c.dispatch(method_call, method_params); Object result = response.get("Value"); return Types.toBond(result); } /** * Destroy an interface bond * * @return Task */ public Task destroyAsync(Connection c) throws BadServerResponse, XenAPIException, XmlRpcException { String method_call = "Async.Bond.destroy"; String session = c.getSessionReference(); Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; Map response = c.dispatch(method_call, method_params); Object result = response.get("Value"); return Types.toTask(result); } /** * Destroy an interface bond * */ public void destroy(Connection c) throws BadServerResponse, XenAPIException, XmlRpcException { String method_call = "Bond.destroy"; String session = c.getSessionReference(); Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref)}; Map response = c.dispatch(method_call, method_params); return; } /** * Return a list of all the Bonds known to the system. * * @return references to all objects */ public static Set<Bond> getAll(Connection c) throws BadServerResponse, XenAPIException, XmlRpcException { String method_call = "Bond.get_all"; String session = c.getSessionReference(); Object[] method_params = {Marshalling.toXMLRPC(session)}; Map response = c.dispatch(method_call, method_params); Object result = response.get("Value"); return Types.toSetOfBond(result); } /** * Return a map of Bond references to Bond records for all Bonds known to the system. * * @return records of all objects */ public static Map<Bond, Bond.Record> getAllRecords(Connection c) throws BadServerResponse, XenAPIException, XmlRpcException { String method_call = "Bond.get_all_records"; String session = c.getSessionReference(); Object[] method_params = {Marshalling.toXMLRPC(session)}; Map response = c.dispatch(method_call, method_params); Object result = response.get("Value"); return Types.toMapOfBondBondRecord(result); } }