- protected void remove(InstanceIdentifier<SecurityGroup> instanceIdentifier, SecurityGroup securityGroup) {
- LOG.trace("Received remove event for securityGroup: {}", securityGroup);
- try {
- InstanceIdentifier<Acl> identifier = getAclInstanceIdentifier(securityGroup);
- SingleTransactionDataBroker.syncDelete(dataBroker, LogicalDatastoreType.CONFIGURATION, identifier);
- } catch (TransactionCommitFailedException e) {
- LOG.warn("Exception occurred while removing acl for security group: {}", securityGroup, e);
- }
+ public void add(InstanceIdentifier<SecurityGroup> instanceIdentifier, SecurityGroup securityGroup) {
+ LOG.trace("Adding securityGroup: {}", securityGroup);
+ String securityGroupId = securityGroup.key().getUuid().getValue();
+ InstanceIdentifier<Acl> identifier = getAclInstanceIdentifier(securityGroup);
+ jobCoordinator.enqueueJob(securityGroupId, () -> {
+ Integer aclTag = neutronSecurityGroupUtils.allocateAclTag(securityGroupId);
+ Acl acl = toAclBuilder(securityGroup, aclTag).build();
+ return Collections.singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION,
+ tx -> tx.put(identifier, acl, CREATE_MISSING_PARENTS)));
+ });