@Override public ValidationResult validate(ActionInstance actionInstance) { return isValidGbpChain(actionInstance.getParameterValue()); }
private ParameterValue getChainNameParameter(List<ParameterValue> pvl) { if (pvl == null) return null; for (ParameterValue pv: actionInstance.getParameterValue()) { if (pv.getName().getValue().equals(SFC_CHAIN_NAME)) { return pv; } } return null; }
private void deleteSfcRsp() { ParameterValue pv = getChainNameParameter(originalInstance.getParameterValue()); if (pv == null) return; rspMap.remove(pv.getStringValue()); }
private void changeSfcRsp() { ParameterValue newPv = getChainNameParameter(actionInstance.getParameterValue()); ParameterValue origPv = getChainNameParameter(originalInstance.getParameterValue()); if (!newPv.getStringValue().equals(origPv.getStringValue())) { if (rspMap.containsKey(origPv.getStringValue())) { /* * Flow cleanup will happen as part of the * resolved policy * * TODO: can we guarantee that this * happens after we remove the RSP?). */ rspMap.remove(origPv.getStringValue()); } addSfcRsp(); } }
private List<String> getSymetricChainNames(ActionInstance action) { List<String> chainNames = new ArrayList<>(); for (ParameterValue param : action.getParameterValue()) { if (param.getStringValue() != null && param.getName().getValue().equals(ChainActionDefinition.SFC_CHAIN_NAME)) { String chainName = param.getStringValue(); ServiceFunctionPath sfcPath = ChainAction.getSfcPath(new SfcName(chainName)); if (sfcPath == null || sfcPath.getName() == null) { continue; } if (sfcPath.isSymmetric()) { chainNames.add(param.getStringValue()); } } } return chainNames; }
private void getSfcChain() { ParameterValue pv = getChainNameParameter(actionInstance.getParameterValue()); if (pv == null) return; LOG.trace("Invoking RPC for chain {}", pv.getStringValue()); SfcName chainName=new SfcName(pv.getStringValue()); ServiceFunctionChain chain = SfcProviderServiceChainAPI.readServiceFunctionChain(chainName); ServiceFunctionPaths paths = SfcProviderServicePathAPI.readAllServiceFunctionPaths(); for(ServiceFunctionPath path: paths.getServiceFunctionPath()) { if(path.getServiceChainName().equals(chainName)) { LOG.info("Found path {} for chain {}",path.getName(),path.getServiceChainName()); } } } }
getChainNameParameter(actionInstance.getParameterValue()); if (pv == null) return;
if (actionInstance.getParameterValue() != null) { for (ParameterValue v : actionInstance.getParameterValue()) { if (v.getName() == null) continue;
if (actionInstance.getParameterValue() != null) { LOG.trace("Action Instance {} has {} parameters", actionInstance.getName().getValue(), actionInstance.getParameterValue().size()); parms = new ArrayList<>(); for (org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValue instance : actionInstance.getParameterValue()) { ParameterValueBuilder pBuilder = new ParameterValueBuilder(); pBuilder.setIntValue(instance.getIntValue());