Search in sources :

Example 21 with Vpc

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

the class CreateVPCCmd method execute.

@Override
public void execute() {
    Vpc vpc = null;
    try {
        if (isStart()) {
            _vpcService.startVpc(getEntityId(), true);
        } else {
            s_logger.debug("Not starting VPC as " + ApiConstants.START + "=false was passed to the API");
        }
        vpc = _entityMgr.findById(Vpc.class, getEntityId());
    } catch (ResourceUnavailableException ex) {
        s_logger.warn("Exception: ", ex);
        throw new ServerApiException(ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, ex.getMessage());
    } catch (ConcurrentOperationException ex) {
        s_logger.warn("Exception: ", ex);
        throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
    } catch (InsufficientCapacityException ex) {
        s_logger.info(ex);
        s_logger.trace(ex);
        throw new ServerApiException(ApiErrorCode.INSUFFICIENT_CAPACITY_ERROR, ex.getMessage());
    }
    if (vpc != null) {
        VpcResponse response = _responseGenerator.createVpcResponse(ResponseView.Restricted, vpc);
        response.setResponseName(getCommandName());
        setResponseObject(response);
    } else {
        throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create VPC");
    }
}
Also used : ServerApiException(org.apache.cloudstack.api.ServerApiException) VpcResponse(org.apache.cloudstack.api.response.VpcResponse) Vpc(com.cloud.network.vpc.Vpc) ResourceUnavailableException(com.cloud.exception.ResourceUnavailableException) InsufficientCapacityException(com.cloud.exception.InsufficientCapacityException) ConcurrentOperationException(com.cloud.exception.ConcurrentOperationException)

Example 22 with Vpc

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

the class CreateVPCCmd method create.

@Override
public void create() throws ResourceAllocationException {
    Vpc vpc = _vpcService.createVpc(getZoneId(), getVpcOffering(), getEntityOwnerId(), getVpcName(), getDisplayText(), getCidr(), getNetworkDomain(), getDisplayVpc());
    if (vpc != null) {
        setEntityId(vpc.getId());
        setEntityUuid(vpc.getUuid());
    } else {
        throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create a VPC");
    }
}
Also used : ServerApiException(org.apache.cloudstack.api.ServerApiException) Vpc(com.cloud.network.vpc.Vpc)

Example 23 with Vpc

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

the class VpcVirtualRouterElementTest method testApplyVpnUsers.

@Test
public void testApplyVpnUsers() {
    vpcVirtualRouterElement._vpcRouterMgr = _vpcRouterMgr;
    final AdvancedNetworkTopology advancedNetworkTopology = Mockito.mock(AdvancedNetworkTopology.class);
    final BasicNetworkTopology basicNetworkTopology = Mockito.mock(BasicNetworkTopology.class);
    networkTopologyContext.setAdvancedNetworkTopology(advancedNetworkTopology);
    networkTopologyContext.setBasicNetworkTopology(basicNetworkTopology);
    networkTopologyContext.init();
    final Vpc vpc = Mockito.mock(Vpc.class);
    final DataCenterVO dataCenterVO = Mockito.mock(DataCenterVO.class);
    final RemoteAccessVpn remoteAccessVpn = Mockito.mock(RemoteAccessVpn.class);
    final DomainRouterVO domainRouterVO1 = Mockito.mock(DomainRouterVO.class);
    final DomainRouterVO domainRouterVO2 = Mockito.mock(DomainRouterVO.class);
    final VpnUser vpnUser1 = Mockito.mock(VpnUser.class);
    final VpnUser vpnUser2 = Mockito.mock(VpnUser.class);
    final List<VpnUser> users = new ArrayList<VpnUser>();
    users.add(vpnUser1);
    users.add(vpnUser2);
    final List<DomainRouterVO> routers = new ArrayList<DomainRouterVO>();
    routers.add(domainRouterVO1);
    routers.add(domainRouterVO2);
    final Long vpcId = new Long(1l);
    final Long zoneId = new Long(1l);
    when(remoteAccessVpn.getVpcId()).thenReturn(vpcId);
    when(_vpcRouterMgr.getVpcRouters(vpcId)).thenReturn(routers);
    when(_entityMgr.findById(Vpc.class, vpcId)).thenReturn(vpc);
    when(vpc.getZoneId()).thenReturn(zoneId);
    when(_dcDao.findById(zoneId)).thenReturn(dataCenterVO);
    when(networkTopologyContext.retrieveNetworkTopology(dataCenterVO)).thenReturn(advancedNetworkTopology);
    try {
        when(advancedNetworkTopology.applyVpnUsers(remoteAccessVpn, users, domainRouterVO1)).thenReturn(new String[] { "user1", "user2" });
        when(advancedNetworkTopology.applyVpnUsers(remoteAccessVpn, users, domainRouterVO2)).thenReturn(new String[] { "user3", "user4" });
    } catch (final ResourceUnavailableException e) {
        fail(e.getMessage());
    }
    try {
        final String[] results = vpcVirtualRouterElement.applyVpnUsers(remoteAccessVpn, users);
        assertNotNull(results);
        assertEquals(results[0], "user1");
        assertEquals(results[1], "user2");
        assertEquals(results[2], "user3");
        assertEquals(results[3], "user4");
    } catch (final ResourceUnavailableException e) {
        fail(e.getMessage());
    }
    verify(remoteAccessVpn, times(1)).getVpcId();
    verify(vpc, times(1)).getZoneId();
    verify(_dcDao, times(1)).findById(zoneId);
    verify(networkTopologyContext, times(1)).retrieveNetworkTopology(dataCenterVO);
}
Also used : BasicNetworkTopology(org.apache.cloudstack.network.topology.BasicNetworkTopology) DataCenterVO(com.cloud.dc.DataCenterVO) Vpc(com.cloud.network.vpc.Vpc) ArrayList(java.util.ArrayList) AdvancedNetworkTopology(org.apache.cloudstack.network.topology.AdvancedNetworkTopology) VpnUser(com.cloud.network.VpnUser) ResourceUnavailableException(com.cloud.exception.ResourceUnavailableException) RemoteAccessVpn(com.cloud.network.RemoteAccessVpn) DomainRouterVO(com.cloud.vm.DomainRouterVO) Test(org.junit.Test)

Example 24 with Vpc

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

the class VpcApiUnitTest method getActiveVpc.

@Test
public void getActiveVpc() {
    //test for active vpc
    boolean result = false;
    Vpc vpc = null;
    try {
        List<String> svcs = new ArrayList<String>();
        svcs.add(Service.SourceNat.getName());
        vpc = _vpcService.getActiveVpc(1);
        if (vpc != null) {
            result = true;
        }
    } catch (Exception ex) {
    } finally {
        assertTrue("Get active Vpc: TEST FAILED, active vpc is not returned", result);
    }
    //test for inactive vpc
    result = false;
    vpc = null;
    try {
        List<String> svcs = new ArrayList<String>();
        svcs.add(Service.SourceNat.getName());
        vpc = _vpcService.getActiveVpc(2);
        if (vpc != null) {
            result = true;
        }
    } catch (Exception ex) {
    } finally {
        assertFalse("Get active Vpc: TEST FAILED, non active vpc is returned", result);
    }
}
Also used : Vpc(com.cloud.network.vpc.Vpc) ArrayList(java.util.ArrayList) InvalidParameterValueException(com.cloud.exception.InvalidParameterValueException) Test(org.junit.Test)

Example 25 with Vpc

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

the class VpcRouterDeploymentDefinition method findOrDeployVirtualRouter.

@Override
protected void findOrDeployVirtualRouter() throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException {
    final Vpc vpc = getVpc();
    if (vpc != null) {
        // This call will associate any existing router to the "routers" attribute.
        // It's needed in order to continue with the VMs deployment.
        planDeploymentRouters();
        if (routers.size() == MAX_NUMBER_OF_ROUTERS) {
            // If we have 2 routers already deployed, do nothing and return.
            return;
        }
    }
    super.findOrDeployVirtualRouter();
}
Also used : Vpc(com.cloud.network.vpc.Vpc)

Aggregations

Vpc (com.cloud.network.vpc.Vpc)45 ResourceUnavailableException (com.cloud.exception.ResourceUnavailableException)12 DomainRouterVO (com.cloud.vm.DomainRouterVO)10 ArrayList (java.util.ArrayList)10 DataCenter (com.cloud.dc.DataCenter)9 InvalidParameterValueException (com.cloud.exception.InvalidParameterValueException)7 Account (com.cloud.user.Account)7 ConcurrentOperationException (com.cloud.exception.ConcurrentOperationException)6 Network (com.cloud.network.Network)6 NetworkVO (com.cloud.network.dao.NetworkVO)6 VpcResponse (org.apache.cloudstack.api.response.VpcResponse)6 IpAddress (com.cloud.network.IpAddress)5 PublicIpAddress (com.cloud.network.PublicIpAddress)5 PhysicalNetworkVO (com.cloud.network.dao.PhysicalNetworkVO)5 ServerApiException (org.apache.cloudstack.api.ServerApiException)5 DataCenterVO (com.cloud.dc.DataCenterVO)4 InsufficientCapacityException (com.cloud.exception.InsufficientCapacityException)4 Capability (com.cloud.network.Network.Capability)4 HashMap (java.util.HashMap)4 VlanVO (com.cloud.dc.VlanVO)3