// Copyright 2012 Citrix Systems, Inc. Licensed under the // Apache License, Version 2.0 (the "License"); you may not use this // file except in compliance with the License. Citrix Systems, Inc. // reserves all rights not expressly granted by the License. // You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Automatically generated by addcopyright.py at 04/03/2012 package com.cloud.consoleproxy; import java.util.List; import java.util.Map; import javax.ejb.Local; import javax.naming.ConfigurationException; import com.cloud.configuration.dao.ConfigurationDao; import com.cloud.host.Host.Type; import com.cloud.host.HostVO; import com.cloud.info.ConsoleProxyInfo; import com.cloud.resource.ResourceManager; import com.cloud.utils.component.ComponentLocator; import com.cloud.utils.component.Inject; import com.cloud.vm.VMInstanceVO; import com.cloud.vm.dao.ConsoleProxyDao; @Local(value={ConsoleProxyManager.class}) public class StaticConsoleProxyManager extends AgentBasedConsoleProxyManager implements ConsoleProxyManager { String _ip = null; @Inject ConsoleProxyDao _proxyDao; @Inject ResourceManager _resourceMgr; @Override protected HostVO findHost(VMInstanceVO vm) { List<HostVO> hosts = _resourceMgr.listAllUpAndEnabledHostsInOneZoneByType(Type.ConsoleProxy, vm.getDataCenterIdToDeployIn()); return hosts.isEmpty() ? null : hosts.get(0); } @Override public ConsoleProxyInfo assignProxy(long dataCenterId, long userVmId) { return new ConsoleProxyInfo(false, _ip, _consoleProxyPort, _consoleProxyUrlPort, _consoleProxyUrlDomain); } @Override public boolean configure(String name, Map<String, Object> params) throws ConfigurationException { super.configure(name, params); ComponentLocator locator = ComponentLocator.getCurrentLocator(); ConfigurationDao configDao = locator.getDao(ConfigurationDao.class); Map<String, String> dbParams = configDao.getConfiguration("ManagementServer", params); _ip = dbParams.get("public.ip"); if (_ip == null) { _ip = "127.0.0.1"; } return true; } }