Commit Graph

37123 Commits

Author SHA1 Message Date
Rohit Yadav 85765c3125
backup: simple NAS backup plugin for KVM (#9451)
This is a simple NAS backup plugin for KVM which may be later expanded for other hypervisors. This backup plugin aims to use shared NAS storage on KVM hosts such as NFS (or CephFS and others in future), which is used to backup fully cloned VMs for backup & restore operations. This may NOT be as efficient and performant as some of the other B&R providers, but maybe useful for some KVM environments who are okay to only have full-instance backups and limited functionality.

Design & Implementation follows the `networker` B&R plugin, which is simply:

- Implement B&R plugin interfaces
- Use cmd-answer pattern to execute backup and restore operations on KVM host when VM is running (or needs to be restored) - instead of a B&R API client, relies on answers from KVM agent which executes the operations
- Backups are full VM domain snapshots, copied to a VM-specific folders on a NAS target (NFS) along with a domain XML
- Backup uses libvirt feature: https://libvirt.org/kbase/live_full_disk_backup.html orchestrated via virsh/bash script (nasbackup.sh) as the libvirt-java lacks the bindings
- Supported instance volume storage for restore operations: NFS & local storage

Refer the doc PR for feature limitations and usage details:
https://github.com/apache/cloudstack-documentation/pull/429

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
Co-authored-by: Pearl Dsilva <pearl1594@gmail.com>
Co-authored-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
Co-authored-by: Suresh Kumar Anaparti <sureshkumar.anaparti@gmail.com>
2024-09-05 22:19:13 +05:30
Wido den Hollander c3f0d14d31
storage/object: Add support for Ceph RGW Object Store (#8389)
This feature adds support for Ceph's RADOS Gateway (RGW) support for the
Object Store feature of CloudStack.

The RGW of Ceph is Amazon S3 compliant and is therefor an easy and straigforward
implementation of basic S3 features.

Existing Ceph environments can have the RGW added as an additional feature to a
cluster already providing RBD (Block Device) to a CloudStack environment.

Introduce the BucketTO to pass to the drivers. This replaces just passing the bucket's name.

Some upcoming drivers require more information then just the bucket name to perform their actions,
for example they require the access and secret key which belong to the account of this bucket.

This is leftover code from a long time ago and this validation test has nu influence
on the end result on how a URL will be used afterwards.

We should support hosts pointing to an IPv6(-only) address out of the box.

For the code it does not matter if it's IPv4 or IPv6. This is the admin's choice.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
Co-authored-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2024-09-05 17:58:39 +05:30
Abhisar Sinha 605534b417
feature: Shared Storage Filesystem as a First Class Feature (#9208)
This PR implements Storage filesystem as a first class feature.
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Storage+Filesystem+as+a+First+Class+Feature

Documentation PR: apache/cloudstack-documentation#420

Co-authored-by: Wei Zhou <weizhou@apache.org>
2024-09-05 17:22:32 +05:30
Vishesh 72d0546d8b
Shared Network Firewall (Security groups) in Advanced zone without security groups (#9415) 2024-09-05 10:35:05 +02:00
João Jandre 6a559f46e3
Go back to default timestamp on logging (#8925) 2024-09-05 09:13:04 +02:00
Harikrishna 716ab205ea
Added update, enable, disable events to the updateStoragePool API (#9543) 2024-09-05 08:39:06 +02:00
Rohit Yadav 2245d98598 Merge remote-tracking branch 'origin/4.19' 2024-09-05 09:59:33 +05:30
Abhisar Sinha b7a2b0419c
server: Global setting to allow/disallow users to force stop a vm (#9569)
Global setting to allow/disallow users to force stop a vm

Fixes #6629

Co-authored-by: Suresh Kumar Anaparti <sureshkumar.anaparti@gmail.com>
Co-authored-by: Rohit Yadav <rohityadav89@gmail.com>
Co-authored-by: Bernardo De Marco Gonçalves <bernardomg2004@gmail.com>
2024-09-05 09:46:45 +05:30
Nicolas Vazquez 36d37f70a8
Display associated resource name on storage pools objects (#9449) 2024-09-05 09:39:07 +05:30
Abhishek Kumar 7e085d5e1d
framework/db: use HikariCP as default and improvements (#9518)
Per docs, if the mysql connector is JDBC2 compliant then it should use
the Connection.isValid API to test a connection.
(https://docs.oracle.com/javase/8/docs/api/java/sql/Connection.html#isValid-int-)

This would significantly reduce query lags and API throughput, as for
every SQL query one or two SELECT 1 are performed everytime a Connection
is given to application logic.

This should only be accepted when the driver is JDBC4 complaint.

As per the docs, the connector-j can use /* ping */ before calling
SELECT 1 to have light weight application pings to the server:
https://dev.mysql.com/doc/connector-j/en/connector-j-usagenotes-j2ee-concepts-connection-pooling.html

Replaces dbcp2 connection pool library with more performant HikariCP.
With this unit tests are failing but build is passing.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
Co-authored-by: Rohit Yadav <rohityadav89@gmail.com>
2024-09-05 09:36:58 +05:30
Abhishek Kumar 31b0ed0a18
framework/config,server: configkey caching (#9628)
Added caching for ConfigKey value retrievals based on the Caffeine
in-memory caching library.
https://github.com/ben-manes/caffeine
Currently, expire time for a cache is 30s and each update of the
config key invalidates the cache. On any update or reset of the
configuration, cache automatically invalidates for it.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2024-09-05 09:32:56 +05:30
Suresh Kumar Anaparti 787acfd172
vmware: Add support for VMware 8.0u2 (8.0.2.x) and 8.0u3 (8.0.3.x) (#9591)
Add support for VMware 8.0u2 (8.0.2.x) and 8.0u3 (8.0.3.x)
2024-09-05 09:29:00 +05:30
Wei Zhou dda9ef2dc8
UI: list vms with details=min when attach a volume to vm (#9634) 2024-09-04 18:44:19 +02:00
dependabot[bot] 5ff0b999da
Bump org.apache.commons:commons-compress from 1.21 to 1.26.0 (#8683) 2024-09-04 19:14:40 +05:30
Rene Peinthor 97c1a86b64
linstor: update java-linstor dependency to 0.5.2 (#9632)
0.5.1 had a bug while retrieving the bestErrorMessage
for an apicall answer.
2024-09-04 15:15:56 +05:30
Rohit Yadav b155e3d209 Merge remote-tracking branch 'origin/main' 2024-09-04 13:39:37 +05:30
Rohit Yadav 60c9c9adb6 Merge remote-tracking branch 'origin/4.19'
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2024-09-04 13:20:42 +05:30
Wei Zhou bc39392351
Fix PR lint error caused by deps/install-non-oss.sh (#9631) 2024-09-04 09:45:39 +02:00
Vishesh f9451fce3a
Notify users when upgrades are available or restart is required for network or VPC (#7610)
Co-authored-by: Harikrishna <harikrishna.patnala@gmail.com>
Co-authored-by: dahn <daan.hoogland@gmail.com>
2024-09-04 09:23:57 +02:00
Rohit Yadav a851ee375c Merge remote-tracking branch 'origin/4.18' into 4.19
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2024-09-04 12:30:00 +05:30
Harikrishna 601e9b67ea
Fix snapshot deletion on template creation failure (#9239)
* Don't delete the snapshot itself on the primary storage upon any failure

* Change an if condition
2024-09-04 12:14:50 +05:30
Wido den Hollander 39152323e3
kvm: Present the UUID of the VM as serial through smbios information (#9236)
This PR makes sure a KVM VM gets the UUID of the VM as a static serialnumber through smbios.

Some applications on primarily Windows servers require a stable serial number for licensing purposes. By providing this serial number we can make sure these applications can have a license configured.

More information: https://libvirt.org/formatdomain.html#smbios-system-information
2024-09-04 12:14:17 +05:30
Ofer Chen a0e16c55da
updated install-non-oss with vmware v7.0 and v8.0 (#9205)
* updated install-non-oss with vmware v7.0 and v8.0

* VMware vSphere automation and Customer connect

* added NetApp-Manageability-NM-SDK

* added juniper-contrail-api

* added juniper-tungsten-api

* added exit 0
2024-09-04 12:12:03 +05:30
Alain-Christian Courtines 24dc3178a3
Testcases Added (#9116)
* added a news tester file and directory for GsonHelper.java. Also created a new test in OVAProcessorTest.java

* added testcase to PasswordPolicyImplTest.java

* added proper imports for GsonHelperTest.java

* expected changed based on commit response

* adhere to checkstyle ruleset
2024-09-04 12:09:47 +05:30
NuxRo f2a1ee57ca
Update en.json (#8958)
Replace "Control Plane" with "Compute Resource"
2024-09-04 12:04:55 +05:30
Felipe 882dea21c1
Update .asf.yaml (#9629) 2024-09-04 12:02:28 +05:30
Wei Zhou e06f80e899
storage: fix private templates are not copied to new image store (#9206)
```
2024-06-10T12:24:50,711 INFO  [o.a.c.s.i.TemplateServiceImpl] (qtp776484396-20:[ctx-eb090c22, ctx-5fa5579c]) (logid:7a783000) Template Sync did not find 211-2-d536fb03-5f89-3e77-8dea-323315bcbfab on image store 3, may request download based on available hypervisor types
...
2024-06-10T12:24:51,043 INFO  [o.a.c.s.i.TemplateServiceImpl] (qtp776484396-20:[ctx-eb090c22, ctx-5fa5579c]) (logid:7a783000) Skip sync downloading private template 211-2-d536fb03-5f89-3e77-8dea-323315bcbfab to a new image store

```
2024-09-04 12:02:03 +05:30
Vishesh 0ba9a292d5
Add validation for secstorage.allowed.internal.sites (#9567)
* Add validation for secstorage.allowed.internal.sites

* Address comments

* Apply suggestions from code review

Co-authored-by: Suresh Kumar Anaparti <sureshkumar.anaparti@gmail.com>

* Address comments

---------

Co-authored-by: Suresh Kumar Anaparti <sureshkumar.anaparti@gmail.com>
2024-09-04 11:58:44 +05:30
Wei Zhou 1ca9a10912
VR: remove vpn user info when apply vpn users list (#9568)
Prior to this PR
```
root@r-663-VM:/var/cache/cloud# gzip -dk vpn_user_list.json.aae73e2c-32ba-44f3-bf47-426933a67bcb.gz
root@r-663-VM:/var/cache/cloud# /opt/cloud/bin/update_config.py vpn_user_list.json.aae73e2c-32ba-44f3-bf47-426933a67bcb
{'id': 'vpnuserlist', 'test': {'add': True, 'password': 'test', 'user': 'test'}}
{'vpn_users': [{'user': 'test', 'password': 'test', 'add': True}], 'type': 'vpnuserlist', 'delete_from_processed_cache': False}
 line = # Secrets for authentication using CHAP

 line = # client	server	secret			IP addresses

 line =

 line =

 line = test * test *
```

with this PR
```
root@r-663-VM:/var/cache/cloud# gzip -dk vpn_user_list.json.aae73e2c-32ba-44f3-bf47-426933a67bcb.gz
root@r-663-VM:/var/cache/cloud# /opt/cloud/bin/update_config.py vpn_user_list.json.aae73e2c-32ba-44f3-bf47-426933a67bcb
root@r-663-VM:/var/cache/cloud#
```
2024-09-04 11:57:28 +05:30
Abhishek Kumar 2143559020
server: fix volume migration check for local volume attach on a stopped (#9578)
vm

Fixes #8645

When a local storage volume is being attached to a stopped VM, volume
migration is only needed when it is not present on the last host as the
current host ID will be null in the database.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2024-09-04 11:56:17 +05:30
Suresh Kumar Anaparti b78aede2b7
Updated listStoragePools response - added new managed parameter (#9588) 2024-09-04 11:54:33 +05:30
Gabriel Pordeus Santos 628aba618b
add min details to search view (#9616) 2024-09-04 11:43:25 +05:30
Suresh Kumar Anaparti f9c4edc66f
SystemVM template changes - updated debian version & other changes (#9625)
* systemvm template changes, to explicitly update the module dependencies, vmware hardware version updated to 13, fsck added in grub

* Update systemvm template debian version to 12.7
2024-09-04 11:42:41 +05:30
Abhishek Kumar 0692a296ce
engine-orchestration: fix issue for empty product in vm metadata (#9610)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
Co-authored-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2024-09-03 14:03:57 +02:00
Rene Peinthor 537c0a1e8d
linstor: set/unset allow-two-primaries and protocol on rc level (#9560) 2024-09-03 16:31:07 +05:30
Wei Zhou 929cfbc3e2
Update to Debian 12 (#9627) 2024-09-03 16:28:16 +05:30
nvazquez af607b9c4e
Merge branch '4.19' 2024-09-02 21:05:03 -03:00
Nicolas Vazquez abaf4b52ad
Fix VGPU available devices listing (#9573)
* Fix VGPU available devices listing

* Missing space

* Refactor
2024-09-02 21:04:06 -03:00
Felipe 8c301b16ff
fixed incorrect label in vrs and svms (#9617) 2024-09-02 10:17:42 +02:00
Wei Zhou a5f55602fc
LOGGER -> logger in CloudInitUserDataProvider.java 2024-08-30 08:51:12 +02:00
Wei Zhou 6e988b8953
Merge remote-tracking branch 'apache/4.19' 2024-08-30 08:16:31 +02:00
Abhishek Kumar 0204cb75e3
ui: show guest networks for guest vlans list (#9554)
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2024-08-29 15:15:33 +02:00
Nicolas Vazquez b4325eccfb
Fix userdata append header restrictions (#9575) 2024-08-29 11:09:14 +02:00
slavkap 12d9c26747
Added support for storpool_qos service (#8755) 2024-08-29 09:23:25 +02:00
Henrique Sato 2a1db67eeb
Improve logs in primary storage removal process (#8649)
* Improve delete storage pool logs

* Address Daniel's reviews

Co-authored-by: Daniel Augusto Veronezi Salvador <38945620+GutoVeronezi@users.noreply.github.com>

* Address Daniel's review

---------

Co-authored-by: Henrique Sato <henrique.sato@scclouds.com.br>
Co-authored-by: Daniel Augusto Veronezi Salvador <38945620+GutoVeronezi@users.noreply.github.com>
2024-08-28 09:06:50 -03:00
Rohit Yadav e6cb7f26ac
systemvm: have flags to check x86_64 to install specifics for amd64 arch (#9600)
This flips conditional checks to check specifically for x86_64/amd64 to
install dependencies in systemvm.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2024-08-28 17:32:01 +05:30
Abhishek Kumar 5a496e725b Merge remote-tracking branch 'apache/4.19' 2024-08-28 16:07:31 +05:30
Fabricio Duarte 7692b745e8
Fix NPE when sending copy command to least busy SSVM (#9125) 2024-08-28 12:06:16 +02:00
Harikrishna 48e745cad2
Add certificate validation to check headers (#9255) 2024-08-28 11:36:44 +02:00
Suresh Kumar Anaparti c05edc40f4
Updated invalid parameter/value to com.cloud.exception.InvalidParameterValueException (#9455) 2024-08-28 08:54:43 +02:00