Example usage for com.google.common.util.concurrent Futures immediateFailedFuture

List of usage examples for com.google.common.util.concurrent Futures immediateFailedFuture

Introduction

In this page you can find the example usage for com.google.common.util.concurrent Futures immediateFailedFuture.

Prototype

@CheckReturnValue
public static <V> ListenableFuture<V> immediateFailedFuture(Throwable throwable) 

Source Link

Document

Returns a ListenableFuture which has an exception set immediately upon construction.

Usage

From source file:com.mypurecloud.sdk.v2.api.LicenseApiAsync.java

/**
 * Fetch user licenses in a batch.//w w  w  .j a  v a 2s  . c o  m
 * 
 * @param request the request object
 * @param callback the action to perform when the request is completed
 * @return the future indication when the request has completed
 */
public Future<Map<String, Object>> postLicenseUsersAsync(PostLicenseUsersRequest request,
        final AsyncApiCallback<Map<String, Object>> callback) {
    try {
        final SettableFuture<Map<String, Object>> future = SettableFuture.create();
        final boolean shouldThrowErrors = pcapiClient.getShouldThrowErrors();
        pcapiClient.invokeAsync(request.withHttpInfo(), new TypeReference<Map<String, Object>>() {
        }, new AsyncApiCallback<ApiResponse<Map<String, Object>>>() {
            @Override
            public void onCompleted(ApiResponse<Map<String, Object>> response) {
                notifySuccess(future, callback, response.getBody());
            }

            @Override
            public void onFailed(Throwable exception) {
                if (shouldThrowErrors) {
                    notifyFailure(future, callback, exception);
                } else {
                    notifySuccess(future, callback, null);
                }
            }
        });
        return future;
    } catch (Throwable exception) {
        return Futures.immediateFailedFuture(exception);
    }
}

From source file:org.opendaylight.faas.fabric.general.FabricServiceAPIProvider.java

@Override
public Future<RpcResult<Void>> delAcl(DelAclInput input) {
    String aclName = input.getAclName();
    FabricId fabricId = input.getFabricId();
    NodeId ldev = input.getLogicalDevice();
    TpId tpid = input.getLogicalPort();//from ww  w . j a  v  a2  s . c om

    final FabricInstance fabricObj = FabricInstanceCache.INSTANCE.retrieveFabric(fabricId);
    if (fabricObj == null) {
        return Futures.immediateFailedFuture(
                new IllegalArgumentException(String.format("fabric %s does not exist", fabricId)));
    }

    InstanceIdentifier<FabricAcl> aclIId = null;

    if (tpid != null) {
        aclIId = MdSalUtils.createLogicPortIId(fabricId, ldev, tpid).augmentation(LogicalPortAugment.class)
                .child(LportAttribute.class).child(FabricAcl.class, new FabricAclKey(aclName));
    } else {
        aclIId = MdSalUtils.createNodeIId(fabricId, ldev).augmentation(LogicalSwitchAugment.class)
                .child(LswAttribute.class).child(FabricAcl.class, new FabricAclKey(aclName));
    }
    final InstanceIdentifier<FabricAcl> tgtAclIId = aclIId;

    WriteTransaction trans = dataBroker.newWriteOnlyTransaction();
    trans.delete(LogicalDatastoreType.OPERATIONAL, aclIId);

    return Futures.transform(trans.submit(), new AsyncFunction<Void, RpcResult<Void>>() {

        @Override
        public ListenableFuture<RpcResult<Void>> apply(Void submitResult) throws Exception {
            fabricObj.notifyAclUpdated(tgtAclIId, true);
            return Futures.immediateFuture(RpcResultBuilder.<Void>success().build());
        }
    }, executor);
}

From source file:org.opendaylight.vbd.impl.VppModifier.java

ListenableFuture<Void> addVppToBridgeDomain(final KeyedInstanceIdentifier<Node, NodeKey> iiToVpp) {
    final DataBroker vppDataBroker = VbdUtil.resolveDataBrokerForMountPoint(iiToVpp, mountService);
    if (vppDataBroker != null) {
        VbdNetconfTransaction.write(vppDataBroker, iiBridgeDomainOnVPP, prepareNewBridgeDomainData(),
                VbdNetconfTransaction.RETRY_COUNT);
        nodesWithBridgeDomain.add(iiToVpp.getKey());
        return Futures.immediateFuture(null);
    }//from  w w  w.j a v  a2 s .co m
    return Futures.immediateFailedFuture(new IllegalStateException("Data broker for vpp is missing"));
}

From source file:com.mypurecloud.sdk.v2.api.LicenseApiAsync.java

/**
 * Fetch user licenses in a batch./* ww w . j a  va2s.c  o m*/
 * 
 * @param request the request object
 * @param callback the action to perform when the request is completed
 * @return the future indication when the request has completed
 */
public Future<ApiResponse<Map<String, Object>>> postLicenseUsersAsync(ApiRequest<List<String>> request,
        final AsyncApiCallback<ApiResponse<Map<String, Object>>> callback) {
    try {
        final SettableFuture<ApiResponse<Map<String, Object>>> future = SettableFuture.create();
        final boolean shouldThrowErrors = pcapiClient.getShouldThrowErrors();
        pcapiClient.invokeAsync(request, new TypeReference<Map<String, Object>>() {
        }, new AsyncApiCallback<ApiResponse<Map<String, Object>>>() {
            @Override
            public void onCompleted(ApiResponse<Map<String, Object>> response) {
                notifySuccess(future, callback, response);
            }

            @Override
            public void onFailed(Throwable exception) {
                if (exception instanceof ApiException) {
                    @SuppressWarnings("unchecked")
                    ApiResponse<Map<String, Object>> response = (ApiResponse<Map<String, Object>>) (ApiResponse<?>) exception;
                    notifySuccess(future, callback, response);
                }
                if (shouldThrowErrors) {
                    notifyFailure(future, callback, exception);
                } else {
                    @SuppressWarnings("unchecked")
                    ApiResponse<Map<String, Object>> response = (ApiResponse<Map<String, Object>>) (ApiResponse<?>) (new ApiException(
                            exception));
                    notifySuccess(future, callback, response);
                }
            }
        });
        return future;
    } catch (Throwable exception) {
        return Futures.immediateFailedFuture(exception);
    }
}

From source file:org.opendaylight.faas.fabric.general.FabricServiceAPIProvider.java

@Override
public Future<RpcResult<Void>> addPortFunction(AddPortFunctionInput input) {
    final PortFunction function = input.getPortFunction();
    FabricId fabricId = input.getFabricId();
    TpId tpid = input.getLogicalPort();/*from  w  w w  . java 2s .c  om*/
    NodeId ldev = input.getLogicalDevice();

    final FabricInstance fabricObj = FabricInstanceCache.INSTANCE.retrieveFabric(fabricId);
    if (fabricObj == null) {
        return Futures.immediateFailedFuture(
                new IllegalArgumentException(String.format("fabric %s does not exist", fabricId)));
    }

    final InstanceIdentifier<PortFunction> fncIId = MdSalUtils.createLogicPortIId(fabricId, ldev, tpid)
            .augmentation(LogicalPortAugment.class).child(LportAttribute.class).child(PortFunction.class);

    WriteTransaction trans = dataBroker.newWriteOnlyTransaction();
    trans.merge(LogicalDatastoreType.OPERATIONAL, fncIId, function, false);

    return Futures.transform(trans.submit(), new AsyncFunction<Void, RpcResult<Void>>() {

        @Override
        public ListenableFuture<RpcResult<Void>> apply(Void submitResult) throws Exception {
            fabricObj.notifyPortFuncUpdated(fncIId, function, false);
            return Futures.immediateFuture(RpcResultBuilder.<Void>success().build());
        }
    }, executor);
}

From source file:org.opendaylight.faas.fabric.general.FabricServiceAPIProvider.java

@Override
public Future<RpcResult<Void>> addStaticRoute(AddStaticRouteInput input) {
    final List<Route> routes = input.getRoute();
    FabricId fabricId = input.getFabricId();
    NodeId ldev = input.getNodeId();/*  w w  w. j av  a2s . co  m*/

    final FabricInstance fabricObj = FabricInstanceCache.INSTANCE.retrieveFabric(fabricId);
    if (fabricObj == null) {
        return Futures.immediateFailedFuture(
                new IllegalArgumentException(String.format("fabric %s does not exist", fabricId)));
    }

    for (Route route : routes) {
        if (route.getNextHopOptions() == null) {
            return Futures.immediateFailedFuture(new IllegalArgumentException(String.format(
                    "next hop is required. (destination = %s)", route.getDestinationPrefix().getValue())));
        }
    }

    final InstanceIdentifier<Routes> routesIId = MdSalUtils.createNodeIId(fabricId, ldev)
            .augmentation(LogicalRouterAugment.class).child(LrAttribute.class).child(Routes.class);

    final List<InstanceIdentifier<Route>> routeKeys = Lists.newArrayList();
    for (Route route : routes) {
        routeKeys.add(routesIId.child(Route.class, route.getKey()));
    }

    RoutesBuilder builder = new RoutesBuilder();
    builder.setRoute(routes);

    WriteTransaction trans = dataBroker.newWriteOnlyTransaction();
    trans.merge(LogicalDatastoreType.OPERATIONAL, routesIId, builder.build(), true);

    return Futures.transform(trans.submit(), new AsyncFunction<Void, RpcResult<Void>>() {

        @Override
        public ListenableFuture<RpcResult<Void>> apply(Void submitResult) throws Exception {
            fabricObj.notifyRouteUpdated(routesIId.firstIdentifierOf(Node.class), routes, false);
            return Futures.immediateFuture(RpcResultBuilder.<Void>success().build());
        }
    }, executor);
}

From source file:org.opendaylight.faas.fabric.general.FabricServiceAPIProvider.java

@Override
public Future<RpcResult<Void>> portBindingLogicalToFabric(PortBindingLogicalToFabricInput input) {

    FabricId fabricId = input.getFabricId();
    TpId tpid = input.getLogicalPort();/*from  w  w w . j a v a  2 s  .c o  m*/
    NodeId ldev = input.getLogicalDevice();
    TpId portId = input.getFabricPort();

    final FabricInstance fabricObj = FabricInstanceCache.INSTANCE.retrieveFabric(fabricId);
    if (fabricObj == null) {
        return Futures.immediateFailedFuture(
                new IllegalArgumentException(String.format("fabric %s does not exist", fabricId)));
    }

    final InstanceIdentifier<LportAttribute> attrIId = MdSalUtils.createLogicPortIId(fabricId, ldev, tpid)
            .augmentation(LogicalPortAugment.class).child(LportAttribute.class);

    LportAttributeBuilder builder = new LportAttributeBuilder();
    builder.setPortLayer(
            new PortLayerBuilder().setLayer1Info(new Layer1InfoBuilder().setLocation(portId).build()).build());

    WriteTransaction trans = dataBroker.newWriteOnlyTransaction();
    trans.merge(LogicalDatastoreType.OPERATIONAL, attrIId, builder.build(), false);

    return Futures.transform(trans.submit(), new AsyncFunction<Void, RpcResult<Void>>() {

        @Override
        public ListenableFuture<RpcResult<Void>> apply(Void submitResult) throws Exception {
            fabricObj.notifyLogicalPortLocated(attrIId.firstIdentifierOf(TerminationPoint.class), portId);
            return Futures.immediateFuture(RpcResultBuilder.<Void>success().build());
        }
    }, executor);
}

From source file:org.opendaylight.faas.fabric.general.FabricServiceAPIProvider.java

@Override
public Future<RpcResult<Void>> portBindingLogicalToDevice(PortBindingLogicalToDeviceInput input) {

    FabricId fabricId = input.getFabricId();
    TpId tpid = input.getLogicalPort();/*from  w  w w.  j  a v  a2  s . c om*/
    NodeId ldev = input.getLogicalDevice();
    TpRef physicalPort = input.getPhysicalPort();

    final FabricInstance fabricObj = FabricInstanceCache.INSTANCE.retrieveFabric(fabricId);
    if (fabricObj == null) {
        return Futures.immediateFailedFuture(
                new IllegalArgumentException(String.format("fabric %s does not exist", fabricId)));
    }

    @SuppressWarnings("unchecked")
    InstanceIdentifier<TerminationPoint> fportIid = InterfaceManager.convDevPort2FabricPort(dataBroker,
            fabricId, (InstanceIdentifier<TerminationPoint>) physicalPort.getValue());
    final TpId portId = fportIid.firstKeyOf(TerminationPoint.class).getTpId();

    final InstanceIdentifier<LportAttribute> attrIId = MdSalUtils.createLogicPortIId(fabricId, ldev, tpid)
            .augmentation(LogicalPortAugment.class).child(LportAttribute.class);

    LportAttributeBuilder builder = new LportAttributeBuilder();
    builder.setPortLayer(
            new PortLayerBuilder()
                    .setLayer1Info(new Layer1InfoBuilder()
                            .setLocation(fportIid.firstKeyOf(TerminationPoint.class).getTpId()).build())
                    .build());

    WriteTransaction trans = dataBroker.newWriteOnlyTransaction();
    trans.merge(LogicalDatastoreType.OPERATIONAL, attrIId, builder.build(), false);

    return Futures.transform(trans.submit(), new AsyncFunction<Void, RpcResult<Void>>() {

        @Override
        public ListenableFuture<RpcResult<Void>> apply(Void submitResult) throws Exception {
            fabricObj.notifyLogicalPortLocated(attrIId.firstIdentifierOf(TerminationPoint.class), portId);
            return Futures.immediateFuture(RpcResultBuilder.<Void>success().build());
        }
    }, executor);
}

From source file:org.opendaylight.vpnservice.elan.l2gw.utils.ElanL2GatewayUtils.java

/**
 * Update vlan bindings in l2 gateway device.
 *
 * @param nodeId/*ww  w .  java  2s. c  o  m*/
 *            the node id
 * @param logicalSwitchName
 *            the logical switch name
 * @param hwVtepDevice
 *            the hardware device
 * @param defaultVlanId
 *            the default vlan id
 * @return the listenable future
 */
public static ListenableFuture<Void> updateVlanBindingsInL2GatewayDevice(NodeId nodeId,
        String logicalSwitchName, Devices hwVtepDevice, Integer defaultVlanId) {
    if (hwVtepDevice == null || hwVtepDevice.getInterfaces() == null
            || hwVtepDevice.getInterfaces().isEmpty()) {
        String errMsg = "HwVtepDevice is null or interfaces are empty.";
        LOG.error(errMsg);
        return Futures.immediateFailedFuture(new RuntimeException(errMsg));
    }

    WriteTransaction transaction = broker.newWriteOnlyTransaction();
    for (org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l2gateways.rev150712.l2gateway.attributes.devices.Interfaces deviceInterface : hwVtepDevice
            .getInterfaces()) {
        List<VlanBindings> vlanBindings = new ArrayList<>();
        if (deviceInterface.getSegmentationIds() != null && !deviceInterface.getSegmentationIds().isEmpty()) {
            for (Integer vlanId : deviceInterface.getSegmentationIds()) {
                vlanBindings.add(HwvtepSouthboundUtils.createVlanBinding(nodeId, vlanId, logicalSwitchName));
            }
        } else {
            // Use defaultVlanId (specified in L2GatewayConnection) if Vlan
            // ID not specified at interface level.
            vlanBindings.add(HwvtepSouthboundUtils.createVlanBinding(nodeId, defaultVlanId, logicalSwitchName));
        }
        HwvtepUtils.mergeVlanBindings(transaction, nodeId, hwVtepDevice.getDeviceName(),
                deviceInterface.getInterfaceName(), vlanBindings);
    }
    ListenableFuture<Void> future = transaction.submit();
    LOG.info("Updated Hwvtep VlanBindings in config DS. NodeID: {}, LogicalSwitch: {}", nodeId.getValue(),
            logicalSwitchName);
    return future;
}

From source file:org.opendaylight.faas.fabric.general.FabricServiceAPIProvider.java

@Override
public Future<RpcResult<Void>> clearStaticRoute(ClearStaticRouteInput input) {
    FabricId fabricId = input.getFabricId();
    NodeId ldev = input.getNodeId();/*from  w w  w. ja  va 2  s. c o  m*/

    final FabricInstance fabricObj = FabricInstanceCache.INSTANCE.retrieveFabric(fabricId);
    if (fabricObj == null) {
        return Futures.immediateFailedFuture(
                new IllegalArgumentException(String.format("fabric %s does not exist", fabricId)));
    }

    final InstanceIdentifier<Routes> routesIId = MdSalUtils.createNodeIId(fabricId, ldev)
            .augmentation(LogicalRouterAugment.class).child(LrAttribute.class).child(Routes.class);

    ReadWriteTransaction trans = dataBroker.newReadWriteTransaction();
    if (MdSalUtils.syncReadOper(trans, routesIId).isPresent()) {
        trans.delete(LogicalDatastoreType.OPERATIONAL, routesIId);

        return Futures.transform(trans.submit(), new AsyncFunction<Void, RpcResult<Void>>() {

            @Override
            public ListenableFuture<RpcResult<Void>> apply(Void submitResult) throws Exception {
                fabricObj.notifyRouteCleared(routesIId.firstIdentifierOf(Node.class));
                return Futures.immediateFuture(RpcResultBuilder.<Void>success().build());
            }
        }, executor);
    } else {
        return Futures.immediateFuture(RpcResultBuilder.<Void>success().build());
    }
}