Commit Graph

36593 Commits

Author SHA1 Message Date
nvazquez d5efb869fd
Merge branch 'main' into nsx-integration 2024-02-03 17:37:25 -03:00
nvazquez 8021f0cf3c
Fix unit tests 2024-02-03 17:15:15 -03:00
Pearl Dsilva 5752c8f1b6
NSX: fix smoke test failure for ACLs (#9) 2024-02-03 17:15:10 -03:00
Pearl Dsilva ba77dbd56e
NSX: Fix ACL rule removal on replacement and fix rule order (#11) 2024-02-03 17:15:05 -03:00
Nicolas Vazquez 5792ece168
Fix VPC restart with cleanup (#12) 2024-02-03 17:15:02 -03:00
Pearl Dsilva 4a19c43103
NSX: Add SourceNAT service to the default Routed offering for VPC (#13) 2024-02-03 17:14:55 -03:00
nvazquez aac547b769
Fix unit test 2024-02-03 17:14:51 -03:00
Pearl Dsilva 7c6c9e62ec
NSX: Improve NSX resource cleanup process (#3) 2024-02-03 17:14:46 -03:00
Pearl Dsilva 9313d39315
Nsx: Support internal LB (#4)
* NSX: Support internal LB service in NSX

* add lb removal logic

* Fix UI issue hiding internal LB tab

* Refactor method name

---------

Co-authored-by: nvazquez <nicovazquez90@gmail.com>
2024-02-03 17:14:39 -03:00
Pearl Dsilva 8beaa44895
Nsx vpc routed mode (#5)
* NSX: Fix VPC routed mode

* NSX: VPC route mode

* remove unnecessary changes
2024-02-03 17:14:29 -03:00
Pearl Dsilva e645f724b5
NSX: Fix custom ACL check (#2)
* NSX: Fix custom ACL check

* NSX: Fix custom ACL check
2024-02-03 17:14:21 -03:00
Wei Zhou af8a582055
api/utils/ui: List protocol numbers and icmp types (#8293)
This PR contains the following changes

* adds a new API to list network procotols and details/types/codes, etc
* get network protocols on UI and add dropdowns for procotol numbers and icmp types/codes
* validate icmp types/codes when add network ACL
2024-02-02 15:49:04 +01:00
Abhishek Kumar 7dffbc6e47 Updating pom.xml version numbers for release 4.20.0.0-SNAPSHOT
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2024-02-02 18:16:37 +05:30
Abhishek Kumar cf0d436fc8 Merge remote-tracking branch 'apache/4.19' into main 2024-02-02 18:15:21 +05:30
Abhishek Kumar 67bd3aad71 Updating tools/checkstyle/pom.xml version numbers for release 4.19.1.0-SNAPSHOT
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2024-02-02 18:13:20 +05:30
Abhishek Kumar a7b97ff3b0 Updating pom.xml version numbers for release 4.19.1.0-SNAPSHOT
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2024-02-02 18:06:04 +05:30
Lucas Martins 39e0a8e8d4
Change Cryptsetup validation (#8482)
Co-authored-by: lucas.martins.scclouds <lucas.martins@scclouds.com.br>
2024-01-31 10:23:53 -03:00
Abhishek Kumar 2746225b99 Updating pom.xml version numbers for release 4.19.0.0
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2024-01-29 10:21:52 +05:30
Vishesh fedcf66de0
Externalise a few timeouts & fix timeout for hostSupportsUefi in libvirt ready command wrapper (#8547)
This PR fixes bug introduced in #8502. Timeout for script execution was set to 60 ms instead of 60s which resulted in host not getting UEFI enabled. This is a blocker for 4.19 release.

We do this by introducing a new agent parameter `agent.script.timeout` (default - 60 seconds) to use as a timeout for the script checking host's UEFI status.

We also externalize the timeout for the ReadyCommand by introducing a new global setting `ready.command.wait` (default - 60 seconds).

For ModifyStoragePoolCommand, we don't externalize the timeout to avoid confusion for the user. Since, the required timeout can vary depending on the provider in use and we are only setting the wait for default host listener for now. Instead, we reuse the global `wait` setting by dividing it by `5` making the default value of 6 minutes (1800/5 = 360s) for ModifyStoragePoolCommand.

Note: the actual time, the MS waits is twice the wait set for a Command. Check reference code below.
19250403e6/engine/orchestration/src/main/java/com/cloud/agent/manager/AgentAttache.java (L406-L442)
2024-01-27 23:36:13 +05:30
Pearl Dsilva 5a4f38c2fc
NSX: Add retry logic with sleep to delete segments (#8554)
* NSX: Add retry logic with sleep to delete segments

* add logs
2024-01-23 11:36:20 -03:00
Pearl Dsilva 80365c8333
NSX: Fix Routed Mode for Isolated and VPC networks (#8534)
* NSX: Fix Routed Mode for Isolated and VPC networks

* NSX: Fix Routed mode - add checks for ports added for FW rules

* clean up code

* fix build failure
2024-01-23 08:13:24 -05:00
Pearl Dsilva e518f1933a
NSX: Add check for ICMP code / type for NSX zones (#8542) 2024-01-22 20:06:35 -03:00
nvazquez e51c400f82
Merge branch 'main' into nsx-integration 2024-01-22 08:10:03 -03:00
Abhishek Kumar 19250403e6
ui: fix create k8s cluster multiple listing (#8539)
Fixes #8536

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2024-01-22 10:26:40 +05:30
Pearl Dsilva 19ae12a05a
NSX: Add passive monitor for NSX LB to test whether a server is available (#8533)
* NSX: Add passive monitor for NSX LB to test whether a server is available

* Add active monitors too

* fix build failure
2024-01-21 22:18:05 -03:00
Nicolas Vazquez f01bb5d440
NSX: Improve segment deletion process (#8538) 2024-01-19 16:59:05 -03:00
Pearl Dsilva 330c99ca57 fix test failure 2024-01-19 12:53:23 -05:00
nvazquez 33fc9d8443
Merge branch 'main' into nsx-integration 2024-01-19 12:56:42 -03:00
Pearl Dsilva 080f171c6d
NSX: Cleanup NSX resources during k8s cluster cleanup (#8528) 2024-01-19 12:48:08 -03:00
kishankavala 80bbb29abf
CleanUp Async Jobs after mgmt server maintenance (#8394)
This PR fixes moves resources stuck in transition state during async job cleanup

Problem:
During maintenance of the management server, other servers in the cluster or the same server after a restart initiate async job cleanup. However, this process leaves resources in a transitional state. The only recovery option currently available is to make direct database changes.

Solution:
This PR introduces a resolution by changing Volume, Virtual Machine, and Network resources from their transitional states. This adjustment enables the reattempt of failed operations without the need for manual database modifications.
2024-01-19 13:26:25 +05:30
Pearl Dsilva 2aee0fbd5c fix test - build failure 2024-01-18 18:57:23 -05:00
Pearl Dsilva 13a2aab775 fix test - build failure 2024-01-18 18:37:06 -05:00
Pearl Dsilva c325b8a64d fix test 2024-01-18 17:50:28 -05:00
Pearl Dsilva 3027501d4b
NSX: Add appropriate error message when icmp type is set to -1 for NSX (#8504)
* NSX: Add appropriate error message when icmp type is set to -1 for NSX

* address comments

* update text
2024-01-18 11:45:58 -05:00
Nicolas Vazquez 8d42ca8ccf
Use project version on pom dependencies (#8529)
This PR fixes the POM dependencies from a hardcoded value to the project.version property on dependencies
2024-01-18 20:16:06 +05:30
Andrija Panic 3bcf6f0faf
Rename "Import QCOW...." to "Import QCOW2....." (#8519)
Minor UI updates, renaming "Import QCOW...." to "Import QCOW2....."
2024-01-18 18:07:07 +05:30
Wei Zhou 62efe7433d
scripts: mark multipath scripts as executable (#8524)
This PR marks the multipath scripts as executable.

This fixes the issue that in 4.19.0.0-RC2, vms can not be stopped in ubuntu hosts.

2024-01-17 12:56:26,061 ERROR [c.c.v.VmWorkJobHandlerProxy] (Work-Job-Executor-4:ctx-e3503563 job-38/job-39 ctx-42706275) (logid:81ede4e9) Invocation exception, caused by: com.cloud.utils.exception.CloudRuntimeException: Unable to stop the virtual machine due to java.lang.NullPointerException
        at com.cloud.utils.script.Script.getExitValue(Script.java:74)
        at com.cloud.hypervisor.kvm.storage.MultipathSCSIAdapterBase.runScript(MultipathSCSIAdapterBase.java:476)
        at com.cloud.hypervisor.kvm.storage.MultipathSCSIAdapterBase.disconnectPhysicalDiskByPath(MultipathSCSIAdapterBase.java:226)
        at com.cloud.hypervisor.kvm.storage.KVMStoragePoolManager.disconnectPhysicalDiskByPath(KVMStoragePoolManager.java:205)
        at com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.cleanupDisk(LibvirtComputingResource.java:3335)
        at com.cloud.hypervisor.kvm.resource.wrapper.LibvirtStopCommandWrapper.execute(LibvirtStopCommandWrapper.java:101)
        at com.cloud.hypervisor.kvm.resource.wrapper.LibvirtStopCommandWrapper.execute(LibvirtStopCommandWrapper.java:49)
        at com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRequestWrapper.execute(LibvirtRequestWrapper.java:78)
        at com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.executeRequest(LibvirtComputingResource.java:1903)
2024-01-18 18:06:28 +05:30
Pearl Dsilva a4f63053b6
NSX: Make LB service selectable in network offering (#8512)
* NSX: Make LB service selectable in network offering

* fix label

* address comments

* address comments
2024-01-16 15:50:49 -05:00
Pearl Dsilva 19bbec4ade
NSX,UI: Deduplicate network list when creating kubernetes clusters (#8513) 2024-01-16 08:16:00 -05:00
Vishesh c3b77cb7b8
Fix host stuck in connecting state (#8502)
There are a lot of test failures due to test_vm_life_cycle.py in multiple PRs due to host not available for migration of VMs.
#8438 (comment)
#8433 (comment)
#7344 (comment)

While debugging I noticed that the hosts get stuck in Connecting state because MS is waiting for a response of the ReadyCommand from the agent. Since we take a lock on connection and disconnection, restarting the agent doesn't work. To fix this, we have to restart the MS or wait for ~1 hour (default timeout).

On the agent side, it gets stuck waiting for a response from the Script execution.

To reproduce, run smoke/test_vm_life_cycle.py (TestSecuredVmMigration test class to be specific). Once the tests are complete, you will notice that some hosts are stuck in Connecting state. And restarting the agent fails due to the named lock. Locks on DB can be checked using the below query.

SELECT *
FROM performance_schema.metadata_locks
INNER JOIN performance_schema.threads ON THREAD_ID = OWNER_THREAD_ID
WHERE PROCESSLIST_ID <> CONNECTION_ID() \G;

This PR adds a wait for the ready command and a timeout to the Script execution to ensure that the thread doesn't get stuck and the named lock from database is released.
2024-01-15 13:56:34 +05:30
nvazquez 2b05dd93a1
Merge branch 'main' into nsx-integration 2024-01-12 14:13:53 -03:00
Pearl Dsilva b7af40413b
CKS: Add action to during firewall rule creation (#8498) 2024-01-12 14:07:32 -03:00
Abhishek Kumar 3936f7c2cf
vm-import: kvm import and fix volume size when lesser than 1GiB (#8500)
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
Co-authored-by: Daan Hoogland <daan@onecht.net>
2024-01-12 13:32:02 +01:00
Nicolas Vazquez a3a4833c3e
Fixes for KVM unmanaged instances import on advanced network and VNC password (#8492)
This PR fixes a regression caused by #8465 on advanced zones, import fails with:

2024-01-10 12:13:33,234 DEBUG [o.a.c.e.o.NetworkOrchestrator] (API-Job-Executor-3:ctx-991bbe9f job-128 ctx-f49517d4) (logid:d7b8e716) Allocating nic for vm 142272e8-9e2e-407b-9d7e-e9a03b81653c in network Network {"id": 204, "name": "Isolated", "uuid": "9679fac5-e3ac-4694-a57b-beb635340f39", "networkofferingid": 10} during import
2024-01-10 12:13:33,239 ERROR [o.a.c.v.UnmanagedVMsManagerImpl] (API-Job-Executor-3:ctx-991bbe9f job-128 ctx-f49517d4) (logid:d7b8e716) Failed to import NICs while importing vm: i-2-31-VM
com.cloud.exception.InsufficientVirtualNetworkCapacityException: Unable to acquire Guest IP  address for network Network {"id": 204, "name": "Isolated", "uuid": "9679fac5-e3ac-4694-a57b-beb635340f39", "networkofferingid": 10}Scope=interface com.cloud.dc.DataCenter; id=1
	at org.apache.cloudstack.engine.orchestration.NetworkOrchestrator.importNic(NetworkOrchestrator.java:4582)
	at org.apache.cloudstack.vm.UnmanagedVMsManagerImpl.importNic(UnmanagedVMsManagerImpl.java:859)
	at org.apache.cloudstack.vm.UnmanagedVMsManagerImpl.importVirtualMachineInternal(UnmanagedVMsManagerImpl.java:1198)
	at org.apache.cloudstack.vm.UnmanagedVMsManagerImpl.importUnmanagedInstanceFromHypervisor(UnmanagedVMsManagerImpl.java:1511)
	at org.apache.cloudstack.vm.UnmanagedVMsManagerImpl.baseImportInstance(UnmanagedVMsManagerImpl.java:1342)
	at org.apache.cloudstack.vm.UnmanagedVMsManagerImpl.importUnmanagedInstance(UnmanagedVMsManagerImpl.java:1282)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

Also, addresses the VNC password field set instead of a fixed string
2024-01-12 14:14:01 +05:30
Nicolas Vazquez 59e78cbc45
Fix KVM unmanage disks path (#8483)
This PR fixes the volumes path on KVM import unmanaged instances

Fixes: #8479
2024-01-11 14:45:57 +05:30
Nicolas Vazquez 64f4480ef4
Fix Vmware to KVM migration (#8485)
This PR fixes the Vmware to KVM migration issue on main branch

Fixes: #8473
2024-01-11 12:02:02 +05:30
Abhishek Kumar c43b7c04f4
ui: fix labels when migrating instances from vmware (#8490)
Fixes #8474
Renames labels when importing from VMware
2024-01-11 11:58:56 +05:30
Suresh Kumar Anaparti e87ce0c723
Fix reorder/list pools when cluster details are not set, while deploying vm / attaching volume (#8373)
This PR fixes reorder/list pools when cluster details are not set, while deploying vm / attaching volume.

Problem:
Attach volume to a VM fails, on infra with zone-wide pools & vm.allocation.algorithm=userdispersing as the cluster details are not set (passed as null) while reordering / listing pools by volumes.

Solution:
Ignore cluster details when not set, while reordering / listing pools by volumes.
2024-01-10 18:13:32 +05:30
Vishesh 4f40eae1c4
DRS: Use free metrics insteado of used for computation (#8458)
This PR makes changes to use cluster's free metrics instead of used while computing imbalance for the cluster. This allows DRS to run for clusters where hosts doesn't have the same amount of metrics.
2024-01-10 17:52:46 +05:30
Nicolas Vazquez b8d3e342be
Fix KVM import unmanaged instances on basic zone (#8465)
This PR fixes import unmanaged instances on KVM basic zones, on top of #8433

Fixes: #8439: point 1
2024-01-10 13:21:00 +05:30