Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
1a39dd0
B OpenNebula/one#6701: fix total_mb type in s3/monitor (#3213)
onenhansen Sep 2, 2024
a4c040a
B ##6665: Fix missing CLEANUP_MEMORY_ON_STOP for KVM migrations
rsmontero Sep 2, 2024
08e41f1
M #-: Fix *.xsd (#3205)
paczerny Sep 3, 2024
b6898cc
B #6694: Check error code of read function (#3208)
paczerny Sep 4, 2024
be752c3
B #6607: Fix size of restored disk from backup (#3210)
paczerny Sep 4, 2024
82630a6
B #6505: Fix volatile disk backup (#3212)
paczerny Sep 4, 2024
af05a4c
F #6524: Check free space on backup DS (#3214)
paczerny Sep 4, 2024
9ce5fc5
B OpenNebula/one#6707: Boolean default values on user inputs (#3215)
dcarracedo Sep 5, 2024
8c745a9
B #6692: Check VMGroupRole in Inter-role Anti-affinity rules
mar-s-tation Aug 11, 2024
a40c048
M #-: Fix spelling in onevm command help
Shanobi Jan 19, 2024
c546ed5
B #6687: Fix monitoring initialization and restart
paczerny Sep 5, 2024
ab0badc
B #6532: Sunstone fix backup volatile disk checkmark (#3216)
paczerny Sep 5, 2024
027b03f
B OpenNebula/one#6701: Fix total_mb in s3/monitor (#3218)
paczerny Sep 9, 2024
1e3757d
F #6577: Replace aenum by enum (#3220)
xorel Sep 10, 2024
8e3ec6f
B OpenNebula/one#6716: Correct instances amount when instantiate (#3223)
vichansson Sep 10, 2024
15b90ca
F #6717: remove text (EE only) Store Restic (#3224)
jloboescalona2 Sep 11, 2024
158b000
F OpenNebula/one#6708: Fixed review of support tab in fireedge (#3227)
jloboescalona2 Sep 12, 2024
c8dbd9a
F OpenNebula/one#6624: Add list list-disk-snapshots (#3228)
ArnauGabrielAtienza Sep 16, 2024
e705cb7
F OpenNebula/one#6624: Fix no snapshots available bug (#3229)
ArnauGabrielAtienza Sep 16, 2024
cd4bcba
B OpenNebula/one#6725: Fix problems in vrouters in Sunstone (#3230)
dcarracedo Sep 18, 2024
4afac00
F OpenNebula/One#6718: Add DataTable rows as lists functionality
jloboescalona2 Sep 19, 2024
ce28e10
B #6505: Fix volatile disk backup (Ceph) (#3225)
1gramos Sep 20, 2024
03ad300
F OpenNebula/One#6718: Fix error timeout (#3236)
jloboescalona2 Sep 23, 2024
6893305
M #-: OpenNebula vm exporter wrong unit for total mem
rsmontero Sep 23, 2024
80dc9b4
F OpenNebula/one#6718: add labels in rows (#3238) (#3239)
jloboescalona2 Sep 23, 2024
c788e5b
F OpenNebula/One#6718: lint-fix (#3240)
jloboescalona2 Sep 23, 2024
21dbf2a
B OpenNebula/one#6596: Fix Host NUMA nodes after VM migration (#3226)
paczerny Sep 24, 2024
48506a7
M #-: onedb fsck check history seqence id (#3237)
paczerny Sep 24, 2024
8950a11
F OpenNebula/one#6703: VM's table display hostname (#3242)
vichansson Sep 24, 2024
efa5e62
M #-: Protect the labels column to check that is always a string (#3244)
dcarracedo Sep 25, 2024
6db0940
F #6718: add data-cy for tests (#3245)
jloboescalona2 Sep 25, 2024
93459a9
F OpenNebula/one#6641: Add the "string-phone" transparent proxy (#3221)
sk4zuzu Sep 26, 2024
3d337d9
B OpenNebula/one#6739: Fix VM restore disk selection (#3248)
vichansson Sep 27, 2024
fd9daa2
M #~: horizontally align the ssh console (#3249)
jloboescalona2 Sep 27, 2024
ba8c46e
B #-: Do not use ERB with trim mode (alma8 fix) (#3250)
sk4zuzu Sep 27, 2024
d570f6b
F #2111: Optimize VM history handling (#3243)
paczerny Sep 30, 2024
7f67cc6
F #6411 + B #6741: Incremental backups for Ceph datastore
rsmontero Oct 4, 2024
9139503
B OpenNebula/one#6746: Fix DS LIMIT_MB parsing (#3254)
vichansson Oct 8, 2024
a47839f
Optimize snapshots usage in RBD incr. restore
1gramos Oct 8, 2024
527d1ed
B #-: Add tproxy fixes: socket leak + nft formatting (#3256)
sk4zuzu Oct 9, 2024
f156659
B OpenNebula/one#6744: Fix host requirements expression (#3257)
vichansson Oct 9, 2024
5b1f99a
F OpenNebula/one#6742: Update OS & CPU tab layout (#3262)
vichansson Oct 10, 2024
b0ba87b
B OpenNebula/one#6746: Always display DS limit if set (#3259)
vichansson Oct 10, 2024
0f8d43a
L #-: Lint fix (#3263)
vichansson Oct 10, 2024
9f92eab
B #6689: append --block to change-media call in reconfigure
atodorov-storpool Aug 9, 2024
25a0941
F #-: Fix use of --data-pool flag in Ceph's DS.cp
1gramos Oct 11, 2024
d486ee1
F #-: Fix Ceph VM restore ignoring EC_POOL_NAME
1gramos Oct 11, 2024
1f003cb
B OpenNebula/one#6744: Fix placement expression formatting (#3258)
vichansson Oct 14, 2024
c474682
M #-: Fix apiResponse data handling (#3268)
vichansson Oct 18, 2024
383bd53
B OpenNebula/one#6758: Fix QEMU_GA ping monitoring
dann1 Oct 16, 2024
d8fcdbb
B OpenNebula/one#6751: Fix raw data validation handling (#3269)
vichansson Oct 21, 2024
69dafc8
L OpenNebula/one#6751: Lint fix (#3270)
vichansson Oct 21, 2024
4a5c6aa
M #-: Clear ramdisk selection properly (#3272)
vichansson Oct 21, 2024
e008ef4
M #-: Clear ramdisk on kernel path clear (#3273)
vichansson Oct 22, 2024
a4939a2
M #-: Change tproxy strategy for handling ARP requests (#3279)
sk4zuzu Oct 29, 2024
ed0b8ca
L #-: Useless assignment to variable - template
rsmontero Nov 4, 2024
2ac12ef
F OpenNebula/one#6712: Add extra check for a hostname (#3276)
Nov 4, 2024
206ba9e
F OpenNebula/one#6770: Rebuild gem locks (#3284)
sk4zuzu Nov 4, 2024
64c6801
L #-: Remove files to be obsoleted from rubocop
tinova Nov 4, 2024
948a5a9
B OpenNebula/one#6761: Include `TM_MAD_SYSTEM` (#3282)
vichansson Nov 4, 2024
e815d97
F OpenNebula/one#6770: Downgrade unf gem (< 0.2.0) for RedHat8 and Al…
sk4zuzu Nov 5, 2024
f5b2a17
B #6726: Fix CLI paramters converted wrongly to 0 id (#3287)
paczerny Nov 5, 2024
2340b0c
B OpenNebula/one#6730: Search admin users in the right array (#3289)
dcarracedo Nov 6, 2024
7497ced
M #-: Bump version 6.10.1 (#3290)
xorel Nov 6, 2024
3ce3a17
M #-: Bump version to 6.10.2
tinova Nov 8, 2024
103edae
M #-: Clarify live migration storage limitation
rsmontero Nov 11, 2024
ec16b53
F OpenNebula/One#6790: Fix Hugepages bug in Sunstone (#3295)
jloboescalona2 Nov 12, 2024
94532aa
Fix #-: DS ceph export: use CEPH_KEY (#3296)
1gramos Nov 13, 2024
2802647
F OpenNebula/one#6790: Fix for Hugepages in RSunstone monitoring (#3299)
jloboescalona2 Nov 19, 2024
afdf73c
F #783 Fix randomly failing GOCA tests (#6789)
jaimecb Nov 20, 2024
8b99261
F #6782 Extend GOCA OSVec struct (#3301)
jaimecb Nov 20, 2024
47c6bed
F #6723: Add deprecated msg for import VM command (#3265)
paczerny Nov 21, 2024
db4bad2
M #-: Replace raw pointers with references/smart pointers. (#3285)
Nov 21, 2024
ef65ccf
B #-: Fix javadoc reference (#3292)
xorel Nov 21, 2024
f3be5f7
B #6784: Remove unneeded/non-existing python dep (#3293)
xorel Nov 21, 2024
7e4430a
B #6548: Fix kvm attributes
paczerny Nov 14, 2024
9df9366
B #6793: Fix crash of onedb fsck on MarketPlaceApp (#3302)
paczerny Nov 22, 2024
f9d40c3
M #-: Always b64 encode start script (#3305)
vichansson Nov 22, 2024
134e31a
B #-: Fixes null check for appConfig (#3310)
vichansson Nov 27, 2024
c13de82
B OpenNebula/one#6750: Fix iotune attributes not being passed to VM
Nov 27, 2024
57841bd
F OpenNebula/one#6771: Replace deprecated OpenSSL function calls. (#3…
Nov 27, 2024
a158b0e
L #-: Update to rubocop 1.69.0
tinova Nov 27, 2024
6b73512
F OpenNebula/one#6771: Fix build for older OpenSSL versions (#3311)
Nov 28, 2024
d4a0453
M #-: Append ACK to README
pedroielpi3 Dec 5, 2024
4a2b28b
B OpenNebula/one#6768: Cherry picking locked filter from master (#3316)
angeryuu Dec 5, 2024
89d3681
F #6756: Scaleway drivers for OneProvision
MiguelERuiz Dec 5, 2024
8c98a87
Revert "F #6756: Scaleway drivers for OneProvision"
rsmontero Dec 5, 2024
b58d339
B #-: Update AWS elastic driver to new Ruby gem interface
rsmontero Dec 9, 2024
020a6d7
M #~: fix NETWORK_ID when attach network (#3322)
jloboescalona2 Dec 10, 2024
32838a4
B OpenNebula/one#6817: Image dev_prefix must be lowercase (#3323)
dcarracedo Dec 10, 2024
72e57ee
B OpenNebula/one#6788: Fix host graph API call (#3324)
vichansson Dec 11, 2024
e379bd6
F #6669: Support for VLAN filtering and QinQ
rsmontero Dec 11, 2024
929d62e
B OpenNebula/one#6759: Add extra checks for ports in SecurityGroup va…
Dec 11, 2024
953d741
B OpenNebula/one#6757: Add missing boot order (#3325)
vichansson Dec 11, 2024
a456c81
F #6185: Support huge pages without CPU pinning
feldsam Dec 16, 2023
8deb960
B OpenNebula/one#6293: Add vGPU profile selector (#3326)
vichansson Dec 12, 2024
c395b00
F #6669: Fix typo in update function
rsmontero Dec 12, 2024
2fcd9a3
F #6669: Fix regexp to detect port ranges
rsmontero Dec 12, 2024
32f36bd
B OpenNebula/one#6765: Improve QEMU Guest Agent monitoring. (#3328)
dann1 Dec 13, 2024
da939aa
Add prometheus power collector
brodriguez-opennebula Dec 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,11 @@ Copyright 2002-2024, OpenNebula Project, OpenNebula Systems (formerly C12G Labs)
Licensed 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.

## Acknowledgements

Some of the software features included in this repository have been made possible through the funding of the following innovation projects:

- [SovereignEdge.Cognit](https://cognit.sovereignedge.eu/) (Grant Agreement 101092711), through the European Union’s Horizon Europe Research and Innovation Programme.
- [ONEedge5G](https://opennebula.io/innovation/oneedge5g/) (Grant Agreement TSI-064200-2023-1), supported by the Spanish Ministry for Digital Transformation and Civil Service through the UNICO I+D 6G Program, co-funded by the European Union – NextGenerationEU through the Recovery and Resilience Facility (RRF).
- [ONEnextgen](http://onenextgen.eu/) (Grant Agreement UNICO IPCEI-2023-003), supported by the Spanish Ministry for Digital Transformation and Civil Service through the UNICO IPCEI Program, co-funded by the European Union – NextGenerationEU through the Recovery and Resilience Facility (RRF).
16 changes: 16 additions & 0 deletions include/Backups.h
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,11 @@ class Backups
config.replace("LAST_BACKUP_SIZE", size);
}

void last_backup_format(const std::string& format)
{
config.replace("LAST_BACKUP_FORMAT", format);
}

void last_increment_id(int id)
{
config.replace("LAST_INCREMENT_ID", id);
Expand Down Expand Up @@ -224,6 +229,15 @@ class Backups
return sz;
}

std::string last_backup_format() const
{
std::string fmt;

config.get("LAST_BACKUP_FORMAT", fmt);

return fmt;
}

int last_increment_id() const
{
int id;
Expand Down Expand Up @@ -283,6 +297,8 @@ class Backups

config.erase("LAST_BACKUP_ID");
config.erase("LAST_BACKUP_SIZE");

config.erase("LAST_BACKUP_FORMAT");
}

/**
Expand Down
8 changes: 4 additions & 4 deletions include/DocumentPool.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,10 @@ class DocumentPool : public PoolSQL
int * oid,
std::string& error_str)
{
*oid = PoolSQL::allocate(
new Document(-1, uid, gid, uname, gname, umask, type,
std::move(template_contents)),
error_str);
Document doc {-1, uid, gid, uname, gname, umask, type,
std::move(template_contents)};

*oid = PoolSQL::allocate(doc, error_str);

return *oid;
}
Expand Down
23 changes: 22 additions & 1 deletion include/Driver.h
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,14 @@ class Driver
streamer.register_action(t, a);
};

/**
* Set a callback to be called when the driver is restarted and reconnects
*/
void set_reconnect_callback(std::function<void()> callback)
{
reconnect_callback = callback;
}

protected:
Driver() = default;

Expand Down Expand Up @@ -161,6 +169,11 @@ class Driver
*/
std::atomic<bool> terminate = {false};

/**
* Reconnect callback, called when the driver restarts
*/
std::function<void()> reconnect_callback;

/**
* Starts the driver. This function creates a new process and sets up the
* communication pipes.
Expand Down Expand Up @@ -314,6 +327,12 @@ ::start_driver(std::string& error)

rc = read(from_drv, (void *) buffer, sizeof(char) * 31);

if ( rc < 0 )
{
error = "Driver initialization failed, unable to read from driver\n";
return -1;
}

buffer[rc]='\0';

std::istringstream iss(buffer);
Expand All @@ -325,7 +344,7 @@ ::start_driver(std::string& error)

if ( action != "INIT" || result != "SUCCESS" )
{
error = "Driver initialization failed\n";
error = "Driver initialization failed, expected INIT SUCCESS message\n";
return -1;
}

Expand All @@ -352,6 +371,8 @@ ::start_listener()
start_driver(error);

streamer.fd(from_drv);

if (reconnect_callback) reconnect_callback();
}
});
}
Expand Down
9 changes: 9 additions & 0 deletions include/DriverManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,12 @@ class DriverManager

static Log::MessageType log_type(char type);

/**
* Callback called when the driver is reconnected. Override this function
* to perform any actions when the driver is reconnected
*/
virtual void reconnected() {};

private:
std::map<std::string, std::unique_ptr<D>> drivers;

Expand Down Expand Up @@ -207,7 +213,10 @@ int DriverManager<D>::start(std::string& error)
{
for (auto& driver : drivers)
{
driver.second->set_reconnect_callback(std::bind(&DriverManager<D>::reconnected, this));

auto rc = driver.second->start(error);

if (rc != 0)
{
NebulaLog::error("DrM", "Unable to start driver '" + driver.first
Expand Down
4 changes: 2 additions & 2 deletions include/GroupPool.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class GroupPool : public PoolSQL
/**
* Identifier for the oneadmin group
*/
static const int ONEADMIN_ID;
static constexpr int ONEADMIN_ID = 0;

/**
* Default name for the users group
Expand All @@ -52,7 +52,7 @@ class GroupPool : public PoolSQL
/**
* Identifier for the user group
*/
static const int USERS_ID;
static constexpr int USERS_ID = 1;

/* ---------------------------------------------------------------------- */
/* Methods for DB management */
Expand Down
43 changes: 43 additions & 0 deletions include/HostShareCapacity.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#ifndef HOST_SHARE_CAPACITY_H_
#define HOST_SHARE_CAPACITY_H_

#include "Template.h"
#include "Attribute.h"

/* ------------------------------------------------------------------------ */
Expand Down Expand Up @@ -53,6 +54,48 @@ struct HostShareCapacity
VectorAttribute * topology;

std::vector<VectorAttribute *> nodes;

/**
* Get the VM capacity from the template
* @param vid the VM ID
* @param tmpl the VM template. Warning: the HostShareCapacity use pointers to
* the tmpl, so it must exist for the lifetime of the HostareCapacity
*/
void set(int vid, Template& tmpl)
{
float fcpu;

pci.clear();
nodes.clear();

vmid = vid;

if ((tmpl.get("MEMORY", mem) == false) ||
(tmpl.get("CPU", fcpu) == false))
{
cpu = 0;
mem = 0;
disk = 0;

vcpu = 0;

return;
}

cpu = (int) (fcpu * 100); //%
mem = mem * 1024; //Kb
disk = 0;

tmpl.get("VCPU", vcpu);

tmpl.get("PCI", pci);

tmpl.get("NUMA_NODE", nodes);

topology = tmpl.get("TOPOLOGY");

return;
}
};

#endif /*HOST_SHARE_CAPACITY_H_*/
5 changes: 5 additions & 0 deletions include/InformationManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,11 @@ class InformationManager : public DriverManager<Driver<im_msg_t>>
*/
void raft_status(RaftManager::State raft);

/**
* Called when the driver is reconnected
*/
void reconnected() override;

protected:
/**
* Received undefined message -> print error
Expand Down
10 changes: 5 additions & 5 deletions include/LibVirtDriver.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,15 +46,15 @@ class LibVirtDriver : public VirtualMachineManagerDriver
std::string& error) const override;

private:
static const int CEPH_DEFAULT_PORT;
static constexpr int CEPH_DEFAULT_PORT = 6789;

static const int GLUSTER_DEFAULT_PORT;
static constexpr int GLUSTER_DEFAULT_PORT = 24007;

static const int ISCSI_DEFAULT_PORT;
static constexpr int ISCSI_DEFAULT_PORT = 3260;

static const int Q35_ROOT_DEFAULT_PORTS;
static constexpr int Q35_ROOT_DEFAULT_PORTS = 16;

static const char * XML_DOMAIN_RNG_PATH;
static constexpr auto XML_DOMAIN_RNG_PATH = "/schemas/libvirt/domain.rng";

int deployment_description(const VirtualMachine * vm,
const std::string& fn) const override
Expand Down
5 changes: 5 additions & 0 deletions include/NebulaLog.h
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,11 @@ class NebulaLog
return _log_type;
};

static bool initialized()
{
return (logger != 0);
}

private:
NebulaLog() {};

Expand Down
2 changes: 1 addition & 1 deletion include/NebulaService.h
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ class NebulaService
*/
static std::string code_version()
{
return "6.10.0"; // bump version
return "6.10.2"; // bump version
}

/**
Expand Down
48 changes: 43 additions & 5 deletions include/NebulaUtil.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#include <set>
#include <algorithm>
#include <random>
#include <regex>
#include <mutex>

#include <openssl/crypto.h>
Expand Down Expand Up @@ -141,12 +142,8 @@ namespace one_util
*
* @param st string to split
* @param delim delimiter character
* @param clean_empty true to clean empty split parts.
* Example for st "a::b:c"
* clean_empty true will return ["a", "b", "c"]
* clean_empty fase will return ["a", "", "b", "c"]
* @param parts where the result will be saved
*
* @return a vector containing the resulting substrings
*/
template <class T>
void split(const std::string &st, char delim, std::vector<T> &parts)
Expand Down Expand Up @@ -176,6 +173,19 @@ namespace one_util
}
}

/**
* Splits a string, using the given delimiter
*
* @param st string to split
* @param delim delimiter character
* @param clean_empty true to clean empty split parts.
* Example for st "a::b:c"
* clean_empty true will return ["a", "b", "c"]
* clean_empty fase will return ["a", "", "b", "c"]
*
* @return a vector containing the resulting substrings
*/

std::vector<std::string> split(const std::string& st, char delim,
bool clean_empty = true);

Expand Down Expand Up @@ -364,6 +374,34 @@ namespace one_util
template <>
bool str_cast(const std::string& str, std::string& value);

/**
* Converts string into unsigned integer type
* @param str Input string
*
* @return Unsigned integer value on success, 0 on failure.
* @note If value in string is greater than typename T can hold,
* maximum possible value will be returned
*/
template <typename T>
T string_to_unsigned(const std::string& str)
{
T value;

if (std::regex_search(str, std::regex("[^0-9]")))
{
return 0;
}

std::istringstream iss(str);
iss >> value;

if (iss.fail() || !iss.eof())
{
value = std::numeric_limits<T>::max();
}

return value;
}
} // namespace one_util

#endif /* _NEBULA_UTIL_H_ */
4 changes: 2 additions & 2 deletions include/PoolSQL.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class PoolSQL
*/
PoolSQL(SqlDB * _db, const char * _table);

virtual ~PoolSQL();
virtual ~PoolSQL() = default;

/**
* Allocates a new object, writting it in the pool database. No memory is
Expand All @@ -52,7 +52,7 @@ class PoolSQL
* @return the oid assigned to the object or -1 in case of failure
*/
virtual int allocate(
PoolObjectSQL *objsql,
PoolObjectSQL &objsql,
std::string& error_str);

/**
Expand Down
4 changes: 2 additions & 2 deletions include/RequestManagerAllocateDB.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@ class RequestManagerAllocateDB: public Request
return;
}

PoolObjectSQL * obj = create(xml);
auto obj = std::unique_ptr<PoolObjectSQL>(create(xml));

int rc = pool->allocate(obj, att.resp_msg);
int rc = pool->allocate(*obj, att.resp_msg);

if ( rc == -1 )
{
Expand Down
Loading
Loading