Search in sources :

Example 1 with OvsCreateGreTunnelAnswer

use of com.cloud.agent.api.OvsCreateGreTunnelAnswer in project cloudstack by apache.

the class CitrixOvsCreateGreTunnelCommandWrapper method execute.

@Override
public Answer execute(final OvsCreateGreTunnelCommand command, final CitrixResourceBase citrixResourceBase) {
    citrixResourceBase.setIsOvs(true);
    final Connection conn = citrixResourceBase.getConnection();
    String bridge = "unkonwn";
    try {
        final Network nw = citrixResourceBase.setupvSwitchNetwork(conn);
        bridge = nw.getBridge(conn);
        final String result = citrixResourceBase.callHostPlugin(conn, "ovsgre", "ovs_create_gre", "bridge", bridge, "remoteIP", command.getRemoteIp(), "greKey", command.getKey(), "from", Long.toString(command.getFrom()), "to", Long.toString(command.getTo()));
        final String[] res = result.split(":");
        if (res.length != 2 || res.length == 2 && res[1].equalsIgnoreCase("[]")) {
            return new OvsCreateGreTunnelAnswer(command, false, result, citrixResourceBase.getHost().getIp(), bridge);
        } else {
            return new OvsCreateGreTunnelAnswer(command, true, result, citrixResourceBase.getHost().getIp(), bridge, Integer.parseInt(res[1]));
        }
    } catch (final BadServerResponse e) {
        s_logger.error("An error occurred while creating a GRE tunnel to " + command.getRemoteIp() + " on host " + citrixResourceBase.getHost().getIp(), e);
    } catch (final XenAPIException e) {
        s_logger.error("An error occurred while creating a GRE tunnel to " + command.getRemoteIp() + " on host " + citrixResourceBase.getHost().getIp(), e);
    } catch (final XmlRpcException e) {
        s_logger.error("An error occurred while creating a GRE tunnel to " + command.getRemoteIp() + " on host " + citrixResourceBase.getHost().getIp(), e);
    }
    return new OvsCreateGreTunnelAnswer(command, false, "EXCEPTION", citrixResourceBase.getHost().getIp(), bridge);
}
Also used : BadServerResponse(com.xensource.xenapi.Types.BadServerResponse) Network(com.xensource.xenapi.Network) Connection(com.xensource.xenapi.Connection) XenAPIException(com.xensource.xenapi.Types.XenAPIException) OvsCreateGreTunnelAnswer(com.cloud.agent.api.OvsCreateGreTunnelAnswer) XmlRpcException(org.apache.xmlrpc.XmlRpcException)

Aggregations

OvsCreateGreTunnelAnswer (com.cloud.agent.api.OvsCreateGreTunnelAnswer)1 Connection (com.xensource.xenapi.Connection)1 Network (com.xensource.xenapi.Network)1 BadServerResponse (com.xensource.xenapi.Types.BadServerResponse)1 XenAPIException (com.xensource.xenapi.Types.XenAPIException)1 XmlRpcException (org.apache.xmlrpc.XmlRpcException)1