Search in sources :

Example 96 with PhysicalNetworkVO

use of com.cloud.network.dao.PhysicalNetworkVO in project cloudstack by apache.

the class NuageVspManagerTest method testListNuageVspDevices.

@Test
public void testListNuageVspDevices() {
    final NuageVspDeviceVO nuageVspDevice = mock(NuageVspDeviceVO.class);
    when(nuageVspDevice.getPhysicalNetworkId()).thenReturn(NETWORK_ID);
    final PhysicalNetworkVO phyNtwkVO = mock(PhysicalNetworkVO.class);
    when(_physicalNetworkDao.findById(NETWORK_ID)).thenReturn(phyNtwkVO);
    when(_nuageVspDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(new ArrayList<NuageVspDeviceVO>());
    final ListNuageVspDevicesCmd cmd = mock(ListNuageVspDevicesCmd.class);
    when(cmd.getPhysicalNetworkId()).thenReturn(NETWORK_ID);
    when(cmd.getNuageVspDeviceId()).thenReturn(null);
    _nuageVspManager.listNuageVspDevices(cmd);
}
Also used : NuageVspDeviceVO(com.cloud.network.NuageVspDeviceVO) PhysicalNetworkVO(com.cloud.network.dao.PhysicalNetworkVO) ListNuageVspDevicesCmd(com.cloud.api.commands.ListNuageVspDevicesCmd) NuageTest(com.cloud.NuageTest) Test(org.junit.Test)

Example 97 with PhysicalNetworkVO

use of com.cloud.network.dao.PhysicalNetworkVO in project cloudstack by apache.

the class NuageVspManagerTest method testDeleteNuageVspDevice.

@Test
public void testDeleteNuageVspDevice() throws ConfigurationException {
    final PhysicalNetworkVO physicalNetwork = mock(PhysicalNetworkVO.class);
    when(physicalNetwork.getDataCenterId()).thenReturn(NETWORK_ID);
    when(physicalNetwork.getId()).thenReturn(NETWORK_ID);
    when(_physicalNetworkDao.findById(NETWORK_ID)).thenReturn(physicalNetwork);
    final NuageVspDeviceVO nuageVspDevice = mock(NuageVspDeviceVO.class);
    when(nuageVspDevice.getPhysicalNetworkId()).thenReturn(NETWORK_ID);
    when(nuageVspDevice.getHostId()).thenReturn(NETWORK_ID);
    when(_nuageVspDao.findById(NETWORK_ID)).thenReturn(nuageVspDevice);
    when(_networkDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(new ArrayList<NetworkVO>());
    final HostVO host = mock(HostVO.class);
    when(host.getId()).thenReturn(NETWORK_ID);
    when(_hostDao.findById(NETWORK_ID)).thenReturn(host);
    final DeleteNuageVspDeviceCmd cmd = mock(DeleteNuageVspDeviceCmd.class);
    when(cmd.getNuageVspDeviceId()).thenReturn(NETWORK_ID);
    ConfigurationVO cmsIdConfig = mock(ConfigurationVO.class);
    when(cmsIdConfig.getValue()).thenReturn("1:1");
    when(_configurationDao.findByName("nuagevsp.cms.id")).thenReturn(cmsIdConfig);
    final SyncNuageVspCmsIdAnswer answer = mock(SyncNuageVspCmsIdAnswer.class);
    when(answer.getResult()).thenReturn(true);
    when(_agentManager.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer);
    _nuageVspManager.deleteNuageVspDevice(cmd);
}
Also used : NuageVspDeviceVO(com.cloud.network.NuageVspDeviceVO) NetworkVO(com.cloud.network.dao.NetworkVO) PhysicalNetworkVO(com.cloud.network.dao.PhysicalNetworkVO) DeleteNuageVspDeviceCmd(com.cloud.api.commands.DeleteNuageVspDeviceCmd) ConfigurationVO(org.apache.cloudstack.framework.config.impl.ConfigurationVO) PhysicalNetworkVO(com.cloud.network.dao.PhysicalNetworkVO) SyncNuageVspCmsIdAnswer(com.cloud.agent.api.sync.SyncNuageVspCmsIdAnswer) HostVO(com.cloud.host.HostVO) NuageTest(com.cloud.NuageTest) Test(org.junit.Test)

Example 98 with PhysicalNetworkVO

use of com.cloud.network.dao.PhysicalNetworkVO in project cloudstack by apache.

the class OpendaylightGuestNetworkGuru method design.

@Override
public Network design(NetworkOffering offering, DeploymentPlan plan, Network userSpecified, Account owner) {
    PhysicalNetworkVO physnet = physicalNetworkDao.findById(plan.getPhysicalNetworkId());
    DataCenter dc = _dcDao.findById(plan.getDataCenterId());
    if (!canHandle(offering, dc.getNetworkType(), physnet)) {
        s_logger.debug("Refusing to design this network");
        return null;
    }
    List<OpenDaylightControllerVO> devices = openDaylightControllerMappingDao.listByPhysicalNetwork(physnet.getId());
    if (devices.isEmpty()) {
        s_logger.error("No Controller on physical network " + physnet.getName());
        return null;
    }
    s_logger.debug("Controller " + devices.get(0).getUuid() + " found on physical network " + physnet.getId());
    s_logger.debug("Physical isolation type is ODL, asking GuestNetworkGuru to design this network");
    NetworkVO networkObject = (NetworkVO) super.design(offering, plan, userSpecified, owner);
    if (networkObject == null) {
        return null;
    }
    // Override the broadcast domain type
    networkObject.setBroadcastDomainType(BroadcastDomainType.OpenDaylight);
    return networkObject;
}
Also used : NetworkVO(com.cloud.network.dao.NetworkVO) PhysicalNetworkVO(com.cloud.network.dao.PhysicalNetworkVO) DataCenter(com.cloud.dc.DataCenter) PhysicalNetworkVO(com.cloud.network.dao.PhysicalNetworkVO) OpenDaylightControllerVO(org.apache.cloudstack.network.opendaylight.dao.OpenDaylightControllerVO)

Example 99 with PhysicalNetworkVO

use of com.cloud.network.dao.PhysicalNetworkVO in project cloudstack by apache.

the class BaremetalDhcpManagerImpl method generateApiResponse.

@Override
public BaremetalDhcpResponse generateApiResponse(BaremetalDhcpVO vo) {
    BaremetalDhcpResponse response = new BaremetalDhcpResponse();
    response.setDeviceType(vo.getDeviceType());
    response.setId(vo.getUuid());
    HostVO host = _hostDao.findById(vo.getHostId());
    response.setUrl(host.getPrivateIpAddress());
    PhysicalNetworkVO nwVO = _physicalNetworkDao.findById(vo.getPhysicalNetworkId());
    response.setPhysicalNetworkId(nwVO.getUuid());
    PhysicalNetworkServiceProviderVO providerVO = _physicalNetworkServiceProviderDao.findById(vo.getNetworkServiceProviderId());
    response.setProviderId(providerVO.getUuid());
    response.setObjectName("baremetaldhcp");
    return response;
}
Also used : PhysicalNetworkServiceProviderVO(com.cloud.network.dao.PhysicalNetworkServiceProviderVO) PhysicalNetworkVO(com.cloud.network.dao.PhysicalNetworkVO) HostVO(com.cloud.host.HostVO)

Example 100 with PhysicalNetworkVO

use of com.cloud.network.dao.PhysicalNetworkVO in project cloudstack by apache.

the class BaremetalDhcpManagerImpl method addDchpServer.

@Override
@DB
public BaremetalDhcpVO addDchpServer(AddBaremetalDhcpCmd cmd) {
    PhysicalNetworkVO pNetwork = null;
    long zoneId;
    if (cmd.getPhysicalNetworkId() == null || cmd.getUrl() == null || cmd.getUsername() == null || cmd.getPassword() == null) {
        throw new IllegalArgumentException("At least one of the required parameters(physical network id, url, username, password) is null");
    }
    pNetwork = _physicalNetworkDao.findById(cmd.getPhysicalNetworkId());
    if (pNetwork == null) {
        throw new IllegalArgumentException("Could not find phyical network with ID: " + cmd.getPhysicalNetworkId());
    }
    zoneId = pNetwork.getDataCenterId();
    DataCenterVO zone = _dcDao.findById(zoneId);
    PhysicalNetworkServiceProviderVO ntwkSvcProvider = _physicalNetworkServiceProviderDao.findByServiceProvider(pNetwork.getId(), BaremetalDhcpManager.BAREMETAL_DHCP_SERVICE_PROVIDER.getName());
    if (ntwkSvcProvider == null) {
        throw new CloudRuntimeException("Network Service Provider: " + BaremetalDhcpManager.BAREMETAL_DHCP_SERVICE_PROVIDER.getName() + " is not enabled in the physical network: " + cmd.getPhysicalNetworkId() + "to add this device");
    } else if (ntwkSvcProvider.getState() == PhysicalNetworkServiceProvider.State.Shutdown) {
        throw new CloudRuntimeException("Network Service Provider: " + ntwkSvcProvider.getProviderName() + " is in shutdown state in the physical network: " + cmd.getPhysicalNetworkId() + "to add this device");
    }
    List<HostVO> dhcps = _resourceMgr.listAllUpAndEnabledHosts(Host.Type.BaremetalDhcp, null, null, zoneId);
    if (dhcps.size() != 0) {
        throw new IllegalArgumentException("Already had a DHCP server in zone: " + zoneId);
    }
    URI uri;
    try {
        uri = new URI(cmd.getUrl());
    } catch (Exception e) {
        s_logger.debug(e);
        throw new IllegalArgumentException(e.getMessage());
    }
    String ipAddress = uri.getHost();
    if (ipAddress == null) {
        // the url is raw ip. For backforward compatibility, we have to support http://ip format as well
        ipAddress = cmd.getUrl();
    }
    String guid = getDhcpServerGuid(Long.toString(zoneId), "ExternalDhcp", ipAddress);
    Map params = new HashMap<String, String>();
    params.put("type", cmd.getDhcpType());
    params.put("zone", Long.toString(zoneId));
    params.put("ip", ipAddress);
    params.put("username", cmd.getUsername());
    params.put("password", cmd.getPassword());
    params.put("guid", guid);
    String dns = zone.getDns1();
    if (dns == null) {
        dns = zone.getDns2();
    }
    params.put("dns", dns);
    ServerResource resource = null;
    try {
        if (cmd.getDhcpType().equalsIgnoreCase(BaremetalDhcpType.DNSMASQ.toString())) {
            resource = new BaremetalDnsmasqResource();
            resource.configure("Dnsmasq resource", params);
        } else if (cmd.getDhcpType().equalsIgnoreCase(BaremetalDhcpType.DHCPD.toString())) {
            resource = new BaremetalDhcpdResource();
            resource.configure("Dhcpd resource", params);
        } else {
            throw new CloudRuntimeException("Unsupport DHCP server type: " + cmd.getDhcpType());
        }
    } catch (Exception e) {
        s_logger.debug(e);
        throw new CloudRuntimeException(e.getMessage());
    }
    Host dhcpServer = _resourceMgr.addHost(zoneId, resource, Host.Type.BaremetalDhcp, params);
    if (dhcpServer == null) {
        throw new CloudRuntimeException("Cannot add external Dhcp server as a host");
    }
    BaremetalDhcpVO vo = new BaremetalDhcpVO();
    vo.setDeviceType(cmd.getDhcpType());
    vo.setHostId(dhcpServer.getId());
    vo.setNetworkServiceProviderId(ntwkSvcProvider.getId());
    vo.setPhysicalNetworkId(cmd.getPhysicalNetworkId());
    _extDhcpDao.persist(vo);
    return vo;
}
Also used : DataCenterVO(com.cloud.dc.DataCenterVO) HashMap(java.util.HashMap) ServerResource(com.cloud.resource.ServerResource) Host(com.cloud.host.Host) URI(java.net.URI) HostVO(com.cloud.host.HostVO) ResourceUnavailableException(com.cloud.exception.ResourceUnavailableException) ConfigurationException(javax.naming.ConfigurationException) CloudRuntimeException(com.cloud.utils.exception.CloudRuntimeException) UnableDeleteHostException(com.cloud.resource.UnableDeleteHostException) BaremetalDhcpVO(com.cloud.baremetal.database.BaremetalDhcpVO) PhysicalNetworkServiceProviderVO(com.cloud.network.dao.PhysicalNetworkServiceProviderVO) CloudRuntimeException(com.cloud.utils.exception.CloudRuntimeException) PhysicalNetworkVO(com.cloud.network.dao.PhysicalNetworkVO) HashMap(java.util.HashMap) Map(java.util.Map) DB(com.cloud.utils.db.DB)

Aggregations

PhysicalNetworkVO (com.cloud.network.dao.PhysicalNetworkVO)112 InvalidParameterValueException (com.cloud.exception.InvalidParameterValueException)50 ArrayList (java.util.ArrayList)40 NetworkVO (com.cloud.network.dao.NetworkVO)35 HostVO (com.cloud.host.HostVO)28 Test (org.junit.Test)28 CloudRuntimeException (com.cloud.utils.exception.CloudRuntimeException)26 Account (com.cloud.user.Account)25 DataCenter (com.cloud.dc.DataCenter)22 NetworkOffering (com.cloud.offering.NetworkOffering)22 Network (com.cloud.network.Network)18 PhysicalNetworkServiceProviderVO (com.cloud.network.dao.PhysicalNetworkServiceProviderVO)18 Host (com.cloud.host.Host)15 DB (com.cloud.utils.db.DB)15 ConfigurationException (javax.naming.ConfigurationException)14 HashMap (java.util.HashMap)12 DataCenterVO (com.cloud.dc.DataCenterVO)11 Domain (com.cloud.domain.Domain)11 NiciraNvpDeviceVO (com.cloud.network.NiciraNvpDeviceVO)11 TransactionStatus (com.cloud.utils.db.TransactionStatus)10