# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.    

[Security]
authAndEncrypt = False

[AccessClusterManager]
#If username and password are left empty, user will be prompted for username and password on the command line.
username = clustermanagerusername
password = clustermanagerpassword

[AccessNodeManager]
#If username and password are left empty, user will be prompted for username and password on the command line.
username = nodemanagerusername
password = nodemanagerpassword

[AllowedUsers]
nodeManagerUser = nodemanagerusername
nodeManagerPassword = nodemanagerpassword
agentUser = agent
agentPassword = agent
clusterManagerUser = clustermanagerusername
clusterManagerPassword = clustermanagerpassword

# ClusterManager portion
[ClusterManager]
service = tashi.clustermanager.ClusterManagerService
data = tashi.clustermanager.data.GetentOverride
dfs = tashi.dfs.Vfs
publisher = tashi.messaging.GangliaPublisher
nodeManagerPort = 9883

[ClusterManagerService]
# Clustermanager hostname
host = localhost 
convertExceptions = True
port = 9882
expireHostTime = 30.0
allowDecayed = 30.0
allowMismatchedVersions = False
maxMemory = 8192
maxCores = 8
allowDuplicateNames = False
;accountingHost = clustermanager
;accountingPort = 2228

[GetentOverride]
baseData = tashi.clustermanager.data.Pickled
fetchThreshold = 60.0

[LdapOverride]
baseData = tashi.clustermanager.data.Pickled
fetchThreshold = 3600.0
nameKey = sAMAccountName
idKey = msSFU30UidNumber
ldapCommand = ldapsearch -x -w password -h host -b searchbase -D binddn msSFU30LoginShell=* -z 0

[FromConfig]
#hostlist = /one/host/per/line
host1 = Host(d={'id':1,'name':'blade043'})
host2 = Host(d={'id':2,'name':'blade044'})
host3 = Host(d={'id':3,'name':'blade045'})
host4 = Host(d={'id':4,'name':'blade074'})
machineType1 = MachineType(d={'id':1,'name':'1c-512m','memory':512,'cores':1})
network1 = Network(d={'id':1,'name':'global'})
network2 = Network(d={'id':2,'name':'NAT'})
user1 = User(d={'id':1,'name':'mryan3'})

[Pickled]
file = /var/tmp/cm.dat

[SQL]
#uri = sqlite:///var/tmp/cm_sqlite.dat
uri = mysql://root@clustermanager/tashi
password = changeme

# Accounting portion
[Accounting]
publisher = tashi.messaging.GangliaPublisher

# NodeManger portion
[NodeManager]
dfs = tashi.dfs.Vfs
vmm = tashi.nodemanager.vmcontrol.Qemu
#vmm = tashi.nodemanager.vmcontrol.XenPV
service = tashi.nodemanager.NodeManagerService
publisher = tashi.messaging.GangliaPublisher

[NodeManagerService]
convertExceptions = True
port = 9883
registerHost = False
registerFrequency = 10.0
# Clustermanger hostname
clusterManagerHost = localhost 
clusterManagerPort = 9882
statsInterval = 0.0

[Qemu]
qemuBin = /usr/bin/kvm
infoDir = /var/tmp/VmControlQemu/
scratchDir = /tmp
pollDelay = 1.0
migrationRetries = 10
monitorTimeout = 60.0
migrateTimeout = 300.0
maxParallelMigrations = 10
useMigrateArgument = False
statsInterval = 0.0
scratchDir = /tmp
scratchVg = vgscratch

[XenPV]
vmNamePrefix = tashi
transientdir = /tmp
defaultVmType = pygrub
#defaultVmType = kernel
#defaultKernel = /boot/vmlinuz-xen
#defaultRamdisk = /boot/initrd-xen
defaultDiskType=qcow

[Vfs]
prefix = /tmp

[LocalityService]
host = localityserverhostname
port = 9884
staticLayout = /location/of/layout/file

# Client configuration
[Client]
# Clustermanager hostname
clusterManagerHost = localhost 
clusterManagerPort = 9882
clusterManagerTimeout = 5.0

# Agent portion
[Agent]
publisher = tashi.messaging.GangliaPublisher

[Primitive]
#hook1 = tashi.agents.DhcpDns
scheduleDelay = 2.0
densePack = False

[MauiWiki]
#hook1 = tashi.agents.DhcpDns
refreshTime = 5
authuser = changeme
authkey = 1111
defaultJobTime = 8640000000

[DhcpDns]
dnsEnabled = True
dnsSecretKey = ABcdEf12GhIJKLmnOpQrsT==
dnsKeyName = name_of_dns_key_hostname
dnsServer = 1.2.3.4 53
dnsDomain = tashi.example.com
dnsExpire = 300
dhcpEnabled = True
dhcpServer = 1.2.3.4
# Host key name
dhcpKeyName = OMAPI
dhcpSecretKey = ABcdEf12GhIJKLmnOpQrsT==
#  ipRangeX - where X is the vlan number 
ipRange1 = 172.16.128.2-172.16.255.254
reverseDns = True
# Clustermanager hostname
clustermanagerhost = localhost
clustermanagerport = 9886

[GangliaPublisher]
dmax = 60
retry = 3600

# Logging stuff
# Switch the "keys" and "handlers" variables below to output log data to the publisher
[loggers]
keys = root	

[handlers]
#keys = consoleHandler,publisherHandler,fileHandler
keys = consoleHandler

[formatters]
keys = standardFormatter

[logger_root]
level = DEBUG
#handlers = consoleHandler,publisherHandler,fileHandler,syslogHandler
handlers = consoleHandler
propagate = 1
	
[handler_consoleHandler]
class = StreamHandler
level = NOTSET
formatter = standardFormatter
args = (sys.stdout,)

[handler_publisherHandler]
class = tashi.messaging.MessagingLogHandler
level = NOTSET
formatter = standardFormatter
args = ()

[handler_fileHandler]
class = FileHandler
level = NOTSET
formatter = standardFormatter
args = ("/var/log/nodemanager.log",)

[handler_syslogHandler]
class = handlers.SysLogHandler
level = NOTSET
formatter = standardFormatter
args = ('/dev/log')

[formatter_standardFormatter]
format=%(asctime)s [%(name)s:%(levelname)s] %(message)s
datefmt=
class=logging.Formatter

# Message Broker
[MessageBroker]
host = localhost
port = 1717

[AWS]
awsfile = /var/tmp/aws.dat
