List of usage examples for com.google.common.util.concurrent Futures immediateFailedFuture
@CheckReturnValue public static <V> ListenableFuture<V> immediateFailedFuture(Throwable throwable)
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()); } }