#*******************************************************************************
#                       OpenNebula Configuration file
#*******************************************************************************

#*******************************************************************************
# Daemon configuration attributes
#-------------------------------------------------------------------------------
#  MANAGER_TIMER: Time in seconds the core uses to evaluate periodical functions.
#  HOST_MONITORING_INTERVAL and VM_POLLING_INTERVAL cannot have smaller values
#  than MANAGER_TIMER.
#
#  HOST_MONITORING_INTERVAL: Time in seconds between host monitorization.
#
#  VM_POLLING_INTERVAL: Time in seconds between virtual machine monitorization.
#  (use 0 to disable VM monitoring).
#
#  VM_DIR: Remote path to store the VM images, it should be shared between all
#  the cluster nodes to perform live migrations. This variable is the default
#  for all the hosts in the cluster. VM_DIR IS ONLY FOR THE NODES AND *NOT* THE 
#  FRONT-END
#
#  SCRIPTS_REMOTE_DIR: Remote path to store the monitoring and VM management
#  scripts.
#
#  PORT: Port where oned will listen for xmlrpc calls.
#
#  DB: Configuration attributes for the database backend
#   backend : can be sqlite or mysql (default is sqlite)
#   server  : (mysql) host name or an IP address for the MySQL server
#   port    : (mysql) port for the connection to the server.
#                     If set to 0, the default port is used.
#   user    : (mysql) user's MySQL login ID
#   passwd  : (mysql) the password for user
#   db_name : (mysql) the database name
#
#  VNC_BASE_PORT: VNC ports for VMs can be automatically set to VNC_BASE_PORT +
#  VMID
#
#  DEBUG_LEVEL: 0 = ERROR, 1 = WARNING, 2 = INFO, 3 = DEBUG
#*******************************************************************************

#MANAGER_TIMER=30

HOST_MONITORING_INTERVAL = 1

VM_POLLING_INTERVAL      = 1

#VM_DIR=/srv/cloud/one/var

SCRIPTS_REMOTE_DIR=/var/tmp/one

PORT=2889

#DB = [ backend = "sqlite" ]

# Sample configuration for MySQL
DB = [ backend = "mysql",
       server  = "localhost",
       port    = 0,
       user    = "oneadmin",
       passwd  = "oneadmin",
       db_name = "onedb_test" ]

VNC_BASE_PORT = 5900

DEBUG_LEVEL=3

#*******************************************************************************
# Physical Networks configuration
#*******************************************************************************
#  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
#  template)
#*******************************************************************************

NETWORK_SIZE = 254

MAC_PREFIX   = "02:00"

#*******************************************************************************
# Image Repository Configuration
#*******************************************************************************
#  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
#  DEFAULT_DEVICE_PREFIX: This can be set to
#       hd        IDE prefix
#       sd        SCSI
#       xvd       XEN Virtual Disk
#       vd        KVM virtual disk
#*******************************************************************************
DEFAULT_IMAGE_TYPE    = "OS"
DEFAULT_DEVICE_PREFIX = "hd"

#*******************************************************************************
# Information Driver Configuration
#*******************************************************************************
# You can add more information managers with different configurations but make
# sure it has different names.
#
#   name      : name for this information manager
#
#   executable: path of the information 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, usually a probe configuration file,
#               can be an absolute path or relative to $ONE_LOCATION/etc (or
#               /etc/one/ if OpenNebula was installed in /)
#*******************************************************************************

#-------------------------------------------------------------------------------
#  KVM 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       = "im_kvm",
#      executable = "one_im_ssh",
#      arguments  = "-r 0 -t 15 kvm" ]
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
#  XEN 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       = "im_xen",
#    executable = "one_im_ssh",
#    arguments  = "xen" ]
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
#  EC2 Information Driver Manager Configuration
#-------------------------------------------------------------------------------
#IM_MAD = [
#      name       = "im_ec2",
#      executable = "one_im_ec2",
#      arguments  = "im_ec2/im_ec2.conf" ]
#-------------------------------------------------------------------------------

#-----------------------------------------------------------------------------
#  Ganglia Information Driver Manager Configuration
#-----------------------------------------------------------------------------
#IM_MAD = [
#      name       = "im_ganglia",
#      executable = "one_im_sh",
#      arguments  = "ganglia" ]
#-----------------------------------------------------------------------------

#-------------------------------------------------------------------------------
#  Dummy Information Driver Manager Configuration
#-------------------------------------------------------------------------------
IM_MAD = [ name="im_dummy", executable="one_im_dummy"]
#-------------------------------------------------------------------------------

#*******************************************************************************
# Virtualization Driver Configuration
#*******************************************************************************
# You can add more virtualization managers with different configurations but
# make sure it has different names.
#
#   name      : name of the virtual machine manager driver
#
#   executable: path of the virtualization 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
#
#   default   : default values and configuration parameters for the driver, can
#               be an absolute path or relative to $ONE_LOCATION/etc (or
#               /etc/one/ if OpenNebula was installed in /)
#
#   type      : driver type, supported drivers: xen, kvm, xml
#*******************************************************************************

#-------------------------------------------------------------------------------
#  KVM 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 name of the poll probe (executed locally)
#-------------------------------------------------------------------------------
#VM_MAD = [
#    name       = "vmm_kvm",
#    executable = "one_vmm_ssh",
#    arguments  = "-t 15 -r 0 kvm",
#    default    = "vmm_ssh/vmm_ssh_kvm.conf",
#    type       = "kvm" ]
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
#  XEN 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
#    -l do not perform the VM polling in the node
#    -p name of the poll probe (executed locally)
#-------------------------------------------------------------------------------
#VM_MAD = [
#    name       = "vmm_xen",
#    executable = "one_vmm_ssh",
#    arguments  = "xen",
#    default    = "vmm_ssh/vmm_ssh_xen.conf",
#    type       = "xen" ]
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
#  EC2 Virtualization Driver Manager Configuration
#    arguments: default values for the EC2 driver, can be an absolute path or
#               relative to $ONE_LOCATION/etc (or /etc/one/ if OpenNebula was
#               installed in /).
#-------------------------------------------------------------------------------
#VM_MAD = [
#    name       = "vmm_ec2",
#    executable = "one_vmm_ec2",
#    arguments  = "vmm_ec2/vmm_ec2.conf",
#    type       = "xml" ]
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
#  Dummy Virtualization Driver Configuration
#-------------------------------------------------------------------------------
VM_MAD = [ name="vmm_dummy", executable="one_vmm_dummy", type="xml" ]
#-------------------------------------------------------------------------------

#*******************************************************************************
# Transfer Manager Driver Configuration
#*******************************************************************************
# You can add more transfer managers with different configurations but make
# sure it has different names.
#   name      : name for this transfer driver
#
#   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, usually a commands configuration file
#               , can be an absolute path or relative to $ONE_LOCATION/etc (or
#               /etc/one/ if OpenNebula was installed in /)
#*******************************************************************************

#-------------------------------------------------------------------------------
# SHARED Transfer Manager Driver Configuration
#-------------------------------------------------------------------------------
#TM_MAD = [
#    name       = "tm_shared",
#    executable = "one_tm",
#    arguments  = "tm_shared/tm_shared.conf" ]
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
# SSH Transfer Manager Driver Configuration
#-------------------------------------------------------------------------------
#TM_MAD = [
#    name       = "tm_ssh",
#    executable = "one_tm",
#    arguments  = "tm_ssh/tm_ssh.conf" ]
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
# Dummy Transfer Manager Driver Configuration
#-------------------------------------------------------------------------------
TM_MAD = [
    name       = "tm_dummy",
    executable = "one_tm",
    arguments  = "tm_dummy/tm_dummy.conf" ]
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
# LVM Transfer Manager Driver Configuration
#-------------------------------------------------------------------------------
#TM_MAD = [
#    name       = "tm_lvm",
#    executable = "one_tm",
#    arguments  = "tm_lvm/tm_lvm.conf" ]
#-------------------------------------------------------------------------------

#*******************************************************************************
# Image Manager Driver Configuration
#*******************************************************************************
# Drivers to manage the image repository, 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
#*******************************************************************************
#-------------------------------------------------------------------------------
# FS based Image Manager Driver Configuration
#    -t number of threads, i.e. number of repo operations at the same time
#-------------------------------------------------------------------------------
IMAGE_MAD = [
    executable = "one_image",
    arguments  = "fs -t 15" ]
#-------------------------------------------------------------------------------

#*******************************************************************************
# Hook Manager Configuration
#*******************************************************************************
# The Driver (HM_MAD), used to execute the Hooks
#   executable: path of the hook 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, can be an absolute path or relative
#               to $ONE_LOCATION/etc (or /etc/one/ if OpenNebula was installed
#               in /)
#
# Virtual Machine Hooks (VM_HOOK) defined by:
#   name      : for the hook, useful to track the hook (OPTIONAL)
#   on        : when the hook should be executed,
#               - CREATE, when the VM is created (onevm create)
#               - RUNNING, after the VM is successfully booted
#               - 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
#   command   : path can be absolute or relative to $ONE_LOCATION/share/hooks
#               case of self-contained installation or relative to
#               /usr/share/one/hooks in case of system-wide installation
#   arguments : for the hook. You can access to VM information with $
#               - $VMID, the ID of the virtual machine
#               - $TEMPLATE, the VM template in xml and base64 encoded
#   remote    : values,
#               - YES, The hook is executed in the host where the VM was
#                 allocated
#               - NO, The hook is executed in the OpenNebula server (default)
#
#
# Host Hooks (HOST_HOOK) defined by:
#   name      : for the hook, useful to track the hook (OPTIONAL)
#   on        : when the hook should be executed,
#               - CREATE, when the Host is created (onehost create)
#               - ERROR, when the Host enters the error state
#               - DISABLE, when the Host is disabled
#   command   : path can be absolute or relative to $ONE_LOCATION/share/hooks
#               case of self-contained installation or relative to
#               /usr/share/one/hooks in case of system-wide installation
#   arguments : for the hook. You can use the following Host information:
#               - $HID, the ID of the host
#               - $TEMPLATE, the Host template in xml and base64 encoded
#   remote    : values,
#               - YES, The hook is executed in the host
#               - NO, The hook is executed in the OpenNebula server (default)
#-------------------------------------------------------------------------------

HM_MAD = [
    executable = "one_hm" ]

#-------------------------------------------------------------------------------

#------------------------------ Fault Tolerance Hooks --------------------------
# This hook is used to perform recovery actions when a host fails. The VMs
# running in the host can be deleted (use -d option) or resubmitted (-r) in
# other host
# Last argument (force) can be "y", so suspended VMs in the host will be 
# resubmitted/deleted, or "n", so suspended VMs in the host will be ignored
#
#HOST_HOOK = [
#    name      = "error",
#    on        = "ERROR",
#    command   = "host_error.rb",
#    arguments = "$HID -r n",
#    remote    = "no" ]
#-------------------------------------------------------------------------------
# This 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 = "$VMID" ]
#
#VM_HOOK = [
#   name      = "on_failure_resubmit",
#   on        = "FAILED",
#   command   = "/usr/bin/env onevm resubmit",
#   arguments = "$VMID" ]
#-------------------------------------------------------------------------------

#-------------------------------- ebtables Hook---------------------------------
# You can use these two hooks to isolate networks at the ethernet level so the
# traffic generated in different virtual networks cannot be seen in others.
#
# All the network configuration will be done in the cluster nodes, these are the
# additional requisites:
#  - ebtables package installed
#  - sudoers configured so oneadmin can execute ebtables without password
#
# NOTE: Change the first command for ebtables-xen if you are using Xen
#
#VM_HOOK = [
#    name      = "ebtables-start",
#    on        = "running",
#    command   = "ebtables-kvm", # or ebtables-xen 
#    arguments = "one-$VMID",
#    remote    = "yes" ]
#
#VM_HOOK = [
#    name      = "ebtables-flush",
#    on        = "done",
#    command   = "ebtables-flush",
#    arguments = "",
#    remote    = "yes" ]
#-------------------------------------------------------------------------------

#*******************************************************************************
# Auth Manager Configuration
#*******************************************************************************
# The Driver (AUTHM_MAD) that will be used to authenticate and authorize
# OpenNebula requests. If not defined OpenNebula will use the built-in auth
# policies
#   executable: path of the auth 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, can be an absolute path or relative
#               to $ONE_LOCATION/etc (or /etc/one/ if OpenNebula was installed
#               in /)
#-------------------------------------------------------------------------------

#AUTH_MAD = [
#    executable = "one_auth_mad" ]
