diff --git a/SConstruct b/SConstruct index bf5273d1e6..a6275f8289 100755 --- a/SConstruct +++ b/SConstruct @@ -111,7 +111,8 @@ main_env.Append(LIBPATH=[ cwd+'/src/market', cwd+'/src/ipamm', cwd+'/src/data_model', - cwd+'/src/protocol' + cwd+'/src/protocol', + cwd+'/src/sam' ]) # Compile flags @@ -351,6 +352,7 @@ build_scripts = [ 'src/monitor/SConstruct', 'src/onedb/SConstruct', 'src/protocol/SConstruct', + 'src/sam/SConstruct', svncterm_path, 'share/context/SConstruct' ] diff --git a/include/AclRule.h b/include/AclRule.h index f1b709ac4a..50cfd05705 100644 --- a/include/AclRule.h +++ b/include/AclRule.h @@ -255,16 +255,12 @@ private: /** * Array of PoolObjectSQL types to iterate over all types */ - static const int num_pool_objects; - - static const PoolObjectSQL::ObjectType pool_objects[]; + static const std::array pool_objects; /** * Array of Auth operation types to iterate over all types */ - static const int num_auth_operations; - - static const AuthRequest::Operation auth_operations[]; + static const std::array auth_operations; /** * Objects that cannot be used with the CLUSTER(%) selector diff --git a/include/BackupJob.h b/include/BackupJob.h new file mode 100644 index 0000000000..c059cedac7 --- /dev/null +++ b/include/BackupJob.h @@ -0,0 +1,363 @@ +/* -------------------------------------------------------------------------- */ +/* Copyright 2002-2023, 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 */ +/* 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. */ +/* -------------------------------------------------------------------------- */ + +#ifndef BACKUP_JOB_H_ +#define BACKUP_JOB_H_ + +#include "PoolObjectSQL.h" +#include "ObjectXML.h" +#include "ObjectCollection.h" + +/** + * The BackuJob class, it organize backups of multiple VMs + * + * The schema is as follows: + * + * + * + * + * Of this backup job. BJ with higher priority are scheduled first + * List of associated scheduled action + * + * VMs with all backups up to date + * + * VMs that need a backup + * + * VMs with an ongoing backup operation + * + * VMs that fail the last backup operation + * + * Last time the backup job was triggered + * Time to backup all VMs int the backup job + *