Search in sources :

Example 1 with NetworkACLItemVO

use of com.cloud.network.vpc.NetworkACLItemVO in project cloudstack by apache.

the class NetworkACLServiceTest method testCreateACLItem.

@Test
public void testCreateACLItem() throws Exception {
    Mockito.when(_entityMgr.findById(Matchers.eq(Vpc.class), Matchers.anyLong())).thenReturn(new VpcVO());
    Mockito.when(_networkAclMgr.getNetworkACL(Matchers.anyLong())).thenReturn(acl);
    Mockito.when(_networkAclMgr.createNetworkACLItem(Matchers.anyInt(), Matchers.anyInt(), Matchers.anyString(), Matchers.anyList(), Matchers.anyInt(), Matchers.anyInt(), Matchers.any(NetworkACLItem.TrafficType.class), Matchers.anyLong(), Matchers.anyString(), Matchers.anyInt(), Matchers.anyBoolean())).thenReturn(new NetworkACLItemVO());
    Mockito.when(_networkACLItemDao.findByAclAndNumber(Matchers.anyLong(), Matchers.anyInt())).thenReturn(null);
    assertNotNull(_aclService.createNetworkACLItem(createACLItemCmd));
}
Also used : VpcVO(com.cloud.network.vpc.VpcVO) Vpc(com.cloud.network.vpc.Vpc) NetworkACLItemVO(com.cloud.network.vpc.NetworkACLItemVO) Test(org.junit.Test)

Example 2 with NetworkACLItemVO

use of com.cloud.network.vpc.NetworkACLItemVO in project cloudstack by apache.

the class NetworkACLServiceTest method testCreateACLItemDuplicateNumber.

@Test(expected = InvalidParameterValueException.class)
public void testCreateACLItemDuplicateNumber() throws Exception {
    Mockito.when(_entityMgr.findById(Matchers.eq(Vpc.class), Matchers.anyLong())).thenReturn(new VpcVO());
    Mockito.when(_networkAclMgr.getNetworkACL(Matchers.anyLong())).thenReturn(acl);
    Mockito.when(_networkACLItemDao.findByAclAndNumber(Matchers.anyLong(), Matchers.anyInt())).thenReturn(new NetworkACLItemVO());
    _aclService.createNetworkACLItem(createACLItemCmd);
}
Also used : VpcVO(com.cloud.network.vpc.VpcVO) Vpc(com.cloud.network.vpc.Vpc) NetworkACLItemVO(com.cloud.network.vpc.NetworkACLItemVO) Test(org.junit.Test)

Example 3 with NetworkACLItemVO

use of com.cloud.network.vpc.NetworkACLItemVO in project cosmic by MissionCriticalCloud.

the class NetworkACLManagerTest method driveTestApplyNetworkACL.

public void driveTestApplyNetworkACL(final boolean result, final boolean applyNetworkACLs, final boolean applyACLToPrivateGw) throws Exception {
    // In order to test ONLY our scope method, we mock the others
    final NetworkACLManager aclManager = Mockito.spy(_aclMgr);
    // Prepare
    // Reset mocked objects to reuse
    Mockito.reset(_networkACLItemDao);
    // Make sure it is handled
    final long aclId = 1L;
    final NetworkVO network = Mockito.mock(NetworkVO.class);
    final List<NetworkVO> networks = new ArrayList<>();
    networks.add(network);
    Mockito.when(_networkDao.listByAclId(Matchers.anyLong())).thenReturn(networks);
    Mockito.when(_networkDao.findById(Matchers.anyLong())).thenReturn(network);
    Mockito.when(_networkModel.isProviderSupportServiceInNetwork(Matchers.anyLong(), Matchers.any(Network.Service.class), Matchers.any(Network.Provider.class))).thenReturn(true);
    Mockito.when(_networkAclElements.get(0).applyNetworkACLs(Matchers.any(Network.class), Matchers.anyList())).thenReturn(applyNetworkACLs);
    // Make sure it applies ACL to private gateway
    final List<VpcGatewayVO> vpcGateways = new ArrayList<>();
    final VpcGatewayVO vpcGateway = Mockito.mock(VpcGatewayVO.class);
    final PrivateGateway privateGateway = Mockito.mock(PrivateGateway.class);
    Mockito.when(_vpcSvc.getVpcPrivateGateway(Mockito.anyLong())).thenReturn(privateGateway);
    vpcGateways.add(vpcGateway);
    Mockito.when(_vpcGatewayDao.listByAclIdAndType(aclId, VpcGateway.Type.Private)).thenReturn(vpcGateways);
    // Create 4 rules to test all 4 scenarios: only revoke should
    // be deleted, only add should update
    final List<NetworkACLItemVO> rules = new ArrayList<>();
    final NetworkACLItemVO ruleActive = Mockito.mock(NetworkACLItemVO.class);
    final NetworkACLItemVO ruleStaged = Mockito.mock(NetworkACLItemVO.class);
    final NetworkACLItemVO rule2Revoke = Mockito.mock(NetworkACLItemVO.class);
    final NetworkACLItemVO rule2Add = Mockito.mock(NetworkACLItemVO.class);
    Mockito.when(ruleActive.getState()).thenReturn(NetworkACLItem.State.Active);
    Mockito.when(ruleStaged.getState()).thenReturn(NetworkACLItem.State.Staged);
    Mockito.when(rule2Add.getState()).thenReturn(NetworkACLItem.State.Add);
    Mockito.when(rule2Revoke.getState()).thenReturn(NetworkACLItem.State.Revoke);
    rules.add(ruleActive);
    rules.add(ruleStaged);
    rules.add(rule2Add);
    rules.add(rule2Revoke);
    final long revokeId = 8;
    Mockito.when(rule2Revoke.getId()).thenReturn(revokeId);
    final long addId = 9;
    Mockito.when(rule2Add.getId()).thenReturn(addId);
    Mockito.when(_networkACLItemDao.findById(addId)).thenReturn(rule2Add);
    Mockito.when(_networkACLItemDao.listByACL(aclId)).thenReturn(rules);
    // Mock methods to avoid
    Mockito.doReturn(applyACLToPrivateGw).when(aclManager).applyACLToPrivateGw(privateGateway);
    // Execute
    assertEquals("Result was not congruent with applyNetworkACLs and applyACLToPrivateGw", result, aclManager.applyNetworkACL(aclId));
    // Assert if conditions met, network ACL was applied
    final int timesProcessingDone = applyNetworkACLs && applyACLToPrivateGw ? 1 : 0;
    Mockito.verify(_networkACLItemDao, Mockito.times(timesProcessingDone)).remove(revokeId);
    Mockito.verify(rule2Add, Mockito.times(timesProcessingDone)).setState(NetworkACLItem.State.Active);
    Mockito.verify(_networkACLItemDao, Mockito.times(timesProcessingDone)).update(addId, rule2Add);
}
Also used : NetworkVO(com.cloud.network.dao.NetworkVO) VpcGatewayVO(com.cloud.network.vpc.VpcGatewayVO) ArrayList(java.util.ArrayList) NetworkOrchestrationService(com.cloud.engine.orchestration.service.NetworkOrchestrationService) VpcService(com.cloud.network.vpc.VpcService) NetworkACLItemVO(com.cloud.network.vpc.NetworkACLItemVO) NetworkACLManager(com.cloud.network.vpc.NetworkACLManager) NetworkACLServiceProvider(com.cloud.network.element.NetworkACLServiceProvider) PrivateGateway(com.cloud.network.vpc.PrivateGateway) Network(com.cloud.network.Network)

Example 4 with NetworkACLItemVO

use of com.cloud.network.vpc.NetworkACLItemVO in project cosmic by MissionCriticalCloud.

the class NetworkACLServiceTest method testCreateACLItem.

@Test
public void testCreateACLItem() throws Exception {
    Mockito.when(_entityMgr.findById(Matchers.eq(Vpc.class), Matchers.anyLong())).thenReturn(new VpcVO());
    Mockito.when(_networkAclMgr.getNetworkACL(Matchers.anyLong())).thenReturn(acl);
    Mockito.when(_networkAclMgr.createNetworkACLItem(Matchers.anyInt(), Matchers.anyInt(), Matchers.anyString(), Matchers.anyList(), Matchers.anyInt(), Matchers.anyInt(), Matchers.any(NetworkACLItem.TrafficType.class), Matchers.anyLong(), Matchers.anyString(), Matchers.anyInt(), Matchers.anyBoolean())).thenReturn(new NetworkACLItemVO());
    Mockito.when(_networkACLItemDao.findByAclAndNumber(Matchers.anyLong(), Matchers.anyInt())).thenReturn(null);
    assertNotNull(_aclService.createNetworkACLItem(createACLItemCmd));
}
Also used : VpcVO(com.cloud.network.vpc.VpcVO) Vpc(com.cloud.network.vpc.Vpc) NetworkACLItemVO(com.cloud.network.vpc.NetworkACLItemVO) Test(org.junit.Test)

Example 5 with NetworkACLItemVO

use of com.cloud.network.vpc.NetworkACLItemVO in project cloudstack by apache.

the class ServerDBSyncImpl method createNetworkPolicy.

public void createNetworkPolicy(NetworkACLVO db, StringBuffer syncLogMesg) throws IOException {
    syncLogMesg.append("Policy# DB: " + db.getName() + "(" + db.getUuid() + "); VNC: none;  action: create\n");
    if (_manager.getDatabase().lookupNetworkPolicy(db.getUuid()) != null) {
        s_logger.warn("Policy model object is already present in DB: " + db.getUuid() + ", name: " + db.getName());
    }
    NetworkPolicyModel policyModel = new NetworkPolicyModel(db.getUuid(), db.getName());
    net.juniper.contrail.api.types.Project project = null;
    try {
        VpcVO vpc = _vpcDao.findById(db.getVpcId());
        if (vpc != null) {
            project = _manager.getVncProject(vpc.getDomainId(), vpc.getAccountId());
        } else {
            project = _manager.getDefaultVncProject();
        }
    } catch (IOException ex) {
        s_logger.warn("read project", ex);
        throw ex;
    }
    policyModel.setProject(project);
    List<NetworkACLItemVO> rules = _networkACLItemDao.listByACL(db.getId());
    try {
        policyModel.build(_manager.getModelController(), rules);
    } catch (Exception e) {
        e.printStackTrace();
    }
    if (_rwMode) {
        try {
            if (!policyModel.verify(_manager.getModelController())) {
                policyModel.update(_manager.getModelController());
            }
        } catch (Exception ex) {
            s_logger.warn("create network-policy", ex);
            syncLogMesg.append("Error: Policy# VNC : Unable to create network policy " + db.getName() + "\n");
            return;
        }
        s_logger.debug("add model " + policyModel.getName());
        _manager.getDatabase().getNetworkPolicys().add(policyModel);
        syncLogMesg.append("Policy# VNC: " + db.getUuid() + ", " + policyModel.getName() + " created\n");
    } else {
        syncLogMesg.append("Policy# VNC: " + policyModel.getName() + " created \n");
    }
}
Also used : VpcVO(com.cloud.network.vpc.VpcVO) NetworkPolicyModel(org.apache.cloudstack.network.contrail.model.NetworkPolicyModel) IOException(java.io.IOException) NetworkACLItemVO(com.cloud.network.vpc.NetworkACLItemVO) InternalErrorException(com.cloud.exception.InternalErrorException) IOException(java.io.IOException)

Aggregations

NetworkACLItemVO (com.cloud.network.vpc.NetworkACLItemVO)25 VpcVO (com.cloud.network.vpc.VpcVO)9 Network (com.cloud.network.Network)7 ArrayList (java.util.ArrayList)6 Vpc (com.cloud.network.vpc.Vpc)5 ConcurrentOperationException (com.cloud.exception.ConcurrentOperationException)4 ResourceUnavailableException (com.cloud.exception.ResourceUnavailableException)4 NetworkACLVO (com.cloud.network.vpc.NetworkACLVO)4 CloudRuntimeException (com.cloud.utils.exception.CloudRuntimeException)4 DomainRouterVO (com.cloud.vm.DomainRouterVO)4 Test (org.junit.Test)4 InsufficientCapacityException (com.cloud.exception.InsufficientCapacityException)3 AccountVO (com.cloud.user.AccountVO)3 Pair (com.cloud.utils.Pair)3 Command (com.cloud.agent.api.Command)2 NetworkUsageCommand (com.cloud.agent.api.NetworkUsageCommand)2 PlugNicCommand (com.cloud.agent.api.PlugNicCommand)2 AggregationControlCommand (com.cloud.agent.api.routing.AggregationControlCommand)2 PartOf (com.cloud.domain.PartOf)2 InternalErrorException (com.cloud.exception.InternalErrorException)2