summaryrefslogtreecommitdiffstats
path: root/cts/lab/OCFIPraTest.py.in
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cts/lab/OCFIPraTest.py.in173
1 files changed, 0 insertions, 173 deletions
diff --git a/cts/lab/OCFIPraTest.py.in b/cts/lab/OCFIPraTest.py.in
deleted file mode 100644
index 2cce304..0000000
--- a/cts/lab/OCFIPraTest.py.in
+++ /dev/null
@@ -1,173 +0,0 @@
-#!@PYTHON@
-
-'''OCF IPaddr/IPaddr2 Resource Agent Test'''
-
-__copyright__ = """Original Author: Huang Zhen <zhenhltc@cn.ibm.com>
-Copyright 2004 International Business Machines
-
-with later changes copyright 2005-2023 the Pacemaker project contributors.
-The version control history for this file may have further details.
-"""
-__license__ = "GNU General Public License version 2 or later (GPLv2+) WITHOUT ANY WARRANTY"
-
-import os
-import sys
-import time
-import random
-import struct
-import syslog
-
-from pacemaker import BuildOptions
-
-
-def usage():
- print("usage: " + sys.argv[0] \
- + " [-2]"\
- + " [--ipbase|-i first-test-ip]"\
- + " [--ipnum|-n test-ip-num]"\
- + " [--help|-h]"\
- + " [--perform|-p op]"\
- + " [number-of-iterations]")
- sys.exit(1)
-
-
-def perform_op(ra, ip, op):
- os.environ["OCF_RA_VERSION_MAJOR"] = "1"
- os.environ["OCF_RA_VERSION_MINOR"] = "0"
- os.environ["OCF_ROOT"] = BuildOptions.OCF_ROOT_DIR
- os.environ["OCF_RESOURCE_INSTANCE"] = ip
- os.environ["OCF_RESOURCE_TYPE"] = ra
- os.environ["OCF_RESKEY_ip"] = ip
- os.environ["HA_LOGFILE"] = "/dev/null"
- os.environ["HA_LOGFACILITY"] = "local7"
- path = BuildOptions.OCF_ROOT_DIR + "/resource.d/heartbeat/" + ra
- return os.spawnvpe(os.P_WAIT, path, [ra, op], os.environ)
-
-
-def audit(ra, iplist, ipstatus, summary):
- passed = 1
- for ip in iplist:
- ret = perform_op(ra, ip, "monitor")
- if ret != ipstatus[ip]:
- passed = 0
- log("audit: status of %s should be %d but it is %d\t [failure]" %
- (ip,ipstatus[ip],ret))
- ipstatus[ip] = ret
- summary["audit"]["called"] += 1;
- if passed :
- summary["audit"]["success"] += 1
- else :
- summary["audit"]["failure"] += 1
-
-
-def log(towrite):
- t = time.strftime("%Y/%m/%d_%H:%M:%S\t", time.localtime(time.time()))
- logstr = t + " "+str(towrite)
- syslog.syslog(logstr)
- print(logstr)
-
-if __name__ == '__main__':
- ra = "IPaddr"
- ipbase = "127.0.0.10"
- ipnum = 1
- itnum = 50
- perform = None
- summary = {
- "start":{"called":0,"success":0,"failure":0},
- "stop" :{"called":0,"success":0,"failure":0},
- "audit":{"called":0,"success":0,"failure":0}
- }
- syslog.openlog(sys.argv[0], 0, syslog.LOG_LOCAL7)
-
- # Process arguments...
- skipthis = None
- args = sys.argv[1:]
- for i in range(0, len(args)) :
- if skipthis :
- skipthis = None
- continue
- elif args[i] == "-2" :
- ra = "IPaddr2"
- elif args[i] == "--ip" or args[i] == "-i" :
- skipthis = 1
- ipbase = args[i+1]
- elif args[i] == "--ipnum" or args[i] == "-n" :
- skipthis = 1
- ipnum = int(args[i+1])
- elif args[i] == "--perform" or args[i] == "-p" :
- skipthis = 1
- perform = args[i+1]
- elif args[i] == "--help" or args[i] == "-h" :
- usage()
- else:
- itnum = int(args[i])
-
- log("Begin OCF IPaddr/IPaddr2 Test")
-
- # Generate the test ips
- iplist = []
- ipstatus = {}
- fields = ipbase.split('.')
- for i in range(0, ipnum) :
- ip = fields.join('.')
- iplist.append(ip)
- ipstatus[ip] = perform_op(ra,ip,"monitor")
- fields[3] = str(int(fields[3])+1)
- log("Test ip:" + str(iplist))
-
- # If use ask perform an operation
- if perform != None:
- log("Perform opeartion %s"%perform)
- for ip in iplist:
- perform_op(ra, ip, perform)
- log("Done")
- sys.exit()
-
- log("RA Type:" + ra)
- log("Test Count:" + str(itnum))
-
- # Prepare Random
- f = open("/dev/urandom", "r")
- seed = struct.unpack("BBB", f.read(3))
- f.close()
- #seed=(123,321,231)
- rand = random.Random()
- rand.seed(seed[0])
- log("Test Random Seed:" + str(seed))
-
- #
- # Begin Tests
-
- log(">>>>>>>>>>>>>>>>>>>>>>>>")
- for i in range(0, itnum):
- ip = rand.choice(iplist)
- if ipstatus[ip] == 0:
- op = "stop"
- elif ipstatus[ip] == 7:
- op = "start"
- else :
- op = rand.choice(["start","stop"])
-
- ret = perform_op(ra, ip, op)
- # update status
- if op == "start" and ret == 0:
- ipstatus[ip] = 0
- elif op == "stop" and ret == 0:
- ipstatus[ip] = 7
- else :
- ipstatus[ip] = 1
- result = ""
- if ret == 0:
- result = "success"
- else :
- result = "failure"
- summary[op]["called"] += 1
- summary[op][result] += 1
- log( "%d:%s %s \t[%s]"%(i, op, ip, result))
- audit(ra, iplist, ipstatus, summary)
-
- log("<<<<<<<<<<<<<<<<<<<<<<<<")
- log("start:\t" + str(summary["start"]))
- log("stop: \t" + str(summary["stop"]))
- log("audit:\t" + str(summary["audit"]))
-