if (group.getTenantId() != null) {
answer.setSecurityGroupTenantID(group.getTenantId().getValue().replace("-",""));
}
- if (group.getSecurityRules() != null) {
- NeutronCRUDInterfaces interfaces = new NeutronCRUDInterfaces()
- .fetchINeutronSecurityRuleCRUD(this);
- INeutronSecurityRuleCRUD srCrud = interfaces.getSecurityRuleInterface();
-
- List<NeutronSecurityRule> 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<NeutronSecurityRule> rules = new ArrayList<NeutronSecurityRule>();
+ 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());
}
if (securityGroup.getSecurityGroupTenantID() != null) {
securityGroupBuilder.setTenantId(toUuid(securityGroup.getSecurityGroupTenantID()));
}
- if (securityGroup.getSecurityRules() != null) {
- List<Uuid> 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<Uuid>());
+
if (securityGroup.getID() != null) {
securityGroupBuilder.setUuid(toUuid(securityGroup.getID()));
} else {