[database]

# 
# Directory to store database.
# 
# SDK databases are used to store a set of tables which contain the
# information of network, volume, image, etc. This option is used to
# tell SDK where to store the database files, make sure the process
# running SDK is able to read write and execute the directory.
# 
# This param is optional
#dir=/var/lib/zvmsdk/databases/


[file]

# 
# Directory to store sdk imported or exported files.
# 
# SDK file repository to store the imported files and the files that will be
# exported, the imported files will be put into <file_repository>/imported
# the files to be exported will be put into <file_repository>/exported
#     
# This param is optional
#file_repository=/var/lib/zvmsdk/files


[guest]

# 
# The maximum allowed console log size, in kilobytes.
# 
# Console logs might be transferred to sdk user, this option controls how
# large each file can be. A smaller size may mean more calls will be needed
# to transfer large consoles, which may not be desirable for performance reasons.
#     
# This param is optional
#console_log_size=100


[image]

# 
# Directory to store sdk images.
# 
# SDK image repository to store the imported images and the staging images that
# is in snapshotting. Once snapshot finished, the image will be removed to the
# netboot directory accordingly. Two kinds of image repository looks like:
# /var/lib/zvmsdk/images/netboot/<image_osversion>/<imagename>
# /var/lib/zvmsdk/images/staging/<image_osversion>/<imagename>
#     
# This param is optional
#sdk_image_repository=/var/lib/zvmsdk/images


[logging]

# 
# Directory where log file to be put into.
# 
# SDK has a set of logs to help administrator to debug
# and aduit actions performed through SDK. Edit this option
# if you want to put logs into specified place.
# 
# Please ensure the service running on the consume which
# consumes SDK has the authorization to write to the path.
#     
# This param is optional
#log_dir=/var/log/zvmsdk/


# 
# Level of the log.
# 
# SDK utilize python logging package to help admin debug
# or analyze issues. it's recommend to set this value
# to logging.DEBUG to get more detailed logs and set it to
# logging.INFO(default) in normal situation.
# 
# recommend values:
# logging.ERROR: level above ERROR will be written to log file.
# logging.WARNINS: level above WARNING(ERROR, WARNING)
#                  will be written to log file.
# logging.INFO: level above INFO(ERROR, WARNING, INFO)
#               will be written to log file.
# logging.DEBUG: All log level (ERROR, WARNING, INFO, DEBUG)
#                will be written to log file.
#     
# This param is optional
#log_level=logging.INFO


[monitor]

# 
# Cached monitor data update interval
# 
# This is used to prevent excessive effort spent retrieving the
# monitor data by calling the SDK backend utilities. When this cache
# is enabled, a inspect call will only call the SDK backend utilities
# when the inspected guest's info does not exist in the cache or
# when the cache data is expired. And when an cache update is needed,
# all the existing guests' data will be retrieved in a single call to
# the backend.
# 
# When this value is below or equal to zero, the cache
# will be disabled and each inspect call will need to call the backend
# utilities to get the inspected guest's monitor data.
#         
# This param is optional
#cache_interval=300


[network]

# 
# IP address of the Linux machine which is running SDK on.
# 
# Some remote copy operations need to be performed during guest creation,
# this option tell the SDK the host ip which can be used to perform copy
# from and copy to operations.
#     
# This param is required
#my_ip=None


[sdkserver]

# 
# The IP address that the SDK server is listen on.
# 
# When the SDK server deamon starts, it will try to bind to
# this address and port bind_port, and wait for the SDK client
# connection to handle API request.
# 
# This param is optional
#bind_addr=127.0.0.1


# 
# The port that the SDK server is listen on.
# 
# This will work as a pair with bind_addr when the SDK server daemon
# starts, more info can be found in that configuration description.
# 
# This param is optional
#bind_port=2000


# 
# The maximum number of worker thread in SDK server to handle client requests.
# 
# These worker threads would work concurrently to handle requests from client.
# This value should be adjusted according to the system resource and workload.
# 
# This param is optional
#max_worker_count=64


# 
# The size of request queue in SDK server.
# 
# SDK server maintains a queue to keep all the accepted but not handled requests,
# and the SDK server workers fetch requests from this queue.
# To some extend, this queue size decides the max socket opened in SDK server.
# This value should be adjusted according to the system resource.
# 
# This param is optional
#request_queue_size=128


[volume]

# 
# volume fcp list.
# 
# SDK will only use the fcp devices in the scope of this value.
# 
# This param is optional
#fcp_list=


[wsgi]

# 
# Whether auth will be used.
# 
# When sending http request from outside to running zvmsdk,
# Client will be requested to input username/password in order
# to authorize the call.
# Set this to 'none' indicated no auth will be used and 'auth'
# means username and password need to be specified.
# 
# Possible value:
# 'none': no auth will be required
# 'auth': need auth, currently pyjwt is used to return a token
#         to caller if the username and password is correct.
# 
# This param is optional
#auth=none


# 
# The max total number of concurrent deploy and capture requests allowed in a
# single z/VM Cloud Connector process.
# 
# If more requests than this value are revieved concurrently, the z/VM Cloud
# Connector would reject the requests and return error to avoid resource
# exhaustion.
# .
# 
# This param is optional
#max_concurrent_deploy_capture=20


# 
# file path that contains admin-token to access sdk http server.
# 
# Admin-token in order to get a user-token from zvm sdk, and the user-token
# will be used to validate request before user-token expire.
# 
# This param is optional
#token_path=/etc/zvmsdk/token.dat


# 
# How long the token is valid.
# 
# If a token auth is used, the token return to user will be
# expired after the period passed. This ensure an user who
# get this token will not be authorized all the time, a new
# token need to be recreated after certain time period.
# 
# This param is optional
#token_validation_period=3600


[zvm]

# 
# Default LOGONBY userid(s) for the cloud.
# 
# This is a set of z/VM userid(s) which are allowed to logon using the LOGONBY
# keyword to the guests created by the z/VM SDK solution, compatible with
# the LBYONLY keyword of the user directory statement. This value is only used
# when a guest is created. If you change this value, existing guests' directory
# entries are not automatically updated with the new value.
# When an ESM is installed, this parameter only governs when the ESM
# defers to CP's processing.
# 
# Usage note:
#     The default is an empty string (''). When the string is empty, you can't
#     log on to your instances using the 3270 protocol; When a
#     non-empty string is provided, blank chars will be used as delimiter,
#     you can use LOGONBY xxx command to log on the guest using the corresponding
#     admin userid's password.
# 
#     For example, when you set this value to 'oper1 oper2 oper3 jones', it means
#     you can use any one of 'oper1', 'oper2', 'oper3', 'jones' as an admin user.
# 
#     see the z/VM CP Planning and Administration for additional information.
# 
# Possible values:
#     A maximum of 8 blank-delimited strings. Each non-blank string must be a
#     valid z/VM userid.
#     e.g  '' is a valid value.
#          'oper1 oper2' is a valid value.
#          'o1 o2 o3 o4 o5 o6 o7 o8 o9' is NOT a valid value.
#     
# This param is optional
#default_admin_userid=None


# 
# Virtual device number for default NIC address.
# 
# This value is the first NIC virtual device number,
# each NIC needs 3 numbers for control/read/write, so by default
# the first NIC's address is 1000, the second one is 1003 etc.
# 
# Possible values:
#     An integer value in hex format, between 0 and 65536 (x'FFFF').
#     It should not conflict with other device numbers in the z/VM guest's
#     configuration, for example device numbers of the root or ephemeral or
#     persistent disks.
# 
# Sample NIC definitions in the z/VM user directory:
#     NICDEF 1000 TYPE QDIO LAN SYSTEM <vswitch1> MACID <macid1>
#     NICDEF 1003 TYPE QDIO LAN SYSTEM <vswitch2> MACID <macid2>
#         
# This param is optional
#default_nic_vdev=1000


# 
# zVM disk pool and type for root/ephemeral disks.
# 
# The option is combined by 2 parts and use : as separator.
# 
# The first part is the type of disks in the disk pool.
# The disks in one disk pool must in same type (ECKD or FBA).
# Possible values of the disk pool type:
#     A string, either ECKD or FBA.
# 
# The second part is the volume group name defined in your directory manager
# on your z/VM system, which will be used for allocating disks for
# new guest. A dollar sign ($) is not allowed in the name.
# 
# Sample disk_pool values:
#     ECKD:diskpo1
#     FBA:testpool
#     
# This param is required
#disk_pool=None


# 
# The name of a list containing names of virtual servers to be queried. The list
# which contains the userid list by default is named: VSMWORK1 NAMELIST, see
# DMSSICNF COPY key: NameListFileIdAny. The list has to be accessible to the
# SMAPI servers.
# 
# The length of namelist must no longer than 64.
# 
# This param is optional
#namelist=None


# 
# The port number of remotehost sshd.
# 
# This param is optional
#remotehost_sshd_port=22


# 
# The default maximum number of virtual processers the user can define.
# This value is used as the default value for maximum vcpu number when
# create a guest with no max_cpu specified.
# 
# The number must be a decimal value between 1 and 64.
# 
# This param is optional
#user_default_max_cpu=32


# 
# The default maximum size of memory the user can define.
# This value is used as the default value for maximum memory size when
# create a guest with no max_mem specified.
# The value can be specified by 1-4 bits of number suffixed by either
# M (Megabytes) or G (Gigabytes) and the number must be a whole number,
# values such as 4096.8M or 32.5G are not supported.
# 
# The value should be adjusted based on your system capacity.
# 
# This param is optional
#user_default_max_memory=64G


# This param is optional
#user_default_password=None


# 
# PROFILE name to use when creating a z/VM guest.
# 
# When SDK deploys an guest on z/VM, it can include some
# common statements from a PROFILE definition.
# This PROFILE must already be included in your z/VM user directory.
# 
# Possible values:
#     An 8 character name of a PROFILE that is already defined in the z/VM
#     user directory.
#     
# This param is required
#user_profile=None


# 
# Virtual device number for root disk.
# 
# When SDK deploys an guest, it creates a root disk and potentially
# several data disks. This value is the virtual device number of the root
# disk.
# 
# Possible values:
#     An integer value in hex format, between 0 and 65536 (x'FFFF').
#     It should not conflict with other device numbers in the z/VM guest's
#     configuration, for example device numbers of the NICs or ephemeral or
#     persistent disks.
# 
# Sample root disk in user directory:
#     MDISK 0100 <disktype> <start> <end> <volumelabel> <readwrite>
# 
# This param is optional
#user_root_vdev=0100


