import com.google.common.collect.ImmutableBiMap;
import java.util.List;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.neutron.northbound.api.BadRequestException;
import org.opendaylight.neutron.spi.INeutronFirewallRuleCRUD;
import org.opendaylight.neutron.spi.NeutronFirewallRule;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.IpVersionBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.fwaas.rev150712.rules.attributes.FirewallRules;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.fwaas.rev150712.rules.attributes.firewall.rules.FirewallRule;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.fwaas.rev150712.rules.attributes.firewall.rules.FirewallRuleBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.fwaas.rev150712.rules.attributes.firewall.rules.FirewallRuleKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.types.rev160517.IpPrefixOrAddress;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class NeutronFirewallRuleInterface extends
- AbstractNeutronInterface<FirewallRule, FirewallRules, NeutronFirewallRule> implements INeutronFirewallRuleCRUD {
- private static final Logger LOGGER = LoggerFactory.getLogger(NeutronFirewallRuleInterface.class);
+public final class NeutronFirewallRuleInterface
+ extends AbstractNeutronInterface<FirewallRule, FirewallRules, FirewallRuleKey, NeutronFirewallRule>
+ implements INeutronFirewallRuleCRUD {
private static final ImmutableBiMap<Class<? extends ActionBase>,
String> ACTION_MAP = new ImmutableBiMap.Builder<Class<? extends ActionBase>, String>()
.put(ActionAllow.class, "allow").put(ActionDeny.class, "deny").build();
.put(IpVersionV4.class, Integer.valueOf(4)).put(IpVersionV6.class, Integer.valueOf(6)).build();
NeutronFirewallRuleInterface(DataBroker db) {
- super(db);
+ super(FirewallRuleBuilder.class, db);
}
@Override
}
@Override
- protected InstanceIdentifier<FirewallRule> createInstanceIdentifier(FirewallRule item) {
- return InstanceIdentifier.create(Neutron.class).child(FirewallRules.class).child(FirewallRule.class,
- item.getKey());
- }
-
- @Override
- protected InstanceIdentifier<FirewallRules> createInstanceIdentifier() {
- return InstanceIdentifier.create(Neutron.class).child(FirewallRules.class);
- }
-
protected NeutronFirewallRule fromMd(FirewallRule rule) {
final NeutronFirewallRule answer = new NeutronFirewallRule();
- if (rule.getUuid() != null) {
- answer.setID(rule.getUuid().getValue());
- }
- if (rule.getName() != null) {
- answer.setFirewallRuleName(rule.getName());
- }
- if (rule.getTenantId() != null) {
- answer.setTenantID(rule.getTenantId());
- }
+ fromMdBaseAttributes(rule, answer);
if (rule.isShared() != null) {
answer.setFirewallRuleIsShared(rule.isShared());
}
@Override
protected FirewallRule toMd(NeutronFirewallRule rule) {
final FirewallRuleBuilder ruleBuilder = new FirewallRuleBuilder();
- if (rule.getID() != null) {
- ruleBuilder.setUuid(toUuid(rule.getID()));
- }
- if (rule.getFirewallRuleName() != null) {
- ruleBuilder.setName(rule.getFirewallRuleName());
- }
- if (rule.getTenantID() != null) {
- ruleBuilder.setTenantId(toUuid(rule.getTenantID()));
- }
+ toMdBaseAttributes(rule, ruleBuilder);
if (rule.getFirewallRuleIsShared() != null) {
ruleBuilder.setShared(rule.getFirewallRuleIsShared());
}
}
if (rule.getFirewallRuleProtocol() != null) {
final String protocolString = rule.getFirewallRuleProtocol();
- final Protocol protocol = new Protocol(protocolString.toCharArray());
- ruleBuilder.setProtocol(protocol);
+ try {
+ final Protocol protocol = new Protocol(protocolString.toCharArray());
+ ruleBuilder.setProtocol(protocol);
+ } catch (NumberFormatException e) {
+ throw new BadRequestException("Protocol {" + rule.getFirewallRuleProtocol()
+ + "} is not supported");
+ }
}
if (rule.getFirewallRuleIpVer() != null) {
final ImmutableBiMap<Integer, Class<? extends IpVersionBase>> mapper = IP_VERSION_MAP.inverse();
}
return ruleBuilder.build();
}
-
- @Override
- protected FirewallRule toMd(String uuid) {
- final FirewallRuleBuilder ruleBuilder = new FirewallRuleBuilder();
- ruleBuilder.setUuid(toUuid(uuid));
- return ruleBuilder.build();
- }
}