@Test(priority = -1) public void setUp() { ComponentContext.initComponentsLifeCycle(); host = hostDao.findByGuid(this.getHostGuid()); if (host != null) { dcId = host.getDataCenterId(); clusterId = host.getClusterId(); podId = host.getPodId(); return; } // create data center DataCenterVO dc = new DataCenterVO( UUID.randomUUID().toString(), "test", "8.8.8.8", null, "10.0.0.1", null, "10.0.0.1/24", null, null, NetworkType.Basic, null, null, true, true, null, null); dc = dcDao.persist(dc); dcId = dc.getId(); // create pod HostPodVO pod = new HostPodVO( UUID.randomUUID().toString(), dc.getId(), this.getHostGateway(), this.getHostCidr(), 8, "test"); pod = podDao.persist(pod); podId = pod.getId(); // create xen cluster ClusterVO cluster = new ClusterVO(dc.getId(), pod.getId(), "devcloud cluster"); cluster.setHypervisorType(HypervisorType.XenServer.toString()); cluster.setClusterType(ClusterType.CloudManaged); cluster.setManagedState(ManagedState.Managed); cluster = clusterDao.persist(cluster); clusterId = cluster.getId(); // create xen host host = new HostVO(this.getHostGuid()); host.setName("devcloud xen host"); host.setType(Host.Type.Routing); host.setPrivateIpAddress(this.getHostIp()); host.setDataCenterId(dc.getId()); host.setVersion("6.0.1"); host.setAvailable(true); host.setSetup(true); host.setPodId(podId); host.setLastPinged(0); host.setResourceState(ResourceState.Enabled); host.setHypervisorType(HypervisorType.XenServer); host.setClusterId(cluster.getId()); host = hostDao.persist(host); imageStore = new ImageStoreVO(); imageStore.setName("test"); imageStore.setDataCenterId(dcId); imageStore.setProviderName("CloudStack ImageStore Provider"); imageStore.setRole(DataStoreRole.Image); imageStore.setUrl(this.getSecondaryStorage()); imageStore.setUuid(UUID.randomUUID().toString()); imageStore = imageStoreDao.persist(imageStore); }
@Override public final void processConnect( final Host agent, final StartupCommand cmd, final boolean forRebalance) throws ConnectionException { // Limit the commands we can process if (!(cmd instanceof StartupRoutingCommand)) { return; } StartupRoutingCommand startup = (StartupRoutingCommand) cmd; // assert if (startup.getHypervisorType() != HypervisorType.Hyperv) { s_logger.debug("Not Hyper-V hypervisor, so moving on."); return; } long agentId = agent.getId(); HostVO host = _hostDao.findById(agentId); // Our Hyper-V machines are not participating in pools, and the pool id // we provide them is not persisted. // This means the pool id can vary. ClusterVO cluster = _clusterDao.findById(host.getClusterId()); if (cluster.getGuid() == null) { cluster.setGuid(startup.getPool()); _clusterDao.update(cluster.getId(), cluster); } if (s_logger.isDebugEnabled()) { s_logger.debug("Setting up host " + agentId); } HostEnvironment env = new HostEnvironment(); SetupCommand setup = new SetupCommand(env); if (!host.isSetup()) { setup.setNeedSetup(true); } try { SetupAnswer answer = (SetupAnswer) _agentMgr.send(agentId, setup); if (answer != null && answer.getResult()) { host.setSetup(true); // TODO: clean up magic numbers below host.setLastPinged((System.currentTimeMillis() >> 10) - 5 * 60); _hostDao.update(host.getId(), host); if (answer.needReconnect()) { throw new ConnectionException(false, "Reinitialize agent after setup."); } return; } else { String reason = answer.getDetails(); if (reason == null) { reason = " details were null"; } s_logger.warn("Unable to setup agent " + agentId + " due to " + reason); } // Error handling borrowed from XcpServerDiscoverer, may need to be // updated. } catch (AgentUnavailableException e) { s_logger.warn("Unable to setup agent " + agentId + " because it became unavailable.", e); } catch (OperationTimedoutException e) { s_logger.warn("Unable to setup agent " + agentId + " because it timed out", e); } throw new ConnectionException(true, "Reinitialize agent after setup."); }
@Test(priority = -1) public void setUp() { ComponentContext.initComponentsLifeCycle(); host = hostDao.findByGuid(this.getHostGuid()); if (host != null) { dcId = host.getDataCenterId(); clusterId = host.getClusterId(); podId = host.getPodId(); imageStore = this.imageStoreDao.findByName(imageStoreName); } else { // create data center DataCenterVO dc = new DataCenterVO( UUID.randomUUID().toString(), "test", "8.8.8.8", null, "10.0.0.1", null, "10.0.0.1/24", null, null, NetworkType.Basic, null, null, true, true, null, null); dc = dcDao.persist(dc); dcId = dc.getId(); // create pod HostPodVO pod = new HostPodVO( UUID.randomUUID().toString(), dc.getId(), this.getHostGateway(), this.getHostCidr(), 8, "test"); pod = podDao.persist(pod); podId = pod.getId(); // create xen cluster ClusterVO cluster = new ClusterVO(dc.getId(), pod.getId(), "devcloud cluster"); cluster.setHypervisorType(HypervisorType.VMware.toString()); cluster.setClusterType(ClusterType.ExternalManaged); cluster.setManagedState(ManagedState.Managed); cluster = clusterDao.persist(cluster); clusterId = cluster.getId(); // setup vcenter ClusterDetailsVO clusterDetailVO = new ClusterDetailsVO(cluster.getId(), "url", null); this.clusterDetailsDao.persist(clusterDetailVO); clusterDetailVO = new ClusterDetailsVO(cluster.getId(), "username", null); this.clusterDetailsDao.persist(clusterDetailVO); clusterDetailVO = new ClusterDetailsVO(cluster.getId(), "password", null); this.clusterDetailsDao.persist(clusterDetailVO); // create xen host host = new HostVO(this.getHostGuid()); host.setName("devcloud vmware host"); host.setType(Host.Type.Routing); host.setPrivateIpAddress(this.getHostIp()); host.setDataCenterId(dc.getId()); host.setVersion("6.0.1"); host.setAvailable(true); host.setSetup(true); host.setPodId(podId); host.setLastPinged(0); host.setResourceState(ResourceState.Enabled); host.setHypervisorType(HypervisorType.VMware); host.setClusterId(cluster.getId()); host = hostDao.persist(host); imageStore = new ImageStoreVO(); imageStore.setName(imageStoreName); imageStore.setDataCenterId(dcId); imageStore.setProviderName("CloudStack ImageStore Provider"); imageStore.setRole(DataStoreRole.Image); imageStore.setUrl(this.getSecondaryStorage()); imageStore.setUuid(UUID.randomUUID().toString()); imageStore.setProtocol("nfs"); imageStore = imageStoreDao.persist(imageStore); } image = new VMTemplateVO(); image.setTemplateType(TemplateType.USER); image.setUrl(this.getTemplateUrl()); image.setUniqueName(UUID.randomUUID().toString()); image.setName(UUID.randomUUID().toString()); image.setPublicTemplate(true); image.setFeatured(true); image.setRequiresHvm(true); image.setBits(64); image.setFormat(Storage.ImageFormat.VHD); image.setEnablePassword(true); image.setEnableSshKey(true); image.setGuestOSId(1); image.setBootable(true); image.setPrepopulate(true); image.setCrossZones(true); image.setExtractable(true); image = imageDataDao.persist(image); /* * TemplateDataStoreVO templateStore = new TemplateDataStoreVO(); * * templateStore.setDataStoreId(imageStore.getId()); * templateStore.setDownloadPercent(100); * templateStore.setDownloadState(Status.DOWNLOADED); * templateStore.setDownloadUrl(imageStore.getUrl()); * templateStore.setInstallPath(this.getImageInstallPath()); * templateStore.setTemplateId(image.getId()); * templateStoreDao.persist(templateStore); */ DataStore store = this.dataStoreMgr.getDataStore(imageStore.getId(), DataStoreRole.Image); TemplateInfo template = templateFactory.getTemplate(image.getId(), DataStoreRole.Image); DataObject templateOnStore = store.create(template); TemplateObjectTO to = new TemplateObjectTO(); to.setPath(this.getImageInstallPath()); CopyCmdAnswer answer = new CopyCmdAnswer(to); templateOnStore.processEvent(Event.CreateOnlyRequested); templateOnStore.processEvent(Event.OperationSuccessed, answer); }