// Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with 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. package com.cloud.hypervisor.vmware.mo; import com.vmware.vim25.ClusterDasConfigInfo; import com.vmware.vim25.ComputeResourceSummary; import com.vmware.vim25.ManagedObjectReference; import com.vmware.vim25.ObjectContent; import com.vmware.vim25.VirtualMachineConfigSpec; import com.cloud.hypervisor.vmware.util.VmwareContext; import com.cloud.utils.Pair; /** * Interface to consolidate ESX(i) hosts and HA/FT clusters into a common interface used by CloudStack Hypervisor resources */ public interface VmwareHypervisorHost { VmwareContext getContext(); ManagedObjectReference getMor(); String getHyperHostName() throws Exception; ClusterDasConfigInfo getDasConfig() throws Exception; boolean isHAEnabled() throws Exception; void setRestartPriorityForVM(VirtualMachineMO vmMo, String priority) throws Exception; ManagedObjectReference getHyperHostDatacenter() throws Exception; ManagedObjectReference getHyperHostOwnerResourcePool() throws Exception; ManagedObjectReference getHyperHostCluster() throws Exception; boolean isHyperHostConnected() throws Exception; String getHyperHostDefaultGateway() throws Exception; VirtualMachineMO findVmOnHyperHost(String name) throws Exception; VirtualMachineMO findVmOnPeerHyperHost(String name) throws Exception; boolean createVm(VirtualMachineConfigSpec vmSpec) throws Exception; boolean createBlankVm(String vmName, String vmInternalCSName, int cpuCount, int cpuSpeedMHz, int cpuReservedMHz, boolean limitCpuUse, int memoryMB, int memoryReserveMB, String guestOsIdentifier, ManagedObjectReference morDs, boolean snapshotDirToParent, Pair<String, String> controllerInfo, Boolean systemVm) throws Exception; void importVmFromOVF(String ovfFilePath, String vmName, DatastoreMO dsMo, String diskOption) throws Exception; ObjectContent[] getVmPropertiesOnHyperHost(String[] propertyPaths) throws Exception; ObjectContent[] getDatastorePropertiesOnHyperHost(String[] propertyPaths) throws Exception; ManagedObjectReference mountDatastore(boolean vmfsDatastore, String poolHostAddress, int poolHostPort, String poolPath, String poolUuid) throws Exception; void unmountDatastore(String poolUuid) throws Exception; ManagedObjectReference findDatastore(String poolUuid) throws Exception; ManagedObjectReference findDatastoreByName(String datastoreName) throws Exception; @Deprecated ManagedObjectReference findDatastoreByExportPath(String exportPath) throws Exception; ManagedObjectReference findMigrationTarget(VirtualMachineMO vmMo) throws Exception; VmwareHypervisorHostResourceSummary getHyperHostResourceSummary() throws Exception; VmwareHypervisorHostNetworkSummary getHyperHostNetworkSummary(String esxServiceConsolePort) throws Exception; ComputeResourceSummary getHyperHostHardwareSummary() throws Exception; LicenseAssignmentManagerMO getLicenseAssignmentManager() throws Exception; String getRecommendedDiskController(String guestOsId) throws Exception; }