Skip to content

Commit

Permalink
Merge branch 'OpenNebula:master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
peterwillis authored Aug 29, 2024
2 parents a006aea + 5d6b857 commit 10a800b
Show file tree
Hide file tree
Showing 4,516 changed files with 162,526 additions and 104,365 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
4 changes: 2 additions & 2 deletions .github/workflows/notify_push_slack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ jobs:
run: echo "COMMIT_ONELINER=${{ github.event.head_commit.message }}${{ github.event.pull_request.title }}"|grep -v '^$'|head -1 >> $GITHUB_ENV

- name: It is a merged pull request
if: ${{ github.event_name == 'pull_request' && github.event.pull_request.merged == true }}
if: ${{ github.event_name == 'pull_request' && github.event.pull_request.merged == true && github.repository == 'OpenNebula/one-ee' }}
uses: abinoda/slack-action@master
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
with:
args: '{\"channel\":\"${{ secrets.SLACK_CHANNEL_ID }}\",\"blocks\":[{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\" > --> *New PR merged:* <${{ github.event.pull_request.html_url }}|${{ env.COMMIT_ONELINER }}> (<${{ github.event.pull_request.html_url }}|PR>)\n\"}}]}'

- name: It is a direct push
if: ${{ github.event_name == 'push' }}
if: ${{ github.event_name == 'push' && github.repository == 'OpenNebula/one-ee' }}
uses: abinoda/slack-action@master
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/smoke_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ jobs:
run: gem install rubocop
- name: Install CppCheck
run: sudo apt install -y cppcheck
- name: Install AStyle
run: sudo apt install -y astyle
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4

Expand Down
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

[OpenNebula](http://opennebula.io) is an open source platform delivering a simple but feature-rich and flexible solution to build and manage enterprise clouds for virtualized services, containerized applications and serverless computing.

[![OpenNebula Architecture](https://opennebula.io/wp-content/uploads/2020/08/KeyFeatures_small.png)](https://opennebula.io/discover/)
[![OpenNebula Architecture](https://opennebula.io/wp-content/uploads/2024/07/03_new_Key-Features.png)](https://opennebula.io/discover/)

### To start using OpenNebula

Expand All @@ -27,28 +27,28 @@

## Taking OpenNebula for a Test Drive

There are a couple of very easy ways to try out the OpenNebula functionality
You can quickly and easily try out OpenNebula’s functionality by installing:

- [miniONE](https://github.com/OpenNebula/minione) for infrastructures based on open source hypervisors.
- [vOneCloud](http://docs.opennebula.org/vonecloud) for VMware based infrastructures.
- [miniONE](https://github.com/OpenNebula/minione) for infrastructures based on open-source hypervisors.
- [vOneCloud](http://docs.opennebula.org/vonecloud) for infrastructures based on Broadcom VMware.

## Installation

You can find more information about OpenNebula’s architecture, installation, configuration and references to configuration files in this [documentation section](https://docs.opennebula.io/stable/deployment/index.html).

It is very useful to learn where [log files of the main OpenNebula components are placed](http://docs.opennebula.io/5.12/deployment/references/log_debug.html). Also check the [reference about the main OpenNebula daemon configuration file](https://docs.opennebula.io/stable/deployment/references/oned_conf.html).
It is very useful to learn where [log files of the main OpenNebula components are placed](http://docs.opennebula.io/5.12/deployment/references/log_debug.html). Also check the [reference about the main OpenNebula daemon configuration file](https://docs.opennebula.io/stable/installation_and_configuration/opennebula_services/oned.html).

### Front-end Installation

The Front-end is the central part of an OpenNebula installation. This is the machine where the server software is installed and where you connect to manage your cloud. It can be a physical node or a virtual instance.

Please, visit the [official documentation for more details and a step-by-step guide](http://docs.opennebula.io/5.12/deployment/opennebula_installation/overview.html). Using the packages provided on our site is the recommended method, to ensure the installation of the latest version, and to avoid possible package divergences with different distributions. There are two alternatives here: you can add **our package repositories** to your system, or visit the [software menu](http://opennebula.io/use) to **download the latest package** for your Linux distribution.
Please, visit the [official documentation for more details and a step-by-step guide](https://docs.opennebula.io/stable/installation_and_configuration/frontend_installation/overview.html). Using the packages provided on our site is the recommended method, to ensure the installation of the latest version, and to avoid possible package divergences with different distributions. There are two alternatives here: you can add **our package repositories** to your system, or visit the [software menu](http://opennebula.io/use) to **download the latest package** for your Linux distribution.

If there are no packages for your distribution, please check the [build dependencies](http://docs.opennebula.io/5.12/integration/references/build_deps.html#build-deps) for OpenNebula and head to the [Building from Source Code guide](http://docs.opennebula.io/5.12/integration/references/compile.html#compile).
If there are no packages for your distribution, please check the [build dependencies](https://docs.opennebula.io/stable/integration_and_development/references/build_deps.html) for OpenNebula and head to the [Building from Source Code guide](https://docs.opennebula.io/stable/integration_and_development/references/compile.html).

### Node Installation

After the OpenNebula Front-end is correctly set up, the next step is preparing the hosts where the VMs are going to run. Please, refer to the [documentation](http://docs.opennebula.io/5.12/deployment/node_installation/overview.html) site for more details.
After the OpenNebula Front-end is correctly set up, the next step is preparing the hosts where the VMs are going to run. Please refer to the [deployment guide](https://docs.opennebula.io/stable/open_cluster_deployment/index.html) site for details.

## Contact

Expand All @@ -58,7 +58,7 @@ After the OpenNebula Front-end is correctly set up, the next step is preparing t

## License

Copyright 2002-2023, OpenNebula Project, OpenNebula Systems (formerly C12G Labs)
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

Expand Down
26 changes: 12 additions & 14 deletions SConstruct
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# -------------------------------------------------------------------------- #
# Copyright 2002-2023, OpenNebula Project, OpenNebula Systems #
# Copyright 2002-2024, OpenNebula Project, OpenNebula Systems #
# #
# 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 #
Expand All @@ -27,7 +27,6 @@ from SCons.Script import ARGUMENTS, SConscript
sys.path.append("./share/scons")
from lex_bison import *


# Get git version
try:
out = Popen(["git", "describe", "--dirty", "--always", "--abbrev=8"],
Expand Down Expand Up @@ -136,8 +135,7 @@ vars = Variables('custom.py')
vars.Add('sqlite_dir', 'Path to sqlite directory', '')
vars.Add('sqlite', 'Build with SQLite support', 'yes')
vars.Add('mysql', 'Build with MySQL support', 'no')
vars.Add('postgresql', 'Build with PostgreSQL support', 'no')
vars.Add('parsers', 'Obsolete. Rebuild flex/bison files', 'no')
vars.Add('parsers', 'Rebuild flex/bison files', 'no')
vars.Add('xmlrpc', 'Path to xmlrpc directory', '')
vars.Add('new_xmlrpc', 'Use xmlrpc-c version >=1.31', 'no')
vars.Add('sunstone', 'Build Sunstone', 'no')
Expand All @@ -147,6 +145,7 @@ vars.Add('rubygems', 'Generate Ruby gems', 'no')
vars.Add('svncterm', 'Build VNC support for LXD drivers', 'yes')
vars.Add('context', 'Download guest contextualization packages', 'no')
vars.Add('strict', 'Strict C++ compiler, more warnings, treat warnings as errors', 'no')
vars.Add('download', 'Download 3rdParty tools', 'no')
env = Environment(variables = vars)
Help(vars.GenerateHelpText(env))

Expand All @@ -173,16 +172,6 @@ if mysql == 'yes':
else:
main_env.Append(mysql='no')

# PostgreSql
postgresql = ARGUMENTS.get('postgresql', 'no')
if postgresql == 'yes':
main_env.Append(postgresql='yes')
main_env.Append(CPPPATH=['/usr/include/postgresql'])
main_env.Append(CPPFLAGS=["-DPOSTGRESQL_DB"])
main_env.Append(LIBS=['libpq'])
else:
main_env.Append(postgresql='no')

# Flag to compile with xmlrpc-c versions prior to 1.31 (September 2012)
new_xmlrpc = ARGUMENTS.get('new_xmlrpc', 'no')
if new_xmlrpc == 'yes':
Expand Down Expand Up @@ -224,6 +213,15 @@ if strict == 'yes':
"-Wno-unused-result"
])

# Download: Download 3rdParty tools
download = ARGUMENTS.get('download', 'no')
if download == 'yes':
tools = Popen(['find', '.', '-type', 'f', '-executable', '-path', '*/vendor/download'], stdout=PIPE).stdout.readlines()

for t in tools:
tool = t.rstrip().decode()
print("Executing: {}".format(tool))
Popen(tool)

# Rubygem generation
main_env.Append(rubygems=ARGUMENTS.get('rubygems', 'no'))
Expand Down
4 changes: 2 additions & 2 deletions include/AclManager.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* -------------------------------------------------------------------------- */
/* Copyright 2002-2023, OpenNebula Project, OpenNebula Systems */
/* Copyright 2002-2024, OpenNebula Project, OpenNebula Systems */
/* */
/* 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 */
Expand Down Expand Up @@ -90,7 +90,7 @@ class AclManager : public Callbackable
* @return true if the authorization is granted for oneadmin
*/
bool oneadmin_authorize(const PoolObjectAuth& obj_perms,
AuthRequest::Operation op) const;
AuthRequest::Operation op) const;

/**
* Adds a new rule to the ACL rule set
Expand Down
12 changes: 6 additions & 6 deletions include/AclRule.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* -------------------------------------------------------------------------- */
/* Copyright 2002-2023, OpenNebula Project, OpenNebula Systems */
/* Copyright 2002-2024, OpenNebula Project, OpenNebula Systems */
/* */
/* 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 */
Expand Down Expand Up @@ -64,11 +64,11 @@ class AclRule
/**
* Set the fields of the ACL, and updates its representation
*/
void set(int _oid,
long long _user,
long long _resource,
long long _rights,
long long _zone)
void set(int _oid,
long long _user,
long long _resource,
long long _rights,
long long _zone)
{
oid = _oid;
user = _user;
Expand Down
6 changes: 3 additions & 3 deletions include/ActionSet.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* -------------------------------------------------------------------------- */
/* Copyright 2002-2023, OpenNebula Project, OpenNebula Systems */
/* Copyright 2002-2024, OpenNebula Project, OpenNebula Systems */
/* */
/* 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 */
Expand Down Expand Up @@ -28,7 +28,7 @@ template <typename T>
class ActionSet
{
public:
ActionSet():action_set(0UL){};
ActionSet():action_set(0UL) {};
ActionSet(const T * actions, int actions_len):action_set(0)
{
for (int i=0; i<actions_len; i++)
Expand All @@ -37,7 +37,7 @@ class ActionSet
}
};

~ActionSet(){};
~ActionSet() {};

/* Set the action in the set */
void set(T action)
Expand Down
44 changes: 22 additions & 22 deletions include/AddressRange.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* -------------------------------------------------------------------------- */
/* Copyright 2002-2023, OpenNebula Project, OpenNebula Systems */
/* Copyright 2002-2024, OpenNebula Project, OpenNebula Systems */
/* */
/* 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 */
Expand Down Expand Up @@ -33,7 +33,7 @@ class AddressRange
{
public:

virtual ~AddressRange(){};
virtual ~AddressRange() {};

// *************************************************************************
// Address Range types
Expand Down Expand Up @@ -166,7 +166,7 @@ class AddressRange
* A vector containing just -1 means all VRouters.
*/
void to_xml(std::ostringstream &oss, const std::vector<int>& vms,
const std::vector<int>& vnets, const std::vector<int>& vrs) const;
const std::vector<int>& vnets, const std::vector<int>& vrs) const;

/**
* Same as above but without the LEASES section
Expand Down Expand Up @@ -194,7 +194,7 @@ class AddressRange
* @return 0 if success
*/
int allocate_addr(PoolObjectSQL::ObjectType ot, int obid,
VectorAttribute * nic, const std::set<std::string> &inherit);
VectorAttribute * nic, const std::set<std::string> &inherit);

/**
* Returns the specific address by mac/ip if is not allocated. The NIC attr
Expand All @@ -207,13 +207,13 @@ class AddressRange
* @return 0 if success
*/
int allocate_by_mac(const std::string& mac, PoolObjectSQL::ObjectType ot,
int obid, VectorAttribute * nic, const std::set<std::string> &inherit);
int obid, VectorAttribute * nic, const std::set<std::string> &inherit);

int allocate_by_ip(const std::string& ip, PoolObjectSQL::ObjectType ot,
int obid, VectorAttribute * nic, const std::set<std::string> &inherit);
int obid, VectorAttribute * nic, const std::set<std::string> &inherit);

int allocate_by_ip6(const std::string& ip6, PoolObjectSQL::ObjectType ot,
int obid, VectorAttribute * nic, const std::set<std::string> &inherit);
int obid, VectorAttribute * nic, const std::set<std::string> &inherit);

/**
* Sets the given ip/mac on hold, the address is associated to a VM of
Expand All @@ -237,7 +237,7 @@ class AddressRange

int free_addr_by_ip(PoolObjectSQL::ObjectType ot, int id, const std::string& ip);

int free_addr_by_ip6(PoolObjectSQL::ObjectType ot, int id,const std::string& ip);
int free_addr_by_ip6(PoolObjectSQL::ObjectType ot, int id, const std::string& ip);

/**
* Frees all previous allocated address to the given object
Expand All @@ -257,7 +257,7 @@ class AddressRange
* @return the number of addresses freed
*/
int free_addr_by_range(PoolObjectSQL::ObjectType ot, int obid,
const std::string& mac, unsigned int rsize);
const std::string& mac, unsigned int rsize);

/**
* Adds the relevant AR definition attributes to the Security Group rule
Expand Down Expand Up @@ -288,13 +288,13 @@ class AddressRange
* @return 0 on success
*/
int reserve_addr_by_mac(int vid, unsigned int rsize, const std::string& mac,
AddressRange *rar);
AddressRange *rar);

int reserve_addr_by_ip(int vid, unsigned int rsize, const std::string& ip,
AddressRange *rar);
AddressRange *rar);

int reserve_addr_by_ip6(int vid, unsigned int rsize, const std::string& ip,
AddressRange *rar);
AddressRange *rar);

// *************************************************************************
// Helpers
Expand Down Expand Up @@ -437,7 +437,7 @@ class AddressRange
* Base constructor it cannot be called directly but from the
* AddressRange factory constructor.
*/
AddressRange(unsigned int _id):id(_id){};
AddressRange(unsigned int _id):id(_id) {};

/* ---------------------------------------------------------------------- */
/* Address/AR helper functions to build/parse driver messages */
Expand All @@ -462,7 +462,7 @@ class AddressRange
* @param oss string stream to write the request to
*/
void addr_to_xml(unsigned int index, unsigned int size,
std::ostringstream& oss) const;
std::ostringstream& oss) const;

/**
* Check if the given MAC is valid for this address range by verifying:
Expand Down Expand Up @@ -611,7 +611,7 @@ class AddressRange
* @return 0 on success
*/
static int ip6_to_s(const unsigned int prefix[], const unsigned int mac[],
std::string& ip6_s);
std::string& ip6_s);

static int ip6_to_s(const unsigned int ip6_i[], std::string& ip6_s);

Expand Down Expand Up @@ -686,7 +686,7 @@ class AddressRange
* Adds a new allocated address to the map. Updates the ALLOCATED attribute
*/
void set_allocated_addr(PoolObjectSQL::ObjectType ot, int obid,
unsigned int addr_index);
unsigned int addr_index);

/**
* Sets the address lease as used and fills a NIC attribute with the
Expand All @@ -699,16 +699,16 @@ class AddressRange
* @return 0 if success
*/
void allocate_by_index(unsigned int index,
PoolObjectSQL::ObjectType ot,
int obid,
VectorAttribute* nic,
const std::set<std::string>& inherit);
PoolObjectSQL::ObjectType ot,
int obid,
VectorAttribute* nic,
const std::set<std::string>& inherit);

/**
* Frees an address from the map. Updates the ALLOCATED attribute
*/
int free_allocated_addr(PoolObjectSQL::ObjectType ot, int obid,
unsigned int addr_index);
unsigned int addr_index);

/**
* Reserve a set of addresses from an starting one
Expand All @@ -719,7 +719,7 @@ class AddressRange
* @return 0 on success
*/
int reserve_addr_by_index(int vid, unsigned int rsize, unsigned int sindex,
AddressRange *rar);
AddressRange *rar);

/* ---------------------------------------------------------------------- */
/* Restricted Attributes functions */
Expand Down
6 changes: 3 additions & 3 deletions include/AddressRangeIPAM.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* -------------------------------------------------------------------------- */
/* Copyright 2002-2023, OpenNebula Project, OpenNebula Systems */
/* Copyright 2002-2024, OpenNebula Project, OpenNebula Systems */
/* */
/* 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 */
Expand All @@ -26,9 +26,9 @@ class VectorAttribute;
class AddressRangeIPAM : public AddressRange
{
public:
AddressRangeIPAM(unsigned int _id):AddressRange(_id){};
AddressRangeIPAM(unsigned int _id):AddressRange(_id) {};

virtual ~AddressRangeIPAM(){};
virtual ~AddressRangeIPAM() {};

/* ---------------------------------------------------------------------- */
/* AddressRange Interface */
Expand Down
Loading

0 comments on commit 10a800b

Please sign in to comment.