| // 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 org.apache.cloudstack.vm; |
| |
| import com.cloud.hypervisor.Hypervisor; |
| import com.cloud.utils.component.PluggableService; |
| import org.apache.cloudstack.framework.config.ConfigKey; |
| import org.apache.cloudstack.framework.config.Configurable; |
| import static com.cloud.hypervisor.Hypervisor.HypervisorType.KVM; |
| import static com.cloud.hypervisor.Hypervisor.HypervisorType.VMware; |
| |
| public interface UnmanagedVMsManager extends VmImportService, UnmanageVMService, PluggableService, Configurable { |
| |
| String VM_IMPORT_DEFAULT_TEMPLATE_NAME = "system-default-vm-import-dummy-template.iso"; |
| String KVM_VM_IMPORT_DEFAULT_TEMPLATE_NAME = "kvm-default-vm-import-dummy-template"; |
| ConfigKey<Boolean> UnmanageVMPreserveNic = new ConfigKey<>("Advanced", Boolean.class, "unmanage.vm.preserve.nics", "false", |
| "If set to true, do not remove VM nics (and its MAC addresses) when unmanaging a VM, leaving them allocated but not reserved. " + |
| "If set to false, nics are removed and MAC addresses can be reassigned", true, ConfigKey.Scope.Zone); |
| |
| ConfigKey<Integer> RemoteKvmInstanceDisksCopyTimeout = new ConfigKey<>(Integer.class, |
| "remote.kvm.instance.disks.copy.timeout", |
| "Advanced", |
| "30", |
| "Timeout (in mins) to prepare and copy the disks of remote KVM instance while importing the instance from an external host", |
| true, |
| ConfigKey.Scope.Global, |
| null); |
| |
| ConfigKey<Integer> ConvertVmwareInstanceToKvmTimeout = new ConfigKey<>(Integer.class, |
| "convert.vmware.instance.to.kvm.timeout", |
| "Advanced", |
| "3", |
| "Timeout (in hours) for the instance conversion process from VMware through the virt-v2v binary on a KVM host", |
| true, |
| ConfigKey.Scope.Global, |
| null); |
| |
| ConfigKey<Integer> ThreadsOnMSToImportVMwareVMFiles = new ConfigKey<>(Integer.class, |
| "threads.on.ms.to.import.vmware.vm.files", |
| "Advanced", |
| "0", |
| "Threads to use on the management server when importing VM files from VMWare." + |
| " -1 or 1 disables threads, 0 uses a thread per VM disk (disabled for single disk) and >1 for manual thread configuration." + |
| " Max number is 10, Default is 0.", |
| true, |
| ConfigKey.Scope.Global, |
| null); |
| |
| ConfigKey<Integer> ThreadsOnKVMHostToImportVMwareVMFiles = new ConfigKey<>(Integer.class, |
| "threads.on.kvm.host.to.import.vmware.vm.files", |
| "Advanced", |
| "0", |
| "Threads to use on the KVM host (by the ovftool, if the version is 4.4.0+) when importing VM files from VMWare." + |
| " -1 or 1 disables threads, 0 uses a thread per VM disk (disabled for single disk) and >1 for manual thread configuration." + |
| " Max number is 10, Default is 0.", |
| true, |
| ConfigKey.Scope.Global, |
| null); |
| |
| static boolean isSupported(Hypervisor.HypervisorType hypervisorType) { |
| return hypervisorType == VMware || hypervisorType == KVM; |
| } |
| } |