List of usage examples for com.google.common.util.concurrent Futures immediateFailedCheckedFuture
@GwtIncompatible("TODO") @CheckReturnValue public static <V, X extends Exception> CheckedFuture<V, X> immediateFailedCheckedFuture(X exception)
From source file:org.opendaylight.centinel.impl.CentinelStreamImpl.java
@Override public Future<RpcResult<SetRuleOutput>> setRule(final SetRuleInput input) { final ReadWriteTransaction tx = dataProvider.newReadWriteTransaction(); final SettableFuture<RpcResult<SetRuleOutput>> futureResult = SettableFuture.create(); boolean idMatches = false; final String streamRuleId = generateRandomId(); if (input.getType() == StreamType.FieldPresence) { if (input.getStreamID() == null || input.getStreamID().isEmpty() || input.getStreamID().trim().isEmpty() || input.getField() == null || input.getField().isEmpty() || input.getField().trim().isEmpty()) { return Futures.immediateFailedCheckedFuture(new TransactionCommitFailedException("inalid-input", RpcResultBuilder.newError(ErrorType.APPLICATION, "invalid-input", "StreamId,Value are mandatory parameters"))); }/* www . ja v a 2s . c o m*/ } else { if (input.getStreamID() == null || input.getStreamID().isEmpty() || input.getStreamID().trim().isEmpty() || input.getField() == null || input.getField().isEmpty() || input.getField().trim().isEmpty() || input.getValue() == null || input.getValue().isEmpty() || input.getValue().trim().isEmpty()) { return Futures.immediateFailedCheckedFuture(new TransactionCommitFailedException("inalid-input", RpcResultBuilder.newError(ErrorType.APPLICATION, "invalid-input", "StreamId,Value and Field are mandatory parameters"))); } } final SetRuleOutputBuilder setRuleOutputBuilder = new SetRuleOutputBuilder(); setRuleOutputBuilder.setStreamRuleID(streamRuleId); ListenableFuture<Optional<StreamRecord>> readFutureOperational = tx.read(LogicalDatastoreType.OPERATIONAL, streamRecordId); ListenableFuture<Optional<StreamRecord>> readFutureConfigure = tx.read(LogicalDatastoreType.CONFIGURATION, streamRecordId); String configIdOp = null; String streamIdOp = null; try { Optional<StreamRecord> record = readFutureOperational.get(); if (record.isPresent()) { StreamRecord operationalRecord = record.get(); List<StreamList> streamRulesList = new ArrayList<StreamList>(); if (!operationalRecord.getStreamList().isEmpty()) { streamRulesList = operationalRecord.getStreamList(); Iterator<StreamList> iterator = streamRulesList.iterator(); while (iterator.hasNext()) { StreamList operationalObject = iterator.next(); if (operationalObject.getStreamID().equals(input.getStreamID())) { configIdOp = operationalObject.getConfigID(); streamIdOp = operationalObject.getStreamID(); idMatches = true; } } if (!idMatches) { return Futures.immediateFailedCheckedFuture(new TransactionCommitFailedException( "invalid-input", RpcResultBuilder.newError(ErrorType.APPLICATION, "invalid-input", "Invalid Stream id or The stream is not present in operational data store"))); } } } else { return Futures.immediateFailedCheckedFuture(new TransactionCommitFailedException("invalid-input", RpcResultBuilder.newError(ErrorType.APPLICATION, "invalid-input", "Record is not present in operational data store"))); } } catch (InterruptedException | ExecutionException e) { futureResult.set(RpcResultBuilder.<SetRuleOutput>failed() .withRpcErrors(((TransactionCommitFailedException) e).getErrorList()).build()); return futureResult; } final String confID = configIdOp; final String strmID = streamIdOp; final ListenableFuture<Void> commitFuture = Futures.transform(readFutureConfigure, new AsyncFunction<Optional<StreamRecord>, Void>() { @Override public ListenableFuture<Void> apply(final Optional<StreamRecord> streamRulesRecord) throws Exception { List<StreamList> streamRuleList = new ArrayList<StreamList>(); List<StreamList> updatedStreamRuleList = new ArrayList<StreamList>(); if (streamRulesRecord.isPresent()) { streamRuleList = streamRulesRecord.get().getStreamList(); StreamList configObject = null; Iterator<StreamList> iterator = streamRuleList.iterator(); while (iterator.hasNext()) { configObject = iterator.next(); if (configObject.getConfigID().equalsIgnoreCase(confID)) { StreamRulesBuilder streamRuleBuilder = new StreamRulesBuilder(); streamRuleBuilder.setField(input.getField()); streamRuleBuilder.setType(input.getType()); streamRuleBuilder.setValue(input.getValue()); streamRuleBuilder.setInverted(input.isInverted()); streamRuleBuilder.setStreamRuleID(streamRuleId); SetRuleOutputBuilder setRuleOutputBuilder = new SetRuleOutputBuilder(); setRuleOutputBuilder.setField(input.getField()); setRuleOutputBuilder.setInverted(input.isInverted()); setRuleOutputBuilder.setType(input.getType()); setRuleOutputBuilder.setValue(input.getValue()); StreamRules streamrule = streamRuleBuilder.build(); configObject.getStreamRules().add(streamrule); updatedStreamRuleList.add(buildStreamRule(configObject, strmID)); tx.merge(LogicalDatastoreType.CONFIGURATION, streamRecordId, new StreamRecordBuilder().setStreamList(updatedStreamRuleList).build()); } } } return tx.submit(); } }); Futures.addCallback(commitFuture, new FutureCallback<Void>() { @Override public void onSuccess(final Void result) { futureResult.set(RpcResultBuilder.<SetRuleOutput>success(setRuleOutputBuilder.build()).build()); } @Override public void onFailure(final Throwable ex) { LOG.debug("Failed to commit stream Rule", ex); futureResult.set(RpcResultBuilder.<SetRuleOutput>failed() .withRpcErrors(((TransactionCommitFailedException) ex).getErrorList()).build()); } }); return futureResult; }
From source file:org.opendaylight.centinel.impl.CentinelAlertConditionImpl.java
@Override public Future<RpcResult<UpdateAlertFieldContentRuleOutput>> updateAlertFieldContentRule( final UpdateAlertFieldContentRuleInput input) { final ReadWriteTransaction tx = dataProvider.newReadWriteTransaction(); final SettableFuture<RpcResult<UpdateAlertFieldContentRuleOutput>> futureResult = SettableFuture.create(); boolean idMatches = false; if (input.getStreamID() == null || input.getStreamID().isEmpty() || input.getStreamID().trim().isEmpty() || input.getRuleID() == null || input.getRuleID().isEmpty() || input.getRuleID().trim().isEmpty()) { LOG.debug("Invalid Parameters for UpdateAlertFieldContentRule"); return Futures.immediateFailedCheckedFuture( new TransactionCommitFailedException("inalid-input", RpcResultBuilder.newError( ErrorType.APPLICATION, "invalid-input", "StreamId and RuleId are mandatory fields"))); }/* w w w.j a va2s .c om*/ final UpdateAlertFieldContentRuleOutputBuilder updateAlertFieldContentRuleOutputBuilder = new UpdateAlertFieldContentRuleOutputBuilder(); updateAlertFieldContentRuleOutputBuilder.setFieldContentBacklog(input.getFieldContentBacklog()); updateAlertFieldContentRuleOutputBuilder .setFieldContentCompareToValue(input.getFieldContentCompareToValue()); updateAlertFieldContentRuleOutputBuilder.setFieldContentField(input.getFieldContentField()); updateAlertFieldContentRuleOutputBuilder.setFieldContentGrace(input.getFieldContentGrace()); updateAlertFieldContentRuleOutputBuilder.setRuleID(input.getRuleID()); updateAlertFieldContentRuleOutputBuilder.setNodeType(input.getNodeType()); updateAlertFieldContentRuleOutputBuilder.setRuleTypeClassifier(input.getRuleTypeClassifier()); updateAlertFieldContentRuleOutputBuilder.setStreamID(input.getStreamID()); updateAlertFieldContentRuleOutputBuilder.setTimeStamp(input.getTimeStamp()); updateAlertFieldContentRuleOutputBuilder.setAlertTypeClassifier(input.getAlertTypeClassifier()); updateAlertFieldContentRuleOutputBuilder.setAlertName(input.getAlertName()); ListenableFuture<Optional<AlertFieldContentRuleRecord>> readFutureOperational = tx .read(LogicalDatastoreType.OPERATIONAL, alertFeildContentRuleRecordId); ListenableFuture<Optional<AlertFieldContentRuleRecord>> readFutureConfigure = tx .read(LogicalDatastoreType.CONFIGURATION, alertFeildContentRuleRecordId); String configId = null; try { Optional<AlertFieldContentRuleRecord> record = readFutureOperational.get(); if (record.isPresent()) { AlertFieldContentRuleRecord operationalRecord = readFutureOperational.get().get(); List<StreamAlertFieldContentRuleList> streamAlertRuleList = new ArrayList<StreamAlertFieldContentRuleList>(); if (!operationalRecord.getStreamAlertFieldContentRuleList().isEmpty()) { streamAlertRuleList = operationalRecord.getStreamAlertFieldContentRuleList(); Iterator<StreamAlertFieldContentRuleList> itearator = streamAlertRuleList.iterator(); StreamAlertFieldContentRuleList operationalObject = null; while (itearator.hasNext()) { operationalObject = itearator.next(); if (operationalObject.getRuleID().equalsIgnoreCase(input.getRuleID()) && operationalObject.getStreamID().equalsIgnoreCase(input.getStreamID())) { configId = operationalObject.getConfigID(); idMatches = true; } } if (!idMatches) { return Futures.immediateFailedCheckedFuture(new TransactionCommitFailedException( "invalid-input", RpcResultBuilder.newError(ErrorType.APPLICATION, "invalid-input", "Invalid Stream/Rule id or The stream/rule is not present in operational data store"))); } } } else { return Futures.immediateFailedCheckedFuture(new TransactionCommitFailedException("invalid-input", RpcResultBuilder.newError(ErrorType.APPLICATION, "invalid-input", "Record is not present in operational data store"))); } } catch (InterruptedException | ExecutionException e) { futureResult.set(RpcResultBuilder.<UpdateAlertFieldContentRuleOutput>failed() .withRpcErrors(((TransactionCommitFailedException) e).getErrorList()).build()); return futureResult; } final String configID = configId; final ListenableFuture<Void> commitFuture = Futures.transform(readFutureConfigure, new AsyncFunction<Optional<AlertFieldContentRuleRecord>, Void>() { @Override public ListenableFuture<Void> apply( final Optional<AlertFieldContentRuleRecord> alertFieldContentRuleRecord) throws Exception { List<StreamAlertFieldContentRuleList> streamAlertRuleList = new ArrayList<StreamAlertFieldContentRuleList>(); List<StreamAlertFieldContentRuleList> updatedStreamAlertRuleList = new ArrayList<StreamAlertFieldContentRuleList>(); if (alertFieldContentRuleRecord.isPresent()) { streamAlertRuleList = alertFieldContentRuleRecord.get() .getStreamAlertFieldContentRuleList(); StreamAlertFieldContentRuleList configObject = null; Iterator<StreamAlertFieldContentRuleList> iterator = streamAlertRuleList.iterator(); while (iterator.hasNext()) { configObject = iterator.next(); if (configObject.getConfigID().equalsIgnoreCase(configID)) { updatedStreamAlertRuleList .add(buildUpdateAlertFieldContentRuleRecord(input, configObject)); tx.merge(LogicalDatastoreType.CONFIGURATION, alertFeildContentRuleRecordId, new AlertFieldContentRuleRecordBuilder() .setStreamAlertFieldContentRuleList(updatedStreamAlertRuleList) .build()); } } } return tx.submit(); } }); Futures.addCallback(commitFuture, new FutureCallback<Void>() { @Override public void onSuccess(final Void result) { futureResult.set(RpcResultBuilder.<UpdateAlertFieldContentRuleOutput>success( updateAlertFieldContentRuleOutputBuilder.build()).build()); } @Override public void onFailure(final Throwable ex) { LOG.info("Failed to commit Rule", ex); futureResult.set(RpcResultBuilder.<UpdateAlertFieldContentRuleOutput>failed() .withRpcErrors(((TransactionCommitFailedException) ex).getErrorList()).build()); } }); return futureResult; }
From source file:org.opendaylight.centinel.impl.CentinelAlertConditionImpl.java
@Override public Future<RpcResult<UpdateAlertFieldValueRuleOutput>> updateAlertFieldValueRule( final UpdateAlertFieldValueRuleInput input) { final ReadWriteTransaction tx = dataProvider.newReadWriteTransaction(); final SettableFuture<RpcResult<UpdateAlertFieldValueRuleOutput>> futureResult = SettableFuture.create(); boolean idMatches = false; if (input.getStreamID() == null || input.getStreamID().isEmpty() || input.getStreamID().trim().isEmpty() || input.getRuleID() == null || input.getRuleID().isEmpty() || input.getRuleID().trim().isEmpty()) { LOG.debug("Invalid Parameters for UpdateAlertFieldValueRule"); return Futures.immediateFailedCheckedFuture( new TransactionCommitFailedException("inalid-input", RpcResultBuilder.newError( ErrorType.APPLICATION, "invalid-input", "StreamId and RuleId are mandatory fields"))); }// ww w . j a v a 2s . c o m final UpdateAlertFieldValueRuleOutputBuilder updateAlertFieldValueRuleOutputBuilder = new UpdateAlertFieldValueRuleOutputBuilder(); updateAlertFieldValueRuleOutputBuilder.setFieldValueBacklog(input.getFieldValueBacklog()); updateAlertFieldValueRuleOutputBuilder.setFieldValueField(input.getFieldValueField()); updateAlertFieldValueRuleOutputBuilder.setFieldValueGrace(input.getFieldValueGrace()); updateAlertFieldValueRuleOutputBuilder.setFieldValueThreshhold(input.getFieldValueThreshhold()); updateAlertFieldValueRuleOutputBuilder.setFieldValueThreshholdType(input.getFieldValueThreshholdType()); updateAlertFieldValueRuleOutputBuilder.setFieldValueThreshholdType(input.getFieldValueThreshholdType()); updateAlertFieldValueRuleOutputBuilder.setRuleID(input.getRuleID()); updateAlertFieldValueRuleOutputBuilder.setNodeType(input.getNodeType()); updateAlertFieldValueRuleOutputBuilder.setRuleTypeClassifier(input.getRuleTypeClassifier()); updateAlertFieldValueRuleOutputBuilder.setStreamID(input.getStreamID()); updateAlertFieldValueRuleOutputBuilder.setTimeStamp(input.getTimeStamp()); updateAlertFieldValueRuleOutputBuilder.setAlertTypeClassifier(input.getAlertTypeClassifier()); updateAlertFieldValueRuleOutputBuilder.setAlertName(input.getAlertName()); ListenableFuture<Optional<AlertFieldValueRuleRecord>> readFutureOperational = tx .read(LogicalDatastoreType.OPERATIONAL, alertFieldValueRuleRecordId); ListenableFuture<Optional<AlertFieldValueRuleRecord>> readFutureConfigure = tx .read(LogicalDatastoreType.CONFIGURATION, alertFieldValueRuleRecordId); String configId = null; try { Optional<AlertFieldValueRuleRecord> record = readFutureOperational.get(); if (record.isPresent()) { AlertFieldValueRuleRecord operationalRecord = readFutureOperational.get().get(); List<StreamAlertFieldValueRuleList> streamAlertRuleList = new ArrayList<StreamAlertFieldValueRuleList>(); if (!operationalRecord.getStreamAlertFieldValueRuleList().isEmpty()) { streamAlertRuleList = operationalRecord.getStreamAlertFieldValueRuleList(); Iterator<StreamAlertFieldValueRuleList> itearator = streamAlertRuleList.iterator(); StreamAlertFieldValueRuleList operationalObject = null; while (itearator.hasNext()) { operationalObject = itearator.next(); if (operationalObject.getRuleID().equalsIgnoreCase(input.getRuleID()) && operationalObject.getStreamID().equalsIgnoreCase(input.getStreamID())) { configId = operationalObject.getConfigID(); idMatches = true; } } if (!idMatches) { return Futures.immediateFailedCheckedFuture(new TransactionCommitFailedException( "invalid-input", RpcResultBuilder.newError(ErrorType.APPLICATION, "invalid-input", "Invalid Stream/Rule id or The stream/rule is not present in operational data store"))); } } } else { return Futures.immediateFailedCheckedFuture(new TransactionCommitFailedException("invalid-input", RpcResultBuilder.newError(ErrorType.APPLICATION, "invalid-input", "Record is not present in operational data store"))); } } catch (InterruptedException | ExecutionException e) { futureResult.set(RpcResultBuilder.<UpdateAlertFieldValueRuleOutput>failed() .withRpcErrors(((TransactionCommitFailedException) e).getErrorList()).build()); return futureResult; } final String configID = configId; final ListenableFuture<Void> commitFuture = Futures.transform(readFutureConfigure, new AsyncFunction<Optional<AlertFieldValueRuleRecord>, Void>() { @Override public ListenableFuture<Void> apply( final Optional<AlertFieldValueRuleRecord> alertFieldValueRuleRecord) throws Exception { List<StreamAlertFieldValueRuleList> streamAlertRuleList = new ArrayList<StreamAlertFieldValueRuleList>(); List<StreamAlertFieldValueRuleList> updatedStreamAlertRuleList = new ArrayList<StreamAlertFieldValueRuleList>(); if (alertFieldValueRuleRecord.isPresent()) { streamAlertRuleList = alertFieldValueRuleRecord.get() .getStreamAlertFieldValueRuleList(); StreamAlertFieldValueRuleList configObject = null; Iterator<StreamAlertFieldValueRuleList> iterator = streamAlertRuleList.iterator(); while (iterator.hasNext()) { configObject = iterator.next(); if (configObject.getConfigID().equalsIgnoreCase(configID)) { updatedStreamAlertRuleList .add(buildUpdateAlertFieldValueRuleRecord(input, configObject)); tx.merge(LogicalDatastoreType.CONFIGURATION, alertFieldValueRuleRecordId, new AlertFieldValueRuleRecordBuilder() .setStreamAlertFieldValueRuleList(updatedStreamAlertRuleList) .build()); } } } return tx.submit(); } }); Futures.addCallback(commitFuture, new FutureCallback<Void>() { @Override public void onSuccess(final Void result) { futureResult.set(RpcResultBuilder .<UpdateAlertFieldValueRuleOutput>success(updateAlertFieldValueRuleOutputBuilder.build()) .build()); } @Override public void onFailure(final Throwable ex) { LOG.info("Failed to commit Rule", ex); futureResult.set(RpcResultBuilder.<UpdateAlertFieldValueRuleOutput>failed() .withRpcErrors(((TransactionCommitFailedException) ex).getErrorList()).build()); } }); return futureResult; }
From source file:org.opendaylight.centinel.impl.CentinelAlertConditionImpl.java
@Override public Future<RpcResult<DeleteAlertMessageCountRuleOutput>> deleteAlertMessageCountRule( DeleteAlertMessageCountRuleInput input) { final ReadWriteTransaction tx = dataProvider.newReadWriteTransaction(); final SettableFuture<RpcResult<DeleteAlertMessageCountRuleOutput>> futureResult = SettableFuture.create(); boolean idMatches = false; if (input.getStreamID() == null || input.getStreamID().isEmpty() || input.getStreamID().trim().isEmpty() || input.getRuleID() == null || input.getRuleID().isEmpty() || input.getRuleID().trim().isEmpty()) { LOG.debug("Invalid Parameters for DeleteAlertMessageCountRule"); return Futures.immediateFailedCheckedFuture( new TransactionCommitFailedException("inalid-input", RpcResultBuilder.newError( ErrorType.APPLICATION, "invalid-input", "StreamId and RuleId are mandatory fields"))); }//from ww w .ja va 2 s. c o m final DeleteAlertMessageCountRuleOutputBuilder deleteAlertMessageCountRuleOutputBuilder = new DeleteAlertMessageCountRuleOutputBuilder(); deleteAlertMessageCountRuleOutputBuilder.setMessageCountOperator(input.getMessageCountOperator()); deleteAlertMessageCountRuleOutputBuilder.setMessageCountCount(input.getMessageCountCount()); deleteAlertMessageCountRuleOutputBuilder.setMessageCountGrace(input.getMessageCountGrace()); deleteAlertMessageCountRuleOutputBuilder.setMessageCountBacklog(input.getMessageCountBacklog()); deleteAlertMessageCountRuleOutputBuilder.setRuleID(input.getRuleID()); deleteAlertMessageCountRuleOutputBuilder.setNodeType(input.getNodeType()); deleteAlertMessageCountRuleOutputBuilder.setRuleTypeClassifier(input.getRuleTypeClassifier()); deleteAlertMessageCountRuleOutputBuilder.setStreamID(input.getStreamID()); deleteAlertMessageCountRuleOutputBuilder.setTimeStamp(input.getTimeStamp()); deleteAlertMessageCountRuleOutputBuilder.setAlertTypeClassifier(input.getAlertTypeClassifier()); deleteAlertMessageCountRuleOutputBuilder.setAlertName(input.getAlertName()); deleteAlertMessageCountRuleOutputBuilder.setConfigID(input.getConfigID()); ListenableFuture<Optional<AlertMessageCountRuleRecord>> readFutureOperational = tx .read(LogicalDatastoreType.OPERATIONAL, alertMessageCountRuleRecordId); ListenableFuture<Optional<AlertMessageCountRuleRecord>> readFutureConfigure = tx .read(LogicalDatastoreType.CONFIGURATION, alertMessageCountRuleRecordId); String configId = null; try { Optional<AlertMessageCountRuleRecord> record = readFutureOperational.get(); if (record.isPresent()) { AlertMessageCountRuleRecord operationalRecord = readFutureOperational.get().get(); List<StreamAlertMessageCountRuleList> streamAlertRuleList = new ArrayList<StreamAlertMessageCountRuleList>(); if (!operationalRecord.getStreamAlertMessageCountRuleList().isEmpty()) { streamAlertRuleList = operationalRecord.getStreamAlertMessageCountRuleList(); Iterator<StreamAlertMessageCountRuleList> itearator = streamAlertRuleList.iterator(); StreamAlertMessageCountRuleList operationalObject = null; while (itearator.hasNext()) { operationalObject = itearator.next(); if (operationalObject.getRuleID().equalsIgnoreCase(input.getRuleID()) && operationalObject.getStreamID().equalsIgnoreCase(input.getStreamID())) { configId = operationalObject.getConfigID(); idMatches = true; } } if (!idMatches) { return Futures.immediateFailedCheckedFuture(new TransactionCommitFailedException( "invalid-input", RpcResultBuilder.newError(ErrorType.APPLICATION, "invalid-input", "Invalid Stream/Rule id or The stream/rule is not present in operational data store"))); } } } else { return Futures.immediateFailedCheckedFuture(new TransactionCommitFailedException("invalid-input", RpcResultBuilder.newError(ErrorType.APPLICATION, "invalid-input", "Record is not present in operational data store"))); } } catch (InterruptedException | ExecutionException e) { futureResult.set(RpcResultBuilder.<DeleteAlertMessageCountRuleOutput>failed() .withRpcErrors(((TransactionCommitFailedException) e).getErrorList()).build()); return futureResult; } final String configID = configId; final ListenableFuture<Void> commitFuture = Futures.transform(readFutureConfigure, new AsyncFunction<Optional<AlertMessageCountRuleRecord>, Void>() { @Override public ListenableFuture<Void> apply( final Optional<AlertMessageCountRuleRecord> alertMessageCountRuleRecord) throws Exception { List<StreamAlertMessageCountRuleList> streamAlertRuleList = new ArrayList<StreamAlertMessageCountRuleList>(); if (alertMessageCountRuleRecord.isPresent()) { streamAlertRuleList = alertMessageCountRuleRecord.get() .getStreamAlertMessageCountRuleList(); StreamAlertMessageCountRuleList configObject = null; Iterator<StreamAlertMessageCountRuleList> iterator = streamAlertRuleList.iterator(); while (iterator.hasNext()) { configObject = iterator.next(); if (configObject.getConfigID().equalsIgnoreCase(configID)) { tx.delete(LogicalDatastoreType.CONFIGURATION, alertMessageCountRuleRecordId .child(StreamAlertMessageCountRuleList.class, configObject.getKey())); } } } return tx.submit(); } }); Futures.addCallback(commitFuture, new FutureCallback<Void>() { @Override public void onSuccess(final Void result) { futureResult.set(RpcResultBuilder.<DeleteAlertMessageCountRuleOutput>success( deleteAlertMessageCountRuleOutputBuilder.build()).build()); } @Override public void onFailure(final Throwable ex) { LOG.info("Failed to commit Rule", ex); futureResult.set(RpcResultBuilder.<DeleteAlertMessageCountRuleOutput>failed() .withRpcErrors(((TransactionCommitFailedException) ex).getErrorList()).build()); } }); return futureResult; }
From source file:org.opendaylight.centinel.impl.CentinelAlertConditionImpl.java
@Override public Future<RpcResult<DeleteAlertFieldContentRuleOutput>> deleteAlertFieldContentRule( DeleteAlertFieldContentRuleInput input) { final ReadWriteTransaction tx = dataProvider.newReadWriteTransaction(); final SettableFuture<RpcResult<DeleteAlertFieldContentRuleOutput>> futureResult = SettableFuture.create(); boolean idMatches = false; if (input.getStreamID() == null || input.getStreamID().isEmpty() || input.getStreamID().trim().isEmpty() || input.getRuleID() == null || input.getRuleID().isEmpty() || input.getRuleID().trim().isEmpty()) { LOG.debug("Invalid Parameters for DeleteAlertFieldContentRule"); return Futures.immediateFailedCheckedFuture( new TransactionCommitFailedException("inalid-input", RpcResultBuilder.newError( ErrorType.APPLICATION, "invalid-input", "StreamId and RuleId are mandatory fields"))); }/*w w w . ja v a 2 s . co m*/ final DeleteAlertFieldContentRuleOutputBuilder deleteAlertFieldContentRuleOutputBuilder = new DeleteAlertFieldContentRuleOutputBuilder(); deleteAlertFieldContentRuleOutputBuilder.setFieldContentBacklog(input.getFieldContentBacklog()); deleteAlertFieldContentRuleOutputBuilder .setFieldContentCompareToValue(input.getFieldContentCompareToValue()); deleteAlertFieldContentRuleOutputBuilder.setFieldContentField(input.getFieldContentField()); deleteAlertFieldContentRuleOutputBuilder.setFieldContentGrace(input.getFieldContentGrace()); deleteAlertFieldContentRuleOutputBuilder.setRuleTypeClassifier(input.getRuleTypeClassifier()); deleteAlertFieldContentRuleOutputBuilder.setRuleID(input.getRuleID()); deleteAlertFieldContentRuleOutputBuilder.setNodeType(input.getNodeType()); deleteAlertFieldContentRuleOutputBuilder.setStreamID(input.getStreamID()); deleteAlertFieldContentRuleOutputBuilder.setTimeStamp(input.getTimeStamp()); deleteAlertFieldContentRuleOutputBuilder.setAlertTypeClassifier(input.getAlertTypeClassifier()); deleteAlertFieldContentRuleOutputBuilder.setAlertName(input.getAlertName()); deleteAlertFieldContentRuleOutputBuilder.setConfigID(input.getConfigID()); ListenableFuture<Optional<AlertFieldContentRuleRecord>> readFutureOperational = tx .read(LogicalDatastoreType.OPERATIONAL, alertFeildContentRuleRecordId); ListenableFuture<Optional<AlertFieldContentRuleRecord>> readFutureConfigure = tx .read(LogicalDatastoreType.CONFIGURATION, alertFeildContentRuleRecordId); String configId = null; try { Optional<AlertFieldContentRuleRecord> record = readFutureOperational.get(); if (record.isPresent()) { AlertFieldContentRuleRecord operationalRecord = readFutureOperational.get().get(); List<StreamAlertFieldContentRuleList> streamAlertRuleList = new ArrayList<StreamAlertFieldContentRuleList>(); if (!operationalRecord.getStreamAlertFieldContentRuleList().isEmpty()) { streamAlertRuleList = operationalRecord.getStreamAlertFieldContentRuleList(); Iterator<StreamAlertFieldContentRuleList> itearator = streamAlertRuleList.iterator(); StreamAlertFieldContentRuleList operationalObject = null; while (itearator.hasNext()) { operationalObject = itearator.next(); if (operationalObject.getRuleID().equalsIgnoreCase(input.getRuleID()) && operationalObject.getStreamID().equalsIgnoreCase(input.getStreamID())) { configId = operationalObject.getConfigID(); idMatches = true; } } if (!idMatches) { return Futures.immediateFailedCheckedFuture(new TransactionCommitFailedException( "invalid-input", RpcResultBuilder.newError(ErrorType.APPLICATION, "invalid-input", "Invalid Stream/Rule id or The stream/rule is not present in operational data store"))); } } } else { return Futures.immediateFailedCheckedFuture(new TransactionCommitFailedException("invalid-input", RpcResultBuilder.newError(ErrorType.APPLICATION, "invalid-input", "Record is not present in operational data store"))); } } catch (InterruptedException | ExecutionException e) { futureResult.set(RpcResultBuilder.<DeleteAlertFieldContentRuleOutput>failed() .withRpcErrors(((TransactionCommitFailedException) e).getErrorList()).build()); return futureResult; } final String configID = configId; final ListenableFuture<Void> commitFuture = Futures.transform(readFutureConfigure, new AsyncFunction<Optional<AlertFieldContentRuleRecord>, Void>() { @Override public ListenableFuture<Void> apply( final Optional<AlertFieldContentRuleRecord> alertFieldContentRuleRecord) throws Exception { List<StreamAlertFieldContentRuleList> streamAlertRuleList = new ArrayList<StreamAlertFieldContentRuleList>(); if (alertFieldContentRuleRecord.isPresent()) { streamAlertRuleList = alertFieldContentRuleRecord.get() .getStreamAlertFieldContentRuleList(); StreamAlertFieldContentRuleList configObject = null; Iterator<StreamAlertFieldContentRuleList> iterator = streamAlertRuleList.iterator(); while (iterator.hasNext()) { configObject = iterator.next(); if (configObject.getConfigID().equalsIgnoreCase(configID)) { tx.delete(LogicalDatastoreType.CONFIGURATION, alertFeildContentRuleRecordId .child(StreamAlertFieldContentRuleList.class, configObject.getKey())); } } } return tx.submit(); } }); Futures.addCallback(commitFuture, new FutureCallback<Void>() { @Override public void onSuccess(final Void result) { futureResult.set(RpcResultBuilder.<DeleteAlertFieldContentRuleOutput>success( deleteAlertFieldContentRuleOutputBuilder.build()).build()); } @Override public void onFailure(final Throwable ex) { LOG.info("Failed to commit Rule", ex); futureResult.set(RpcResultBuilder.<DeleteAlertFieldContentRuleOutput>failed() .withRpcErrors(((TransactionCommitFailedException) ex).getErrorList()).build()); } }); return futureResult; }
From source file:org.opendaylight.centinel.impl.CentinelAlertConditionImpl.java
@Override public Future<RpcResult<DeleteAlertFieldValueRuleOutput>> deleteAlertFieldValueRule( final DeleteAlertFieldValueRuleInput input) { final ReadWriteTransaction tx = dataProvider.newReadWriteTransaction(); final SettableFuture<RpcResult<DeleteAlertFieldValueRuleOutput>> futureResult = SettableFuture.create(); boolean idMatches = false; if (input.getStreamID() == null || input.getStreamID().isEmpty() || input.getStreamID().trim().isEmpty() || input.getRuleID() == null || input.getRuleID().isEmpty() || input.getRuleID().trim().isEmpty()) { LOG.debug("Invalid Parameters for DeleteAlertFieldValueRule"); return Futures.immediateFailedCheckedFuture( new TransactionCommitFailedException("inalid-input", RpcResultBuilder.newError( ErrorType.APPLICATION, "invalid-input", "StreamId and RuleId are mandatory fields"))); }//w ww . ja va 2 s . co m final DeleteAlertFieldValueRuleOutputBuilder deleteAlertFieldValueRuleOutputBuilder = new DeleteAlertFieldValueRuleOutputBuilder(); deleteAlertFieldValueRuleOutputBuilder .setStreamID("The alert with this" + input.getStreamID() + "is deleted"); ListenableFuture<Optional<AlertFieldValueRuleRecord>> readFutureOperational = tx .read(LogicalDatastoreType.OPERATIONAL, alertFieldValueRuleRecordId); ListenableFuture<Optional<AlertFieldValueRuleRecord>> readFutureConfigure = tx .read(LogicalDatastoreType.CONFIGURATION, alertFieldValueRuleRecordId); String configId = null; try { Optional<AlertFieldValueRuleRecord> record = readFutureOperational.get(); if (record.isPresent()) { AlertFieldValueRuleRecord operationalRecord = readFutureOperational.get().get(); List<StreamAlertFieldValueRuleList> streamAlertRuleList = new ArrayList<StreamAlertFieldValueRuleList>(); if (!operationalRecord.getStreamAlertFieldValueRuleList().isEmpty()) { streamAlertRuleList = operationalRecord.getStreamAlertFieldValueRuleList(); Iterator<StreamAlertFieldValueRuleList> itearator = streamAlertRuleList.iterator(); StreamAlertFieldValueRuleList operationalObject = null; while (itearator.hasNext()) { operationalObject = itearator.next(); if (operationalObject.getRuleID().equalsIgnoreCase(input.getRuleID()) && operationalObject.getStreamID().equalsIgnoreCase(input.getStreamID())) { configId = operationalObject.getConfigID(); idMatches = true; } } if (!idMatches) { return Futures.immediateFailedCheckedFuture(new TransactionCommitFailedException( "invalid-input", RpcResultBuilder.newError(ErrorType.APPLICATION, "invalid-input", "Invalid Stream/Rule id or The stream/rule is not present in operational data store"))); } } } else { return Futures.immediateFailedCheckedFuture(new TransactionCommitFailedException("invalid-input", RpcResultBuilder.newError(ErrorType.APPLICATION, "invalid-input", "Record is not present in operational data store"))); } } catch (InterruptedException | ExecutionException e) { deleteAlertFieldValueRuleOutputBuilder .setStreamID("The alert with this" + input.getStreamID() + "is not present"); futureResult.set(RpcResultBuilder.<DeleteAlertFieldValueRuleOutput>failed() .withRpcErrors(((TransactionCommitFailedException) e).getErrorList()).build()); return futureResult; } final String configID = configId; final ListenableFuture<Void> commitFuture = Futures.transform(readFutureConfigure, new AsyncFunction<Optional<AlertFieldValueRuleRecord>, Void>() { @Override public ListenableFuture<Void> apply( final Optional<AlertFieldValueRuleRecord> alertFieldValueRuleRecord) throws Exception { List<StreamAlertFieldValueRuleList> streamAlertRuleList = new ArrayList<StreamAlertFieldValueRuleList>(); if (alertFieldValueRuleRecord.isPresent()) { streamAlertRuleList = alertFieldValueRuleRecord.get() .getStreamAlertFieldValueRuleList(); StreamAlertFieldValueRuleList configObject = null; Iterator<StreamAlertFieldValueRuleList> iterator = streamAlertRuleList.iterator(); while (iterator.hasNext()) { configObject = iterator.next(); if (configObject.getConfigID().equalsIgnoreCase(configID)) { tx.delete(LogicalDatastoreType.CONFIGURATION, alertFieldValueRuleRecordId .child(StreamAlertFieldValueRuleList.class, configObject.getKey())); } } } return tx.submit(); } }); Futures.addCallback(commitFuture, new FutureCallback<Void>() { @Override public void onSuccess(final Void result) { futureResult.set(RpcResultBuilder .<DeleteAlertFieldValueRuleOutput>success(deleteAlertFieldValueRuleOutputBuilder.build()) .build()); } @Override public void onFailure(final Throwable ex) { LOG.info("Failed to commit Rule", ex); futureResult.set(RpcResultBuilder.<DeleteAlertFieldValueRuleOutput>failed() .withRpcErrors(((TransactionCommitFailedException) ex).getErrorList()).build()); } }); return futureResult; }
From source file:org.opendaylight.centinel.impl.CentinelAlertConditionImpl.java
@Override public Future<RpcResult<GetAllAlertRuleOutput>> getAllAlertRule(final GetAllAlertRuleInput input) { final ReadWriteTransaction tx = dataProvider.newReadWriteTransaction(); final SettableFuture<RpcResult<GetAllAlertRuleOutput>> futureResult = SettableFuture.create(); if (input.getStreamID() == null || input.getStreamID().isEmpty() || input.getStreamID().trim().isEmpty()) { LOG.debug("Invalid Parameters for GetAllAlertRule"); return Futures.immediateFailedCheckedFuture( new TransactionCommitFailedException("inalid-input", RpcResultBuilder .newError(ErrorType.APPLICATION, "invalid-input", "StreamId is a mandatory field"))); }/* ww w . j a v a 2 s. com*/ final GetAllAlertRuleOutputBuilder allAlertRuleOutputBuilder = new GetAllAlertRuleOutputBuilder(); ListenableFuture<Optional<AlertMessageCountRuleRecord>> alertMessageCountReadFuture = tx .read(LogicalDatastoreType.OPERATIONAL, alertMessageCountRuleRecordId); ListenableFuture<Optional<AlertFieldContentRuleRecord>> alertFieldContentReadFuture = tx .read(LogicalDatastoreType.OPERATIONAL, alertFeildContentRuleRecordId); ListenableFuture<Optional<AlertFieldValueRuleRecord>> alertFieldValueReadFuture = tx .read(LogicalDatastoreType.OPERATIONAL, alertFieldValueRuleRecordId); ListenableFuture<Optional<StreamRecord>> streamRuleReadFuture = tx.read(LogicalDatastoreType.OPERATIONAL, streamRecordId); boolean check = true; try { Optional<StreamRecord> streamRecord = streamRuleReadFuture.get(); List<StreamList> streamList = new ArrayList<StreamList>(); if (streamRecord.isPresent()) { streamList = streamRecord.get().getStreamList(); } else { return Futures.immediateFailedCheckedFuture(new TransactionCommitFailedException("invalid-input", RpcResultBuilder.newError(ErrorType.APPLICATION, "invalid-input", "No Stream Record is present in operational data store"))); } if (!streamList.isEmpty()) { java.util.Iterator<StreamList> streamListIterator = streamList.iterator(); while (streamListIterator.hasNext()) { StreamList streamListObj = streamListIterator.next(); if (streamListObj.getStreamID().equals(input.getStreamID())) { check = false; break; } } } if (check) { return Futures.immediateFailedCheckedFuture( new TransactionCommitFailedException("inalid-input", RpcResultBuilder.newError( ErrorType.APPLICATION, "invalid-input", "NO stream with this Id in datastore"))); } Optional<AlertMessageCountRuleRecord> alertMessageCountRuleRecord = alertMessageCountReadFuture.get(); List<StreamAlertMessageCountRuleList> streamAlertRuleList = new ArrayList<StreamAlertMessageCountRuleList>(); if (alertMessageCountRuleRecord.isPresent()) { streamAlertRuleList = alertMessageCountRuleRecord.get().getStreamAlertMessageCountRuleList(); java.util.Iterator<StreamAlertMessageCountRuleList> iterator = streamAlertRuleList.iterator(); List<StreamAlertMessageCountRuleListSorted> streamAlertMessageCountRuleListSortedList = new ArrayList<StreamAlertMessageCountRuleListSorted>(); StreamAlertMessageCountRuleListSortedBuilder streamAlertMessageCountRuleListSortedBuilder = new StreamAlertMessageCountRuleListSortedBuilder(); while (iterator.hasNext()) { StreamAlertMessageCountRuleList streamAlertMessageObj = iterator.next(); if (streamAlertMessageObj.getStreamID().equals(input.getStreamID())) { streamAlertMessageCountRuleListSortedBuilder .setStreamID(streamAlertMessageObj.getStreamID()); streamAlertMessageCountRuleListSortedBuilder .setMessageCountOperator(streamAlertMessageObj.getMessageCountOperator()); streamAlertMessageCountRuleListSortedBuilder .setNodeType(streamAlertMessageObj.getNodeType()); streamAlertMessageCountRuleListSortedBuilder .setConfigID(streamAlertMessageObj.getConfigID()); streamAlertMessageCountRuleListSortedBuilder.setRuleID(streamAlertMessageObj.getRuleID()); streamAlertMessageCountRuleListSortedBuilder .setAlertTypeClassifier(streamAlertMessageObj.getAlertTypeClassifier()); streamAlertMessageCountRuleListSortedBuilder .setRuleTypeClassifier(streamAlertMessageObj.getRuleTypeClassifier()); streamAlertMessageCountRuleListSortedBuilder .setMessageCountCount(streamAlertMessageObj.getMessageCountCount()); streamAlertMessageCountRuleListSortedBuilder .setMessageCountGrace(streamAlertMessageObj.getMessageCountGrace()); streamAlertMessageCountRuleListSortedBuilder .setTimeStamp(streamAlertMessageObj.getTimeStamp()); streamAlertMessageCountRuleListSortedBuilder .setMessageCountBacklog(streamAlertMessageObj.getMessageCountBacklog()); streamAlertMessageCountRuleListSortedBuilder .setAlertName(streamAlertMessageObj.getAlertName()); streamAlertMessageCountRuleListSortedList.add( (StreamAlertMessageCountRuleListSorted) streamAlertMessageCountRuleListSortedBuilder .build()); allAlertRuleOutputBuilder.setStreamAlertMessageCountRuleListSorted( streamAlertMessageCountRuleListSortedList); } } } } catch (InterruptedException | ExecutionException ex) { LOG.error("Failed to get all Rules", ex); } try { Optional<AlertFieldContentRuleRecord> alertFieldContentRuleRecord = alertFieldContentReadFuture.get(); List<StreamAlertFieldContentRuleList> streamAlertRuleList = new ArrayList<StreamAlertFieldContentRuleList>(); if (alertFieldContentRuleRecord.isPresent()) { streamAlertRuleList = alertFieldContentRuleRecord.get().getStreamAlertFieldContentRuleList(); } java.util.Iterator<StreamAlertFieldContentRuleList> iterator = streamAlertRuleList.iterator(); List<StreamAlertFieldContentRuleListSorted> streamAlertFieldContentRuleListSorted = new ArrayList<StreamAlertFieldContentRuleListSorted>(); StreamAlertFieldContentRuleListSortedBuilder streamAlertFieldContentRuleListSortedBuilder = new StreamAlertFieldContentRuleListSortedBuilder(); while (iterator.hasNext()) { StreamAlertFieldContentRuleList streamAlertFieldContentObj = iterator.next(); if (streamAlertFieldContentObj.getStreamID().equals(input.getStreamID())) { streamAlertFieldContentRuleListSortedBuilder .setConfigID(streamAlertFieldContentObj.getConfigID()); streamAlertFieldContentRuleListSortedBuilder .setTimeStamp(streamAlertFieldContentObj.getTimeStamp()); streamAlertFieldContentRuleListSortedBuilder.setRuleID(streamAlertFieldContentObj.getRuleID()); streamAlertFieldContentRuleListSortedBuilder .setStreamID(streamAlertFieldContentObj.getStreamID()); streamAlertFieldContentRuleListSortedBuilder .setFieldContentBacklog(streamAlertFieldContentObj.getFieldContentBacklog()); streamAlertFieldContentRuleListSortedBuilder .setRuleTypeClassifier(streamAlertFieldContentObj.getRuleTypeClassifier()); streamAlertFieldContentRuleListSortedBuilder .setAlertTypeClassifier(streamAlertFieldContentObj.getAlertTypeClassifier()); streamAlertFieldContentRuleListSortedBuilder .setNodeType(streamAlertFieldContentObj.getNodeType()); streamAlertFieldContentRuleListSortedBuilder.setFieldContentCompareToValue( streamAlertFieldContentObj.getFieldContentCompareToValue()); streamAlertFieldContentRuleListSortedBuilder .setFieldContentGrace(streamAlertFieldContentObj.getFieldContentGrace()); streamAlertFieldContentRuleListSortedBuilder .setFieldContentField(streamAlertFieldContentObj.getFieldContentField()); streamAlertFieldContentRuleListSortedBuilder .setAlertName(streamAlertFieldContentObj.getAlertName()); streamAlertFieldContentRuleListSorted.add( (StreamAlertFieldContentRuleListSorted) streamAlertFieldContentRuleListSortedBuilder .build()); allAlertRuleOutputBuilder .setStreamAlertFieldContentRuleListSorted(streamAlertFieldContentRuleListSorted); } } } catch (InterruptedException | ExecutionException ex) { LOG.error("Failed to get all Rules", ex); } try { Optional<AlertFieldValueRuleRecord> alertFieldValueRuleRecord = alertFieldValueReadFuture.get(); List<StreamAlertFieldValueRuleList> streamAlertRuleList = new ArrayList<StreamAlertFieldValueRuleList>(); if (alertFieldValueRuleRecord.isPresent()) { streamAlertRuleList = alertFieldValueRuleRecord.get().getStreamAlertFieldValueRuleList(); } java.util.Iterator<StreamAlertFieldValueRuleList> iterator = streamAlertRuleList.iterator(); List<StreamAlertFieldValueRuleListSorted> streamAlertFieldValueRuleListSorted = new ArrayList<StreamAlertFieldValueRuleListSorted>(); StreamAlertFieldValueRuleListSortedBuilder streamAlertFieldValueRuleListSortedBuilder = new StreamAlertFieldValueRuleListSortedBuilder(); while (iterator.hasNext()) { StreamAlertFieldValueRuleList streamAlertFieldValueRuleObj = iterator.next(); if (streamAlertFieldValueRuleObj.getStreamID().equals(input.getStreamID())) { streamAlertFieldValueRuleListSortedBuilder .setAlertTypeClassifier(streamAlertFieldValueRuleObj.getAlertTypeClassifier()); streamAlertFieldValueRuleListSortedBuilder .setConfigID(streamAlertFieldValueRuleObj.getConfigID()); streamAlertFieldValueRuleListSortedBuilder.setRuleID(streamAlertFieldValueRuleObj.getRuleID()); streamAlertFieldValueRuleListSortedBuilder .setStreamID(streamAlertFieldValueRuleObj.getStreamID()); streamAlertFieldValueRuleListSortedBuilder .setFieldValueBacklog(streamAlertFieldValueRuleObj.getFieldValueBacklog()); streamAlertFieldValueRuleListSortedBuilder .setRuleTypeClassifier(streamAlertFieldValueRuleObj.getRuleTypeClassifier()); streamAlertFieldValueRuleListSortedBuilder .setFieldValueField(streamAlertFieldValueRuleObj.getFieldValueField()); streamAlertFieldValueRuleListSortedBuilder .setNodeType(streamAlertFieldValueRuleObj.getNodeType()); streamAlertFieldValueRuleListSortedBuilder.setFieldValueThreshholdType( streamAlertFieldValueRuleObj.getFieldValueThreshholdType()); streamAlertFieldValueRuleListSortedBuilder .setFieldValueThreshhold(streamAlertFieldValueRuleObj.getFieldValueThreshhold()); streamAlertFieldValueRuleListSortedBuilder .setFieldValueType(streamAlertFieldValueRuleObj.getFieldValueType()); streamAlertFieldValueRuleListSortedBuilder .setFieldValueGrace(streamAlertFieldValueRuleObj.getFieldValueGrace()); streamAlertFieldValueRuleListSortedBuilder .setTimeStamp(streamAlertFieldValueRuleObj.getTimeStamp()); streamAlertFieldValueRuleListSortedBuilder .setAlertName(streamAlertFieldValueRuleObj.getAlertName()); streamAlertFieldValueRuleListSorted .add((StreamAlertFieldValueRuleListSorted) streamAlertFieldValueRuleListSortedBuilder .build()); allAlertRuleOutputBuilder .setStreamAlertFieldValueRuleListSorted(streamAlertFieldValueRuleListSorted); } } futureResult.set( RpcResultBuilder.<GetAllAlertRuleOutput>success(allAlertRuleOutputBuilder.build()).build()); } catch (InterruptedException | ExecutionException ex) { LOG.error("Failed to get all Rules", ex); } return futureResult; }
From source file:org.opendaylight.netvirt.elan.utils.ElanUtils.java
public static void addToListenableFutureIfTxException(RuntimeException exception, List<ListenableFuture<Void>> futures) { Throwable cause = exception.getCause(); if (cause != null && cause instanceof TransactionCommitFailedException) { futures.add(Futures.immediateFailedCheckedFuture((TransactionCommitFailedException) cause)); }//from w w w . ja va 2s. c o m }