X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openstack%2Fnet-virt%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fovsdb%2Fopenstack%2Fnetvirt%2Ftranslator%2Fcrud%2Fimpl%2FNeutronSecurityGroupInterface.java;fp=openstack%2Fnet-virt%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fovsdb%2Fopenstack%2Fnetvirt%2Ftranslator%2Fcrud%2Fimpl%2FNeutronSecurityGroupInterface.java;h=9498dd77cdb0c210d6d2077fe11743054b1639c3;hb=1432633224e4241b226f92ef194b7d93a3825d50;hp=9c72959492e3c0ae0c39e0c37f764fb06598fe3b;hpb=a8cb2f94dce3d31455d4c7a97d2296fdd93f76f8;p=ovsdb.git diff --git a/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/crud/impl/NeutronSecurityGroupInterface.java b/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/crud/impl/NeutronSecurityGroupInterface.java index 9c7295949..9498dd77c 100644 --- a/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/crud/impl/NeutronSecurityGroupInterface.java +++ b/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/crud/impl/NeutronSecurityGroupInterface.java @@ -115,17 +115,24 @@ public class NeutronSecurityGroupInterface extends AbstractNeutronInterface rules = new ArrayList<>(); - for (Uuid uuid: group.getSecurityRules()) { - rules.add(srCrud.getNeutronSecurityRule(uuid.getValue())); + + // Bug 4550 + // https://bugs.opendaylight.org/show_bug.cgi?id=4550 + // Now SecurityGroup::securityGroupRule isn't updated. + // always rebuid it from security group rules + NeutronCRUDInterfaces interfaces = new NeutronCRUDInterfaces() + .fetchINeutronSecurityRuleCRUD(this); + INeutronSecurityRuleCRUD srCrud = interfaces.getSecurityRuleInterface(); + + List rules = new ArrayList(); + String sgId = group.getUuid().getValue(); + for (NeutronSecurityRule rule: srCrud.getAllNeutronSecurityRules()) { + if (rule.getSecurityRuleGroupID() == sgId) { + rules.add(rule); } - answer.setSecurityRules(rules); } + answer.setSecurityRules(rules); + if (group.getUuid() != null) { answer.setID(group.getUuid().getValue()); } @@ -144,15 +151,12 @@ public class NeutronSecurityGroupInterface extends AbstractNeutronInterface neutronSecurityRule = new ArrayList<>(); - for (NeutronSecurityRule securityRule : securityGroup.getSecurityRules()) { - if (securityRule.getID() != null) { - neutronSecurityRule.add(toUuid(securityRule.getID())); - } - } - securityGroupBuilder.setSecurityRules(neutronSecurityRule); - } + + // don't update security group rule, always empty list + // Bug 4550 + // https://bugs.opendaylight.org/show_bug.cgi?id=4550 + securityGroupBuilder.setSecurityRules(new ArrayList()); + if (securityGroup.getID() != null) { securityGroupBuilder.setUuid(toUuid(securityGroup.getID())); } else {