Search in sources :

Example 26 with NetworkOfferingVO

use of com.cloud.offerings.NetworkOfferingVO in project cloudstack by apache.

the class KubernetesClusterManagerImpl method start.

@Override
public boolean start() {
    final Map<Network.Service, Network.Provider> defaultKubernetesServiceNetworkOfferingProviders = new HashMap<Service, Network.Provider>();
    defaultKubernetesServiceNetworkOfferingProviders.put(Service.Dhcp, Network.Provider.VirtualRouter);
    defaultKubernetesServiceNetworkOfferingProviders.put(Service.Dns, Network.Provider.VirtualRouter);
    defaultKubernetesServiceNetworkOfferingProviders.put(Service.UserData, Network.Provider.VirtualRouter);
    defaultKubernetesServiceNetworkOfferingProviders.put(Service.Firewall, Network.Provider.VirtualRouter);
    defaultKubernetesServiceNetworkOfferingProviders.put(Service.Gateway, Network.Provider.VirtualRouter);
    defaultKubernetesServiceNetworkOfferingProviders.put(Service.Lb, Network.Provider.VirtualRouter);
    defaultKubernetesServiceNetworkOfferingProviders.put(Service.SourceNat, Network.Provider.VirtualRouter);
    defaultKubernetesServiceNetworkOfferingProviders.put(Service.StaticNat, Network.Provider.VirtualRouter);
    defaultKubernetesServiceNetworkOfferingProviders.put(Service.PortForwarding, Network.Provider.VirtualRouter);
    defaultKubernetesServiceNetworkOfferingProviders.put(Service.Vpn, Network.Provider.VirtualRouter);
    NetworkOfferingVO defaultKubernetesServiceNetworkOffering = new NetworkOfferingVO(DEFAULT_NETWORK_OFFERING_FOR_KUBERNETES_SERVICE_NAME, "Network Offering used for CloudStack Kubernetes service", Networks.TrafficType.Guest, false, false, null, null, true, NetworkOffering.Availability.Required, null, Network.GuestType.Isolated, true, true, false, false, false, false, false, false, false, true, true, false, false, true, false, false);
    defaultKubernetesServiceNetworkOffering.setState(NetworkOffering.State.Enabled);
    defaultKubernetesServiceNetworkOffering = networkOfferingDao.persistDefaultNetworkOffering(defaultKubernetesServiceNetworkOffering);
    for (Service service : defaultKubernetesServiceNetworkOfferingProviders.keySet()) {
        NetworkOfferingServiceMapVO offService = new NetworkOfferingServiceMapVO(defaultKubernetesServiceNetworkOffering.getId(), service, defaultKubernetesServiceNetworkOfferingProviders.get(service));
        networkOfferingServiceMapDao.persist(offService);
        LOGGER.trace("Added service for the network offering: " + offService);
    }
    _gcExecutor.scheduleWithFixedDelay(new KubernetesClusterGarbageCollector(), 300, 300, TimeUnit.SECONDS);
    _stateScanner.scheduleWithFixedDelay(new KubernetesClusterStatusScanner(), 300, 30, TimeUnit.SECONDS);
    return true;
}
Also used : NetworkOfferingServiceMapVO(com.cloud.offerings.NetworkOfferingServiceMapVO) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) Network(com.cloud.network.Network) PhysicalNetwork(com.cloud.network.PhysicalNetwork) AccountService(com.cloud.user.AccountService) NetworkOrchestrationService(org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService) Service(com.cloud.network.Network.Service) NetworkService(com.cloud.network.NetworkService) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) AnnotationService(org.apache.cloudstack.annotation.AnnotationService) NetworkOfferingVO(com.cloud.offerings.NetworkOfferingVO)

Example 27 with NetworkOfferingVO

use of com.cloud.offerings.NetworkOfferingVO in project cloudstack by apache.

the class ConfigurationManagerImpl method listNetworkOfferings.

@Override
public List<? extends NetworkOffering> listNetworkOfferings(final TrafficType trafficType, final boolean systemOnly) {
    final Filter searchFilter = new Filter(NetworkOfferingVO.class, "created", false, null, null);
    final SearchCriteria<NetworkOfferingVO> sc = _networkOfferingDao.createSearchCriteria();
    if (trafficType != null) {
        sc.addAnd("trafficType", SearchCriteria.Op.EQ, trafficType);
    }
    sc.addAnd("systemOnly", SearchCriteria.Op.EQ, systemOnly);
    return _networkOfferingDao.search(sc, searchFilter);
}
Also used : Filter(com.cloud.utils.db.Filter) NetworkOfferingVO(com.cloud.offerings.NetworkOfferingVO)

Example 28 with NetworkOfferingVO

use of com.cloud.offerings.NetworkOfferingVO in project cloudstack by apache.

the class ApiResponseHelper method createUsageResponse.

@Override
public UsageRecordResponse createUsageResponse(Usage usageRecord, Map<String, Set<ResourceTagResponse>> resourceTagResponseMap, boolean oldFormat) {
    UsageRecordResponse usageRecResponse = new UsageRecordResponse();
    Account account = ApiDBUtils.findAccountById(usageRecord.getAccountId());
    if (account.getType() == Account.ACCOUNT_TYPE_PROJECT) {
        // find the project
        Project project = ApiDBUtils.findProjectByProjectAccountIdIncludingRemoved(account.getId());
        if (project != null) {
            usageRecResponse.setProjectId(project.getUuid());
            usageRecResponse.setProjectName(project.getName());
        }
    } else {
        usageRecResponse.setAccountId(account.getUuid());
        usageRecResponse.setAccountName(account.getAccountName());
    }
    Domain domain = ApiDBUtils.findDomainById(usageRecord.getDomainId());
    if (domain != null) {
        usageRecResponse.setDomainId(domain.getUuid());
        usageRecResponse.setDomainName(domain.getName());
    }
    if (usageRecord.getZoneId() != null) {
        DataCenter zone = ApiDBUtils.findZoneById(usageRecord.getZoneId());
        if (zone != null) {
            usageRecResponse.setZoneId(zone.getUuid());
        }
    }
    usageRecResponse.setDescription(usageRecord.getDescription());
    usageRecResponse.setUsage(usageRecord.getUsageDisplay());
    usageRecResponse.setUsageType(usageRecord.getUsageType());
    VMInstanceVO vmInstance = null;
    if (usageRecord.getVmInstanceId() != null) {
        vmInstance = _entityMgr.findByIdIncludingRemoved(VMInstanceVO.class, usageRecord.getVmInstanceId());
        if (vmInstance != null) {
            usageRecResponse.setVirtualMachineId(vmInstance.getUuid());
        }
    }
    usageRecResponse.setResourceName(usageRecord.getVmName());
    VMTemplateVO template = null;
    if (usageRecord.getTemplateId() != null) {
        template = ApiDBUtils.findTemplateById(usageRecord.getTemplateId());
        if (template != null) {
            usageRecResponse.setTemplateId(template.getUuid());
        }
    }
    ResourceTag.ResourceObjectType resourceType = null;
    Long resourceId = null;
    if (usageRecord.getUsageType() == UsageTypes.RUNNING_VM || usageRecord.getUsageType() == UsageTypes.ALLOCATED_VM) {
        ServiceOfferingVO svcOffering = _entityMgr.findByIdIncludingRemoved(ServiceOfferingVO.class, usageRecord.getOfferingId().toString());
        // Service Offering Id
        if (svcOffering != null) {
            usageRecResponse.setOfferingId(svcOffering.getUuid());
        }
        // VM Instance ID
        VMInstanceVO vm = null;
        if (usageRecord.getUsageId() != null && usageRecord.getUsageId().equals(usageRecord.getVmInstanceId())) {
            vm = vmInstance;
        } else {
            vm = _entityMgr.findByIdIncludingRemoved(VMInstanceVO.class, usageRecord.getUsageId().toString());
        }
        if (vm != null) {
            resourceType = ResourceTag.ResourceObjectType.UserVm;
            usageRecResponse.setUsageId(vm.getUuid());
            resourceId = vm.getId();
            final GuestOS guestOS = _guestOsDao.findById(vm.getGuestOSId());
            if (guestOS != null) {
                usageRecResponse.setOsTypeId(guestOS.getUuid());
                usageRecResponse.setOsDisplayName(guestOS.getDisplayName());
                final GuestOsCategory guestOsCategory = _guestOsCategoryDao.findById(guestOS.getCategoryId());
                if (guestOsCategory != null) {
                    usageRecResponse.setOsCategoryId(guestOsCategory.getUuid());
                    usageRecResponse.setOsCategoryName(guestOsCategory.getName());
                }
            }
        }
        // Hypervisor Type
        usageRecResponse.setType(usageRecord.getType());
        // Dynamic compute offerings details
        if (usageRecord.getCpuCores() != null) {
            usageRecResponse.setCpuNumber(usageRecord.getCpuCores());
        } else if (svcOffering.getCpu() != null) {
            usageRecResponse.setCpuNumber(svcOffering.getCpu().longValue());
        }
        if (usageRecord.getCpuSpeed() != null) {
            usageRecResponse.setCpuSpeed(usageRecord.getCpuSpeed());
        } else if (svcOffering.getSpeed() != null) {
            usageRecResponse.setCpuSpeed(svcOffering.getSpeed().longValue());
        }
        if (usageRecord.getMemory() != null) {
            usageRecResponse.setMemory(usageRecord.getMemory());
        } else if (svcOffering.getRamSize() != null) {
            usageRecResponse.setMemory(svcOffering.getRamSize().longValue());
        }
        if (!oldFormat) {
            final StringBuilder builder = new StringBuilder();
            if (usageRecord.getUsageType() == UsageTypes.RUNNING_VM) {
                builder.append("Running VM usage ");
            } else if (usageRecord.getUsageType() == UsageTypes.ALLOCATED_VM) {
                builder.append("Allocated VM usage ");
            }
            if (vm != null) {
                builder.append("for ").append(vm.getHostName()).append(" (").append(vm.getInstanceName()).append(") (").append(vm.getUuid()).append(") ");
            }
            if (svcOffering != null) {
                builder.append("using service offering ").append(svcOffering.getName()).append(" (").append(svcOffering.getUuid()).append(") ");
            }
            if (template != null) {
                builder.append("and template ").append(template.getName()).append(" (").append(template.getUuid()).append(")");
            }
            usageRecResponse.setDescription(builder.toString());
        }
    } else if (usageRecord.getUsageType() == UsageTypes.IP_ADDRESS) {
        // IP Address ID
        IPAddressVO ip = _entityMgr.findByIdIncludingRemoved(IPAddressVO.class, usageRecord.getUsageId().toString());
        if (ip != null) {
            Long networkId = ip.getAssociatedWithNetworkId();
            if (networkId == null) {
                networkId = ip.getSourceNetworkId();
            }
            resourceType = ResourceObjectType.PublicIpAddress;
            resourceId = ip.getId();
            usageRecResponse.setUsageId(ip.getUuid());
        }
        // isSourceNAT
        usageRecResponse.setSourceNat((usageRecord.getType().equals("SourceNat")) ? true : false);
        // isSystem
        usageRecResponse.setSystem((usageRecord.getSize() == 1) ? true : false);
    } else if (usageRecord.getUsageType() == UsageTypes.NETWORK_BYTES_SENT || usageRecord.getUsageType() == UsageTypes.NETWORK_BYTES_RECEIVED) {
        // Device Type
        resourceType = ResourceObjectType.UserVm;
        usageRecResponse.setType(usageRecord.getType());
        VMInstanceVO vm = null;
        HostVO host = null;
        if (usageRecord.getType().equals("DomainRouter") || usageRecord.getType().equals("UserVm")) {
            // Domain Router Id
            vm = _entityMgr.findByIdIncludingRemoved(VMInstanceVO.class, usageRecord.getUsageId().toString());
            if (vm != null) {
                resourceId = vm.getId();
                usageRecResponse.setUsageId(vm.getUuid());
            }
        } else {
            // External Device Host Id
            host = _entityMgr.findByIdIncludingRemoved(HostVO.class, usageRecord.getUsageId().toString());
            if (host != null) {
                usageRecResponse.setUsageId(host.getUuid());
            }
        }
        // Network ID
        NetworkVO network = null;
        if ((usageRecord.getNetworkId() != null) && (usageRecord.getNetworkId() != 0)) {
            network = _entityMgr.findByIdIncludingRemoved(NetworkVO.class, usageRecord.getNetworkId().toString());
            if (network != null) {
                resourceType = ResourceObjectType.Network;
                if (network.getTrafficType() == TrafficType.Public) {
                    VirtualRouter router = ApiDBUtils.findDomainRouterById(usageRecord.getUsageId());
                    Vpc vpc = ApiDBUtils.findVpcByIdIncludingRemoved(router.getVpcId());
                    usageRecResponse.setVpcId(vpc.getUuid());
                    resourceId = vpc.getId();
                } else {
                    usageRecResponse.setNetworkId(network.getUuid());
                    resourceId = network.getId();
                }
                usageRecResponse.setResourceName(network.getName());
            }
        }
        if (!oldFormat) {
            final StringBuilder builder = new StringBuilder();
            if (usageRecord.getUsageType() == UsageTypes.NETWORK_BYTES_SENT) {
                builder.append("Bytes sent by network ");
            } else if (usageRecord.getUsageType() == UsageTypes.NETWORK_BYTES_RECEIVED) {
                builder.append("Bytes received by network ");
            }
            if (network != null) {
                if (network.getName() != null) {
                    builder.append(network.getName());
                }
                if (network.getUuid() != null) {
                    builder.append(" (").append(network.getUuid()).append(") ");
                }
                builder.append(" " + toHumanReadableSize(usageRecord.getRawUsage().longValue()) + " ");
            }
            if (vm != null) {
                builder.append("using router ").append(vm.getInstanceName()).append(" (").append(vm.getUuid()).append(")");
            } else if (host != null) {
                builder.append("using host ").append(host.getName()).append(" (").append(host.getUuid()).append(")");
            }
            usageRecResponse.setDescription(builder.toString());
        }
    } else if (usageRecord.getUsageType() == UsageTypes.VM_DISK_IO_READ || usageRecord.getUsageType() == UsageTypes.VM_DISK_IO_WRITE || usageRecord.getUsageType() == UsageTypes.VM_DISK_BYTES_READ || usageRecord.getUsageType() == UsageTypes.VM_DISK_BYTES_WRITE) {
        // Device Type
        usageRecResponse.setType(usageRecord.getType());
        resourceType = ResourceObjectType.Volume;
        // Volume ID
        VolumeVO volume = _entityMgr.findByIdIncludingRemoved(VolumeVO.class, usageRecord.getUsageId().toString());
        if (volume != null) {
            usageRecResponse.setUsageId(volume.getUuid());
            resourceId = volume.getId();
        }
        if (!oldFormat) {
            final StringBuilder builder = new StringBuilder();
            if (usageRecord.getUsageType() == UsageTypes.VM_DISK_IO_READ) {
                builder.append("Disk I/O read requests");
            } else if (usageRecord.getUsageType() == UsageTypes.VM_DISK_IO_WRITE) {
                builder.append("Disk I/O write requests");
            } else if (usageRecord.getUsageType() == UsageTypes.VM_DISK_BYTES_READ) {
                builder.append("Disk I/O read bytes");
            } else if (usageRecord.getUsageType() == UsageTypes.VM_DISK_BYTES_WRITE) {
                builder.append("Disk I/O write bytes");
            }
            if (vmInstance != null) {
                builder.append(" for VM ").append(vmInstance.getHostName()).append(" (").append(vmInstance.getUuid()).append(")");
            }
            if (volume != null) {
                builder.append(" and volume ").append(volume.getName()).append(" (").append(volume.getUuid()).append(")");
            }
            if (usageRecord.getRawUsage() != null) {
                builder.append(" " + toHumanReadableSize(usageRecord.getRawUsage().longValue()));
            }
            usageRecResponse.setDescription(builder.toString());
        }
    } else if (usageRecord.getUsageType() == UsageTypes.VOLUME) {
        // Volume ID
        VolumeVO volume = _entityMgr.findByIdIncludingRemoved(VolumeVO.class, usageRecord.getUsageId().toString());
        resourceType = ResourceObjectType.Volume;
        if (volume != null) {
            usageRecResponse.setUsageId(volume.getUuid());
            resourceId = volume.getId();
        }
        // Volume Size
        usageRecResponse.setSize(usageRecord.getSize());
        // Disk Offering Id
        DiskOfferingVO diskOff = null;
        if (usageRecord.getOfferingId() != null) {
            diskOff = _entityMgr.findByIdIncludingRemoved(DiskOfferingVO.class, usageRecord.getOfferingId().toString());
            usageRecResponse.setOfferingId(diskOff.getUuid());
        }
        if (!oldFormat) {
            final StringBuilder builder = new StringBuilder();
            builder.append("Volume usage ");
            if (volume != null) {
                builder.append("for ").append(volume.getName()).append(" (").append(volume.getUuid()).append(")");
            }
            if (diskOff != null) {
                builder.append(" with disk offering ").append(diskOff.getName()).append(" (").append(diskOff.getUuid()).append(")");
            }
            if (template != null) {
                builder.append(" and template ").append(template.getName()).append(" (").append(template.getUuid()).append(")");
            }
            if (usageRecord.getSize() != null) {
                builder.append(" and size " + toHumanReadableSize(usageRecord.getSize()));
            }
            usageRecResponse.setDescription(builder.toString());
        }
    } else if (usageRecord.getUsageType() == UsageTypes.TEMPLATE || usageRecord.getUsageType() == UsageTypes.ISO) {
        // Template/ISO ID
        VMTemplateVO tmpl = _entityMgr.findByIdIncludingRemoved(VMTemplateVO.class, usageRecord.getUsageId().toString());
        if (tmpl != null) {
            usageRecResponse.setUsageId(tmpl.getUuid());
            resourceId = tmpl.getId();
        }
        // Template/ISO Size
        usageRecResponse.setSize(usageRecord.getSize());
        if (usageRecord.getUsageType() == UsageTypes.ISO) {
            usageRecResponse.setVirtualSize(usageRecord.getSize());
            resourceType = ResourceObjectType.ISO;
        } else {
            usageRecResponse.setVirtualSize(usageRecord.getVirtualSize());
            resourceType = ResourceObjectType.Template;
        }
        if (!oldFormat) {
            final StringBuilder builder = new StringBuilder();
            if (usageRecord.getUsageType() == UsageTypes.TEMPLATE) {
                builder.append("Template usage");
            } else if (usageRecord.getUsageType() == UsageTypes.ISO) {
                builder.append("ISO usage");
            }
            if (tmpl != null) {
                builder.append(" for ").append(tmpl.getName()).append(" (").append(tmpl.getUuid()).append(") ").append("with size ").append(toHumanReadableSize(usageRecord.getSize())).append(" and virtual size ").append(toHumanReadableSize(usageRecord.getVirtualSize()));
            }
            usageRecResponse.setDescription(builder.toString());
        }
    } else if (usageRecord.getUsageType() == UsageTypes.SNAPSHOT) {
        // Snapshot ID
        SnapshotVO snap = _entityMgr.findByIdIncludingRemoved(SnapshotVO.class, usageRecord.getUsageId().toString());
        resourceType = ResourceObjectType.Snapshot;
        if (snap != null) {
            usageRecResponse.setUsageId(snap.getUuid());
            resourceId = snap.getId();
        }
        // Snapshot Size
        usageRecResponse.setSize(usageRecord.getSize());
        if (!oldFormat) {
            final StringBuilder builder = new StringBuilder();
            builder.append("Snapshot usage ");
            if (snap != null) {
                builder.append("for ").append(snap.getName()).append(" (").append(snap.getUuid()).append(") ").append("with size ").append(toHumanReadableSize(usageRecord.getSize()));
            }
            usageRecResponse.setDescription(builder.toString());
        }
    } else if (usageRecord.getUsageType() == UsageTypes.LOAD_BALANCER_POLICY) {
        // Load Balancer Policy ID
        LoadBalancerVO lb = _entityMgr.findByIdIncludingRemoved(LoadBalancerVO.class, usageRecord.getUsageId().toString());
        resourceType = ResourceObjectType.LoadBalancer;
        if (lb != null) {
            usageRecResponse.setUsageId(lb.getUuid());
            resourceId = lb.getId();
        }
        if (!oldFormat) {
            final StringBuilder builder = new StringBuilder();
            builder.append("Loadbalancer policy usage ");
            if (lb != null) {
                builder.append(lb.getName()).append(" (").append(lb.getUuid()).append(")");
            }
            usageRecResponse.setDescription(builder.toString());
        }
    } else if (usageRecord.getUsageType() == UsageTypes.PORT_FORWARDING_RULE) {
        // Port Forwarding Rule ID
        PortForwardingRuleVO pf = _entityMgr.findByIdIncludingRemoved(PortForwardingRuleVO.class, usageRecord.getUsageId().toString());
        resourceType = ResourceObjectType.PortForwardingRule;
        if (pf != null) {
            usageRecResponse.setUsageId(pf.getUuid());
            resourceId = pf.getId();
        }
        if (!oldFormat) {
            final StringBuilder builder = new StringBuilder();
            builder.append("Port forwarding rule usage");
            if (pf != null) {
                builder.append(" (").append(pf.getUuid()).append(")");
            }
            usageRecResponse.setDescription(builder.toString());
        }
    } else if (usageRecord.getUsageType() == UsageTypes.NETWORK_OFFERING) {
        // Network Offering Id
        NetworkOfferingVO netOff = _entityMgr.findByIdIncludingRemoved(NetworkOfferingVO.class, usageRecord.getOfferingId().toString());
        usageRecResponse.setOfferingId(netOff.getUuid());
        // is Default
        usageRecResponse.setDefault(usageRecord.getUsageId() == 1);
        if (!oldFormat) {
            final StringBuilder builder = new StringBuilder();
            builder.append("Network offering ");
            if (netOff != null) {
                builder.append(netOff.getName()).append(" (").append(netOff.getUuid()).append(") usage ");
            }
            if (vmInstance != null) {
                builder.append("for VM ").append(vmInstance.getHostName()).append(" (").append(vmInstance.getUuid()).append(") ");
            }
            usageRecResponse.setDescription(builder.toString());
        }
    } else if (usageRecord.getUsageType() == UsageTypes.VPN_USERS) {
        // VPN User ID
        VpnUserVO vpnUser = _entityMgr.findByIdIncludingRemoved(VpnUserVO.class, usageRecord.getUsageId().toString());
        if (vpnUser != null) {
            usageRecResponse.setUsageId(vpnUser.getUuid());
        }
        if (!oldFormat) {
            final StringBuilder builder = new StringBuilder();
            builder.append("VPN usage ");
            if (vpnUser != null) {
                builder.append("for user ").append(vpnUser.getUsername()).append(" (").append(vpnUser.getUuid()).append(")");
            }
            usageRecResponse.setDescription(builder.toString());
        }
    } else if (usageRecord.getUsageType() == UsageTypes.SECURITY_GROUP) {
        // Security Group Id
        SecurityGroupVO sg = _entityMgr.findByIdIncludingRemoved(SecurityGroupVO.class, usageRecord.getUsageId().toString());
        resourceType = ResourceObjectType.SecurityGroup;
        if (sg != null) {
            resourceId = sg.getId();
            usageRecResponse.setUsageId(sg.getUuid());
        }
        if (!oldFormat) {
            final StringBuilder builder = new StringBuilder();
            builder.append("Security group");
            if (sg != null) {
                builder.append(" ").append(sg.getName()).append(" (").append(sg.getUuid()).append(") usage");
            }
            if (vmInstance != null) {
                builder.append(" for VM ").append(vmInstance.getHostName()).append(" (").append(vmInstance.getUuid()).append(")");
            }
            usageRecResponse.setDescription(builder.toString());
        }
    } else if (usageRecord.getUsageType() == UsageTypes.BACKUP) {
        resourceType = ResourceObjectType.Backup;
        final StringBuilder builder = new StringBuilder();
        builder.append("Backup usage of size ").append(usageRecord.getUsageDisplay());
        if (vmInstance != null) {
            resourceId = vmInstance.getId();
            usageRecResponse.setResourceName(vmInstance.getInstanceName());
            usageRecResponse.setUsageId(vmInstance.getUuid());
            builder.append(" for VM ").append(vmInstance.getHostName()).append(" (").append(vmInstance.getUuid()).append(")");
            final BackupOffering backupOffering = backupOfferingDao.findByIdIncludingRemoved(usageRecord.getOfferingId());
            if (backupOffering != null) {
                builder.append(" and backup offering ").append(backupOffering.getName()).append(" (").append(backupOffering.getUuid()).append(", user ad-hoc/scheduled backup allowed: ").append(backupOffering.isUserDrivenBackupAllowed()).append(")");
            }
        }
        usageRecResponse.setDescription(builder.toString());
    } else if (usageRecord.getUsageType() == UsageTypes.VM_SNAPSHOT) {
        resourceType = ResourceObjectType.VMSnapshot;
        VMSnapshotVO vmSnapshotVO = null;
        if (usageRecord.getUsageId() != null) {
            vmSnapshotVO = vmSnapshotDao.findByIdIncludingRemoved(usageRecord.getUsageId());
            if (vmSnapshotVO != null) {
                resourceId = vmSnapshotVO.getId();
                usageRecResponse.setResourceName(vmSnapshotVO.getDisplayName());
                usageRecResponse.setUsageId(vmSnapshotVO.getUuid());
            }
        }
        usageRecResponse.setSize(usageRecord.getSize());
        if (usageRecord.getVirtualSize() != null) {
            usageRecResponse.setVirtualSize(usageRecord.getVirtualSize());
        }
        if (usageRecord.getOfferingId() != null) {
            usageRecResponse.setOfferingId(usageRecord.getOfferingId().toString());
        }
        if (!oldFormat) {
            VolumeVO volume = null;
            if (vmSnapshotVO == null && usageRecord.getUsageId() != null) {
                volume = _entityMgr.findByIdIncludingRemoved(VolumeVO.class, usageRecord.getUsageId().toString());
            }
            DiskOfferingVO diskOff = null;
            if (usageRecord.getOfferingId() != null) {
                diskOff = _entityMgr.findByIdIncludingRemoved(DiskOfferingVO.class, usageRecord.getOfferingId());
            }
            final StringBuilder builder = new StringBuilder();
            builder.append("VMSnapshot usage");
            if (vmSnapshotVO != null) {
                builder.append(" Id: ").append(vmSnapshotVO.getUuid());
            }
            if (vmInstance != null) {
                builder.append(" for VM ").append(vmInstance.getHostName()).append(" (").append(vmInstance.getUuid()).append(")");
            }
            if (volume != null) {
                builder.append(" with volume ").append(volume.getName()).append(" (").append(volume.getUuid()).append(")");
            }
            if (diskOff != null) {
                builder.append(" using disk offering ").append(diskOff.getName()).append(" (").append(diskOff.getUuid()).append(")");
            }
            if (usageRecord.getSize() != null) {
                builder.append(" and size " + toHumanReadableSize(usageRecord.getSize()));
            }
            usageRecResponse.setDescription(builder.toString());
        }
    } else if (usageRecord.getUsageType() == UsageTypes.VOLUME_SECONDARY) {
        VolumeVO volume = _entityMgr.findByIdIncludingRemoved(VolumeVO.class, usageRecord.getUsageId().toString());
        if (!oldFormat) {
            final StringBuilder builder = new StringBuilder();
            builder.append("Volume on secondary storage usage");
            if (volume != null) {
                builder.append(" for ").append(volume.getName()).append(" (").append(volume.getUuid()).append(") ").append("with size ").append(toHumanReadableSize(usageRecord.getSize()));
            }
            usageRecResponse.setDescription(builder.toString());
        }
    } else if (usageRecord.getUsageType() == UsageTypes.VM_SNAPSHOT_ON_PRIMARY) {
        resourceType = ResourceObjectType.VMSnapshot;
        VMSnapshotVO vmSnapshotVO = null;
        if (usageRecord.getUsageId() != null) {
            vmSnapshotVO = vmSnapshotDao.findByIdIncludingRemoved(usageRecord.getUsageId());
            if (vmSnapshotVO != null) {
                resourceId = vmSnapshotVO.getId();
                usageRecResponse.setResourceName(vmSnapshotVO.getDisplayName());
                usageRecResponse.setUsageId(vmSnapshotVO.getUuid());
            }
        }
        usageRecResponse.setSize(usageRecord.getVirtualSize());
        if (!oldFormat) {
            final StringBuilder builder = new StringBuilder();
            builder.append("VMSnapshot on primary storage usage");
            if (vmSnapshotVO != null) {
                builder.append(" Id: ").append(vmSnapshotVO.getUuid());
            }
            if (vmInstance != null) {
                builder.append(" for VM ").append(vmInstance.getHostName()).append(" (").append(vmInstance.getUuid()).append(") ").append("with size ").append(toHumanReadableSize(usageRecord.getVirtualSize()));
            }
            usageRecResponse.setDescription(builder.toString());
        }
    }
    if (resourceTagResponseMap != null && resourceTagResponseMap.get(resourceId + ":" + resourceType) != null) {
        usageRecResponse.setTags(resourceTagResponseMap.get(resourceId + ":" + resourceType));
    }
    if (usageRecord.getRawUsage() != null) {
        DecimalFormat decimalFormat = new DecimalFormat("###########.######");
        usageRecResponse.setRawUsage(decimalFormat.format(usageRecord.getRawUsage()));
    }
    if (usageRecord.getStartDate() != null) {
        usageRecResponse.setStartDate(getDateStringInternal(usageRecord.getStartDate()));
    }
    if (usageRecord.getEndDate() != null) {
        usageRecResponse.setEndDate(getDateStringInternal(usageRecord.getEndDate()));
    }
    return usageRecResponse;
}
Also used : UsageRecordResponse(org.apache.cloudstack.api.response.UsageRecordResponse) ProjectAccount(com.cloud.projects.ProjectAccount) UserAccount(com.cloud.user.UserAccount) Account(com.cloud.user.Account) GuestOsCategory(com.cloud.storage.GuestOsCategory) VpnUserVO(com.cloud.network.VpnUserVO) DecimalFormat(java.text.DecimalFormat) VMTemplateVO(com.cloud.storage.VMTemplateVO) Vpc(com.cloud.network.vpc.Vpc) LoadBalancerVO(com.cloud.network.dao.LoadBalancerVO) ServiceOfferingVO(com.cloud.service.ServiceOfferingVO) VolumeVO(com.cloud.storage.VolumeVO) DiskOfferingVO(com.cloud.storage.DiskOfferingVO) GuestOS(com.cloud.storage.GuestOS) BackupOffering(org.apache.cloudstack.backup.BackupOffering) PhysicalNetworkVO(com.cloud.network.dao.PhysicalNetworkVO) NetworkVO(com.cloud.network.dao.NetworkVO) PortForwardingRuleVO(com.cloud.network.rules.PortForwardingRuleVO) SecurityGroupVO(com.cloud.network.security.SecurityGroupVO) VMInstanceVO(com.cloud.vm.VMInstanceVO) ResourceObjectType(com.cloud.server.ResourceTag.ResourceObjectType) HostVO(com.cloud.host.HostVO) VirtualRouter(com.cloud.network.router.VirtualRouter) Project(com.cloud.projects.Project) VMSnapshotVO(com.cloud.vm.snapshot.VMSnapshotVO) DataCenter(com.cloud.dc.DataCenter) ResourceTag(com.cloud.server.ResourceTag) VMSnapshotVO(com.cloud.vm.snapshot.VMSnapshotVO) SnapshotVO(com.cloud.storage.SnapshotVO) NetworkOfferingVO(com.cloud.offerings.NetworkOfferingVO) IPAddressVO(com.cloud.network.dao.IPAddressVO) Domain(com.cloud.domain.Domain)

Example 29 with NetworkOfferingVO

use of com.cloud.offerings.NetworkOfferingVO in project cloudstack by apache.

the class ExternalFirewallDeviceManagerImpl method applyFirewallRules.

@Override
public boolean applyFirewallRules(Network network, List<? extends FirewallRule> rules) throws ResourceUnavailableException {
    // Find the external firewall in this zone
    long zoneId = network.getDataCenterId();
    DataCenterVO zone = _dcDao.findById(zoneId);
    ExternalFirewallDeviceVO fwDeviceVO = getExternalFirewallForNetwork(network);
    // During destroy, device reference may already been clean up, then we just return true
    if (fwDeviceVO == null) {
        return true;
    }
    HostVO externalFirewall = _hostDao.findById(fwDeviceVO.getHostId());
    assert (externalFirewall != null);
    if (network.getState() == Network.State.Allocated) {
        s_logger.debug("External firewall was asked to apply firewall rules for network with ID " + network.getId() + "; this network is not implemented. Skipping backend commands.");
        return true;
    }
    List<FirewallRuleTO> rulesTO = new ArrayList<FirewallRuleTO>();
    NetworkVO networkVO = _networkDao.findById(network.getId());
    NetworkOfferingVO offering = _networkOfferingDao.findById(networkVO.getNetworkOfferingId());
    Boolean defaultEgressPolicy = offering.isEgressDefaultPolicy();
    for (FirewallRule rule : rules) {
        if (rule.getSourceCidrList() == null && (rule.getPurpose() == Purpose.Firewall || rule.getPurpose() == Purpose.NetworkACL)) {
            _fwRulesDao.loadSourceCidrs((FirewallRuleVO) rule);
        }
        FirewallRuleTO ruleTO;
        if (rule.getPurpose() == Purpose.Firewall && rule.getTrafficType() == FirewallRule.TrafficType.Egress) {
            String guestVlanTag = BroadcastDomainType.getValue(network.getBroadcastUri());
            String guestCidr = network.getCidr();
            ruleTO = new FirewallRuleTO(rule, guestVlanTag, rule.getTrafficType(), guestCidr, defaultEgressPolicy, rule.getType());
        } else {
            IpAddress sourceIp = _networkModel.getIp(rule.getSourceIpAddressId());
            Vlan vlan = _vlanDao.findById(sourceIp.getVlanId());
            ruleTO = new FirewallRuleTO(rule, vlan.getVlanTag(), sourceIp.getAddress().addr());
        }
        rulesTO.add(ruleTO);
    }
    // Firewall rules configured for staticNAT/PF
    sendFirewallRules(rulesTO, zone, externalFirewall.getId());
    return true;
}
Also used : DataCenterVO(com.cloud.dc.DataCenterVO) ExternalFirewallDeviceVO(com.cloud.network.dao.ExternalFirewallDeviceVO) PhysicalNetworkVO(com.cloud.network.dao.PhysicalNetworkVO) NetworkVO(com.cloud.network.dao.NetworkVO) ArrayList(java.util.ArrayList) Vlan(com.cloud.dc.Vlan) FirewallRuleTO(com.cloud.agent.api.to.FirewallRuleTO) HostVO(com.cloud.host.HostVO) NetworkOfferingVO(com.cloud.offerings.NetworkOfferingVO) FirewallRule(com.cloud.network.rules.FirewallRule)

Example 30 with NetworkOfferingVO

use of com.cloud.offerings.NetworkOfferingVO in project cloudstack by apache.

the class NetworkModelImpl method configure.

@Override
public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
    _configs = _configDao.getConfiguration("Network", params);
    _allowSubdomainNetworkAccess = Boolean.valueOf(_configs.get(Config.SubDomainNetworkAccess.key()));
    _executeInSequenceNtwkElmtCmd = Boolean.valueOf(_configs.get(Config.ExecuteInSequenceNetworkElementCommands.key()));
    NetworkOfferingVO publicNetworkOffering = new NetworkOfferingVO(NetworkOffering.SystemPublicNetwork, TrafficType.Public, true);
    publicNetworkOffering = _networkOfferingDao.persistDefaultNetworkOffering(publicNetworkOffering);
    _systemNetworks.put(NetworkOffering.SystemPublicNetwork, publicNetworkOffering);
    NetworkOfferingVO managementNetworkOffering = new NetworkOfferingVO(NetworkOffering.SystemManagementNetwork, TrafficType.Management, false);
    managementNetworkOffering = _networkOfferingDao.persistDefaultNetworkOffering(managementNetworkOffering);
    _systemNetworks.put(NetworkOffering.SystemManagementNetwork, managementNetworkOffering);
    NetworkOfferingVO controlNetworkOffering = new NetworkOfferingVO(NetworkOffering.SystemControlNetwork, TrafficType.Control, false);
    controlNetworkOffering = _networkOfferingDao.persistDefaultNetworkOffering(controlNetworkOffering);
    _systemNetworks.put(NetworkOffering.SystemControlNetwork, controlNetworkOffering);
    NetworkOfferingVO storageNetworkOffering = new NetworkOfferingVO(NetworkOffering.SystemStorageNetwork, TrafficType.Storage, true);
    storageNetworkOffering = _networkOfferingDao.persistDefaultNetworkOffering(storageNetworkOffering);
    _systemNetworks.put(NetworkOffering.SystemStorageNetwork, storageNetworkOffering);
    NetworkOfferingVO privateGatewayNetworkOffering = new NetworkOfferingVO(NetworkOffering.SystemPrivateGatewayNetworkOffering, GuestType.Isolated);
    privateGatewayNetworkOffering = _networkOfferingDao.persistDefaultNetworkOffering(privateGatewayNetworkOffering);
    _systemNetworks.put(NetworkOffering.SystemPrivateGatewayNetworkOffering, privateGatewayNetworkOffering);
    s_privateOfferingId = privateGatewayNetworkOffering.getId();
    IpAddressSearch = _ipAddressDao.createSearchBuilder();
    IpAddressSearch.and("accountId", IpAddressSearch.entity().getAllocatedToAccountId(), Op.EQ);
    IpAddressSearch.and("dataCenterId", IpAddressSearch.entity().getDataCenterId(), Op.EQ);
    IpAddressSearch.and("vpcId", IpAddressSearch.entity().getVpcId(), Op.EQ);
    IpAddressSearch.and("associatedWithNetworkId", IpAddressSearch.entity().getAssociatedWithNetworkId(), Op.EQ);
    SearchBuilder<VlanVO> virtualNetworkVlanSB = _vlanDao.createSearchBuilder();
    virtualNetworkVlanSB.and("vlanType", virtualNetworkVlanSB.entity().getVlanType(), Op.EQ);
    IpAddressSearch.join("virtualNetworkVlanSB", virtualNetworkVlanSB, IpAddressSearch.entity().getVlanId(), virtualNetworkVlanSB.entity().getId(), JoinBuilder.JoinType.INNER);
    IpAddressSearch.done();
    NicForTrafficTypeSearch = _nicDao.createSearchBuilder();
    SearchBuilder<NetworkVO> networkSearch = _networksDao.createSearchBuilder();
    NicForTrafficTypeSearch.join("network", networkSearch, networkSearch.entity().getId(), NicForTrafficTypeSearch.entity().getNetworkId(), JoinType.INNER);
    NicForTrafficTypeSearch.and("instance", NicForTrafficTypeSearch.entity().getInstanceId(), Op.EQ);
    networkSearch.and("traffictype", networkSearch.entity().getTrafficType(), Op.EQ);
    NicForTrafficTypeSearch.done();
    s_logger.info("Network Model is configured.");
    return true;
}
Also used : PhysicalNetworkVO(com.cloud.network.dao.PhysicalNetworkVO) NetworkVO(com.cloud.network.dao.NetworkVO) NetworkOfferingVO(com.cloud.offerings.NetworkOfferingVO) VlanVO(com.cloud.dc.VlanVO)

Aggregations

NetworkOfferingVO (com.cloud.offerings.NetworkOfferingVO)128 NetworkVO (com.cloud.network.dao.NetworkVO)45 ArrayList (java.util.ArrayList)34 PhysicalNetworkVO (com.cloud.network.dao.PhysicalNetworkVO)32 Network (com.cloud.network.Network)27 DB (com.cloud.utils.db.DB)27 Test (org.junit.Test)27 InvalidParameterValueException (com.cloud.exception.InvalidParameterValueException)26 Service (com.cloud.network.Network.Service)26 Account (com.cloud.user.Account)24 CloudRuntimeException (com.cloud.utils.exception.CloudRuntimeException)23 Provider (com.cloud.network.Network.Provider)22 PhysicalNetwork (com.cloud.network.PhysicalNetwork)21 HashSet (java.util.HashSet)21 TransactionStatus (com.cloud.utils.db.TransactionStatus)20 HashMap (java.util.HashMap)20 Set (java.util.Set)20 DataCenterVO (com.cloud.dc.DataCenterVO)19 NetworkOffering (com.cloud.offering.NetworkOffering)19 ResourceUnavailableException (com.cloud.exception.ResourceUnavailableException)18