public void qos_policy_modify_test() {
String url = base + "/qos/policies/d6220bbb-35f3-48ab-8eae-69c60aef3546";
String content = "{\"policy\": {\"id\": \"d6220bbb-35f3-48ab-8eae-69c60aef3546\","
- + "\"tenant_id\": \"aa902936679e4ea29bfe1158e3450a13\"," + "\"name\": \"jaxb-test\", "
- + "\"shared\": false,"
- + "\"bandwidth_limit_rules\": [ {\"id\": \"d6220bbb-35f3-48ab-8eae-69c60aef3547\","
- + "\"tenant_id\": \"aa902936679e4ea29bfe1158e3450a14\",\"max_kbps\": 25,"
- + "\"max_burst_kbps\": 100 } ] ,"
- + "\"dscp_marking_rules\": [ {\"id\": \"d6220bbb-35f3-48ab-8eae-69c60aef3547\","
- + "\"tenant_id\": \"aa902936679e4ea29bfe1158e3450a14\", " + "\"dscp_mark\": 8 } ] }}";
+ + "\"tenant_id\": \"aa902936679e4ea29bfe1158e3450a13\"," + "\"name\": \"jaxb-test\", "
+ + "\"shared\": false,"
+ + "\"bandwidth_limit_rules\": [ {\"id\": \"d6220bbb-35f3-48ab-8eae-69c60aef3546\","
+ + "\"tenant_id\": \"aa902936679e4ea29bfe1158e3450a13\",\"max_kbps\": 25,"
+ + "\"max_burst_kbps\": 100 } ] ,"
+ + "\"dscp_marking_rules\": [ {\"id\": \"d6220bbb-35f3-48ab-8eae-69c60aef3546\","
+ + "\"tenant_id\": \"aa902936679e4ea29bfe1158e3450a13\", " + "\"dscp_mark\": 8 } ] ,"
+ + "\"minimum_bandwidth_rules\": [ {\"id\": \"d6220bbb-35f3-48ab-8eae-69c60aef3546\","
+ + "\"tenant_id\": \"aa902936679e4ea29bfe1158e3450a13\", " + "\"min_kbps\": 20,"
+ + "\"direction\": \"egress\" } ] }}";
ITNeutronE2E.test_modify(url, content, "Qos Policy Singleton Put failed");
}
return inverseMapper.get(key);
}
}
+
+ // Direction of the Traffic
+ public static class DirectionMapper {
+ private DirectionMapper() {
+ throw new UnsupportedOperationException("Utility class should not be instantiated.");
+ }
+
+ private static final ImmutableBiMap<String, Class<? extends DirectionBase>> MAPPER
+ = new ImmutableBiMap.Builder<String, Class<? extends DirectionBase>>()
+ .put("egress", DirectionEgress.class)
+ .put("ingress", DirectionIngress.class)
+ .build();
+
+ public static Class<? extends DirectionBase> get(String key) {
+ return MAPPER.get(key);
+ }
+
+ public static String getName(Class<? extends DirectionBase> key) {
+ ImmutableBiMap<Class<? extends DirectionBase>, String> inverseMapper = MAPPER.inverse();
+ return inverseMapper.get(key);
+ }
+
+ private static final ImmutableBiMap<String, Class<? extends DirectionMinimumBandwidthRule>>
+ MINIMUMBANDWIDTHRULE_MAPPER = new ImmutableBiMap.Builder<String, Class<? extends
+ DirectionMinimumBandwidthRule>>()
+ .put("egress", DirectionMinimumBandwidthRule.class)
+ .build();
+
+ public static Class<? extends DirectionMinimumBandwidthRule>
+ getMinimumBandwidthRuleDirection(String minimumBandwidthKey) {
+ return MINIMUMBANDWIDTHRULE_MAPPER.get(minimumBandwidthKey);
+ }
+
+ public static String getMinimumBandwidthRuleDirectionString(Class<? extends DirectionMinimumBandwidthRule>
+ minimumBandwidthKey) {
+ ImmutableBiMap<Class<? extends DirectionMinimumBandwidthRule>, String>
+ inverseMinimBandwidthRuleDirectionMapper = MINIMUMBANDWIDTHRULE_MAPPER.inverse();
+ return inverseMinimBandwidthRuleDirectionMapper.get(minimumBandwidthKey);
+ }
+ }
}
}
+ identity direction-minimum-bandwidth-rule {
+ description "Direction for minimum bandwidth rule.";
+ base direction-base;
+ }
+
// IP VERSION
identity ip-version-base {
description "the base identity for ip versions";
import ietf-yang-types { prefix "yang"; revision-date "2013-07-15"; }
import neutron-attrs { prefix "attrs"; }
+ import neutron-constants { prefix "constants"; }
organization "OpenDaylight Neutron Group";
}
}
+ grouping minimumbandwidth-rule-attributes {
+ leaf min-kbps {
+ type uint64;
+ description "The minimum KBPS value";
+ }
+ leaf direction {
+ type identityref {
+ base "constants:direction-minimum-bandwidth-rule";
+ }
+ description "The traffic direction";
+ }
+ }
+
grouping qos-attributes {
container qos-policies {
list qos-policy {
uses attrs:id-attributes;
uses dscpmarking-rule-attributes;
}
+ list minimumbandwidth-rules {
+ key "uuid";
+ uses attrs:id-attributes;
+ uses minimumbandwidth-rule-attributes;
+ }
}
}
container qos-rule-types {
--- /dev/null
+/*
+ * Copyright (c) 2017 Intel Corporation. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.neutron.spi;
+import java.io.Serializable;
+import java.math.BigInteger;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+
+@XmlRootElement
+@XmlAccessorType(XmlAccessType.NONE)
+public final class NeutronQosMinimumBandwidthRule extends NeutronObject<NeutronQosMinimumBandwidthRule>
+ implements Serializable, INeutronObject<NeutronQosMinimumBandwidthRule> {
+ private static final long serialVersionUID = 1L;
+
+ @XmlElement(name = "min_kbps")
+ BigInteger minKbps;
+
+ @XmlElement(defaultValue = "egress", name = "direction")
+ String direction;
+
+ public BigInteger getMinKbps() {
+ return minKbps;
+ }
+
+ public void setMinKbps(BigInteger minKbps) {
+ this.minKbps = minKbps;
+ }
+
+ public String getDirection() {
+ return direction;
+ }
+
+ public void setDirection(String direction) {
+ this.direction = direction;
+ }
+
+ @Override
+ public boolean extractField(String field, NeutronQosMinimumBandwidthRule ans) {
+ switch (field) {
+ case "min_kbps":
+ ans.setMinKbps(this.getMinKbps());
+ break;
+ case "direction":
+ ans.setDirection(this.getDirection());
+ break;
+ default:
+ return super.extractField(field, ans);
+ }
+ return true;
+ }
+
+ @Override
+ public String toString() {
+ return "qosMinimumBandwidthRules{" + "qosMinimumBandwidthRuleUUID='" + uuid + '\'' + ","
+ + " qosMinimumBandwidthRuleTenantID='" + tenantID
+ + '\'' + ", qosMinimumBandwidthMinValue='" + minKbps
+ + '\'' + ", qosMinimumBandwidthDirection='" + direction + '\''
+ + '}';
+ }
+}
\ No newline at end of file
@XmlElement(name = "dscp_marking_rules")
List<NeutronQosDscpMarkingRule> dscpMarkingRules;
+ @XmlElement(name = "minimum_bandwidth_rules")
+ List<NeutronQosMinimumBandwidthRule> minimumBandwidthRules;
+
public Boolean getPolicyIsShared() {
return shared;
}
this.dscpMarkingRules = qosDscpMarkingRules;
}
+ public List<NeutronQosMinimumBandwidthRule> getMinimumBandwidthRules() {
+ return minimumBandwidthRules;
+ }
+
+ public void setMinimumBandwidthRules(List<NeutronQosMinimumBandwidthRule> qosMinimumBandwidthRules) {
+ this.minimumBandwidthRules = qosMinimumBandwidthRules;
+ }
+
@Override
protected boolean extractField(String field, NeutronQosPolicy ans) {
switch (field) {
qosDscpMarkingRuleList.addAll(this.getDscpMarkingRules());
ans.setDscpMarkingRules(qosDscpMarkingRuleList);
break;
+ case "minimum_bandwidth_rules":
+ List<NeutronQosMinimumBandwidthRule> qosMinimumBandwidthRuleList = new ArrayList<>();
+ qosMinimumBandwidthRuleList.addAll(this.getMinimumBandwidthRules());
+ ans.setMinimumBandwidthRules(qosMinimumBandwidthRuleList);
+ break;
default:
return super.extractField(field, ans);
}
return "NeutronQosPolicy{" + "qosPolicyUUID='" + uuid + '\'' + ", qosPolicyTenantID='" + tenantID + '\''
+ ", qosPolicyName='" + name + '\'' + ", qosPolicyIsShared='" + shared + '\''
+ ", qosbandwidthLimitRules='" + bandwidthLimitRules + '\'' + ", qosDscpMarkingRules='"
- + dscpMarkingRules
- + '\''
+ + dscpMarkingRules + '\'' + ", qosMinimumBandwidthRules='" + minimumBandwidthRules + '\''
+ '}';
}
}
+ "\"tenant_id\": \"aa902936679e4ea29bfe1158e3450a14\"," + "\"max_kbps\": 25, "
+ "\"max_burst_kbps\": 100 } ],"
+ "\"dscp_marking_rules\": [ {\"id\": \"d6220bbb-35f3-48ab-8eae-69c60aef3547\","
- + " \"tenant_id\": \"aa902936679e4ea29bfe1158e3450a14\", " + "\"dscp_mark\": 8 } ] " + "}";
+ + " \"tenant_id\": \"aa902936679e4ea29bfe1158e3450a14\", " + "\"dscp_mark\": 8 } ],"
+ + "\"minimum_bandwidth_rules\": [ {\"id\": \"d6220bbb-35f3-48ab-8eae-69c60aef3547\","
+ + "\"tenant_id\": \"aa902936679e4ea29bfe1158e3450a14\", " + "\"min_kbps\": 20,"
+ + "\"direction\": \"egress\" } ]" + "}";
@Test
public void test_NeutronQosPolicy_JAXB() throws JAXBException {
Assert.assertEquals("NeutronQosPolicy JaxB Test 6.2 : Testing Tenant ID failed",
"aa902936679e4ea29bfe1158e3450a14", dscpMarkingPolicyRules.get(0).tenantID);
- Assert.assertEquals("NeutronQosPolicy JaxB Test 6.3 : Testing Max ingress/Egress value failed", new Short("8"),
- dscpMarkingPolicyRules.get(0).dscpMark);
+ Assert.assertEquals("NeutronQosPolicy JaxB Test 6.3 : Testing Max ingress/Egress value failed",
+ new Short("8"), dscpMarkingPolicyRules.get(0).dscpMark);
+
+ List<NeutronQosMinimumBandwidthRule> minBandwidthLimitRules = neutronObject.getMinimumBandwidthRules();
+
+ Assert.assertEquals("NeutronQosPolicy JAXB Test 7.0: Testing Bandwidth Policy length failed", 1,
+ minBandwidthLimitRules.size());
+
+ Assert.assertEquals("NeutronQosPolicy JaxB Test 7.2 : Testing Tenant ID failed",
+ "aa902936679e4ea29bfe1158e3450a14", minBandwidthLimitRules.get(0).tenantID);
+
+ Assert.assertEquals("NeutronQosPolicy JaxB Test 7.3 : Testing Minimum Bandwidth failed",
+ new BigInteger("20"), minBandwidthLimitRules.get(0).minKbps);
+
+ Assert.assertEquals("NeutronQosPolicy JaxB Test 7.4 : Testing Direction failed", "egress",
+ minBandwidthLimitRules.get(0).direction);
}
}
"variables": [],
"info": {
"name": "Quality_Of_Service",
- "_postman_id": "27c8c2eb-995a-b9a2-4a82-af222f6a9806",
+ "_postman_id": "a85eb530-aab5-a5fd-f5e1-90efc89b76df",
"description": "",
"schema": "https://schema.getpostman.com/json/collection/v2.0.0/collection.json"
},
],
"body": {
"mode": "raw",
- "raw": "{\"policy\": {\"id\": \"d6220bbb-35f3-48ab-8eae-69c60aef3546\",\n \"tenant_id\": \"aa902936679e4ea29bfe1158e3450a14\",\n \"name\" : \"qos-test\",\n \"shared\": false,\n \"bandwidth_limit_rules\": [ {\"id\": \"d6220bbb-35f3-48ab-8eae-69c60aef3547\",\n \"tenant_id\": \"aa902936679e4ea29bfe1158e3450a14\",\"max_kbps\": 25,\n \"max_burst_kbps\": 100 } ] ,\n \"dscp_marking_rules\" : [ {\"id\":\"d6220bbb-35f3-48ab-8eae-69c60aef3548\",\n \"tenant_id\": \"aa902936679e4ea29bfe1158e3450a14\",\n \"dscp_mark\": 8 } ] }}\n"
+ "raw": "{\"policy\": {\"id\": \"d6220bbb-35f3-48ab-8eae-69c60aef3546\",\n \"tenant_id\": \"aa902936679e4ea29bfe1158e3450a14\",\n \"name\" : \"qos-test\",\n \"shared\": false,\n \"bandwidth_limit_rules\": [ {\"id\": \"d6220bbb-35f3-48ab-8eae-69c60aef3547\",\n \"tenant_id\": \"aa902936679e4ea29bfe1158e3450a14\",\"max_kbps\": 25,\n \"max_burst_kbps\": 100 } ] ,\n \"dscp_marking_rules\" : [ {\"id\":\"d6220bbb-35f3-48ab-8eae-69c60aef3548\",\n \"tenant_id\": \"aa902936679e4ea29bfe1158e3450a14\",\n \"dscp_mark\": 8 } ] ,\n \"minimum_bandwidth_rules\": [ {\"id\": \"d6220bbb-35f3-48ab-8eae-69c60aef3549\",\n \"tenant_id\": \"aa902936679e4ea29bfe1158e3450a14\",\"min_kbps\": 25,\n \"direction\": \"egress" } ] }}\n"
},
"description": "Update a QOS Policy"
},
"description": ""
}
],
- "body": {
- "mode": "formdata",
- "formdata": []
- },
+ "body": {},
"description": "View the existing QOS policy"
},
"response": []
package org.opendaylight.neutron.transcriber;
-import com.google.common.collect.ImmutableBiMap;
import java.util.List;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.neutron.spi.INeutronMeteringLabelRuleCRUD;
import org.opendaylight.neutron.spi.NeutronMeteringLabelRule;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.DirectionBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.DirectionEgress;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.DirectionIngress;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.NeutronUtils.DirectionMapper;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.metering.rev150712.metering.rules.attributes.MeteringRules;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.metering.rev150712.metering.rules.attributes.metering.rules.MeteringRule;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.metering.rev150712.metering.rules.attributes.metering.rules.MeteringRuleBuilder;
public final class NeutronMeteringLabelRuleInterface
extends AbstractNeutronInterface<MeteringRule, MeteringRules, MeteringRuleKey, NeutronMeteringLabelRule>
implements INeutronMeteringLabelRuleCRUD {
- private static final ImmutableBiMap<Class<? extends DirectionBase>,
- String> DIRECTION_MAP = new ImmutableBiMap.Builder<Class<? extends DirectionBase>, String>()
- .put(DirectionEgress.class, "egress").put(DirectionIngress.class, "ingress").build();
-
NeutronMeteringLabelRuleInterface(DataBroker db) {
super(MeteringRuleBuilder.class, db);
}
meteringRuleBuilder.setMeteringLabelId(toUuid(meteringLabelRule.getMeteringLabelRuleLabelID()));
}
if (meteringLabelRule.getMeteringLabelRuleDirection() != null) {
- final ImmutableBiMap<String, Class<? extends DirectionBase>> mapper = DIRECTION_MAP.inverse();
meteringRuleBuilder.setDirection(
- mapper.get(meteringLabelRule.getMeteringLabelRuleDirection()));
+ DirectionMapper.get(meteringLabelRule.getMeteringLabelRuleDirection()));
}
if (meteringLabelRule.getMeteringLabelRuleRemoteIpPrefix() != null) {
final IpPrefix ipPrefix = new IpPrefix(
answer.setMeteringLabelRuleLabelID(rule.getMeteringLabelId().getValue());
}
if (rule.getDirection() != null) {
- answer.setMeteringLabelRuleDirection(DIRECTION_MAP.get(rule.getDirection()));
+ answer.setMeteringLabelRuleDirection(DirectionMapper.getName(rule.getDirection()));
}
if (rule.getRemoteIpPrefix() != null) {
answer.setMeteringLabelRuleRemoteIpPrefix(new String(rule.getRemoteIpPrefix().getValue()));
import org.opendaylight.neutron.spi.INeutronQosPolicyCRUD;
import org.opendaylight.neutron.spi.NeutronQosBandwidthLimitRule;
import org.opendaylight.neutron.spi.NeutronQosDscpMarkingRule;
+import org.opendaylight.neutron.spi.NeutronQosMinimumBandwidthRule;
import org.opendaylight.neutron.spi.NeutronQosPolicy;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.NeutronUtils.DirectionMapper;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.qos.rev160613.qos.attributes.QosPolicies;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.qos.rev160613.qos.attributes.qos.policies.QosPolicy;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.qos.rev160613.qos.attributes.qos.policies.QosPolicyBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.qos.rev160613.qos.attributes.qos.policies.qos.policy.BandwidthLimitRulesBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.qos.rev160613.qos.attributes.qos.policies.qos.policy.DscpmarkingRules;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.qos.rev160613.qos.attributes.qos.policies.qos.policy.DscpmarkingRulesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.qos.rev160613.qos.attributes.qos.policies.qos.policy.MinimumbandwidthRules;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.qos.rev160613.qos.attributes.qos.policies.qos.policy.MinimumbandwidthRulesBuilder;
public final class NeutronQosPolicyInterface
extends AbstractNeutronInterface<QosPolicy, QosPolicies, QosPolicyKey,NeutronQosPolicy>
}
qosPolicyBuilder.setDscpmarkingRules(listDscpMarking);
}
+ if (qosPolicy.getMinimumBandwidthRules() != null) {
+ final List<MinimumbandwidthRules> listMinimumBandwidth = new ArrayList<>();
+ for (final NeutronQosMinimumBandwidthRule minimumBandwidthRule : qosPolicy.getMinimumBandwidthRules()) {
+ final MinimumbandwidthRulesBuilder minimumBandwidthRulesBuilder =
+ new MinimumbandwidthRulesBuilder();
+ minimumBandwidthRulesBuilder.setUuid(toUuid(minimumBandwidthRule.getID()));
+ minimumBandwidthRulesBuilder.setTenantId(toUuid(minimumBandwidthRule.getTenantID()));
+ minimumBandwidthRulesBuilder.setMinKbps(minimumBandwidthRule.getMinKbps());
+ minimumBandwidthRulesBuilder.setDirection(DirectionMapper.getMinimumBandwidthRuleDirection(
+ minimumBandwidthRule.getDirection()));
+ listMinimumBandwidth.add(minimumBandwidthRulesBuilder.build());
+ }
+ qosPolicyBuilder.setMinimumbandwidthRules(listMinimumBandwidth);
+ }
return qosPolicyBuilder.build();
}
}
result.setDscpMarkingRules(dscpMarkingRules);
}
+ if (qosPolicy.getMinimumbandwidthRules() != null) {
+ final List<NeutronQosMinimumBandwidthRule> minimumBandwidthRules = new ArrayList<>();
+ for (final MinimumbandwidthRules rule : qosPolicy.getMinimumbandwidthRules()) {
+ NeutronQosMinimumBandwidthRule opt = new NeutronQosMinimumBandwidthRule();
+ opt.setID(rule.getTenantId().getValue());
+ opt.setTenantID(rule.getTenantId().getValue());
+ opt.setMinKbps(rule.getMinKbps());
+ opt.setDirection(DirectionMapper.getMinimumBandwidthRuleDirectionString(rule.getDirection()));
+ minimumBandwidthRules.add(opt);
+ }
+ result.setMinimumBandwidthRules(minimumBandwidthRules);
+ }
return result;
}
}
import org.opendaylight.neutron.spi.INeutronSecurityRuleCRUD;
import org.opendaylight.neutron.spi.NeutronSecurityRule;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.DirectionBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.DirectionEgress;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.DirectionIngress;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.EthertypeBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.EthertypeV4;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.EthertypeV6;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.NeutronUtils.DirectionMapper;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.NeutronUtils.ProtocolMapper;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.secgroups.rev150712.SecurityRuleAttributes.Protocol;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.secgroups.rev150712.security.rules.attributes.SecurityRules;
implements INeutronSecurityRuleCRUD {
private static final Logger LOG = LoggerFactory.getLogger(NeutronSecurityRuleInterface.class);
- private static final ImmutableBiMap<Class<? extends DirectionBase>,
- String> DIRECTION_MAP = new ImmutableBiMap.Builder<Class<? extends DirectionBase>, String>()
- .put(DirectionEgress.class, "egress").put(DirectionIngress.class, "ingress").build();
private static final ImmutableBiMap<Class<? extends EthertypeBase>,
String> ETHERTYPE_MAP = new ImmutableBiMap.Builder<Class<? extends EthertypeBase>, String>()
.put(EthertypeV4.class, "IPv4").put(EthertypeV6.class, "IPv6").build();
final NeutronSecurityRule answer = new NeutronSecurityRule();
fromMdIds(rule, answer);
if (rule.getDirection() != null) {
- answer.setSecurityRuleDirection(DIRECTION_MAP.get(rule.getDirection()));
+ answer.setSecurityRuleDirection(DirectionMapper.getName(rule.getDirection()));
}
if (rule.getSecurityGroupId() != null) {
answer.setSecurityRuleGroupID(rule.getSecurityGroupId().getValue());
final SecurityRuleBuilder securityRuleBuilder = new SecurityRuleBuilder();
toMdIds(securityRule, securityRuleBuilder);
if (securityRule.getSecurityRuleDirection() != null) {
- final ImmutableBiMap<String, Class<? extends DirectionBase>> mapper = DIRECTION_MAP.inverse();
securityRuleBuilder
- .setDirection(mapper.get(securityRule.getSecurityRuleDirection()));
+ .setDirection(DirectionMapper.get(securityRule.getSecurityRuleDirection()));
}
if (securityRule.getSecurityRuleGroupID() != null) {
securityRuleBuilder.setSecurityGroupId(toUuid(securityRule.getSecurityRuleGroupID()));