static int updateOrderBasedOn(ClassifierInstance ci, ActionChoice action, Integer baseOrder) { int delta = 0; if (ci.getClassifierDefinitionId().equals(EtherTypeClassifierDefinition.ID)) { delta = 350; } else if (ci.getClassifierDefinitionId().equals(IpProtoClassifierDefinition.ID)) { delta = 300; } else if (ci.getClassifierDefinitionId().equals(L4ClassifierDefinition.ID)) { delta = 200; List<ParameterValue> parameterValue = ci.getParameterValue(); for (ParameterValue pv : parameterValue) {
@VisibleForTesting void createClassifierInstanceIfNotExists(TenantId tenantId, ClassifierInstance classifierInstance, WriteTransaction wTx) { InstanceIdentifier<ClassifierInstance> classifierInstanceIid = IidFactory.classifierInstanceIid(tenantId, classifierInstance.getName()); if (!createdClassifierInstances.contains(classifierInstanceIid)) { wTx.put(LogicalDatastoreType.CONFIGURATION, classifierInstanceIid, classifierInstance, true); } createdClassifierInstances.add(classifierInstanceIid); }
classifierRef.getName()); } else { if (classifierInstance.getClassifierDefinitionId() != null) { ruleClassifierBuilder.setAdditionalInfo(new Text(classifierInstance.getClassifierDefinitionId() .getValue())); if (classifierInstance.getParameterValue() != null) { LOG.trace("Calssifier Instance {} has {} parameters", classifierInstance.getName().getValue(), classifierInstance.getParameterValue().size()); parms = new ArrayList<>(); for (org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValue instance : classifierInstance.getParameterValue()) { ParameterValueBuilder pBuilder = new ParameterValueBuilder(); pBuilder.setIntValue(instance.getIntValue()); LOG.trace("Added parm {} from Classifier Instance {}", parm, classifierInstance.getName() .getValue()); parms.add(parm); LOG.trace("Classifier Instance {} has no parameters", classifierInstance.getName().getValue());
return null; Classifier classifier = SubjectFeatures.getClassifier(ci.getClassifierDefinitionId()); if (classifier == null) { LOG.warn("Classifier definition {} not found", ci.getClassifierDefinitionId().getValue()); return null; classifiers.add(new ClassifierDefinitionId(ci.getClassifierDefinitionId())); for (ParameterValue v : ci.getParameterValue()) { if (paramsFromClassifier.get(v.getName().getValue()) == null) { if (v.getIntValue() != null || v.getStringValue() != null || v.getRangeValue() != null) {
private void deleteClassifierInstanceIfNotUsed(TenantId tenantId, ClassifierInstance classifierInstance, ReadWriteTransaction rwTx) { InstanceIdentifier<ClassifierInstance> classifierInstanceIid = IidFactory.classifierInstanceIid(tenantId, classifierInstance.getName()); createdClassifierInstances.remove(classifierInstanceIid); if (!createdClassifierInstances.contains(classifierInstanceIid)) { DataStoreHelper.removeIfExists(LogicalDatastoreType.CONFIGURATION, classifierInstanceIid, rwTx); } }
/** * Puts network service entities (classifier-instances, {@link #DHCP_CONTRACT}, * {@link #DNS_CONTRACT}, {@link #MGMT_CONTRACT} and {@link #EPG}) to * {@link LogicalDatastoreType#CONFIGURATION} * * @param tenantId location of network-service entities * @param wTx transaction where network-service entities are written */ public static void writeNetworkServiceEntitiesToTenant(TenantId tenantId, WriteTransaction wTx) { Set<ClassifierInstance> classifierInstances = getAllClassifierInstances(); for (ClassifierInstance ci : classifierInstances) { wTx.put(LogicalDatastoreType.CONFIGURATION, IidFactory.classifierInstanceIid(tenantId, ci.getName()), ci, true); } wTx.put(LogicalDatastoreType.CONFIGURATION, IidFactory.contractIid(tenantId, DHCP_CONTRACT_ID), DHCP_CONTRACT, true); wTx.put(LogicalDatastoreType.CONFIGURATION, IidFactory.contractIid(tenantId, DNS_CONTRACT_ID), DNS_CONTRACT, true); wTx.put(LogicalDatastoreType.CONFIGURATION, IidFactory.contractIid(tenantId, MGMT_CONTRACT_ID), MGMT_CONTRACT, true); wTx.put(LogicalDatastoreType.CONFIGURATION, IidFactory.endpointGroupIid(tenantId, EPG_ID), EPG, true); }