Search in sources :

Example 71 with NicVO

use of com.cloud.vm.NicVO in project cloudstack by apache.

the class NetworkModelImpl method getDefaultNic.

@Override
public Nic getDefaultNic(long vmId) {
    List<NicVO> nics = _nicDao.listByVmId(vmId);
    Nic defaultNic = null;
    if (nics != null) {
        for (Nic nic : nics) {
            if (nic.isDefaultNic()) {
                defaultNic = nic;
                break;
            }
        }
    } else {
        s_logger.debug("Unable to find default network for the vm; vm doesn't have any nics");
        return null;
    }
    if (defaultNic == null) {
        s_logger.debug("Unable to find default network for the vm; vm doesn't have default nic");
    }
    return defaultNic;
}
Also used : Nic(com.cloud.vm.Nic) NicVO(com.cloud.vm.NicVO)

Example 72 with NicVO

use of com.cloud.vm.NicVO in project cloudstack by apache.

the class ContrailGuru method deallocate.

/**
     * Release permanent resources of a Nic (VMI and addresses).
     */
@Override
public void deallocate(Network network, NicProfile nic, VirtualMachineProfile vm) {
    s_logger.debug("deallocate NicProfile " + nic.getId() + " on " + network.getName());
    NicVO nicVO = _nicDao.findById(nic.getId());
    assert nicVO != null;
    VirtualMachineModel vmModel = _manager.getDatabase().lookupVirtualMachine(vm.getUuid());
    if (vmModel == null) {
        return;
    }
    VMInterfaceModel vmiModel = vmModel.getVMInterface(nicVO.getUuid());
    if (vmiModel == null) {
        return;
    }
    try {
        vmiModel.destroy(_manager.getModelController());
    } catch (IOException ex) {
        return;
    }
    vmModel.removeSuccessor(vmiModel);
    if (!vmModel.hasDescendents()) {
        _manager.getDatabase().getVirtualMachines().remove(vmModel);
        try {
            vmModel.delete(_manager.getModelController());
        } catch (IOException ex) {
            s_logger.warn("virtual-machine delete", ex);
            return;
        }
    }
}
Also used : VMInterfaceModel(org.apache.cloudstack.network.contrail.model.VMInterfaceModel) VirtualMachineModel(org.apache.cloudstack.network.contrail.model.VirtualMachineModel) IOException(java.io.IOException) NicVO(com.cloud.vm.NicVO)

Example 73 with NicVO

use of com.cloud.vm.NicVO in project cloudstack by apache.

the class ContrailElementImpl method prepare.

@Override
public boolean prepare(Network network, NicProfile nicProfile, VirtualMachineProfile vm, DeployDestination dest, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException {
    s_logger.debug("NetworkElement prepare: " + network.getName() + ", traffic type: " + network.getTrafficType());
    if (network.getTrafficType() == TrafficType.Guest) {
        s_logger.debug("ignore network " + network.getName());
        return true;
    }
    s_logger.debug("network: " + network.getId());
    VirtualNetworkModel vnModel = _manager.getDatabase().lookupVirtualNetwork(network.getUuid(), _manager.getCanonicalName(network), network.getTrafficType());
    if (vnModel == null) {
        // this may be the first time we see this network.
        return false;
    }
    VirtualMachineModel vmModel = _manager.getDatabase().lookupVirtualMachine(vm.getUuid());
    if (vmModel == null) {
        VMInstanceVO vmVo = (VMInstanceVO) vm.getVirtualMachine();
        vmModel = new VirtualMachineModel(vmVo, vm.getUuid());
        vmModel.setProperties(_manager.getModelController(), vmVo);
    }
    NicVO nic = _nicDao.findById(nicProfile.getId());
    assert nic != null;
    VMInterfaceModel vmiModel = vmModel.getVMInterface(nic.getUuid());
    if (vmiModel == null) {
        vmiModel = new VMInterfaceModel(nic.getUuid());
        vmiModel.addToVirtualMachine(vmModel);
        vmiModel.addToVirtualNetwork(vnModel);
    }
    try {
        vmiModel.build(_manager.getModelController(), (VMInstanceVO) vm.getVirtualMachine(), nic);
    } catch (IOException ex) {
        s_logger.warn("vm interface set", ex);
        return false;
    }
    InstanceIpModel ipModel = vmiModel.getInstanceIp();
    if (ipModel == null) {
        ipModel = new InstanceIpModel(vm.getInstanceName(), nic.getDeviceId());
        ipModel.addToVMInterface(vmiModel);
    }
    ipModel.setAddress(nicProfile.getIPv4Address());
    try {
        vmModel.update(_manager.getModelController());
    } catch (Exception ex) {
        s_logger.warn("virtual-machine-update", ex);
        return false;
    }
    _manager.getDatabase().getVirtualMachines().add(vmModel);
    return true;
}
Also used : VMInterfaceModel(org.apache.cloudstack.network.contrail.model.VMInterfaceModel) VirtualMachineModel(org.apache.cloudstack.network.contrail.model.VirtualMachineModel) VMInstanceVO(com.cloud.vm.VMInstanceVO) IOException(java.io.IOException) NicVO(com.cloud.vm.NicVO) InstanceIpModel(org.apache.cloudstack.network.contrail.model.InstanceIpModel) ResourceUnavailableException(com.cloud.exception.ResourceUnavailableException) IOException(java.io.IOException) ConcurrentOperationException(com.cloud.exception.ConcurrentOperationException) InsufficientCapacityException(com.cloud.exception.InsufficientCapacityException) VirtualNetworkModel(org.apache.cloudstack.network.contrail.model.VirtualNetworkModel)

Example 74 with NicVO

use of com.cloud.vm.NicVO in project cloudstack by apache.

the class ContrailElementImpl method release.

@Override
public boolean release(Network network, NicProfile nicProfile, VirtualMachineProfile vm, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException {
    if (network.getTrafficType() == TrafficType.Guest) {
        return true;
    } else if (!_manager.isManagedPhysicalNetwork(network)) {
        s_logger.debug("release ignore network " + network.getId());
        return true;
    }
    NicVO nic = _nicDao.findById(nicProfile.getId());
    assert nic != null;
    VirtualMachineModel vmModel = _manager.getDatabase().lookupVirtualMachine(vm.getUuid());
    if (vmModel == null) {
        s_logger.debug("vm " + vm.getInstanceName() + " not in local database");
        return true;
    }
    VMInterfaceModel vmiModel = vmModel.getVMInterface(nic.getUuid());
    if (vmiModel != null) {
        try {
            vmiModel.destroy(_manager.getModelController());
        } catch (IOException ex) {
            s_logger.warn("virtual-machine-interface delete", ex);
        }
        vmModel.removeSuccessor(vmiModel);
    }
    if (!vmModel.hasDescendents()) {
        _manager.getDatabase().getVirtualMachines().remove(vmModel);
        try {
            vmModel.delete(_manager.getModelController());
        } catch (IOException e) {
            return false;
        }
    }
    return true;
}
Also used : VMInterfaceModel(org.apache.cloudstack.network.contrail.model.VMInterfaceModel) VirtualMachineModel(org.apache.cloudstack.network.contrail.model.VirtualMachineModel) IOException(java.io.IOException) NicVO(com.cloud.vm.NicVO)

Example 75 with NicVO

use of com.cloud.vm.NicVO in project cloudstack by apache.

the class ServerDBSyncImpl method buildNicResources.

private void buildNicResources(VirtualMachineModel vmModel, VMInstanceVO dbVm, StringBuffer syncLogMsg) throws IOException {
    List<NicVO> nics = _nicDao.listByVmId(dbVm.getId());
    for (NicVO nic : nics) {
        VMInterfaceModel vmiModel = vmModel.getVMInterface(nic.getUuid());
        if (vmiModel == null) {
            vmiModel = new VMInterfaceModel(nic.getUuid());
            NetworkVO network = _networksDao.findById(nic.getNetworkId());
            VirtualNetworkModel vnModel = _manager.getDatabase().lookupVirtualNetwork(network.getUuid(), _manager.getCanonicalName(network), network.getTrafficType());
            if (vnModel == null) {
                s_logger.warn("Unable to locate virtual-network for network id " + network.getId());
                continue;
            }
            vmiModel.addToVirtualMachine(vmModel);
            vmiModel.addToVirtualNetwork(vnModel);
        }
        vmiModel.build(_manager.getModelController(), dbVm, nic);
    }
}
Also used : NetworkVO(com.cloud.network.dao.NetworkVO) VMInterfaceModel(org.apache.cloudstack.network.contrail.model.VMInterfaceModel) NicVO(com.cloud.vm.NicVO) VirtualNetworkModel(org.apache.cloudstack.network.contrail.model.VirtualNetworkModel)

Aggregations

NicVO (com.cloud.vm.NicVO)86 NetworkVO (com.cloud.network.dao.NetworkVO)33 ArrayList (java.util.ArrayList)21 PhysicalNetworkVO (com.cloud.network.dao.PhysicalNetworkVO)18 CloudRuntimeException (com.cloud.utils.exception.CloudRuntimeException)17 NicProfile (com.cloud.vm.NicProfile)15 VMInstanceVO (com.cloud.vm.VMInstanceVO)13 DataCenterVO (com.cloud.dc.DataCenterVO)12 Commands (com.cloud.agent.manager.Commands)11 Network (com.cloud.network.Network)11 HostVO (com.cloud.host.HostVO)10 UserVmVO (com.cloud.vm.UserVmVO)10 Answer (com.cloud.agent.api.Answer)9 NetworkGuru (com.cloud.network.guru.NetworkGuru)9 Nic (com.cloud.vm.Nic)9 VirtualMachineProfile (com.cloud.vm.VirtualMachineProfile)9 Test (org.junit.Test)9 DataCenter (com.cloud.dc.DataCenter)7 IPAddressVO (com.cloud.network.dao.IPAddressVO)7 VirtualRouter (com.cloud.network.router.VirtualRouter)7