import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.faas.uln.datastore.api.UlnDatastoreApi;
+import org.opendaylight.faas.uln.datastore.api.UlnDatastoreUtil;
import org.opendaylight.groupbasedpolicy.util.DataStoreHelper;
import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.common.rev151013.Name;
import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.common.rev151013.Text;
private final DataBroker dataProvider;
private final TenantId gbpTenantId;
private final Uuid faasTenantId;
+ private final UlnDatastoreUtil ulnDatastoreUtil;
public FaasContractManagerListener(DataBroker dataProvider, TenantId gbpTenantId, Uuid faasTenantId,
- Executor executor) {
+ Executor executor, UlnDatastoreUtil ulnDatastoreUtil) {
this.executor = executor;
this.gbpTenantId = gbpTenantId;
this.faasTenantId = faasTenantId;
this.dataProvider = dataProvider;
+ this.ulnDatastoreUtil = ulnDatastoreUtil;
}
@Override
case WRITE:
Contract updatedContract = rootNode.getDataAfter();
LOG.debug("Contract {} is Updated.", updatedContract.getId().getValue());
- UlnDatastoreApi.submitSecurityGroupsToDs(initSecurityGroupBuilder(updatedContract).build());
+ ulnDatastoreUtil.submitSecurityGroupsToDs(initSecurityGroupBuilder(updatedContract).build());
break;
case DELETE:
Contract deletedContract = rootNode.getDataBefore();
}
Uuid val = mappedContracts.remove(deletedContract.getId());
if (val != null) {
- UlnDatastoreApi.removeSecurityGroupsFromDsIfExists(faasTenantId, val);
+ ulnDatastoreUtil.removeSecurityGroupsFromDsIfExists(faasTenantId, val);
}
break;
default:
if (contracts != null) {
for (Contract contract : contracts) {
LOG.debug("Loading Contract {}", contract.getId().getValue());
- UlnDatastoreApi.submitSecurityGroupsToDs(initSecurityGroupBuilder(contract).build());
+ ulnDatastoreUtil.submitSecurityGroupsToDs(initSecurityGroupBuilder(contract).build());
}
}
}
import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.faas.uln.datastore.api.UlnDatastoreApi;
+import org.opendaylight.faas.uln.datastore.api.UlnDatastoreUtil;
import org.opendaylight.groupbasedpolicy.util.DataStoreHelper;
import org.opendaylight.groupbasedpolicy.util.IetfModelCodec;
import org.opendaylight.groupbasedpolicy.util.IidFactory;
private final List<ListenerRegistration<?>> listenerRegistrations = new ArrayList<>();
private final FaasPolicyManager policyManager;
private final DataBroker dataProvider;
+ private final UlnDatastoreUtil ulnDatastoreUtil;
public FaasEndpointManagerListener(FaasPolicyManager policyManager, DataBroker dataProvider,
Executor executor) {
listenerRegistrations.add(dataProvider.registerDataTreeChangeListener(new DataTreeIdentifier<>(
LogicalDatastoreType.OPERATIONAL, IidFactory.endpointsIidWildcard().child(EndpointL3.class)),
changes -> executor.execute(() -> onEndpointL3Changed(changes))));
+
+ this.ulnDatastoreUtil = new UlnDatastoreUtil(dataProvider);
}
@Override
ipBuilder.setSubnetId(faasSubnetId);
privateIpAddresses.add(ipBuilder.build());
}
- if (!UlnDatastoreApi.attachEndpointToSubnet(epLocBuilder, faasSubnetId, IetfModelCodec.macAddress2013(endpoint.getMacAddress()),
+ if (!ulnDatastoreUtil.attachEndpointToSubnet(epLocBuilder, faasSubnetId, IetfModelCodec.macAddress2013(endpoint.getMacAddress()),
privateIpAddresses, null)) {
LOG.error("Failed Endpoint Registration. Failed to Attach Endpoint to Faas Logical Network. Endpoint {}",
endpoint);
FaasIidFactory.mappedEndpointIid(tenantId, mappedEndpointKey), rwTx);
DataStoreHelper.submitToDs(rwTx);
if (endpointOp.isPresent()) {
- UlnDatastoreApi.removeEndpointLocationFromDsIfExists(policyManager.getFaasTenantId(tenantId),
+ ulnDatastoreUtil.removeEndpointLocationFromDsIfExists(policyManager.getFaasTenantId(tenantId),
endpointOp.get().getEndpointLocation());
}
}
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.faas.uln.datastore.api.Pair;
-import org.opendaylight.faas.uln.datastore.api.UlnDatastoreApi;
+import org.opendaylight.faas.uln.datastore.api.UlnDatastoreUtil;
import org.opendaylight.groupbasedpolicy.util.DataStoreHelper;
import org.opendaylight.groupbasedpolicy.util.IidFactory;
import org.opendaylight.groupbasedpolicy.util.TenantUtils;
private final ConcurrentHashMap<TenantId, Uuid> mappedTenants = new ConcurrentHashMap<>();
final ConcurrentHashMap<TenantId, ArrayList<ListenerRegistration<?>>> registeredTenants =
new ConcurrentHashMap<>();
+ private final UlnDatastoreUtil ulnDatastoreUtil;
public FaasPolicyManager(DataBroker dataBroker, Executor executor) {
+ this(dataBroker, executor, new UlnDatastoreUtil(dataBroker));
+ }
+
+ @VisibleForTesting
+ FaasPolicyManager(DataBroker dataBroker, Executor executor, UlnDatastoreUtil ulnDatastoreUtil) {
this.dataProvider = dataBroker;
this.executor = executor;
this.registerListener = checkNotNull(dataProvider).registerDataTreeChangeListener(new DataTreeIdentifier<>(
} else {
LOG.error("{} renderer Failed to register with the multi-renderer manager", rendererName.getValue());
}
+
+ this.ulnDatastoreUtil = ulnDatastoreUtil;
}
@Override
// contracts
FaasContractManagerListener faasContractManagerListener = new FaasContractManagerListener(dataProvider,
- gbpTenantId, faasTenantId, executor);
+ gbpTenantId, faasTenantId, executor, ulnDatastoreUtil);
faasContractManagerListener.loadAll(contracts, mappedEntity.getMappedContract());
// subnets
FaasSubnetManagerListener faasSubnetManagerListener = new FaasSubnetManagerListener(dataProvider,
- gbpTenantId, faasTenantId, executor);
+ gbpTenantId, faasTenantId, executor, ulnDatastoreUtil);
faasSubnetManagerListener.loadAll(subnets, mappedEntity.getMappedSubnet());
/*
Uuid consTenantId = getFaasTenantId(logicalNetwork.getConsumerTenantId());
Uuid provTenantId = getFaasTenantId(logicalNetwork.getProviderTenantId());
- UlnDatastoreApi.removeLogicalSwitchFromDsIfExists(consTenantId, logicalNetwork.getConsumerNetwork()
+ ulnDatastoreUtil.removeLogicalSwitchFromDsIfExists(consTenantId, logicalNetwork.getConsumerNetwork()
.getLogicalSwitchId());
- UlnDatastoreApi.removeLogicalSwitchFromDsIfExists(provTenantId, logicalNetwork.getProviderNetwork()
+ ulnDatastoreUtil.removeLogicalSwitchFromDsIfExists(provTenantId, logicalNetwork.getProviderNetwork()
.getLogicalSwitchId());
if (logicalNetwork.getConsumerNetwork().getLogicalRouterId() != null) {
- UlnDatastoreApi.removeLogicalRouterFromDsIfExists(consTenantId, logicalNetwork.getConsumerNetwork()
+ ulnDatastoreUtil.removeLogicalRouterFromDsIfExists(consTenantId, logicalNetwork.getConsumerNetwork()
.getLogicalRouterId());
}
if (logicalNetwork.getProviderNetwork().getLogicalRouterId() != null) {
- UlnDatastoreApi.removeLogicalRouterFromDsIfExists(provTenantId, logicalNetwork.getProviderNetwork()
+ ulnDatastoreUtil.removeLogicalRouterFromDsIfExists(provTenantId, logicalNetwork.getProviderNetwork()
.getLogicalRouterId());
}
}
LogicalRouterBuilder provLR = initLogicalRouterBuilder(provEpg, faasTenantId,
isProviderPublic(externalImplicitGroup));
- if (!UlnDatastoreApi.attachAndSubmitToDs(consLR, provLR, new Pair<>(null, privateSecRulesId), null)) {
+ if (!ulnDatastoreUtil.attachAndSubmitToDs(consLR, provLR, new Pair<>(null, privateSecRulesId), null)) {
LOG.error("Failed to join Logical Routers in a Logical Network");
return;
}
- if (!UlnDatastoreApi.attachAndSubmitToDs(consLR.getUuid(), lNetbuilder.getConsumerNetwork()
+ if (!ulnDatastoreUtil.attachAndSubmitToDs(consLR.getUuid(), lNetbuilder.getConsumerNetwork()
.getLogicalSwitchId(), faasTenantId, new Pair<>(LocationType.RouterType, LocationType.SwitchType))) {
LOG.error("Failed to join Consumer Logical Router to Logical Switch in a Logical Network");
return;
}
LOG.debug("Attached Consumer Router {} to Consumer Switch {}", consLR.getUuid().getValue(),
lNetbuilder.getConsumerNetwork().getLogicalSwitchId().getValue());
- if (!UlnDatastoreApi.attachAndSubmitToDs(provLR.getUuid(), lNetbuilder.getProviderNetwork()
+ if (!ulnDatastoreUtil.attachAndSubmitToDs(provLR.getUuid(), lNetbuilder.getProviderNetwork()
.getLogicalSwitchId(), faasTenantId, new Pair<>(LocationType.RouterType, LocationType.SwitchType))) {
LOG.error("Failed to join Provider Logical Router to Logical Switch in a Logical Network");
return;
if (isConsumerPublic(externalImplicitGroup)) {
Uuid faasTenantId = getFaasTenantId(gbpTenantId);
LogicalRouterBuilder consLR = initLogicalRouterBuilder(consEpg, faasTenantId, true);
- UlnDatastoreApi.submitLogicalRouterToDs(consLR.build());
+ ulnDatastoreUtil.submitLogicalRouterToDs(consLR.build());
ConsumerNetworkBuilder cNetBuilder = new ConsumerNetworkBuilder(lNetbuilder.getConsumerNetwork());
cNetBuilder.setLogicalRouterId(consLR.getUuid());
lNetbuilder.setConsumerNetwork(cNetBuilder.build());
- if (!UlnDatastoreApi.attachAndSubmitToDs(consLR.getUuid(), lNetbuilder.getConsumerNetwork()
+ if (!ulnDatastoreUtil.attachAndSubmitToDs(consLR.getUuid(), lNetbuilder.getConsumerNetwork()
.getLogicalSwitchId(), faasTenantId, new Pair<>(LocationType.RouterType, LocationType.SwitchType),
null, null)) {
LOG.error("Failed to join Consumer Public Logical Router to Logical Switch in a Logical Network");
Uuid faasTenantId = getFaasTenantId(gbpTenantId);
LogicalRouterBuilder provLR = initLogicalRouterBuilder(provEpg, faasTenantId, true);
provLR.setPublic(true);
- UlnDatastoreApi.submitLogicalRouterToDs(provLR.build());
+ ulnDatastoreUtil.submitLogicalRouterToDs(provLR.build());
ProviderNetworkBuilder cNetBuilder = new ProviderNetworkBuilder(lNetbuilder.getProviderNetwork());
cNetBuilder.setLogicalRouterId(provLR.getUuid());
lNetbuilder.setProviderNetwork(cNetBuilder.build());
- if (!UlnDatastoreApi.attachAndSubmitToDs(provLR.getUuid(), lNetbuilder.getProviderNetwork()
+ if (!ulnDatastoreUtil.attachAndSubmitToDs(provLR.getUuid(), lNetbuilder.getProviderNetwork()
.getLogicalSwitchId(), faasTenantId, new Pair<>(LocationType.RouterType, LocationType.SwitchType),
null, null)) {
LOG.error("Failed to join Provider Public Logical Router to Logical Switch in a Logical Network");
LogicalSwitchBuilder consLS = initLogicalSwitchBuilder(consEpg, faasTenantId);
LogicalSwitchBuilder provLS = initLogicalSwitchBuilder(provEpg, faasTenantId);
if (layer2SecRulesId != null) {
- if (!UlnDatastoreApi.attachAndSubmitToDs(consLS, provLS, new Pair<Uuid, Uuid>(null, layer2SecRulesId))) {
+ if (!ulnDatastoreUtil.attachAndSubmitToDs(consLS, provLS, new Pair<Uuid, Uuid>(null, layer2SecRulesId))) {
LOG.error("Failed to join Logical Switches in a Logical Network");
return null;
}
} else {
- UlnDatastoreApi.submitLogicalSwitchToDs(consLS.build());
- UlnDatastoreApi.submitLogicalSwitchToDs(provLS.build());
+ ulnDatastoreUtil.submitLogicalSwitchToDs(consLS.build());
+ ulnDatastoreUtil.submitLogicalSwitchToDs(provLS.build());
}
for (Uuid subnetId : consFaasSubnetIds) {
- if (!UlnDatastoreApi.attachAndSubmitToDs(consLS.getUuid(), subnetId, consLS.getTenantId(), new Pair<>(
+ if (!ulnDatastoreUtil.attachAndSubmitToDs(consLS.getUuid(), subnetId, consLS.getTenantId(), new Pair<>(
LocationType.SwitchType, LocationType.SubnetType))) {
LOG.error("Failed to join Consumer Logical Switch with Subnet {} in a Logical Network", subnetId);
return null;
LOG.debug("Attached Consumer Switch {} to Subnet {}", consLS.getUuid().getValue(), subnetId.getValue());
}
for (Uuid subnetId : provFaasSubnetIds) {
- if (!UlnDatastoreApi.attachAndSubmitToDs(provLS.getUuid(), subnetId, provLS.getTenantId(), new Pair<>(
+ if (!ulnDatastoreUtil.attachAndSubmitToDs(provLS.getUuid(), subnetId, provLS.getTenantId(), new Pair<>(
LocationType.SwitchType, LocationType.SubnetType))) {
LOG.error("Failed to join Provider Logical Switch with Subnet {} in a Logical Network", subnetId);
return null;
@VisibleForTesting
void removeTenantLogicalNetwork(TenantId gbpTenantId, Uuid faasTenantId, boolean unregister) {
- UlnDatastoreApi.removeTenantFromDsIfExists(faasTenantId);
+ ulnDatastoreUtil.removeTenantFromDsIfExists(faasTenantId);
synchronized (this) {
mappedTenants.remove(gbpTenantId);
Optional<LogicalNetworks> op3 = DataStoreHelper.readFromDs(LogicalDatastoreType.OPERATIONAL,
import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.faas.uln.datastore.api.UlnDatastoreApi;
+import org.opendaylight.faas.uln.datastore.api.UlnDatastoreUtil;
import org.opendaylight.groupbasedpolicy.util.DataStoreHelper;
import org.opendaylight.groupbasedpolicy.util.IetfModelCodec;
import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.common.rev151013.Text;
private final DataBroker dataProvider;
private final TenantId gbpTenantId;
private final Uuid faasTenantId;
+ private final UlnDatastoreUtil ulnDatastoreUtil;
public FaasSubnetManagerListener(DataBroker dataProvider, TenantId gbpTenantId, Uuid faasTenantId,
- Executor executor) {
+ Executor executor, UlnDatastoreUtil ulnDatastoreUtil) {
this.executor = executor;
this.faasTenantId = faasTenantId;
this.gbpTenantId = gbpTenantId;
this.dataProvider = dataProvider;
+ this.ulnDatastoreUtil = ulnDatastoreUtil;
}
@Override
case WRITE:
Subnet updatedSubnet = rootNode.getDataAfter();
LOG.debug("Subnet {} is Updated.", updatedSubnet.getId().getValue());
- UlnDatastoreApi.submitSubnetToDs(initSubnetBuilder(updatedSubnet).build());
+ ulnDatastoreUtil.submitSubnetToDs(initSubnetBuilder(updatedSubnet).build());
break;
case DELETE:
Subnet deletedSubnet = rootNode.getDataBefore();
}
Uuid faasSubnetId = mappedSubnets.remove(deletedSubnet.getId());
if (faasSubnetId != null) {
- UlnDatastoreApi.removeSubnetFromDsIfExists(faasTenantId, faasSubnetId);
+ ulnDatastoreUtil.removeSubnetFromDsIfExists(faasTenantId, faasSubnetId);
}
break;
default:
if (subnets != null) {
for (Subnet subnet : subnets) {
LOG.debug("Loading Subnet {}", subnet.getId().getValue());
- UlnDatastoreApi.submitSubnetToDs(initSubnetBuilder(subnet).build());
+ ulnDatastoreUtil.submitSubnetToDs(initSubnetBuilder(subnet).build());
}
}
}
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.faas.uln.datastore.api.UlnDatastoreApi;
+import org.opendaylight.faas.uln.datastore.api.UlnDatastoreUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.common.rev151013.Uuid;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.security.rules.rev151013.security.rule.groups.attributes.security.rule.groups.container.SecurityRuleGroups;
import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.security.rules.rev151013.security.rule.groups.attributes.security.rule.groups.container.security.rule.groups.SecurityRuleGroup;
import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.security.rules.rev151013.security.rule.groups.attributes.security.rule.groups.container.security.rule.groups.security.rule.group.SecurityRule;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.subject.RuleBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ClassifierInstance;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
-@PrepareForTest(UlnDatastoreApi.class)
public class FaasContractManagerListenerCovrgTest {
private static final ClauseName CLAUSE_NAME = new ClauseName("clause-1");
private final TenantId gbpTenantId = new TenantId("b4511aac-ae43-11e5-bf7f-feff819cdc9f");
private final Uuid faasTenantId = new Uuid("b4511aac-ae43-11e5-bf7f-feff819cdc9f");
private DataBroker dataProvider;
+ private final UlnDatastoreUtil mockUlnDatastoreUtil = mock(UlnDatastoreUtil.class);
@SuppressWarnings("unchecked")
@Before
dataProvider = mock(DataBroker.class);
listener = new FaasContractManagerListener(dataProvider, gbpTenantId, faasTenantId,
- MoreExecutors.directExecutor());
+ MoreExecutors.directExecutor(), mockUlnDatastoreUtil);
}
@SuppressWarnings("unchecked")
@Test
public void testExecuteEvent() throws ReadFailedException {
- PowerMockito.mockStatic(UlnDatastoreApi.class);
- PowerMockito.doNothing().when(UlnDatastoreApi.class);
- UlnDatastoreApi.submitSecurityGroupsToDs(any(SecurityRuleGroups.class));
-
ReadWriteTransaction rwTx = mock(ReadWriteTransaction.class);
WriteTransaction woTx = mock(WriteTransaction.class);
CheckedFuture<Void, TransactionCommitFailedException> futureVoid = mock(CheckedFuture.class);
package org.opendaylight.groupbasedpolicy.renderer.faas;
import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.util.Collections;
import org.junit.Before;
import org.junit.Test;
-import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.faas.uln.datastore.api.UlnDatastoreApi;
+import org.opendaylight.faas.uln.datastore.api.UlnDatastoreUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.common.rev151013.Uuid;
import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.security.rules.rev151013.security.rule.groups.attributes.security.rule.groups.container.SecurityRuleGroups;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContractId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.ContractBuilder;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-@PrepareForTest(UlnDatastoreApi.class)
-@RunWith(PowerMockRunner.class)
public class FaasContractManagerListenerTest {
private InstanceIdentifier<DataObject> contractId;
private MockFaasContractManagerListener contractManagerListener;
private final TenantId gbpTenantId = new TenantId("b4511aac-ae43-11e5-bf7f-feff819cdc9f");
private final Uuid faasTenantId = new Uuid("b4511aac-ae43-11e5-bf7f-feff819cdc9f");
+ private final UlnDatastoreUtil mockUlnDatastoreUtil = mock(UlnDatastoreUtil.class);
@SuppressWarnings("unchecked")
@Before
contractId = mock(InstanceIdentifier.class);
contractId = mock(InstanceIdentifier.class);
DataBroker dataProvider = mock(DataBroker.class);
- PowerMockito.mockStatic(UlnDatastoreApi.class);
WriteTransaction writeTransaction = mock(WriteTransaction.class);
when(dataProvider.newWriteOnlyTransaction()).thenReturn(writeTransaction);
CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = mock(CheckedFuture.class);
when(writeTransaction.submit()).thenReturn(checkedFuture);
contractManagerListener = new MockFaasContractManagerListener(dataProvider, gbpTenantId, faasTenantId,
- MoreExecutors.directExecutor());
+ MoreExecutors.directExecutor(), mockUlnDatastoreUtil);
}
@SuppressWarnings("unchecked")
public void testOnDataChangeContract() {
// prepare input test data
ArgumentCaptor<SecurityRuleGroups> captor = ArgumentCaptor.forClass(SecurityRuleGroups.class);
- try {
- PowerMockito.doNothing().when(UlnDatastoreApi.class, "submitSecurityGroupsToDs", captor.capture());
- } catch (Exception e) {
- fail("testOnDataChangeContract: Exception = " + e.toString());
- }
+ doNothing().when(mockUlnDatastoreUtil).submitSecurityGroupsToDs(captor.capture());
Uuid expectedFaasSecId = new Uuid("c4511aac-ae43-11e5-bf7f-feff819cdc9f");
contractManagerListener.setExpectedFaasSecId(expectedFaasSecId);
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import org.opendaylight.faas.uln.datastore.api.UlnDatastoreUtil;
import org.opendaylight.groupbasedpolicy.util.IidFactory;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
private MockFaasEndpointManagerListener endpointManagerListener;
private MockFaasPolicyManager policyManager;
private final DataBroker dataProvider = mock(DataBroker.class);
+ private final UlnDatastoreUtil mockUlnDatastoreUtil = mock(UlnDatastoreUtil.class);
@SuppressWarnings("unchecked")
@Before
when(dataProvider.newWriteOnlyTransaction()).thenReturn(writeTransaction);
CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = mock(CheckedFuture.class);
when(writeTransaction.submit()).thenReturn(checkedFuture);
- policyManager = new MockFaasPolicyManager(dataProvider, mock(ScheduledExecutorService.class));
+ policyManager = new MockFaasPolicyManager(dataProvider, mock(ScheduledExecutorService.class),
+ mockUlnDatastoreUtil);
endpointManagerListener = new MockFaasEndpointManagerListener(policyManager, dataProvider,
MoreExecutors.directExecutor());
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.mock;
import java.util.concurrent.Executor;
import org.junit.Before;
import org.junit.Test;
-import org.junit.runner.RunWith;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.faas.uln.datastore.api.UlnDatastoreApi;
+import org.opendaylight.faas.uln.datastore.api.UlnDatastoreUtil;
import org.opendaylight.groupbasedpolicy.util.IidFactory;
import org.opendaylight.groupbasedpolicy.util.TenantUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.common.rev151013.Uuid;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.resolved.policy.policy.rule.group.with.endpoint.constraints.PolicyRuleGroupBuilder;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(UlnDatastoreApi.class)
public class FaasPolicyManagerCovrgTest {
private InstanceIdentifier<DataObject> policyId;
private final SubnetId subnetId = new SubnetId("subnetId");
private final Uuid dummyUuid1 = new Uuid("2eb98cf5-086c-4a81-8a4e-0c3b4566108b");
private final Uuid dummyUuid2 = new Uuid("3eb98cf5-086c-4a81-8a4e-0c3b4566108b");
+ private final UlnDatastoreUtil mockUlnDatastoreUtil = mock(UlnDatastoreUtil.class);
@SuppressWarnings("unchecked")
@Before
@Test
public void testConstructor() throws Exception {
- FaasPolicyManager other = new MockFaasPolicyManager(dataProvider, executor);
+ FaasPolicyManager other = new MockFaasPolicyManager(dataProvider, executor, mockUlnDatastoreUtil);
verify(dataProvider).registerDataTreeChangeListener(new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL,
InstanceIdentifier.builder(ResolvedPolicies.class).child(ResolvedPolicy.class).build()), other);
when(futureLogicalNetworks.checkedGet()).thenReturn(optLogicalNetworks);
EndpointGroupId epgId = new EndpointGroupId("epgId");
- FaasPolicyManager policyManager = spy(new FaasPolicyManager(dataProvider, executor));
+ FaasPolicyManager policyManager = spy(new FaasPolicyManager(dataProvider, executor, mockUlnDatastoreUtil));
doNothing().when(policyManager).removeTenantLogicalNetwork(tenantId, faasTenantId, false);
policyManager.registerTenant(tenantId, epgId);
when(optMappedTenant.isPresent()).thenReturn(true);
when(futureMappedTenant.checkedGet()).thenReturn(optMappedTenant);
- PowerMockito.mockStatic(UlnDatastoreApi.class);
- PowerMockito.doNothing().when(UlnDatastoreApi.class);
- UlnDatastoreApi.removeTenantFromDsIfExists(any(Uuid.class));
-
- FaasPolicyManager policyManager = spy(new FaasPolicyManager(dataProvider, executor));
+ FaasPolicyManager policyManager = spy(new FaasPolicyManager(dataProvider, executor, mockUlnDatastoreUtil));
policyManager.removeTenantLogicalNetwork(tenantId, faasTenantId);
}
.build();
ExternalImplicitGroup externalImplicitGroup = ExternalImplicitGroup.ProviderEpg;
- PowerMockito.mockStatic(UlnDatastoreApi.class);
- PowerMockito.doNothing().when(UlnDatastoreApi.class);
- UlnDatastoreApi.removeLogicalSwitchFromDsIfExists(any(Uuid.class), any(Uuid.class));
- PowerMockito.doNothing().when(UlnDatastoreApi.class);
- UlnDatastoreApi.removeLogicalRouterFromDsIfExists(any(Uuid.class), any(Uuid.class));
-
- FaasPolicyManager policyManager = new FaasPolicyManager(dataProvider, executor);
+ FaasPolicyManager policyManager = new FaasPolicyManager(dataProvider, executor, mockUlnDatastoreUtil);
ReadWriteTransaction rwTx = mock(ReadWriteTransaction.class);
CheckedFuture<Optional<LogicalNetwork>, ReadFailedException> futureLogicalNetwork =
mock(CheckedFuture.class);
@Test
public void testRemoveLogicalNetwork_null() {
- FaasPolicyManager policyManager = new FaasPolicyManager(dataProvider, executor);
+ FaasPolicyManager policyManager = new FaasPolicyManager(dataProvider, executor, mockUlnDatastoreUtil);
policyManager.removeLogicalNetwork(null);
}
import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import org.opendaylight.faas.uln.datastore.api.UlnDatastoreUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.common.rev151013.Uuid;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContractId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
Uuid faasTenantId = new Uuid("0eb98cf5-086c-4a81-8a4e-0c3b4566108b");
Uuid faasSecRulesId = new Uuid("1eb98cf5-086c-4a81-8a4e-0c3b4566108b");
L3ContextId l3Context = new L3ContextId("l3ContextId");
+ private final UlnDatastoreUtil mockUlnDatastoreUtil = mock(UlnDatastoreUtil.class);
@SuppressWarnings("unchecked")
@Before
@Test
public void testLayer2ResolvedPolicyWithImpExternalEpg() {
// prepare input test data
- MockFaasPolicyManager policyManager = new MockFaasPolicyManager(dataProvider, MoreExecutors.directExecutor());
+ MockFaasPolicyManager policyManager = new MockFaasPolicyManager(dataProvider, MoreExecutors.directExecutor(),
+ mockUlnDatastoreUtil);
// mock input test policy
policyManager.storeTestEpg(makeTestEndpointGroup(consumerEpgId));
@Test
public void testLayer3ResolvedPolicy() {
// prepare input test data
- MockFaasPolicyManager policyManager = new MockFaasPolicyManager(dataProvider, MoreExecutors.directExecutor());
+ MockFaasPolicyManager policyManager = new MockFaasPolicyManager(dataProvider, MoreExecutors.directExecutor(),
+ mockUlnDatastoreUtil);
// mock input test policy
policyManager.storeTestL3Contextes(makeTestL3Context());
import java.util.List;
import org.junit.Before;
import org.junit.Test;
-import org.junit.runner.RunWith;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.faas.uln.datastore.api.UlnDatastoreApi;
+import org.opendaylight.faas.uln.datastore.api.UlnDatastoreUtil;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.subnet.gateways.PrefixesBuilder;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(UlnDatastoreApi.class)
public class FaasSubnetManagerListenerCovrgTest {
private InstanceIdentifier<Subnet> subnetIid;
private final Uuid faasTenantId = new Uuid("b4511aac-ae43-11e5-bf7f-feff819cdc9f");
private final Uuid faasSubnetId = new Uuid("c4511aac-ae43-11e5-bf7f-feff819cdc9f");
private DataBroker dataProvider;
+ private final UlnDatastoreUtil mockUlnDatastoreUtil = mock(UlnDatastoreUtil.class);
@SuppressWarnings("unchecked")
@Before
dataProvider = mock(DataBroker.class);
subnetIid = mock(InstanceIdentifier.class);
listener = new FaasSubnetManagerListener(dataProvider, gbpTenantId, faasTenantId,
- MoreExecutors.directExecutor());
+ MoreExecutors.directExecutor(), mockUlnDatastoreUtil);
}
@SuppressWarnings("unchecked")
@Test
public void testOnDataChanged() throws ReadFailedException {
- PowerMockito.mockStatic(UlnDatastoreApi.class);
- PowerMockito.doNothing().when(UlnDatastoreApi.class);
- UlnDatastoreApi.submitSubnetToDs(any(
- org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.subnets.rev151013.subnets.container.subnets.Subnet.class));
- PowerMockito.doNothing().when(UlnDatastoreApi.class);
- UlnDatastoreApi.removeSubnetFromDsIfExists(any(Uuid.class), any(Uuid.class));
-
ReadWriteTransaction rwTx = mock(ReadWriteTransaction.class);
WriteTransaction woTx = mock(WriteTransaction.class);
CheckedFuture<Void, TransactionCommitFailedException> futureVoid = mock(CheckedFuture.class);
@Test
public void testLoadAll() {
- PowerMockito.mockStatic(UlnDatastoreApi.class);
- PowerMockito.doNothing().when(UlnDatastoreApi.class);
- UlnDatastoreApi.submitSubnetToDs(any(
- org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.subnets.rev151013.subnets.container.subnets.Subnet.class));
-
List<Subnet> subnets = new ArrayList<>();
List<MappedSubnet> mpSubnets = new ArrayList<>();
package org.opendaylight.groupbasedpolicy.renderer.faas;
import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.util.Collections;
import org.junit.Before;
import org.junit.Test;
-import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.faas.uln.datastore.api.UlnDatastoreApi;
+import org.opendaylight.faas.uln.datastore.api.UlnDatastoreUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.common.rev151013.Uuid;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SubnetId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.SubnetBuilder;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-@PrepareForTest(UlnDatastoreApi.class)
-@RunWith(PowerMockRunner.class)
public class FaasSubnetManagerListenerTest {
private InstanceIdentifier<DataObject> subnetId;
private MockFaasSubnetManagerListener subnetManagerListener;
private final TenantId gbpTenantId = new TenantId("b4511aac-ae43-11e5-bf7f-feff819cdc9f");
private final Uuid faasTenantId = new Uuid("b4511aac-ae43-11e5-bf7f-feff819cdc9f");
+ private final UlnDatastoreUtil mockUlnDatastoreUtil = mock(UlnDatastoreUtil.class);
@SuppressWarnings("unchecked")
@Before
subnetId = mock(InstanceIdentifier.class);
subnetId = mock(InstanceIdentifier.class);
DataBroker dataProvider = mock(DataBroker.class);
- PowerMockito.mockStatic(UlnDatastoreApi.class);
WriteTransaction writeTransaction = mock(WriteTransaction.class);
when(dataProvider.newWriteOnlyTransaction()).thenReturn(writeTransaction);
CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = mock(CheckedFuture.class);
when(writeTransaction.submit()).thenReturn(checkedFuture);
subnetManagerListener = new MockFaasSubnetManagerListener(dataProvider, gbpTenantId, faasTenantId,
- MoreExecutors.directExecutor());
+ MoreExecutors.directExecutor(), mockUlnDatastoreUtil);
}
@SuppressWarnings("unchecked")
// prepare input test data
ArgumentCaptor<org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.subnets.rev151013.subnets.container.subnets.Subnet> captor = ArgumentCaptor.forClass(
org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.subnets.rev151013.subnets.container.subnets.Subnet.class);
- try {
- PowerMockito.doNothing().when(UlnDatastoreApi.class, "submitSubnetToDs", captor.capture());
- } catch (Exception e) {
- fail("testOnDataChangeSubnet: Exception = " + e.toString());
- }
+ doNothing().when(mockUlnDatastoreUtil).submitSubnetToDs(captor.capture());
+
Uuid expectedFaasSubnetId = new Uuid("c4511aac-ae43-11e5-bf7f-feff819cdc9f");
subnetManagerListener.setExpectedFaasSubnetId(expectedFaasSubnetId);
Subnet testSubnet = makeTestSubnet();
import java.util.concurrent.Executor;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.faas.uln.datastore.api.UlnDatastoreUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.common.rev151013.Uuid;
import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.security.rules.rev151013.security.rule.groups.attributes.security.rule.groups.container.SecurityRuleGroupsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
private Uuid expectedFaasSecId;
public MockFaasContractManagerListener(DataBroker dataProvider, TenantId gbpTenantId, Uuid faasTenantId,
- Executor executor) {
- super(dataProvider, gbpTenantId, faasTenantId, executor);
+ Executor executor, UlnDatastoreUtil ulnDatastoreUtil) {
+ super(dataProvider, gbpTenantId, faasTenantId, executor, ulnDatastoreUtil);
}
// *******************************************************
import java.util.concurrent.Executor;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.faas.uln.datastore.api.Pair;
+import org.opendaylight.faas.uln.datastore.api.UlnDatastoreUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.common.rev151013.Uuid;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContractId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
private ServiceCommunicationLayer comLayer;
private ExternalImplicitGroup externalImplicitGroup;
- public MockFaasPolicyManager(DataBroker dataBroker, Executor executor) {
- super(dataBroker, executor);
+ public MockFaasPolicyManager(DataBroker dataBroker, Executor executor, UlnDatastoreUtil ulnDatastoreUtil) {
+ super(dataBroker, executor, ulnDatastoreUtil);
}
// *******************************************************
import java.util.concurrent.Executor;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.faas.uln.datastore.api.UlnDatastoreUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.common.rev151013.Uuid;
import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.subnets.rev151013.subnets.container.subnets.SubnetBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
private Uuid expectedFaasSubnetId;
public MockFaasSubnetManagerListener(DataBroker dataProvider, TenantId gbpTenantId, Uuid faasTenantId,
- Executor executor) {
- super(dataProvider, gbpTenantId, faasTenantId, executor);
+ Executor executor, UlnDatastoreUtil ulnDatastoreUtil) {
+ super(dataProvider, gbpTenantId, faasTenantId, executor, ulnDatastoreUtil);
}
// *******************************************************