Search in sources :

Example 6 with NamedThreadFactory

use of com.cloud.utils.concurrency.NamedThreadFactory in project cloudstack by apache.

the class StatsCollector method init.

private void init(Map<String, String> configs) {
    _executor = Executors.newScheduledThreadPool(6, new NamedThreadFactory("StatsCollector"));
    hostOutOfBandManagementStatsInterval = OutOfBandManagementService.SyncThreadInterval.value();
    hostStatsInterval = NumbersUtil.parseLong(configs.get("host.stats.interval"), 60000L);
    hostAndVmStatsInterval = NumbersUtil.parseLong(configs.get("vm.stats.interval"), 60000L);
    storageStatsInterval = NumbersUtil.parseLong(configs.get("storage.stats.interval"), 60000L);
    volumeStatsInterval = NumbersUtil.parseLong(configs.get("volume.stats.interval"), -1L);
    autoScaleStatsInterval = NumbersUtil.parseLong(configs.get("autoscale.stats.interval"), 60000L);
    vmDiskStatsInterval = NumbersUtil.parseInt(configs.get("vm.disk.stats.interval"), 0);
    /* URI to send statistics to. Currently only Graphite is supported */
    String externalStatsUri = configs.get("stats.output.uri");
    if (externalStatsUri != null && !externalStatsUri.equals("")) {
        try {
            URI uri = new URI(externalStatsUri);
            String scheme = uri.getScheme();
            try {
                externalStatsType = ExternalStatsProtocol.valueOf(scheme.toUpperCase());
            } catch (IllegalArgumentException e) {
                s_logger.info(scheme + " is not a valid protocol for external statistics. No statistics will be send.");
            }
            if (!StringUtils.isEmpty(uri.getHost())) {
                externalStatsHost = uri.getHost();
            }
            externalStatsPort = uri.getPort();
            if (!StringUtils.isEmpty(uri.getPath())) {
                externalStatsPrefix = uri.getPath().substring(1);
            }
            /* Append a dot (.) to the prefix if it is set */
            if (!StringUtils.isEmpty(externalStatsPrefix)) {
                externalStatsPrefix += ".";
            } else {
                externalStatsPrefix = "";
            }
            externalStatsEnabled = true;
        } catch (URISyntaxException e) {
            s_logger.debug("Failed to parse external statistics URI: " + e.getMessage());
        }
    }
    if (hostStatsInterval > 0) {
        _executor.scheduleWithFixedDelay(new HostCollector(), 15000L, hostStatsInterval, TimeUnit.MILLISECONDS);
    }
    if (hostOutOfBandManagementStatsInterval > 0) {
        _executor.scheduleWithFixedDelay(new HostOutOfBandManagementStatsCollector(), 15000L, hostOutOfBandManagementStatsInterval, TimeUnit.MILLISECONDS);
    }
    if (hostAndVmStatsInterval > 0) {
        _executor.scheduleWithFixedDelay(new VmStatsCollector(), 15000L, hostAndVmStatsInterval, TimeUnit.MILLISECONDS);
    }
    if (storageStatsInterval > 0) {
        _executor.scheduleWithFixedDelay(new StorageCollector(), 15000L, storageStatsInterval, TimeUnit.MILLISECONDS);
    }
    if (autoScaleStatsInterval > 0) {
        _executor.scheduleWithFixedDelay(new AutoScaleMonitor(), 15000L, autoScaleStatsInterval, TimeUnit.MILLISECONDS);
    }
    if (vmDiskStatsInterval > 0) {
        if (vmDiskStatsInterval < 300)
            vmDiskStatsInterval = 300;
        _executor.scheduleAtFixedRate(new VmDiskStatsTask(), vmDiskStatsInterval, vmDiskStatsInterval, TimeUnit.SECONDS);
    }
    //Schedule disk stats update task
    _diskStatsUpdateExecutor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("DiskStatsUpdater"));
    String aggregationRange = configs.get("usage.stats.job.aggregation.range");
    _usageAggregationRange = NumbersUtil.parseInt(aggregationRange, 1440);
    _usageTimeZone = configs.get("usage.aggregation.timezone");
    if (_usageTimeZone == null) {
        _usageTimeZone = "GMT";
    }
    TimeZone usageTimezone = TimeZone.getTimeZone(_usageTimeZone);
    Calendar cal = Calendar.getInstance(usageTimezone);
    cal.setTime(new Date());
    long endDate = 0;
    int HOURLY_TIME = 60;
    final int DAILY_TIME = 60 * 24;
    if (_usageAggregationRange == DAILY_TIME) {
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        cal.roll(Calendar.DAY_OF_YEAR, true);
        cal.add(Calendar.MILLISECOND, -1);
        endDate = cal.getTime().getTime();
        _dailyOrHourly = true;
    } else if (_usageAggregationRange == HOURLY_TIME) {
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        cal.roll(Calendar.HOUR_OF_DAY, true);
        cal.add(Calendar.MILLISECOND, -1);
        endDate = cal.getTime().getTime();
        _dailyOrHourly = true;
    } else {
        endDate = cal.getTime().getTime();
        _dailyOrHourly = false;
    }
    if (_usageAggregationRange < UsageUtils.USAGE_AGGREGATION_RANGE_MIN) {
        s_logger.warn("Usage stats job aggregation range is to small, using the minimum value of " + UsageUtils.USAGE_AGGREGATION_RANGE_MIN);
        _usageAggregationRange = UsageUtils.USAGE_AGGREGATION_RANGE_MIN;
    }
    _diskStatsUpdateExecutor.scheduleAtFixedRate(new VmDiskStatsUpdaterTask(), (endDate - System.currentTimeMillis()), (_usageAggregationRange * 60 * 1000), TimeUnit.MILLISECONDS);
}
Also used : NamedThreadFactory(com.cloud.utils.concurrency.NamedThreadFactory) Calendar(java.util.Calendar) URISyntaxException(java.net.URISyntaxException) URI(java.net.URI) Date(java.util.Date) EndPoint(org.apache.cloudstack.engine.subsystem.api.storage.EndPoint) TimeZone(java.util.TimeZone)

Example 7 with NamedThreadFactory

use of com.cloud.utils.concurrency.NamedThreadFactory in project CloudStack-archive by CloudStack-extras.

the class MockAgentManagerImpl method configure.

@Override
public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
    try {
        random = SecureRandom.getInstance("SHA1PRNG");
        _executor = new ThreadPoolExecutor(1, 5, 1, TimeUnit.DAYS, new LinkedBlockingQueue<Runnable>(), new NamedThreadFactory("Simulator-Agent-Mgr"));
    //ComponentLocator locator = ComponentLocator.getCurrentLocator();
    //_simulatorMgr = (SimulatorManager) locator.getComponent(SimulatorManager.Name);
    } catch (NoSuchAlgorithmException e) {
        s_logger.debug("Failed to initialize random:" + e.toString());
        return false;
    }
    return true;
}
Also used : NamedThreadFactory(com.cloud.utils.concurrency.NamedThreadFactory) ThreadPoolExecutor(java.util.concurrent.ThreadPoolExecutor) NoSuchAlgorithmException(java.security.NoSuchAlgorithmException) LinkedBlockingQueue(java.util.concurrent.LinkedBlockingQueue)

Example 8 with NamedThreadFactory

use of com.cloud.utils.concurrency.NamedThreadFactory in project cloudstack by apache.

the class AgentManagerImpl method configure.

@Override
public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException {
    s_logger.info("Ping Timeout is " + PingTimeout.value());
    final int threads = DirectAgentLoadSize.value();
    _nodeId = ManagementServerNode.getManagementServerId();
    s_logger.info("Configuring AgentManagerImpl. management server node id(msid): " + _nodeId);
    final long lastPing = (System.currentTimeMillis() >> 10) - (long) (PingTimeout.value() * PingInterval.value());
    _hostDao.markHostsAsDisconnected(_nodeId, lastPing);
    registerForHostEvents(new BehindOnPingListener(), true, true, false);
    registerForHostEvents(new SetHostParamsListener(), true, true, false);
    _executor = new ThreadPoolExecutor(threads, threads, 60l, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new NamedThreadFactory("AgentTaskPool"));
    _connectExecutor = new ThreadPoolExecutor(100, 500, 60l, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new NamedThreadFactory("AgentConnectTaskPool"));
    // allow core threads to time out even when there are no items in the queue
    _connectExecutor.allowCoreThreadTimeOut(true);
    _connection = new NioServer("AgentManager", Port.value(), Workers.value() + 10, this);
    s_logger.info("Listening on " + Port.value() + " with " + Workers.value() + " workers");
    // executes all agent commands other than cron and ping
    _directAgentExecutor = new ScheduledThreadPoolExecutor(DirectAgentPoolSize.value(), new NamedThreadFactory("DirectAgent"));
    // executes cron and ping agent commands
    _cronJobExecutor = new ScheduledThreadPoolExecutor(DirectAgentPoolSize.value(), new NamedThreadFactory("DirectAgentCronJob"));
    s_logger.debug("Created DirectAgentAttache pool with size: " + DirectAgentPoolSize.value());
    // add 1 to always make the value > 0
    _directAgentThreadCap = Math.round(DirectAgentPoolSize.value() * DirectAgentThreadCap.value()) + 1;
    _monitorExecutor = new ScheduledThreadPoolExecutor(1, new NamedThreadFactory("AgentMonitor"));
    return true;
}
Also used : NamedThreadFactory(com.cloud.utils.concurrency.NamedThreadFactory) ScheduledThreadPoolExecutor(java.util.concurrent.ScheduledThreadPoolExecutor) NioServer(com.cloud.utils.nio.NioServer) ScheduledThreadPoolExecutor(java.util.concurrent.ScheduledThreadPoolExecutor) ThreadPoolExecutor(java.util.concurrent.ThreadPoolExecutor) LinkedBlockingQueue(java.util.concurrent.LinkedBlockingQueue)

Example 9 with NamedThreadFactory

use of com.cloud.utils.concurrency.NamedThreadFactory in project cloudstack by apache.

the class NetworkOrchestrator method configure.

@Override
@DB
public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException {
    // populate providers
    final Map<Network.Service, Set<Network.Provider>> defaultSharedNetworkOfferingProviders = new HashMap<Network.Service, Set<Network.Provider>>();
    final Set<Network.Provider> defaultProviders = new HashSet<Network.Provider>();
    defaultProviders.add(Network.Provider.VirtualRouter);
    defaultSharedNetworkOfferingProviders.put(Service.Dhcp, defaultProviders);
    defaultSharedNetworkOfferingProviders.put(Service.Dns, defaultProviders);
    defaultSharedNetworkOfferingProviders.put(Service.UserData, defaultProviders);
    final Map<Network.Service, Set<Network.Provider>> defaultIsolatedNetworkOfferingProviders = defaultSharedNetworkOfferingProviders;
    defaultIsolatedNetworkOfferingProviders.put(Service.Dhcp, defaultProviders);
    defaultIsolatedNetworkOfferingProviders.put(Service.Dns, defaultProviders);
    defaultIsolatedNetworkOfferingProviders.put(Service.UserData, defaultProviders);
    defaultIsolatedNetworkOfferingProviders.put(Service.Firewall, defaultProviders);
    defaultIsolatedNetworkOfferingProviders.put(Service.Gateway, defaultProviders);
    defaultIsolatedNetworkOfferingProviders.put(Service.Lb, defaultProviders);
    defaultIsolatedNetworkOfferingProviders.put(Service.StaticNat, defaultProviders);
    defaultIsolatedNetworkOfferingProviders.put(Service.PortForwarding, defaultProviders);
    defaultIsolatedNetworkOfferingProviders.put(Service.Vpn, defaultProviders);
    final Map<Network.Service, Set<Network.Provider>> defaultSharedSGEnabledNetworkOfferingProviders = new HashMap<Network.Service, Set<Network.Provider>>();
    defaultSharedSGEnabledNetworkOfferingProviders.put(Service.Dhcp, defaultProviders);
    defaultSharedSGEnabledNetworkOfferingProviders.put(Service.Dns, defaultProviders);
    defaultSharedSGEnabledNetworkOfferingProviders.put(Service.UserData, defaultProviders);
    final Set<Provider> sgProviders = new HashSet<Provider>();
    sgProviders.add(Provider.SecurityGroupProvider);
    defaultSharedSGEnabledNetworkOfferingProviders.put(Service.SecurityGroup, sgProviders);
    final Map<Network.Service, Set<Network.Provider>> defaultIsolatedSourceNatEnabledNetworkOfferingProviders = new HashMap<Network.Service, Set<Network.Provider>>();
    defaultProviders.clear();
    defaultProviders.add(Network.Provider.VirtualRouter);
    defaultIsolatedSourceNatEnabledNetworkOfferingProviders.put(Service.Dhcp, defaultProviders);
    defaultIsolatedSourceNatEnabledNetworkOfferingProviders.put(Service.Dns, defaultProviders);
    defaultIsolatedSourceNatEnabledNetworkOfferingProviders.put(Service.UserData, defaultProviders);
    defaultIsolatedSourceNatEnabledNetworkOfferingProviders.put(Service.Firewall, defaultProviders);
    defaultIsolatedSourceNatEnabledNetworkOfferingProviders.put(Service.Gateway, defaultProviders);
    defaultIsolatedSourceNatEnabledNetworkOfferingProviders.put(Service.Lb, defaultProviders);
    defaultIsolatedSourceNatEnabledNetworkOfferingProviders.put(Service.SourceNat, defaultProviders);
    defaultIsolatedSourceNatEnabledNetworkOfferingProviders.put(Service.StaticNat, defaultProviders);
    defaultIsolatedSourceNatEnabledNetworkOfferingProviders.put(Service.PortForwarding, defaultProviders);
    defaultIsolatedSourceNatEnabledNetworkOfferingProviders.put(Service.Vpn, defaultProviders);
    final Map<Network.Service, Set<Network.Provider>> defaultVPCOffProviders = new HashMap<Network.Service, Set<Network.Provider>>();
    defaultProviders.clear();
    defaultProviders.add(Network.Provider.VPCVirtualRouter);
    defaultVPCOffProviders.put(Service.Dhcp, defaultProviders);
    defaultVPCOffProviders.put(Service.Dns, defaultProviders);
    defaultVPCOffProviders.put(Service.UserData, defaultProviders);
    defaultVPCOffProviders.put(Service.NetworkACL, defaultProviders);
    defaultVPCOffProviders.put(Service.Gateway, defaultProviders);
    defaultVPCOffProviders.put(Service.Lb, defaultProviders);
    defaultVPCOffProviders.put(Service.SourceNat, defaultProviders);
    defaultVPCOffProviders.put(Service.StaticNat, defaultProviders);
    defaultVPCOffProviders.put(Service.PortForwarding, defaultProviders);
    defaultVPCOffProviders.put(Service.Vpn, defaultProviders);
    Transaction.execute(new TransactionCallbackNoReturn() {

        @Override
        public void doInTransactionWithoutResult(final TransactionStatus status) {
            NetworkOfferingVO offering = null;
            //#1 - quick cloud network offering
            if (_networkOfferingDao.findByUniqueName(NetworkOffering.QuickCloudNoServices) == null) {
                offering = _configMgr.createNetworkOffering(NetworkOffering.QuickCloudNoServices, "Offering for QuickCloud with no services", TrafficType.Guest, null, true, Availability.Optional, null, new HashMap<Network.Service, Set<Network.Provider>>(), true, Network.GuestType.Shared, false, null, true, null, true, false, null, false, null, true);
                offering.setState(NetworkOffering.State.Enabled);
                _networkOfferingDao.update(offering.getId(), offering);
            }
            //#2 - SG enabled network offering
            if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultSharedNetworkOfferingWithSGService) == null) {
                offering = _configMgr.createNetworkOffering(NetworkOffering.DefaultSharedNetworkOfferingWithSGService, "Offering for Shared Security group enabled networks", TrafficType.Guest, null, true, Availability.Optional, null, defaultSharedNetworkOfferingProviders, true, Network.GuestType.Shared, false, null, true, null, true, false, null, false, null, true);
                offering.setState(NetworkOffering.State.Enabled);
                _networkOfferingDao.update(offering.getId(), offering);
            }
            //#3 - shared network offering with no SG service
            if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultSharedNetworkOffering) == null) {
                offering = _configMgr.createNetworkOffering(NetworkOffering.DefaultSharedNetworkOffering, "Offering for Shared networks", TrafficType.Guest, null, true, Availability.Optional, null, defaultSharedNetworkOfferingProviders, true, Network.GuestType.Shared, false, null, true, null, true, false, null, false, null, true);
                offering.setState(NetworkOffering.State.Enabled);
                _networkOfferingDao.update(offering.getId(), offering);
            }
            //#4 - default isolated offering with Source nat service
            if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultIsolatedNetworkOfferingWithSourceNatService) == null) {
                offering = _configMgr.createNetworkOffering(NetworkOffering.DefaultIsolatedNetworkOfferingWithSourceNatService, "Offering for Isolated networks with Source Nat service enabled", TrafficType.Guest, null, false, Availability.Required, null, defaultIsolatedSourceNatEnabledNetworkOfferingProviders, true, Network.GuestType.Isolated, false, null, true, null, false, false, null, false, null, true);
                offering.setState(NetworkOffering.State.Enabled);
                _networkOfferingDao.update(offering.getId(), offering);
            }
            //#5 - default vpc offering with LB service
            if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultIsolatedNetworkOfferingForVpcNetworks) == null) {
                offering = _configMgr.createNetworkOffering(NetworkOffering.DefaultIsolatedNetworkOfferingForVpcNetworks, "Offering for Isolated VPC networks with Source Nat service enabled", TrafficType.Guest, null, false, Availability.Optional, null, defaultVPCOffProviders, true, Network.GuestType.Isolated, false, null, false, null, false, false, null, false, null, true);
                offering.setState(NetworkOffering.State.Enabled);
                _networkOfferingDao.update(offering.getId(), offering);
            }
            //#6 - default vpc offering with no LB service
            if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultIsolatedNetworkOfferingForVpcNetworksNoLB) == null) {
                //remove LB service
                defaultVPCOffProviders.remove(Service.Lb);
                offering = _configMgr.createNetworkOffering(NetworkOffering.DefaultIsolatedNetworkOfferingForVpcNetworksNoLB, "Offering for Isolated VPC networks with Source Nat service enabled and LB service disabled", TrafficType.Guest, null, false, Availability.Optional, null, defaultVPCOffProviders, true, Network.GuestType.Isolated, false, null, false, null, false, false, null, false, null, true);
                offering.setState(NetworkOffering.State.Enabled);
                _networkOfferingDao.update(offering.getId(), offering);
            }
            //#7 - isolated offering with source nat disabled
            if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultIsolatedNetworkOffering) == null) {
                offering = _configMgr.createNetworkOffering(NetworkOffering.DefaultIsolatedNetworkOffering, "Offering for Isolated networks with no Source Nat service", TrafficType.Guest, null, true, Availability.Optional, null, defaultIsolatedNetworkOfferingProviders, true, Network.GuestType.Isolated, false, null, true, null, true, false, null, false, null, true);
                offering.setState(NetworkOffering.State.Enabled);
                _networkOfferingDao.update(offering.getId(), offering);
            }
            //#8 - network offering with internal lb service
            final Map<Network.Service, Set<Network.Provider>> internalLbOffProviders = new HashMap<Network.Service, Set<Network.Provider>>();
            final Set<Network.Provider> defaultVpcProvider = new HashSet<Network.Provider>();
            defaultVpcProvider.add(Network.Provider.VPCVirtualRouter);
            final Set<Network.Provider> defaultInternalLbProvider = new HashSet<Network.Provider>();
            defaultInternalLbProvider.add(Network.Provider.InternalLbVm);
            internalLbOffProviders.put(Service.Dhcp, defaultVpcProvider);
            internalLbOffProviders.put(Service.Dns, defaultVpcProvider);
            internalLbOffProviders.put(Service.UserData, defaultVpcProvider);
            internalLbOffProviders.put(Service.NetworkACL, defaultVpcProvider);
            internalLbOffProviders.put(Service.Gateway, defaultVpcProvider);
            internalLbOffProviders.put(Service.Lb, defaultInternalLbProvider);
            internalLbOffProviders.put(Service.SourceNat, defaultVpcProvider);
            if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultIsolatedNetworkOfferingForVpcNetworksWithInternalLB) == null) {
                offering = _configMgr.createNetworkOffering(NetworkOffering.DefaultIsolatedNetworkOfferingForVpcNetworksWithInternalLB, "Offering for Isolated VPC networks with Internal Lb support", TrafficType.Guest, null, false, Availability.Optional, null, internalLbOffProviders, true, Network.GuestType.Isolated, false, null, false, null, false, false, null, false, null, true);
                offering.setState(NetworkOffering.State.Enabled);
                offering.setInternalLb(true);
                offering.setPublicLb(false);
                _networkOfferingDao.update(offering.getId(), offering);
            }
            final Map<Network.Service, Set<Network.Provider>> netscalerServiceProviders = new HashMap<Network.Service, Set<Network.Provider>>();
            final Set<Network.Provider> vrProvider = new HashSet<Network.Provider>();
            vrProvider.add(Provider.VirtualRouter);
            final Set<Network.Provider> sgProvider = new HashSet<Network.Provider>();
            sgProvider.add(Provider.SecurityGroupProvider);
            final Set<Network.Provider> nsProvider = new HashSet<Network.Provider>();
            nsProvider.add(Provider.Netscaler);
            netscalerServiceProviders.put(Service.Dhcp, vrProvider);
            netscalerServiceProviders.put(Service.Dns, vrProvider);
            netscalerServiceProviders.put(Service.UserData, vrProvider);
            netscalerServiceProviders.put(Service.SecurityGroup, sgProvider);
            netscalerServiceProviders.put(Service.StaticNat, nsProvider);
            netscalerServiceProviders.put(Service.Lb, nsProvider);
            final Map<Service, Map<Capability, String>> serviceCapabilityMap = new HashMap<Service, Map<Capability, String>>();
            final Map<Capability, String> elb = new HashMap<Capability, String>();
            elb.put(Capability.ElasticLb, "true");
            final Map<Capability, String> eip = new HashMap<Capability, String>();
            eip.put(Capability.ElasticIp, "true");
            serviceCapabilityMap.put(Service.Lb, elb);
            serviceCapabilityMap.put(Service.StaticNat, eip);
            if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultSharedEIPandELBNetworkOffering) == null) {
                offering = _configMgr.createNetworkOffering(NetworkOffering.DefaultSharedEIPandELBNetworkOffering, "Offering for Shared networks with Elastic IP and Elastic LB capabilities", TrafficType.Guest, null, true, Availability.Optional, null, netscalerServiceProviders, true, Network.GuestType.Shared, false, null, true, serviceCapabilityMap, true, false, null, false, null, true);
                offering.setState(NetworkOffering.State.Enabled);
                offering.setDedicatedLB(false);
                _networkOfferingDao.update(offering.getId(), offering);
            }
        }
    });
    AssignIpAddressSearch = _ipAddressDao.createSearchBuilder();
    AssignIpAddressSearch.and("dc", AssignIpAddressSearch.entity().getDataCenterId(), Op.EQ);
    AssignIpAddressSearch.and("allocated", AssignIpAddressSearch.entity().getAllocatedTime(), Op.NULL);
    AssignIpAddressSearch.and("vlanId", AssignIpAddressSearch.entity().getVlanId(), Op.IN);
    final SearchBuilder<VlanVO> vlanSearch = _vlanDao.createSearchBuilder();
    vlanSearch.and("type", vlanSearch.entity().getVlanType(), Op.EQ);
    vlanSearch.and("networkId", vlanSearch.entity().getNetworkId(), Op.EQ);
    AssignIpAddressSearch.join("vlan", vlanSearch, vlanSearch.entity().getId(), AssignIpAddressSearch.entity().getVlanId(), JoinType.INNER);
    AssignIpAddressSearch.done();
    AssignIpAddressFromPodVlanSearch = _ipAddressDao.createSearchBuilder();
    AssignIpAddressFromPodVlanSearch.and("dc", AssignIpAddressFromPodVlanSearch.entity().getDataCenterId(), Op.EQ);
    AssignIpAddressFromPodVlanSearch.and("allocated", AssignIpAddressFromPodVlanSearch.entity().getAllocatedTime(), Op.NULL);
    AssignIpAddressFromPodVlanSearch.and("vlanId", AssignIpAddressFromPodVlanSearch.entity().getVlanId(), Op.IN);
    final SearchBuilder<VlanVO> podVlanSearch = _vlanDao.createSearchBuilder();
    podVlanSearch.and("type", podVlanSearch.entity().getVlanType(), Op.EQ);
    podVlanSearch.and("networkId", podVlanSearch.entity().getNetworkId(), Op.EQ);
    final SearchBuilder<PodVlanMapVO> podVlanMapSB = _podVlanMapDao.createSearchBuilder();
    podVlanMapSB.and("podId", podVlanMapSB.entity().getPodId(), Op.EQ);
    AssignIpAddressFromPodVlanSearch.join("podVlanMapSB", podVlanMapSB, podVlanMapSB.entity().getVlanDbId(), AssignIpAddressFromPodVlanSearch.entity().getVlanId(), JoinType.INNER);
    AssignIpAddressFromPodVlanSearch.join("vlan", podVlanSearch, podVlanSearch.entity().getId(), AssignIpAddressFromPodVlanSearch.entity().getVlanId(), JoinType.INNER);
    AssignIpAddressFromPodVlanSearch.done();
    _executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("Network-Scavenger"));
    _agentMgr.registerForHostEvents(this, true, false, true);
    Network.State.getStateMachine().registerListener(new NetworkStateListener(_configDao));
    s_logger.info("Network Manager is configured.");
    return true;
}
Also used : HashSet(java.util.HashSet) Set(java.util.Set) LinkedHashMap(java.util.LinkedHashMap) HashMap(java.util.HashMap) TransactionStatus(com.cloud.utils.db.TransactionStatus) TransactionCallbackNoReturn(com.cloud.utils.db.TransactionCallbackNoReturn) Network(com.cloud.network.Network) PhysicalNetwork(com.cloud.network.PhysicalNetwork) VlanVO(com.cloud.dc.VlanVO) HashSet(java.util.HashSet) Capability(com.cloud.network.Network.Capability) NamedThreadFactory(com.cloud.utils.concurrency.NamedThreadFactory) NetworkOrchestrationService(org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService) Service(com.cloud.network.Network.Service) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) ResourceLimitService(com.cloud.user.ResourceLimitService) RemoteAccessVpnService(com.cloud.network.vpn.RemoteAccessVpnService) DnsServiceProvider(com.cloud.network.element.DnsServiceProvider) UserDataServiceProvider(com.cloud.network.element.UserDataServiceProvider) DhcpServiceProvider(com.cloud.network.element.DhcpServiceProvider) LoadBalancingServiceProvider(com.cloud.network.element.LoadBalancingServiceProvider) StaticNatServiceProvider(com.cloud.network.element.StaticNatServiceProvider) Provider(com.cloud.network.Network.Provider) NetworkStateListener(com.cloud.network.NetworkStateListener) PodVlanMapVO(com.cloud.dc.PodVlanMapVO) NetworkOfferingVO(com.cloud.offerings.NetworkOfferingVO) Map(java.util.Map) LinkedHashMap(java.util.LinkedHashMap) HashMap(java.util.HashMap) DB(com.cloud.utils.db.DB)

Example 10 with NamedThreadFactory

use of com.cloud.utils.concurrency.NamedThreadFactory in project cloudstack by apache.

the class ResourceLimitManagerImpl method configure.

@Override
public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException {
    ResourceCountSearch = _resourceCountDao.createSearchBuilder();
    ResourceCountSearch.and("id", ResourceCountSearch.entity().getId(), SearchCriteria.Op.IN);
    ResourceCountSearch.and("accountId", ResourceCountSearch.entity().getAccountId(), SearchCriteria.Op.EQ);
    ResourceCountSearch.and("domainId", ResourceCountSearch.entity().getDomainId(), SearchCriteria.Op.EQ);
    ResourceCountSearch.done();
    templateSizeSearch = _vmTemplateStoreDao.createSearchBuilder(SumCount.class);
    templateSizeSearch.select("sum", Func.SUM, templateSizeSearch.entity().getSize());
    templateSizeSearch.and("downloadState", templateSizeSearch.entity().getDownloadState(), Op.EQ);
    templateSizeSearch.and("destroyed", templateSizeSearch.entity().getDestroyed(), Op.EQ);
    SearchBuilder<VMTemplateVO> join1 = _vmTemplateDao.createSearchBuilder();
    join1.and("accountId", join1.entity().getAccountId(), Op.EQ);
    templateSizeSearch.join("templates", join1, templateSizeSearch.entity().getTemplateId(), join1.entity().getId(), JoinBuilder.JoinType.INNER);
    templateSizeSearch.done();
    snapshotSizeSearch = _snapshotDataStoreDao.createSearchBuilder(SumCount.class);
    snapshotSizeSearch.select("sum", Func.SUM, snapshotSizeSearch.entity().getPhysicalSize());
    snapshotSizeSearch.and("state", snapshotSizeSearch.entity().getState(), Op.EQ);
    snapshotSizeSearch.and("storeRole", snapshotSizeSearch.entity().getRole(), Op.EQ);
    SearchBuilder<SnapshotVO> join2 = _snapshotDao.createSearchBuilder();
    join2.and("accountId", join2.entity().getAccountId(), Op.EQ);
    snapshotSizeSearch.join("snapshots", join2, snapshotSizeSearch.entity().getSnapshotId(), join2.entity().getId(), JoinBuilder.JoinType.INNER);
    snapshotSizeSearch.done();
    _resourceCountCheckInterval = NumbersUtil.parseInt(_configDao.getValue(Config.ResourceCountCheckInterval.key()), 0);
    if (_resourceCountCheckInterval > 0) {
        _rcExecutor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("ResourceCountChecker"));
    }
    try {
        projectResourceLimitMap.put(Resource.ResourceType.public_ip, Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectPublicIPs.key())));
        projectResourceLimitMap.put(Resource.ResourceType.snapshot, Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectSnapshots.key())));
        projectResourceLimitMap.put(Resource.ResourceType.template, Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectTemplates.key())));
        projectResourceLimitMap.put(Resource.ResourceType.user_vm, Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectUserVms.key())));
        projectResourceLimitMap.put(Resource.ResourceType.volume, Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectVolumes.key())));
        projectResourceLimitMap.put(Resource.ResourceType.network, Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectNetworks.key())));
        projectResourceLimitMap.put(Resource.ResourceType.vpc, Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectVpcs.key())));
        projectResourceLimitMap.put(Resource.ResourceType.cpu, Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectCpus.key())));
        projectResourceLimitMap.put(Resource.ResourceType.memory, Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectMemory.key())));
        projectResourceLimitMap.put(Resource.ResourceType.primary_storage, Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectPrimaryStorage.key())));
        projectResourceLimitMap.put(Resource.ResourceType.secondary_storage, Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectSecondaryStorage.key())));
        accountResourceLimitMap.put(Resource.ResourceType.public_ip, Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountPublicIPs.key())));
        accountResourceLimitMap.put(Resource.ResourceType.snapshot, Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountSnapshots.key())));
        accountResourceLimitMap.put(Resource.ResourceType.template, Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountTemplates.key())));
        accountResourceLimitMap.put(Resource.ResourceType.user_vm, Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountUserVms.key())));
        accountResourceLimitMap.put(Resource.ResourceType.volume, Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountVolumes.key())));
        accountResourceLimitMap.put(Resource.ResourceType.network, Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountNetworks.key())));
        accountResourceLimitMap.put(Resource.ResourceType.vpc, Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountVpcs.key())));
        accountResourceLimitMap.put(Resource.ResourceType.cpu, Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountCpus.key())));
        accountResourceLimitMap.put(Resource.ResourceType.memory, Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountMemory.key())));
        accountResourceLimitMap.put(Resource.ResourceType.primary_storage, Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountPrimaryStorage.key())));
        accountResourceLimitMap.put(Resource.ResourceType.secondary_storage, Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountSecondaryStorage.key())));
        domainResourceLimitMap.put(Resource.ResourceType.public_ip, Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainPublicIPs.key())));
        domainResourceLimitMap.put(Resource.ResourceType.snapshot, Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainSnapshots.key())));
        domainResourceLimitMap.put(Resource.ResourceType.template, Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainTemplates.key())));
        domainResourceLimitMap.put(Resource.ResourceType.user_vm, Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainUserVms.key())));
        domainResourceLimitMap.put(Resource.ResourceType.volume, Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainVolumes.key())));
        domainResourceLimitMap.put(Resource.ResourceType.network, Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainNetworks.key())));
        domainResourceLimitMap.put(Resource.ResourceType.vpc, Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainVpcs.key())));
        domainResourceLimitMap.put(Resource.ResourceType.cpu, Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainCpus.key())));
        domainResourceLimitMap.put(Resource.ResourceType.memory, Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainMemory.key())));
        domainResourceLimitMap.put(Resource.ResourceType.primary_storage, Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainPrimaryStorage.key())));
        domainResourceLimitMap.put(Resource.ResourceType.secondary_storage, Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainSecondaryStorage.key())));
    } catch (NumberFormatException e) {
        s_logger.error("NumberFormatException during configuration", e);
        throw new ConfigurationException("Configuration failed due to NumberFormatException, see log for the stacktrace");
    }
    return true;
}
Also used : SnapshotVO(com.cloud.storage.SnapshotVO) ConfigurationException(javax.naming.ConfigurationException) NamedThreadFactory(com.cloud.utils.concurrency.NamedThreadFactory) VMTemplateVO(com.cloud.storage.VMTemplateVO) SumCount(com.cloud.storage.dao.VolumeDaoImpl.SumCount)

Aggregations

NamedThreadFactory (com.cloud.utils.concurrency.NamedThreadFactory)16 LinkedBlockingQueue (java.util.concurrent.LinkedBlockingQueue)6 VMTemplateVO (com.cloud.storage.VMTemplateVO)4 ExecutorService (java.util.concurrent.ExecutorService)4 Test (org.junit.Test)4 VMTemplateStoragePoolVO (com.cloud.storage.VMTemplateStoragePoolVO)3 ThreadPoolExecutor (java.util.concurrent.ThreadPoolExecutor)3 ConfigurationException (javax.naming.ConfigurationException)3 PrimaryDataStore (org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStore)3 StoragePoolVO (org.apache.cloudstack.storage.datastore.db.StoragePoolVO)3 ArrayList (java.util.ArrayList)2 EndPoint (org.apache.cloudstack.engine.subsystem.api.storage.EndPoint)2 PodVlanMapVO (com.cloud.dc.PodVlanMapVO)1 VlanVO (com.cloud.dc.VlanVO)1 HostVO (com.cloud.host.HostVO)1 Network (com.cloud.network.Network)1 Capability (com.cloud.network.Network.Capability)1 Provider (com.cloud.network.Network.Provider)1 Service (com.cloud.network.Network.Service)1 NetworkStateListener (com.cloud.network.NetworkStateListener)1