Uh oh!
There was an error while loading. Please reload this page.
VM ingestion - #3606
Conversation
blueorangutan
commented
Sep 24, 2019
Packaging result: ✖centos6 ✔centos7 ✔debian. JID-288 |
5936345 to
0f8ae81Compareyadvr
commented
Sep 26, 2019
@shwstppr is there a doc PR or spec for this feature? |
blueorangutan
commented
Sep 26, 2019
@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress. |
blueorangutan
commented
Sep 26, 2019
Packaging result: ✖centos6 ✖centos7 ✔debian. JID-294 |
yadvr
commented
Sep 26, 2019
@blueorangutan package |
blueorangutan
commented
Sep 26, 2019
@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress. |
blueorangutan
commented
Sep 26, 2019
Packaging result: ✖centos6 ✔centos7 ✔debian. JID-295 |
0f8ae81 to
08fe2ebCompareborisstoyanov
commented
Sep 26, 2019
@blueorangutan package |
blueorangutan
commented
Sep 26, 2019
@borisstoyanov a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress. |
blueorangutan
commented
Sep 26, 2019
Packaging result: ✖centos6 ✔centos7 ✔debian. JID-296 |
borisstoyanov
commented
Sep 26, 2019
@blueorangutan test matrix |
blueorangutan
commented
Sep 26, 2019
@borisstoyanov a Trillian-Jenkins matrix job (centos7 mgmt + xs71, centos7 mgmt + vmware65, centos7 mgmt + kvmcentos7) has been kicked to run smoke tests |
blueorangutan
commented
Sep 26, 2019
Trillian test result (tid-386)
|
08fe2eb to
7dab9e2Compareshwstppr
commented
Sep 27, 2019
@blueorangutan package |
blueorangutan
commented
Sep 27, 2019
@shwstppr a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress. |
blueorangutan
commented
Sep 27, 2019
Packaging result: ✖centos6 ✔centos7 ✔debian. JID-300 |
ccc1d29 to
0e32971Compare…existing VMs in an infra. The feature currently works only for VMware, with a hypervisor agnostic framework which may be extended for KVM and XenServer in future. Two new APIs have been added, listUnmanagedInstances and importUnmanagedInstance. listUnmanagedInstances API will list all unmanaged virtual machine for a give cluster. Optionally, name for an existing unmanaged virtual machine can be given to retrieve VM details. API request params - clusterid(UUID of cluster) name(instance name) Response - clusterid hostid name osdisplayname memory powerstate cpuCoresPerSocket cpunumber cpuspeed disk - id - capacity - controller - controllerunit - imagepath - position nic - id - macaddress - networkname - vlanid - pcislot - ipaddress(Only with VMware Tools installed on VM for VMware) importUnmanagedInstance API will import an exisitng unmanaged virtual machine into CloudStack for a given cluster and virtual machine name. Service offering for the VM, disk offerings for volumes and networks for NICs of the VM can be mapped. Some optional parameters like projectid, domainid, hostname, details, etc can also be given. Appropritate networks, service offering and disk offerings need to be present before import and cannot be created on the fly during the API call. API request params - clusterid(UUID of cluster) name(instance name) displayname hostname domainid projectid templateid serviceofferingid diskofferingid(UUID of disk offering for root disk) nicnetworklist(Map for NIC ID and corresponding Network UUID) nicipaddresslist(Map for NIC ID and corresponding IP address) datadiskofferinglist(Map for disk ID and corresponding disk offering UUID) details(Map for VM details) migrateAllowed(VM and its volumes are allowed to migrate to different host/pool when offerings passed are incompatible with current host/pool) Response - Same response as that of deployVirtualMachine API A python 3 based script (scripts/vm/hypervisor/vmware/discover_networks.py) has been created to aid migrations. It leverages VMware’s pyvmomi library (https://github.com/vmware/pyvmomi) and allows listing all networks for a vCenter host or cluster. This script can take following arguments, -h, --help show this help message and exit -s HOST, --host HOST vSpehre service to connect to -o PORT, --port PORT Port to connect on -u USER, --user USER User name to use -p PASSWORD, --password PASSWORD Password to use -c CLUSTER, --cluster CLUSTER Cluster for which discover networks -S, --disable_ssl_verification Disable ssl host certificate verification -d, --debug Debug log messages Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
Check for NPE during nic network validation Filter orphan, removed volumes while list unmanaged VMs from VMware Publish usage and update resource count only after import complete Use disk size when disk offering for disk is of higher size durng import Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
0e32971 to
f9e3936Compareborisstoyanov
commented
Jan 20, 2020
@blueorangutan test |
blueorangutan
commented
Jan 20, 2020
@borisstoyanov a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests |
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
shwstppr
commented
Jan 20, 2020
@blueorangutan package |
blueorangutan
commented
Jan 20, 2020
@shwstppr a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress. |
blueorangutan
commented
Jan 20, 2020
Packaging result: ✖centos6 ✔centos7 ✔debian. JID-631 |
blueorangutan
commented
Jan 20, 2020
Trillian test result (tid-794)
|
borisstoyanov
commented
Jan 21, 2020
@blueorangutan test |
blueorangutan
commented
Jan 21, 2020
@borisstoyanov a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests |
blueorangutan
commented
Jan 21, 2020
Trillian test result (tid-802)
|
yadvr
commented
Jan 28, 2020
@DaanHoogland can you do a final review? After that squash-merge. |
yadvr
commented
Jan 31, 2020
@blueorangutan package |
blueorangutan
commented
Jan 31, 2020
@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress. |
DaanHoogland
commented
Jan 31, 2020
@rhtyd I will do a final review and merge once travis and the bba agree |
blueorangutan
commented
Jan 31, 2020
Packaging result: ✖centos6 ✔centos7 ✔debian. JID-728 |
DaanHoogland
commented
Jan 31, 2020
@blueorangutan help |
blueorangutan
commented
Jan 31, 2020
@DaanHoogland I understand these words: "help", "hello", "thanks", "package", "test" Blessed contributors for kicking Trillian test jobs: ['rhtyd', 'nvazquez', 'PaulAngus', 'borisstoyanov', 'DaanHoogland', 'shwstppr', 'andrijapanicsb', 'Spaceman1984', 'Pearl1594', 'davidjumani'] |
DaanHoogland
commented
Feb 1, 2020
@blueorangutan test centos7 vmware-65u2 |
blueorangutan
commented
Feb 1, 2020
@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + vmware-65u2) has been kicked to run smoke tests |
blueorangutan
commented
Feb 1, 2020
Trillian test result (tid-874)
|
Description
Documentation PR: apache/cloudstack-documentation#84
FS Doc: https://cwiki.apache.org/confluence/display/CLOUDSTACK/VM+Ingestion
VM ingestion feature allows CloudStack to discover, on-board, import existing VMs in an infra. The feature currently works only for VMware, with a hypervisor agnostic framework which may be extended for KVM and XenServer in future.
Two new APIs have been added,
listUnmanagedInstancesandimportUnmanagedInstance.listUnmanagedInstances
API will list all unmanaged virtual machine for a give cluster. Optionally, name for an existing unmanaged virtual machine can be given to retrieve VM details.
API request params -
clusterid(UUID of cluster)name(instance name)Response -
clusteridhostidnameosdisplaynamememorypowerstatecpuCoresPerSocketcpunumbercpuspeeddisk-
id-
capacity-
controller-
controllerunit-
imagepath-
positionnic-
id-
macaddress-
networkname-
vlanid-
pcislotimportUnmanagedInstance
API will import an exisitng unmanaged virtual machine into CloudStack for a given cluster and virtual machine name. Service offering for the VM, disk offerings for volumes and networks for NICs of the VM can be mapped. Some optional parameters like projectid, domainid, hostname, details, etc can also be given. Appropritate networks, service offering and disk offerings need to be present before import and cannot be created on the fly during the API call.
API request params -
clusterid(UUID of cluster)name(instance name)displaynamehostnamedomainidprojectidtemplateidserviceofferingidnicnetworklist(Map for NIC ID and corresponding Network UUID)datadiskofferinglist(Map for disk ID and corresponding disk offering UUID)details(Map for VM details)migrateallowed(VM and its volumes are allowed to migrate to different host/poolResponse -
Same response as that of
deployVirtualMachineAPIA python based script (scripts/vm/hypervisor/vmware/discover_networks.py) has been created to aid migrations. It leverages VMware’s pyvmomi library (https://github.com/vmware/pyvmomi) and allows listing all networks for a vCenter host or cluster.
This script can take following arguments,
Types of changes
API sample calls:
List
Import
Usage of list_vcenter_networks script
How Has This Been Tested?
listUnmanagedInstancesAPI is executed for the cluster. It shows newly deployed VM (deployed from vCenter)importUnmanagedInstance, is executed, with appropriate service offering, network- VM NIC details and custom disk offerings for this unmanaged VMlistVirtualMachinesAPI is called to verify showing new VM andclouddatabase is checked for containing new records invm_instance,volumes,nicstables.