protected void loadResource(Long hostId) { HostVO host = hostDao.findById(hostId); Map<String, Object> params = new HashMap<String, Object>(); params.put("guid", host.getGuid()); params.put("ipaddress", host.getPrivateIpAddress()); params.put("username", "root"); params.put("password", "password"); params.put("zone", String.valueOf(host.getDataCenterId())); params.put("pod", String.valueOf(host.getPodId())); ServerResource resource = null; if (host.getHypervisorType() == HypervisorType.XenServer) { resource = new XcpOssResource(); try { resource.configure(host.getName(), params); } catch (ConfigurationException e) { logger.debug("Failed to load resource:" + e.toString()); } } else if (host.getHypervisorType() == HypervisorType.KVM) { resource = new LibvirtComputingResource(); try { params.put("public.network.device", "cloudbr0"); params.put("private.network.device", "cloudbr0"); resource.configure(host.getName(), params); } catch (ConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (host.getHypervisorType() == HypervisorType.VMware) { ClusterVO cluster = clusterDao.findById(host.getClusterId()); String url = clusterDetailsDao.findDetail(cluster.getId(), "url").getValue(); URI uri; try { uri = new URI(url); String userName = clusterDetailsDao.findDetail(cluster.getId(), "username").getValue(); String password = clusterDetailsDao.findDetail(cluster.getId(), "password").getValue(); VmwareServerDiscoverer discover = new VmwareServerDiscoverer(); Map<? extends ServerResource, Map<String, String>> resources = discover.find( host.getDataCenterId(), host.getPodId(), host.getClusterId(), uri, userName, password, null); for (Map.Entry<? extends ServerResource, Map<String, String>> entry : resources.entrySet()) { resource = entry.getKey(); } if (resource == null) { throw new CloudRuntimeException("can't find resource"); } } catch (DiscoveryException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); } } hostResourcesMap.put(hostId, resource); HostEnvironment env = new HostEnvironment(); SetupCommand cmd = new SetupCommand(env); cmd.setNeedSetup(true); resource.executeRequest(cmd); }