diff --git a/cts/CIB.py.in b/cts/CIB.py.in index 94b4dccbd6..a308c3b455 100644 --- a/cts/CIB.py.in +++ b/cts/CIB.py.in @@ -1,238 +1,238 @@ #!@PYTHON@ '''CTS: Cluster Testing System: CIB generator ''' __copyright__=''' Author: Jia Ming Pan Copyright (C) 2006 International Business Machines ''' from UserDict import UserDict -import sys, time, types, syslog, whrandom, os, struct, string, signal, traceback +import sys, time, types, syslog, os, struct, string, signal, traceback from CTS import ClusterManager from CM_hb import HeartbeatCM class CIB: cib_option_template = ''' ''' ipaddr_resource_template = ''' ''' clustermon_resource_template = ''' ''' ipaddr_location_constraint = ''' ''' clustermon_location_constraint = ''' ''' resource_group_template = ''' ''' per_node_resource_template = ''' ''' per_node_constraint_template = ''' ''' stonith_resource_template = """ """ cib_fencing = """ """ cib_template =''' %s %s %s ''' def __init__(self, CM): self.CM = CM #make up crm config cib_options = self.cib_option_template % self.CM.use_short_names if CM.Env["DoFencing"] == 1: cib_options += self.cib_fencing #create resources and their constraints resources = "" constraints = "" rsc_class = self.CM.Env["ResourceClass"] keyname = "" if rsc_class =="ocf": keyname = "ip" elif rsc_class=="heartbeat": keyname = "1" else: raise "Unknown resource class, aborted." if self.CM.Env["CIBResource"] == 1: self.CM.log("Enabling DC resource") resources += self.ipaddr_resource_template % \ (rsc_class, keyname, self.CM.Env["IPBase"]) constraints += self.ipaddr_location_constraint if self.CM.cluster_monitor == 1: resources += self.clustermon_resource_template constraints += self.clustermon_location_constraint fields = string.split(self.CM.Env["IPBase"], '.') fields[3] = str(int(fields[3])+1) ip1 = string.join(fields, '.') fields[3] = str(int(fields[3])+1) ip2 = string.join(fields, '.') fields[3] = str(int(fields[3])+1) ip3 = string.join(fields, '.') self.CM.Env["IPBase"] = ip3 resources += self.resource_group_template % \ ("child_"+ip1, rsc_class, "child_"+ip1, "child_"+ip1, keyname, ip1, # primitive 1 "child_"+ip2, rsc_class, "child_"+ip2, "child_"+ip2, keyname, ip2, # primitive 2 "child_"+ip3, rsc_class, "child_"+ip3, "child_"+ip3, keyname, ip3) # primitive 3 # per node resource fields = string.split(self.CM.Env["IPBase"], '.') for node in self.CM.Env["nodes"]: fields[3] = str(int(fields[3])+1) ip = string.join(fields, '.') self.CM.Env["IPBase"] = ip per_node_resources = self.per_node_resource_template % \ ("rsc_"+node, rsc_class, "rsc_"+node, "rsc_"+node, "rsc_"+node, keyname, ip) per_node_constraint = self.per_node_constraint_template % \ ("rsc_"+node, "rsc_"+node, "rsc_"+node, "rsc_"+node, node) resources += per_node_resources constraints += per_node_constraint # fencing resource nodelist = "" len = 0 for node in self.CM.Env["nodes"]: nodelist += node + " " len = len + 1 stonith_resource = self.stonith_resource_template % (len, nodelist) resources += stonith_resource self.cts_cib = self.cib_template % (cib_options, resources, constraints) def cib(self): return self.cts_cib