# 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
defaultNetwork = 0
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
pollDelay = 1.0
migrationRetries = 10
monitorTimeout = 60.0
migrateTimeout = 300.0
maxParallelMigrations = 10
useMigrateArgument = False
statsInterval = 0.0
scratchDir = /tmp
#scratchVg = vgscratch
suspendHandler = gzip
resumeHandler = zcat
reservedMem = 512

[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
