From e40fa8eedb62e6be3e4ba59dbe69ab44a645c6a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn?= Date: Fri, 27 May 2016 12:40:04 +0200 Subject: [PATCH] Update xsd files --- share/doc/xsd/acct.xsd | 79 +---- share/doc/xsd/group.xsd | 2 +- share/doc/xsd/image.xsd | 32 +- share/doc/xsd/oned.conf | 531 +++++++++++++++++++++++++++------- share/doc/xsd/test.sh | 91 +++--- share/doc/xsd/test/template.0 | 7 +- share/doc/xsd/test/vnet.0 | 1 + share/doc/xsd/test/vnet.1 | 1 + share/doc/xsd/test/vnet.2 | 1 + share/doc/xsd/user.xsd | 2 +- share/doc/xsd/user_pool.xsd | 2 +- share/doc/xsd/vm.xsd | 77 +---- share/doc/xsd/vnet.xsd | 10 +- share/doc/xsd/vnet_pool.xsd | 19 +- 14 files changed, 532 insertions(+), 323 deletions(-) diff --git a/share/doc/xsd/acct.xsd b/share/doc/xsd/acct.xsd index 1009021171..f42ab55e1c 100644 --- a/share/doc/xsd/acct.xsd +++ b/share/doc/xsd/acct.xsd @@ -65,6 +65,8 @@ NIC_DETACH_ACTION = 24 DISK_SNAPSHOT_CREATE_ACTION = 25 DISK_SNAPSHOT_DELETE_ACTION = 26 + TERMINATE_ACTION = 27 + TERMINATE_HARD_ACTION = 28 --> @@ -95,86 +97,13 @@ diff --git a/share/doc/xsd/group.xsd b/share/doc/xsd/group.xsd index c71a9216e7..479b12d320 100644 --- a/share/doc/xsd/group.xsd +++ b/share/doc/xsd/group.xsd @@ -130,7 +130,7 @@ - + diff --git a/share/doc/xsd/image.xsd b/share/doc/xsd/image.xsd index dcd46ecf7e..abcff11517 100644 --- a/share/doc/xsd/image.xsd +++ b/share/doc/xsd/image.xsd @@ -43,6 +43,8 @@ CLONE = 6, Image is being cloned DELETE = 7, DS is deleting the image USED_PERS = 8, Image is in use and persistent + LOCKED_USED = 9, FS operation in progress, VMs waiting + LOCKED_USED_PERS = 10 FS operation in progress, VMs waiting. Persistent --> @@ -52,25 +54,25 @@ - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + diff --git a/share/doc/xsd/oned.conf b/share/doc/xsd/oned.conf index a2a131c552..e251b157f4 100644 --- a/share/doc/xsd/oned.conf +++ b/share/doc/xsd/oned.conf @@ -16,7 +16,11 @@ # HOST_MONITORING_EXPIRATION_TIME: Time, in seconds, to expire monitoring # information. Use 0 to disable HOST monitoring recording. # -# VM_PER_INTERVAL: Number of VMs monitored in each interval. +# VM_INDIVIDUAL_MONITORING: VM monitoring information is obtained along with the +# host information. For some custom monitor drivers you may need activate the +# individual VM monitoring process. +# VM_PER_INTERVAL: Number of VMs monitored in each interval, if the individual +# VM monitoring is set to yes. # VM_MONITORING_EXPIRATION_TIME: Time, in seconds, to expire monitoring # information. Use 0 to disable VM monitoring recording. # @@ -24,6 +28,7 @@ # scripts. # # PORT: Port where oned will listen for xmlrpc calls. +# LISTEN_ADDRESS: Host IP to listen on for xmlrpc calls (default: all IPs). # # DB: Configuration attributes for the database backend # backend : can be sqlite or mysql (default is sqlite) @@ -34,14 +39,16 @@ # passwd : (mysql) the password for user # db_name : (mysql) the database name # -# VNC_PORTS: VNC port pool fot automatic VNC port assigment -# start : first port to assgin +# VNC_PORTS: VNC port pool for automatic VNC port assignment, if possible the +# port will be set to ``START`` + ``VMID`` +# start : first port to assign # reserved: comma separated list of ports # # LOG: Configuration for the logging system # system: defines the logging system: # file to log in the oned.log file # syslog to use the syslog facilities +# std to use the default log stream (stderr) to use with systemd # debug_level: 0 = ERROR, 1 = WARNING, 2 = INFO, 3 = DEBUG # # VM_SUBMIT_ON_HOLD: Forces VMs to be created on hold state instead of pending. @@ -49,8 +56,8 @@ #******************************************************************************* LOG = [ - system = "file", - debug_level = 3 + SYSTEM = "file", + DEBUG_LEVEL = 3 ] MANAGER_TIMER = 2 @@ -61,6 +68,7 @@ MONITORING_THREADS = 50 #HOST_PER_INTERVAL = 15 #HOST_MONITORING_EXPIRATION_TIME = 43200 +#VM_INDIVIDUAL_MONITORING = "no" #VM_PER_INTERVAL = 5 #VM_MONITORING_EXPIRATION_TIME = 14400 @@ -68,19 +76,21 @@ SCRIPTS_REMOTE_DIR=/var/tmp/one PORT = 2633 -DB = [ backend = "sqlite" ] +LISTEN_ADDRESS = "0.0.0.0" + +DB = [ BACKEND = "sqlite" ] # Sample configuration for MySQL -# DB = [ backend = "mysql", -# server = "localhost", -# port = 0, -# user = "oneadmin", -# passwd = "oneadmin", -# db_name = "opennebula" ] +# DB = [ BACKEND = "mysql", +# SERVER = "localhost", +# PORT = 0, +# USER = "oneadmin", +# PASSWD = "oneadmin", +# DB_NAME = "opennebula" ] VNC_PORTS = [ - start = 5900 -# reserved = "6800, 6801, 9869" + START = 5900 +# RESERVED = "6800, 6801, 9869" ] #VM_SUBMIT_ON_HOLD = "NO" @@ -92,19 +102,33 @@ VNC_PORTS = [ # requires a special DB configuration. # # FEDERATION: Federation attributes -# mode: Operation mode of this oned. +# MODE: Operation mode of this oned. # STANDALONE no federated.This is the default operational mode # MASTER this oned is the master zone of the federation # SLAVE this oned is a slave zone -# zone_id: The zone ID as returned by onezone command -# master_oned: The xml-rpc endpoint of the master oned, e.g. +# ZONE_ID: The zone ID as returned by onezone command +# MASTER_ONED: The xml-rpc endpoint of the master oned, e.g. # http://master.one.org:2633/RPC2 #******************************************************************************* FEDERATION = [ - mode = "STANDALONE", - zone_id = 0, - master_oned = "" + MODE = "STANDALONE", + ZONE_ID = 0, + MASTER_ONED = "" +] + +#******************************************************************************* +# Default showback cost +#------------------------------------------------------------------------------- +# The following attributes define the default cost for Virtual Machines that +# don't have a CPU, MEMORY or DISK cost. This is used by the oneshowback +# calculate method. +#******************************************************************************* + +DEFAULT_COST = [ + CPU_COST = 0, + MEMORY_COST = 0, + DISK_COST = 0 ] #******************************************************************************* @@ -126,13 +150,25 @@ FEDERATION = [ # a single connection # # TIMEOUT: Maximum time in seconds the server will wait for the client to -# do anything while processing an RPC +# do anything while processing an RPC. This timeout will be also used when +# proxy calls to the master in a federation. # # RPC_LOG: Create a separated log file for xml-rpc requests, in # "/var/log/one/one_xmlrpc.log". # -# MESSAGE_SIZE: Buffer size in bytes for XML-RPC responses. Only relevant for -# slave zones. +# MESSAGE_SIZE: Buffer size in bytes for XML-RPC responses. +# +# LOG_CALL_FORMAT: Format string to log XML-RPC calls. Interpreted strings: +# %i -- request id +# %m -- method name +# %u -- user id +# %U -- user name +# %l -- param list +# %p -- user password +# %g -- group id +# %G -- group name +# %a -- auth token +# %% -- % #******************************************************************************* #MAX_CONN = 15 @@ -142,6 +178,7 @@ FEDERATION = [ #TIMEOUT = 15 #RPC_LOG = NO #MESSAGE_SIZE = 1073741824 +#LOG_CALL_FORMAT = "Req:%i UID:%u %m invoked %l" #******************************************************************************* # Physical Networks configuration @@ -149,32 +186,51 @@ FEDERATION = [ # NETWORK_SIZE: Here you can define the default size for the virtual networks # # MAC_PREFIX: Default MAC prefix to be used to create the auto-generated MAC -# addresses is defined here (this can be overrided by the Virtual Network +# addresses is defined here (this can be overwritten by the Virtual Network # template) +# +# VLAN_IDS: VLAN ID pool for the automatic VLAN_ID assignment. This pool +# is for 802.1Q networks (Open vSwitch and 802.1Q drivers). The driver +# will try first to allocate VLAN_IDS[START] + VNET_ID +# start: First VLAN_ID to use +# reserved: Comma separated list of VLAN_IDs +# +# VXLAN_IDS: Automatic VXLAN Network ID (VNI) assignment. This is used +# for vxlan networks. +# start: First VNI to use +# NOTE: reserved is not supported by this pool #******************************************************************************* NETWORK_SIZE = 254 MAC_PREFIX = "02:00" +VLAN_IDS = [ + START = "2", + RESERVED = "0, 1, 4095" +] + +VXLAN_IDS = [ + START = "2" +] + #******************************************************************************* # DataStore Configuration #******************************************************************************* # DATASTORE_LOCATION: Path for Datastores. It IS the same for all the hosts # and front-end. It defaults to /var/lib/one/datastores (in self-contained mode -# defaults to $ONE_LOCATION/var/datastores). Each datastore has it's own +# defaults to $ONE_LOCATION/var/datastores). Each datastore has its own # directory (called BASE_PATH) in the form: $DATASTORE_LOCATION/ -# You can symlink this direcorty to any other path if needed. BASE_PATH is +# You can symlink this directory to any other path if needed. BASE_PATH is # generated from this attribute each time oned is started. # # DATASTORE_CAPACITY_CHECK: Checks that there is enough capacity before -# creating a new imag. Defaults to Yes +# creating a new image. Defaults to Yes # # DEFAULT_IMAGE_TYPE: This can take values # OS Image file holding an operating system # CDROM Image file holding a CDROM -# DATABLOCK Image file holding a datablock, -# always created as an empty block +# DATABLOCK Image file holding a datablock, created as an empty block # # DEFAULT_DEVICE_PREFIX: This can be set to # hd IDE prefix @@ -186,7 +242,7 @@ MAC_PREFIX = "02:00" #DATASTORE_LOCATION = /var/lib/one/datastores -DATASTORE_CAPACITY_CHECK = "no" +DATASTORE_CAPACITY_CHECK = "yes" DEFAULT_IMAGE_TYPE = "OS" DEFAULT_DEVICE_PREFIX = "hd" @@ -215,18 +271,18 @@ DEFAULT_CDROM_DEVICE_PREFIX = "hd" #------------------------------------------------------------------------------- # This driver CANNOT BE ASSIGNED TO A HOST, and needs to be used with KVM # -h prints this help. -# -a Address to bind the collectd sockect (defults 0.0.0.0) +# -a Address to bind the collectd socket (default 0.0.0.0) # -p UDP port to listen for monitor information (default 4124) # -f Interval in seconds to flush collected information (default 5) -# -t Number of threads for the server (defult 50) +# -t Number of threads for the server (default 50) # -i Time in seconds of the monitorization push cycle. This parameter must # be smaller than MONITORING_INTERVAL, otherwise push monitorization will # not be effective. #------------------------------------------------------------------------------- IM_MAD = [ - name = "collectd", - executable = "collectd", - arguments = "-p 4124 -f 5 -t 50 -i 20" ] + NAME = "collectd", + EXECUTABLE = "collectd", + ARGUMENTS = "-p 4124 -f 5 -t 50 -i 20" ] #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- @@ -235,9 +291,10 @@ IM_MAD = [ # -t number of threads, i.e. number of hosts monitored at the same time #------------------------------------------------------------------------------- IM_MAD = [ - name = "kvm", - executable = "one_im_ssh", - arguments = "-r 3 -t 15 kvm" ] + NAME = "kvm", + SUNSTONE_NAME = "KVM", + EXECUTABLE = "one_im_ssh", + ARGUMENTS = "-r 3 -t 15 kvm" ] #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- @@ -246,35 +303,52 @@ IM_MAD = [ # -t number of threads, i.e. number of hosts monitored at the same time #------------------------------------------------------------------------------- # IM_MAD = [ -# name = "kvm", -# executable = "one_im_ssh", -# arguments = "-r 3 -t 15 kvm-probes" ] +# NAME = "kvm", +# SUNSTONE_NAME = "kvm-ssh", +# EXECUTABLE = "one_im_ssh", +# ARGUMENTS = "-r 3 -t 15 kvm-probes" ] #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- -# VMware Information Driver Manager Configuration +# vCenter Information Driver Manager Configuration # -r number of retries when monitoring a host # -t number of threads, i.e. number of hosts monitored at the same time #------------------------------------------------------------------------------- #IM_MAD = [ -# name = "vmware", -# executable = "one_im_sh", -# arguments = "-c -t 15 -r 0 vmware" ] +# NAME = "vcenter", +# SUNSTONE_NAME = "VMWare vCenter", +# EXECUTABLE = "one_im_sh", +# ARGUMENTS = "-c -t 15 -r 0 vcenter" ] #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # EC2 Information Driver Manager Configuration +# -r number of retries when monitoring a host +# -t number of threads, i.e. number of hosts monitored at the same time #------------------------------------------------------------------------------- #IM_MAD = [ -# name = "ec2", -# executable = "one_im_sh", -# arguments = "-c -t 1 -r 0 ec2" ] +# NAME = "ec2", +# SUNSTONE_NAME = "Amazon EC2", +# EXECUTABLE = "one_im_sh", +# ARGUMENTS = "-c -t 1 -r 0 ec2" ] +#------------------------------------------------------------------------------- + +#------------------------------------------------------------------------------- +# Azure Information Driver Manager Configuration +# -r number of retries when monitoring a host +# -t number of threads, i.e. number of hosts monitored at the same time +#------------------------------------------------------------------------------- +#IM_MAD = [ +# NAME = "az", +# SUNSTONE_NAME = "Microsoft Azure", +# EXECUTABLE = "one_im_sh", +# ARGUMENTS = "-c -t 1 -r 0 az" ] #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # Dummy Information Driver Manager Configuration #------------------------------------------------------------------------------- -IM_MAD = [ name="dummy", executable="one_im_dummy"] +IM_MAD = [ NAME="dummy", SUNSTONE_NAME="Testing", EXECUTABLE="one_im_dummy"] #------------------------------------------------------------------------------- #******************************************************************************* @@ -296,6 +370,37 @@ IM_MAD = [ name="dummy", executable="one_im_dummy"] # /etc/one/ if OpenNebula was installed in /) # # type : driver type, supported drivers: xen, kvm, xml +# +# keep_snapshots: do not remove snapshots on power on/off cycles and live +# migrations if the hypervisor supports that. +# +# imported_vms_actions : comma-separated list of actions supported +# for imported vms. The available actions are: +# migrate +# live-migrate +# terminate +# terminate-hard +# undeploy +# undeploy-hard +# hold +# release +# stop +# suspend +# resume +# delete +# delete-recreate +# reboot +# reboot-hard +# resched +# unresched +# poweroff +# poweroff-hard +# disk-attach +# disk-detach +# nic-attach +# nic-detach +# snap-create +# snap-delete #******************************************************************************* #------------------------------------------------------------------------------- @@ -306,29 +411,49 @@ IM_MAD = [ name="dummy", executable="one_im_dummy"] # overridden for each action. # Valid actions: deploy, shutdown, cancel, save, restore, migrate, poll # An example: "-l migrate=migrate_local,save" +# -p more than one action per host in parallel, needs support from hypervisor +# -s to execute remote commands, bash by default # # Note: You can use type = "qemu" to use qemu emulated guests, e.g. if your # CPU does not have virtualization extensions or use nested Qemu-KVM hosts #------------------------------------------------------------------------------- VM_MAD = [ - name = "kvm", - executable = "one_vmm_exec", - arguments = "-t 15 -r 0 kvm", - default = "vmm_exec/vmm_exec_kvm.conf", - type = "kvm" ] + NAME = "kvm", + SUNSTONE_NAME = "KVM", + EXECUTABLE = "one_vmm_exec", + ARGUMENTS = "-t 15 -r 0 kvm", + DEFAULT = "vmm_exec/vmm_exec_kvm.conf", + TYPE = "kvm", + KEEP_SNAPSHOTS = "no", + IMPORTED_VMS_ACTIONS = "terminate, terminate-hard, hold, release, suspend, + resume, delete, reboot, reboot-hard, resched, unresched, disk-attach, + disk-detach, nic-attach, nic-detach, snap-create, snap-delete" +] + #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- -# VMware Virtualization Driver Manager Configuration +# vCenter Virtualization Driver Manager Configuration # -r number of retries when monitoring a host # -t number of threads, i.e. number of hosts monitored at the same time +# -p more than one action per host in parallel, needs support from hypervisor +# -s to execute commands, bash by default +# -d default snapshot strategy. It can be either 'detach' or 'suspend'. It +# defaults to 'suspend'. #------------------------------------------------------------------------------- #VM_MAD = [ -# name = "vmware", -# executable = "one_vmm_sh", -# arguments = "-t 15 -r 0 vmware -s sh", -# default = "vmm_exec/vmm_exec_vmware.conf", -# type = "vmware" ] +# NAME = "vcenter", +# SUNSTONE_NAME = "VMWare vCenter", +# EXECUTABLE = "one_vmm_sh", +# ARGUMENTS = "-p -t 15 -r 0 vcenter -s sh", +# DEFAULT = "vmm_exec/vmm_exec_vcenter.conf", +# TYPE = "xml", +# KEEP_SNAPSHOTS = "yes", +# IMPORTED_VMS_ACTIONS = "terminate, terminate-hard, hold, release, suspend, +# resume, delete, reboot, reboot-hard, resched, unresched, poweroff, +# poweroff-hard, disk-attach, disk-detach, nic-attach, nic-detach, +# snap-create, snap-delete" +#] #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- @@ -337,16 +462,43 @@ VM_MAD = [ # -t number of threads, i.e. number of actions performed at the same time #------------------------------------------------------------------------------- #VM_MAD = [ -# name = "ec2", -# executable = "one_vmm_sh", -# arguments = "-t 15 -r 0 ec2", -# type = "xml" ] +# NAME = "ec2", +# SUNSTONE_NAME = "Amazon EC2", +# EXECUTABLE = "one_vmm_sh", +# ARGUMENTS = "-t 15 -r 0 ec2", +# TYPE = "xml", +# KEEP_SNAPSHOTS = "no", +# IMPORTED_VMS_ACTIONS = "terminate, terminate-hard, hold, release, suspend, +# resume, delete, reboot, reboot-hard, resched, unresched, poweroff, +# poweroff-hard, disk-attach, disk-detach, nic-attach, nic-detach, +# snap-create, snap-delete" +#] +#------------------------------------------------------------------------------- + +#------------------------------------------------------------------------------- +# Azure Virtualization Driver Manager Configuration +# -r number of retries when monitoring a host +# -t number of threads, i.e. number of actions performed at the same time +#------------------------------------------------------------------------------- +#VM_MAD = [ +# NAME = "az", +# SUNSTONE_NAME = "Microsoft Azure", +# EXECUTABLE = "one_vmm_sh", +# ARGUMENTS = "-t 15 -r 0 az", +# TYPE = "xml", +# KEEP_SNAPSHOTS = "no", +# IMPORTED_VMS_ACTIONS = "terminate, terminate-hard, hold, release, suspend, +# resume, delete, reboot, reboot-hard, resched, unresched, poweroff, +# poweroff-hard, disk-attach, disk-detach, nic-attach, nic-detach, +# snap-create, snap-delete" +#] #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # Dummy Virtualization Driver Configuration #------------------------------------------------------------------------------- -VM_MAD = [ name="dummy", executable="one_vmm_dummy", type="xml" ] +VM_MAD = [ NAME="dummy", SUNSTONE_NAME="Testing", EXECUTABLE="one_vmm_dummy", + TYPE="xml" ] #------------------------------------------------------------------------------- #******************************************************************************* @@ -366,8 +518,8 @@ VM_MAD = [ name="dummy", executable="one_vmm_dummy", type="xml" ] #******************************************************************************* TM_MAD = [ - executable = "one_tm", - arguments = "-t 15 -d dummy,lvm,shared,fs_lvm,qcow2,ssh,ceph" + EXECUTABLE = "one_tm", + ARGUMENTS = "-t 15 -d dummy,lvm,shared,fs_lvm,qcow2,ssh,ceph,dev,vcenter,iscsi_libvirt" ] #******************************************************************************* @@ -381,11 +533,30 @@ TM_MAD = [ # arguments : for the driver executable # -t number of threads, i.e. number of repo operations at the same time # -d datastore mads separated by commas +# -s system datastore tm drivers, used to monitor shared system ds. #******************************************************************************* DATASTORE_MAD = [ - executable = "one_datastore", - arguments = "-t 15 -d dummy,fs,lvm,ceph" + EXECUTABLE = "one_datastore", + ARGUMENTS = "-t 15 -d dummy,fs,lvm,ceph,dev,iscsi_libvirt,vcenter -s shared,ssh,ceph,fs_lvm" +] + +#******************************************************************************* +# Marketplace Driver Configuration +#******************************************************************************* +# Drivers to manage different marketplaces, specialized for the storage backend +# executable: path of the transfer driver executable, can be an +# absolute path or relative to $ONE_LOCATION/lib/mads (or +# /usr/lib/one/mads/ if OpenNebula was installed in /) +# +# arguments : for the driver executable +# -t number of threads, i.e. number of repo operations at the same time +# -m marketplace mads separated by commas +#******************************************************************************* + +MARKET_MAD = [ + EXECUTABLE = "one_market", + ARGUMENTS = "-t 15 -m http,s3,one" ] #******************************************************************************* @@ -416,7 +587,6 @@ DATASTORE_MAD = [ # - SHUTDOWN, after the VM is shutdown # - STOP, after the VM is stopped (including VM image transfers) # - DONE, after the VM is deleted or shutdown -# - FAILED, when the VM enters the failed state # - CUSTOM, user defined specific STATE and LCM_STATE combination # of states to trigger the hook. # command : path is relative to $ONE_LOCATION/var/remotes/hook @@ -467,6 +637,7 @@ DATASTORE_MAD = [ # - NO, The hook is executed in the OpenNebula server (default) # # Virtual Network (VNET_HOOK) +# Virtual Router (VROUTER_HOOK) # User (USER_HOOK) # Group (GROUP_HOOK) # Image (IMAGE_HOOK) @@ -486,9 +657,12 @@ DATASTORE_MAD = [ # arguments : for the hook. You can use the following Host information: # - $ID, the ID of the host # - $TEMPLATE, the vnet template in xml and base64 encoded +# +# Please note: In a Federation, User and Group hooks can only be defined in +# the master OpenNebula. #------------------------------------------------------------------------------- HM_MAD = [ - executable = "one_hm" ] + EXECUTABLE = "one_hm" ] #******************************************************************************* # Fault Tolerance Hooks @@ -496,7 +670,8 @@ HM_MAD = [ # This hook is used to perform recovery actions when a host fails. # Script to implement host failure tolerance # It can be set to -# -r recreate VMs running in the host +# -m migrate VMs to another host. Only for images in shared storage +# -r recreate VMs running in the host. State will be lost. # -d delete VMs running in the host # Additional flags # -f force resubmission of suspended VMs @@ -505,31 +680,11 @@ HM_MAD = [ #******************************************************************************* # #HOST_HOOK = [ -# name = "error", -# on = "ERROR", -# command = "ft/host_error.rb", -# arguments = "$ID -r", -# remote = "no" ] -#------------------------------------------------------------------------------- -# These two hooks can be used to automatically delete or resubmit VMs that reach -# the "failed" state. This way, the administrator doesn't have to interact -# manually to release its resources or retry the deployment. -# -# -# Only one of them should be uncommented. -#------------------------------------------------------------------------------- -# -#VM_HOOK = [ -# name = "on_failure_delete", -# on = "FAILED", -# command = "/usr/bin/env onevm delete", -# arguments = "$ID" ] -# -#VM_HOOK = [ -# name = "on_failure_recreate", -# on = "FAILED", -# command = "/usr/bin/env onevm delete --recreate", -# arguments = "$ID" ] +# NAME = "error", +# ON = "ERROR", +# COMMAND = "ft/host_error.rb", +# ARGUMENTS = "$ID -m -p 5", +# REMOTE = "no" ] #------------------------------------------------------------------------------- #******************************************************************************* @@ -547,6 +702,13 @@ HM_MAD = [ # defined all the modules available will be enabled # authz : list of authentication modules separated by commas # +# DEFAULT_AUTH: The default authentication driver to use when OpenNebula does +# not know the user and needs to authenticate it externally. If you want to +# use "default" (not recommended, but supported for backwards compatibility +# reasons) make sure you create a symlink pointing to the actual authentication +# driver in /var/lib/one/remotes/auth, and add "default" to the 'auth' +# parameter in the 'AUTH_MAD' section. +# # SESSION_EXPIRATION_TIME: Time in seconds to keep an authenticated token as # valid. During this time, the driver is not used. Use 0 to disable session # caching @@ -561,10 +723,12 @@ HM_MAD = [ #******************************************************************************* AUTH_MAD = [ - executable = "one_auth_mad", - authn = "ssh,x509,ldap,server_cipher,server_x509" + EXECUTABLE = "one_auth_mad", + AUTHN = "ssh,x509,ldap,server_cipher,server_x509" ] +#DEFAULT_AUTH = "default" + SESSION_EXPIRATION_TIME = 900 #ENABLE_OTHER_PERMISSIONS = "YES" @@ -590,6 +754,22 @@ VM_RESTRICTED_ATTR = "CONTEXT/FILES" VM_RESTRICTED_ATTR = "NIC/MAC" VM_RESTRICTED_ATTR = "NIC/VLAN_ID" VM_RESTRICTED_ATTR = "NIC/BRIDGE" +VM_RESTRICTED_ATTR = "NIC_DEFAULT/MAC" +VM_RESTRICTED_ATTR = "NIC_DEFAULT/VLAN_ID" +VM_RESTRICTED_ATTR = "NIC_DEFAULT/BRIDGE" +VM_RESTRICTED_ATTR = "DISK/TOTAL_BYTES_SEC" +VM_RESTRICTED_ATTR = "DISK/READ_BYTES_SEC" +VM_RESTRICTED_ATTR = "DISK/WRITE_BYTES_SEC" +VM_RESTRICTED_ATTR = "DISK/TOTAL_IOPS_SEC" +VM_RESTRICTED_ATTR = "DISK/READ_IOPS_SEC" +VM_RESTRICTED_ATTR = "DISK/WRITE_IOPS_SEC" +#VM_RESTRICTED_ATTR = "DISK/SIZE" +VM_RESTRICTED_ATTR = "DISK/ORIGINAL_SIZE" +VM_RESTRICTED_ATTR = "CPU_COST" +VM_RESTRICTED_ATTR = "MEMORY_COST" +VM_RESTRICTED_ATTR = "DISK_COST" +VM_RESTRICTED_ATTR = "PCI" +VM_RESTRICTED_ATTR = "USER_INPUTS" #VM_RESTRICTED_ATTR = "RANK" #VM_RESTRICTED_ATTR = "SCHED_RANK" @@ -598,6 +778,21 @@ VM_RESTRICTED_ATTR = "NIC/BRIDGE" IMAGE_RESTRICTED_ATTR = "SOURCE" +#******************************************************************************* +# The following restricted attributes only apply to VNets that are a reservation. +# Normal VNets do not have restricted attributes. +#******************************************************************************* + +VNET_RESTRICTED_ATTR = "VN_MAD" +VNET_RESTRICTED_ATTR = "PHYDEV" +VNET_RESTRICTED_ATTR = "VLAN_ID" +VNET_RESTRICTED_ATTR = "BRIDGE" + +VNET_RESTRICTED_ATTR = "AR/VN_MAD" +VNET_RESTRICTED_ATTR = "AR/PHYDEV" +VNET_RESTRICTED_ATTR = "AR/VLAN_ID" +VNET_RESTRICTED_ATTR = "AR/BRIDGE" + #******************************************************************************* # Inherited Attributes Configuration #******************************************************************************* @@ -622,11 +817,31 @@ IMAGE_RESTRICTED_ATTR = "SOURCE" INHERIT_DATASTORE_ATTR = "CEPH_HOST" INHERIT_DATASTORE_ATTR = "CEPH_SECRET" INHERIT_DATASTORE_ATTR = "CEPH_USER" +INHERIT_DATASTORE_ATTR = "CEPH_CONF" +INHERIT_DATASTORE_ATTR = "POOL_NAME" + +INHERIT_DATASTORE_ATTR = "ISCSI_USER" +INHERIT_DATASTORE_ATTR = "ISCSI_USAGE" +INHERIT_DATASTORE_ATTR = "ISCSI_HOST" + +INHERIT_IMAGE_ATTR = "ISCSI_USER" +INHERIT_IMAGE_ATTR = "ISCSI_USAGE" +INHERIT_IMAGE_ATTR = "ISCSI_HOST" +INHERIT_IMAGE_ATTR = "ISCSI_IQN" INHERIT_DATASTORE_ATTR = "GLUSTER_HOST" INHERIT_DATASTORE_ATTR = "GLUSTER_VOLUME" +INHERIT_DATASTORE_ATTR = "DISK_TYPE" +INHERIT_DATASTORE_ATTR = "ADAPTER_TYPE" + +INHERIT_IMAGE_ATTR = "DISK_TYPE" +INHERIT_IMAGE_ATTR = "ADAPTER_TYPE" + INHERIT_VNET_ATTR = "VLAN_TAGGED_ID" +INHERIT_VNET_ATTR = "FILTER_IP_SPOOFING" +INHERIT_VNET_ATTR = "FILTER_MAC_SPOOFING" +INHERIT_VNET_ATTR = "MTU" #******************************************************************************* # Transfer Manager Driver Behavior Configuration @@ -648,32 +863,136 @@ INHERIT_VNET_ATTR = "VLAN_TAGGED_ID" # SYSTEM: The image will be cloned in the System datastore # shared : determines if the storage holding the system datastore is shared # among the different hosts or not. Valid values: "yes" or "no" +# ds_migrate : The driver allows migrations across datastores. Valid values: +# "yes" or "no". Note: THIS ONLY APPLIES TO SYSTEM DS. #******************************************************************************* TM_MAD_CONF = [ - name = "dummy", ln_target = "NONE", clone_target = "SYSTEM", shared = "yes" + NAME = "dummy", LN_TARGET = "NONE", CLONE_TARGET = "SYSTEM", SHARED = "YES", + DS_MIGRATE = "YES" ] TM_MAD_CONF = [ - name = "lvm", ln_target = "NONE", clone_target = "SELF", shared = "yes" + NAME = "lvm", LN_TARGET = "NONE", CLONE_TARGET = "SELF", SHARED = "YES" ] TM_MAD_CONF = [ - name = "shared", ln_target = "NONE", clone_target = "SYSTEM", shared = "yes" + NAME = "shared", LN_TARGET = "NONE", CLONE_TARGET = "SYSTEM", SHARED = "YES", + DS_MIGRATE = "YES" ] TM_MAD_CONF = [ - name = "fs_lvm", ln_target = "SYSTEM", clone_target = "SYSTEM", shared="yes" + NAME = "fs_lvm", LN_TARGET = "SYSTEM", CLONE_TARGET = "SYSTEM", SHARED="YES" ] TM_MAD_CONF = [ - name = "qcow2", ln_target = "NONE", clone_target = "SYSTEM", shared = "yes" + NAME = "qcow2", LN_TARGET = "NONE", CLONE_TARGET = "SYSTEM", SHARED = "YES" ] TM_MAD_CONF = [ - name = "ssh", ln_target = "SYSTEM", clone_target = "SYSTEM", shared = "no" + NAME = "ssh", LN_TARGET = "SYSTEM", CLONE_TARGET = "SYSTEM", SHARED = "NO", + DS_MIGRATE = "YES" ] TM_MAD_CONF = [ - name = "ceph", ln_target = "NONE", clone_target = "SELF", shared = "yes" + NAME = "ceph", LN_TARGET = "NONE", CLONE_TARGET = "SELF", SHARED = "YES", + DS_MIGRATE = "NO" +] + +TM_MAD_CONF = [ + NAME = "iscsi_libvirt", LN_TARGET = "NONE", CLONE_TARGET = "SELF", SHARED = "YES", + DS_MIGRATE = "NO" +] + +TM_MAD_CONF = [ + NAME = "dev", LN_TARGET = "NONE", CLONE_TARGET = "NONE", SHARED = "YES" +] + +TM_MAD_CONF = [ + NAME = "vcenter", LN_TARGET = "NONE", CLONE_TARGET = "NONE", SHARED = "YES" +] + +#******************************************************************************* +# Datastore Manager Driver Behavior Configuration +#******************************************************************************* +# The configuration for each driver is defined in DS_MAD_CONF. These +# values are used when creating a new datastore and should not be modified +# since they define the datastore behavior. +# name : name of the transfer driver, listed in the -d option of the +# DS_MAD section +# required_attrs : comma separated list of required attributes in the DS +# template +# persistent_only: specifies whether the datastore can only manage persistent +# images +#******************************************************************************* + +DS_MAD_CONF = [ + NAME = "ceph", + REQUIRED_ATTRS = "DISK_TYPE,BRIDGE_LIST,CEPH_HOST,CEPH_USER,CEPH_SECRET", + PERSISTENT_ONLY = "NO", + MARKETPLACE_ACTIONS = "export" +] + +DS_MAD_CONF = [ + NAME = "dev", REQUIRED_ATTRS = "DISK_TYPE", PERSISTENT_ONLY = "YES" +] + +DS_MAD_CONF = [ + NAME = "iscsi_libvirt", REQUIRED_ATTRS = "DISK_TYPE,ISCSI_HOST", + PERSISTENT_ONLY = "YES" +] + +DS_MAD_CONF = [ + NAME = "dummy", REQUIRED_ATTRS = "", PERSISTENT_ONLY = "NO" +] + +DS_MAD_CONF = [ + NAME = "fs", REQUIRED_ATTRS = "", PERSISTENT_ONLY = "NO", + MARKETPLACE_ACTIONS = "export" +] + +DS_MAD_CONF = [ + NAME = "lvm", REQUIRED_ATTRS = "DISK_TYPE,BRIDGE_LIST", + PERSISTENT_ONLY = "NO" +] + +DS_MAD_CONF = [ + NAME = "vcenter", REQUIRED_ATTRS = "VCENTER_CLUSTER", PERSISTENT_ONLY = "YES", + MARKETPLACE_ACTIONS = "export" +] + +#******************************************************************************* +# MarketPlace Driver Behavior Configuration +#******************************************************************************* +# The configuration for each driver is defined in MARKET_MAD_CONF. These +# values are used when creating a new marketplaces and should not be modified +# since they define the marketplace behavior. +# name : name of the market driver +# required_attrs : comma separated list of required attributes in the Market +# template +# app_actions: List of actions allowed for a MarketPlaceApp +# - monitor The apps of the marketplace will be monitored +# - create, the app in the marketplace +# - delete, the app from the marketplace +# public: set to yes for external marketplaces. A public marketplace can be +# removed even if it has registered apps. +#******************************************************************************* + +MARKET_MAD_CONF = [ + NAME = "one", + REQUIRED_ATTRS = "", + APP_ACTIONS = "monitor", + PUBLIC = "yes" +] + +MARKET_MAD_CONF = [ + NAME = "http", + REQUIRED_ATTRS = "BASE_URL,PUBLIC_DIR", + APP_ACTIONS = "create, delete, monitor" +] + +MARKET_MAD_CONF = [ + NAME = "s3", + REQUIRED_ATTRS = "ACCESS_KEY_ID,SECRET_ACCESS_KEY,REGION,BUCKET", + APP_ACTIONS = "create, delete, monitor" ] diff --git a/share/doc/xsd/test.sh b/share/doc/xsd/test.sh index 584e757fdf..28da3e6aa3 100755 --- a/share/doc/xsd/test.sh +++ b/share/doc/xsd/test.sh @@ -35,10 +35,11 @@ onegroup create newgroup # Host -onehost create host01 --im dummy --vm dummy --net dummy -onehost create host02 --im dummy --vm dummy --net dummy +onehost create host01 --im dummy --vm dummy +onehost create host02 --im dummy --vm dummy +onehost create host03 --im dummy --vm dummy -onecluster addhost newcluster host02 +onecluster addhost newcluster host03 for i in `onehost list | tail -n +2 | tr -s ' ' | cut -f2 -d ' '`; do onehost show $i -x > samples/host/$i.xml @@ -68,47 +69,6 @@ done onevnet list -x > samples/vnet_pool/3.xml - -# Template -onetemplate list -x > samples/vmtemplate_pool/1.xml - -onetemplate create test/template.0 -onetemplate create test/template.1 - -for i in `onetemplate list | tail -n +2 | tr -s ' ' | cut -f2 -d ' '`; do - onetemplate show $i -x > samples/vmtemplate/$i.xml -done - -onetemplate list -x > samples/vmtemplate_pool/2.xml - - -# VM -onetemplate instantiate 0 -m 2 -onetemplate instantiate 1 -m 2 - -for i in `onevm list | tail -n +2 | tr -s ' ' | cut -f2 -d ' '`; do - onevm deploy $i host01 -done - -sleep 5 - -onevm migrate --live 0 0 -onevm delete 1 -onevm poweroff 2 - -sleep 5 - -onevm suspend 0 -onevm resume 2 - -sleep 5 - -for i in `onevm list | tail -n +2 | tr -s ' ' | cut -f2 -d ' '`; do - onevm show $i -x > samples/vm/$i.xml -done - -onevm list -x > samples/vm_pool/0.xml - # Cluster onecluster create emptycluster @@ -170,7 +130,7 @@ onegroup list -x > samples/group_pool/0.xml onevdc create emptyvdc onevdc create newvdc -onevdc addgroup newvdc 0 newgroup +onevdc addgroup newvdc newgroup onevdc addhost newvdc 0 host01 onevdc addcluster newvdc 0 newcluster @@ -181,6 +141,47 @@ done onevdc list -x > samples/vdc_pool/0.xml +# Template +onetemplate list -x > samples/vmtemplate_pool/1.xml + +onetemplate create test/template.0 --user newuser --password abc +onetemplate create test/template.1 --user newuser --password abc + +for i in `onetemplate list | tail -n +2 | tr -s ' ' | cut -f2 -d ' '`; do + onetemplate show $i -x > samples/vmtemplate/$i.xml +done + +onetemplate list -x > samples/vmtemplate_pool/2.xml + + +# VM +onetemplate instantiate 0 -m 2 --user newuser --password abc +onetemplate instantiate 1 -m 2 --user newuser --password abc + +for i in `onevm list | tail -n +2 | tr -s ' ' | cut -f2 -d ' '`; do + onevm deploy $i host01 +done + +sleep 5 + +onevm migrate --live 0 host02 +onevm terminate --hard 1 +onevm poweroff 2 + +sleep 5 + +onevm suspend 0 +onevm resume 2 + +sleep 5 + +for i in `onevm list | tail -n +2 | tr -s ' ' | cut -f2 -d ' '`; do + onevm show $i -x > samples/vm/$i.xml +done + +onevm list -x > samples/vm_pool/0.xml + + for i in cluster datastore group vdc host image vmtemplate user vm vnet do POOL_NAME="$i""_pool" diff --git a/share/doc/xsd/test/template.0 b/share/doc/xsd/test/template.0 index 9f58ec3db8..a9e26f9b25 100644 --- a/share/doc/xsd/test/template.0 +++ b/share/doc/xsd/test/template.0 @@ -5,25 +5,30 @@ EXTRA = ABC EXTRA2 = 123 NIC = [ - NETWORK = "Blue LAN" + NETWORK = "Blue LAN", + NETWORK_UID = "0" ] NIC = [ NETWORK = "R", + NETWORK_UID = "0", AR_ID = 0 ] NIC = [ NETWORK = "R", + NETWORK_UID = "0", AR_ID = 1 ] NIC = [ NETWORK = "R", + NETWORK_UID = "0", AR_ID = 2 ] NIC = [ NETWORK = "R", + NETWORK_UID = "0", AR_ID = 3 ] \ No newline at end of file diff --git a/share/doc/xsd/test/vnet.0 b/share/doc/xsd/test/vnet.0 index f75ad3687c..6bae89640a 100644 --- a/share/doc/xsd/test/vnet.0 +++ b/share/doc/xsd/test/vnet.0 @@ -1,6 +1,7 @@ NAME = "Blue LAN" BRIDGE = vbr1 +VN_MAD = dummy AR = [ IP = 130.10.0.1, diff --git a/share/doc/xsd/test/vnet.1 b/share/doc/xsd/test/vnet.1 index c9878ad4c4..317d849f7a 100644 --- a/share/doc/xsd/test/vnet.1 +++ b/share/doc/xsd/test/vnet.1 @@ -1,6 +1,7 @@ NAME = "R" BRIDGE = vbr1 +VN_MAD = dummy NETWORK_ADDRESS = 10.10.10.0 NETWORK_MASK = 255.255.255.0 diff --git a/share/doc/xsd/test/vnet.2 b/share/doc/xsd/test/vnet.2 index 56f03a0730..281d70508b 100644 --- a/share/doc/xsd/test/vnet.2 +++ b/share/doc/xsd/test/vnet.2 @@ -1,3 +1,4 @@ NAME = "Empty" BRIDGE = vbr1 +VN_MAD = dummy diff --git a/share/doc/xsd/user.xsd b/share/doc/xsd/user.xsd index b740d242c7..7127441bfc 100644 --- a/share/doc/xsd/user.xsd +++ b/share/doc/xsd/user.xsd @@ -129,7 +129,7 @@ - + diff --git a/share/doc/xsd/user_pool.xsd b/share/doc/xsd/user_pool.xsd index fa55bf3f04..e83c4ffe4f 100644 --- a/share/doc/xsd/user_pool.xsd +++ b/share/doc/xsd/user_pool.xsd @@ -144,7 +144,7 @@ - + diff --git a/share/doc/xsd/vm.xsd b/share/doc/xsd/vm.xsd index 519daadc2a..f5131c7ff8 100644 --- a/share/doc/xsd/vm.xsd +++ b/share/doc/xsd/vm.xsd @@ -29,85 +29,12 @@ @@ -195,6 +122,8 @@ NIC_DETACH_ACTION = 24 DISK_SNAPSHOT_CREATE_ACTION = 25 DISK_SNAPSHOT_DELETE_ACTION = 26 + TERMINATE_ACTION = 27 + TERMINATE_HARD_ACTION = 28 --> diff --git a/share/doc/xsd/vnet.xsd b/share/doc/xsd/vnet.xsd index 733d5359ea..01775011f2 100644 --- a/share/doc/xsd/vnet.xsd +++ b/share/doc/xsd/vnet.xsd @@ -33,11 +33,19 @@ - + + + + + + + + + diff --git a/share/doc/xsd/vnet_pool.xsd b/share/doc/xsd/vnet_pool.xsd index 711ba5892f..6cc6a4ce8b 100644 --- a/share/doc/xsd/vnet_pool.xsd +++ b/share/doc/xsd/vnet_pool.xsd @@ -29,14 +29,27 @@ - - + + + + + + + - + + + + + + + + +