krb5 commit: Remove manual kdc_realm tests
Greg Hudson
ghudson at MIT.EDU
Fri Jan 11 12:35:15 EST 2013
https://github.com/krb5/krb5/commit/e09e6a7d681df577c4e6fa64d79c40e25e6c3c66
commit e09e6a7d681df577c4e6fa64d79c40e25e6c3c66
Author: Greg Hudson <ghudson at mit.edu>
Date: Fri Jan 11 12:27:36 2013 -0500
Remove manual kdc_realm tests
src/tests/Makefile.in | 1 -
.../kdc_realm/input_conf/kdc_pri_template.conf | 12 -
.../kdc_realm/input_conf/kdc_ref_template.conf | 12 -
.../kdc_realm/input_conf/krb5_priCL_template.conf | 34 --
.../input_conf/krb5_priKDC_1_template.conf | 30 --
.../input_conf/krb5_priKDC_2_template.conf | 31 --
.../input_conf/krb5_priKDC_3_template.conf | 30 --
.../input_conf/krb5_priKDC_4_template.conf | 30 --
.../input_conf/krb5_priKDC_5_template.conf | 30 --
.../input_conf/krb5_priKDC_6_template.conf | 31 --
.../input_conf/krb5_priKDC_7_template.conf | 29 --
.../input_conf/krb5_priKDC_8_template.conf | 33 --
.../kdc_realm/input_conf/krb5_priKDC_template.conf | 30 --
.../kdc_realm/input_conf/krb5_ref_template.conf | 27 --
src/tests/kdc_realm/input_conf/test_KDCs.conf | 9 -
src/tests/kdc_realm/input_conf/test_KDCs_1.conf | 9 -
src/tests/kdc_realm/input_conf/test_princs.conf | 1 -
src/tests/kdc_realm/input_conf/test_setup.conf | 6 -
src/tests/kdc_realm/kdcref.py | 335 --------------------
19 files changed, 0 insertions(+), 720 deletions(-)
diff --git a/src/tests/Makefile.in b/src/tests/Makefile.in
index da52894..4de5504 100644
--- a/src/tests/Makefile.in
+++ b/src/tests/Makefile.in
@@ -91,7 +91,6 @@ check-pytests:: gcred hist kdbtest
$(RUNPYTEST) $(srcdir)/t_keytab.py $(PYTESTFLAGS)
$(RUNPYTEST) $(srcdir)/t_kadmin_acl.py $(PYTESTFLAGS)
$(RUNPYTEST) $(srcdir)/t_kdb.py $(PYTESTFLAGS)
-# $(RUNPYTEST) $(srcdir)/kdc_realm/kdcref.py $(PYTESTFLAGS)
$(RUNPYTEST) $(srcdir)/t_cve-2012-1014.py $(PYTESTFLAGS)
$(RUNPYTEST) $(srcdir)/t_cve-2012-1015.py $(PYTESTFLAGS)
diff --git a/src/tests/kdc_realm/input_conf/kdc_pri_template.conf b/src/tests/kdc_realm/input_conf/kdc_pri_template.conf
deleted file mode 100755
index 2867607..0000000
--- a/src/tests/kdc_realm/input_conf/kdc_pri_template.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-[kdcdefaults]
- kdc_ports = 7777
-
-[realms]
- Y.COM = {
- database_name = %(tier2)s/principal
- acl_file = %(tier2)s/kadm5.acl
- key_stash_file = %(tier2)s/.k5.ATHENA.MIT.EDU
- kdc_ports = 7777
- max_life = 10h 0m 0s
- max_renewable_life = 7d 0h 0m 0s
- }
diff --git a/src/tests/kdc_realm/input_conf/kdc_ref_template.conf b/src/tests/kdc_realm/input_conf/kdc_ref_template.conf
deleted file mode 100755
index fc51010..0000000
--- a/src/tests/kdc_realm/input_conf/kdc_ref_template.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-[kdcdefaults]
- kdc_ports = 7778
-
-[realms]
- Z.COM = {
- database_name = %(tier1)s/principal
- acl_file = %(tier1)s/kadm5.acl
- key_stash_file = %(tier1)s/.k5.ATHENA.MIT.EDU
- kdc_ports = 7778
- max_life = 10h 0m 0s
- max_renewable_life = 7d 0h 0m 0s
- }
diff --git a/src/tests/kdc_realm/input_conf/krb5_priCL_template.conf b/src/tests/kdc_realm/input_conf/krb5_priCL_template.conf
deleted file mode 100755
index 7e31eed..0000000
--- a/src/tests/kdc_realm/input_conf/krb5_priCL_template.conf
+++ /dev/null
@@ -1,34 +0,0 @@
-[libdefaults]
- default_realm = Y.COM
- default_keytab_name = FILE:%(tier2)s/krb5.keytab
- default_tkt_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- default_tgs_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- dns_lookup_kdc = true
- dns_lookup_realm = false
-
-[realms]
- Y.COM = {
- admin_server = KERBEROS.Y.COM
- kdc = %(localFQDN)s:7777
- default_domain = Y.COM
- }
- Z.COM = {
- admin_server = KERBEROS.Z.COM
- kdc = %(localFQDN)s:7778
- default_domain = Z.COM
- }
-
-[domain_realm]
-# .mit.edu = Y.COM
- %(localFQDN)s = Y.COM
- .%(localFQDN)s = Y.COM
- .y.com = Y.COM
- y.com = Y.COM
-
-[dbmodules]
- db_module_dir = %(srcdir)s/plugins/kdb/db2
-
-
-[logging]
- kdc = FILE:%(tier2)s/krb5kdc_cl.log
-
diff --git a/src/tests/kdc_realm/input_conf/krb5_priKDC_1_template.conf b/src/tests/kdc_realm/input_conf/krb5_priKDC_1_template.conf
deleted file mode 100755
index 7a197ca..0000000
--- a/src/tests/kdc_realm/input_conf/krb5_priKDC_1_template.conf
+++ /dev/null
@@ -1,30 +0,0 @@
-[libdefaults]
- default_realm = Y.COM
- default_keytab_name = FILE:%(tier2)s/krb5.keytab
- default_tkt_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- default_tgs_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- dns_lookup_kdc = true
- dns_lookup_realm = false
-
-
-[kdcdefaults]
- no_host_referral = *
- host_based_services = *
-
-[realms]
- Y.COM = {
- kdc = %(localFQDN)s:7777
- }
-
-[domain_realm]
- mybox.mit.edu=Z.COM
- %(localFQDN)s=Y.COM
- .y.com = Y.COM
- y.com = Y.COM
-
-[dbmodules]
- db_module_dir = %(srcdir)s/plugins/kdb/db2
-
-[logging]
- kdc = FILE:%(tier2)s/krb5kdc.log
-
diff --git a/src/tests/kdc_realm/input_conf/krb5_priKDC_2_template.conf b/src/tests/kdc_realm/input_conf/krb5_priKDC_2_template.conf
deleted file mode 100755
index 6f6994f..0000000
--- a/src/tests/kdc_realm/input_conf/krb5_priKDC_2_template.conf
+++ /dev/null
@@ -1,31 +0,0 @@
-[libdefaults]
- default_realm = Y.COM
- default_keytab_name = FILE:%(tier2)s/krb5.keytab
- default_tkt_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- default_tgs_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- dns_lookup_kdc = true
- dns_lookup_realm = false
-
-
-[kdcdefaults]
- no_host_referral = host1
-
-
-[realms]
- Y.COM = {
- kdc = %(localFQDN)s:7777
- host_based_services = *
- }
-
-[domain_realm]
- mybox.mit.edu=Z.COM
- %(localFQDN)s=Y.COM
- .y.com = Y.COM
- y.com = Y.COM
-
-[dbmodules]
- db_module_dir = %(srcdir)s/plugins/kdb/db2
-
-[logging]
- kdc = FILE:%(tier2)s/krb5kdc.log
-
diff --git a/src/tests/kdc_realm/input_conf/krb5_priKDC_3_template.conf b/src/tests/kdc_realm/input_conf/krb5_priKDC_3_template.conf
deleted file mode 100755
index d04ab8c..0000000
--- a/src/tests/kdc_realm/input_conf/krb5_priKDC_3_template.conf
+++ /dev/null
@@ -1,30 +0,0 @@
-[libdefaults]
- default_realm = Y.COM
- default_keytab_name = FILE:%(tier2)s/krb5.keytab
- default_tkt_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- default_tgs_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- dns_lookup_kdc = true
- dns_lookup_realm = false
-
-
-[kdcdefaults]
-# no_host_referral = *
-# host_based_services = *
-
-[realms]
- Y.COM = {
- kdc = %(localFQDN)s:7777
- }
-
-[domain_realm]
- mybox.mit.edu = Z.COM
- %(localFQDN)s = Y.COM
- .y.com = Y.COM
- y.com = Y.COM
-
-[dbmodules]
- db_module_dir = %(srcdir)s/plugins/kdb/db2
-
-[logging]
- kdc = FILE:%(tier2)s/krb5kdc.log
-
diff --git a/src/tests/kdc_realm/input_conf/krb5_priKDC_4_template.conf b/src/tests/kdc_realm/input_conf/krb5_priKDC_4_template.conf
deleted file mode 100755
index 751b22a..0000000
--- a/src/tests/kdc_realm/input_conf/krb5_priKDC_4_template.conf
+++ /dev/null
@@ -1,30 +0,0 @@
-[libdefaults]
- default_realm = Y.COM
- default_keytab_name = FILE:%(tier2)s/krb5.keytab
- default_tkt_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- default_tgs_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- dns_lookup_kdc = true
- dns_lookup_realm = false
-
-
-[kdcdefaults]
- host_based_services = *
-
-[realms]
- Y.COM = {
- kdc = %(localFQDN)s:7777
- no_host_referral = host1, * host2
- }
-
-[domain_realm]
- mybox.mit.edu = Z.COM
- %(localFQDN)s = Y.COM
- .y.com = Y.COM
- y.com = Y.COM
-
-[dbmodules]
- db_module_dir = %(srcdir)s/plugins/kdb/db2
-
-[logging]
- kdc = FILE:%(tier2)s/krb5kdc.log
-
diff --git a/src/tests/kdc_realm/input_conf/krb5_priKDC_5_template.conf b/src/tests/kdc_realm/input_conf/krb5_priKDC_5_template.conf
deleted file mode 100755
index 6d1d2fa..0000000
--- a/src/tests/kdc_realm/input_conf/krb5_priKDC_5_template.conf
+++ /dev/null
@@ -1,30 +0,0 @@
-[libdefaults]
- default_realm = Y.COM
- default_keytab_name = FILE:%(tier2)s/krb5.keytab
- default_tkt_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- default_tgs_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- dns_lookup_kdc = true
- dns_lookup_realm = false
-
-
-[kdcdefaults]
- no_host_referral = host1 testHost host2
- host_based_services = *
-
-[realms]
- Y.COM = {
- kdc = %(localFQDN)s:7777
- }
-
-[domain_realm]
- mybox.mit.edu = Z.COM
- %(localFQDN)s = Y.COM
- .y.com = Y.COM
- y.com = Y.COM
-
-[dbmodules]
- db_module_dir = %(srcdir)s/plugins/kdb/db2
-
-[logging]
- kdc = FILE:%(tier2)s/krb5kdc.log
-
diff --git a/src/tests/kdc_realm/input_conf/krb5_priKDC_6_template.conf b/src/tests/kdc_realm/input_conf/krb5_priKDC_6_template.conf
deleted file mode 100755
index b67bbbb..0000000
--- a/src/tests/kdc_realm/input_conf/krb5_priKDC_6_template.conf
+++ /dev/null
@@ -1,31 +0,0 @@
-[libdefaults]
- default_realm = Y.COM
- default_keytab_name = FILE:%(tier2)s/krb5.keytab
- default_tkt_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- default_tgs_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- dns_lookup_kdc = true
- dns_lookup_realm = false
-
-
-[kdcdefaults]
-# no_host_referral = *
- host_based_services = *
-
-[realms]
- Y.COM = {
- kdc = %(localFQDN)s:7777
- no_host_referral = testHost
- }
-
-[domain_realm]
- mybox.mit.edu = Z.COM
- %(localFQDN)s = Y.COM
- .y.com = Y.COM
- y.com = Y.COM
-
-[dbmodules]
- db_module_dir = %(srcdir)s/plugins/kdb/db2
-
-[logging]
- kdc = FILE:%(tier2)s/krb5kdc.log
-
diff --git a/src/tests/kdc_realm/input_conf/krb5_priKDC_7_template.conf b/src/tests/kdc_realm/input_conf/krb5_priKDC_7_template.conf
deleted file mode 100755
index ed0ddc7..0000000
--- a/src/tests/kdc_realm/input_conf/krb5_priKDC_7_template.conf
+++ /dev/null
@@ -1,29 +0,0 @@
-[libdefaults]
- default_realm = Y.COM
- default_keytab_name = FILE:%(tier2)s/krb5.keytab
- default_tkt_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- default_tgs_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- dns_lookup_kdc = true
- dns_lookup_realm = false
-
-
-[kdcdefaults]
- host_based_services = testHost
-
-[realms]
- Y.COM = {
- kdc = %(localFQDN)s:7777
- }
-
-[domain_realm]
- mybox.mit.edu = Z.COM
- %(localFQDN)s = Y.COM
- .y.com = Y.COM
- y.com = Y.COM
-
-[dbmodules]
- db_module_dir = %(srcdir)s/plugins/kdb/db2
-
-[logging]
- kdc = FILE:%(tier2)s/krb5kdc.log
-
diff --git a/src/tests/kdc_realm/input_conf/krb5_priKDC_8_template.conf b/src/tests/kdc_realm/input_conf/krb5_priKDC_8_template.conf
deleted file mode 100755
index fa01e38..0000000
--- a/src/tests/kdc_realm/input_conf/krb5_priKDC_8_template.conf
+++ /dev/null
@@ -1,33 +0,0 @@
-[libdefaults]
- default_realm = Y.COM
- default_keytab_name = FILE:%(tier2)s/krb5.keytab
- default_tkt_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- default_tgs_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- dns_lookup_kdc = true
- dns_lookup_realm = false
-
-
-[kdcdefaults]
- host_based_services = host1
-
-
-[realms]
- Y.COM = {
- kdc = %(localFQDN)s:7777
- host_based_services = host2
-# host_based_services = testHost
- host_based_services = host3
- }
-
-[domain_realm]
- mybox.mit.edu = Z.COM
- %(localFQDN)s = Y.COM
- .y.com = Y.COM
- y.com = Y.COM
-
-[dbmodules]
- db_module_dir = %(srcdir)s/plugins/kdb/db2
-
-[logging]
- kdc = FILE:%(tier2)s/krb5kdc.log
-
diff --git a/src/tests/kdc_realm/input_conf/krb5_priKDC_template.conf b/src/tests/kdc_realm/input_conf/krb5_priKDC_template.conf
deleted file mode 100755
index 4066de3..0000000
--- a/src/tests/kdc_realm/input_conf/krb5_priKDC_template.conf
+++ /dev/null
@@ -1,30 +0,0 @@
-[libdefaults]
- default_realm = Y.COM
- default_keytab_name = FILE:%(tier2)s/krb5.keytab
- default_tkt_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- default_tgs_enctypes = aes256-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc
- dns_lookup_kdc = true
- dns_lookup_realm = false
-
-
-[kdcdefaults]
-# no_host_referral = *
- host_based_services = *
-
-[realms]
- Y.COM = {
- kdc = %(localFQDN)s:7777
- }
-
-[domain_realm]
- mybox.mit.edu = Z.COM
- %(localFQDN)s = Y.COM
- .y.com = Y.COM
- y.com = Y.COM
-
-[dbmodules]
- db_module_dir = %(srcdir)s/plugins/kdb/db2
-
-[logging]
- kdc = FILE:%(tier2)s/krb5kdc.log
-
diff --git a/src/tests/kdc_realm/input_conf/krb5_ref_template.conf b/src/tests/kdc_realm/input_conf/krb5_ref_template.conf
deleted file mode 100755
index ccfc2d7..0000000
--- a/src/tests/kdc_realm/input_conf/krb5_ref_template.conf
+++ /dev/null
@@ -1,27 +0,0 @@
-[libdefaults]
- default_realm = Z.COM
- default_keytab_name = FILE:%(tier1)s/krb5.keytab
- default_tkt_enctypes = aes128-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc aes256-cts-hmac-sha1-96 aes128-cts
- default_tgs_enctypes = aes128-cts-hmac-sha1-96 des3-hmac-sha1 des-cbc-crc aes256-cts-hmac-sha1-96 aes128-cts
- dns_lookup_kdc = true
- dns_lookup_realm = false
-
-[realms]
- Z.COM = {
- admin_server = KERBEROS.Z.COM
- kdc = %(localFQDN)s:7778
- default_domain = Z.COM
- }
-
-[domain_realm]
- %(localFQDN)s=Z.COM
- .%(localFQDN)s=Z.COM
- .z.com = Z.COM
- z.com = Z.COM
-
-[dbmodules]
- db_module_dir = %(srcdir)s/plugins/kdb/db2
-
-[logging]
- kdc = FILE:%(tier1)s/krb5kdc.log
-
diff --git a/src/tests/kdc_realm/input_conf/test_KDCs.conf b/src/tests/kdc_realm/input_conf/test_KDCs.conf
deleted file mode 100644
index cfb6f87..0000000
--- a/src/tests/kdc_realm/input_conf/test_KDCs.conf
+++ /dev/null
@@ -1,9 +0,0 @@
-krb5_priKDC_template.conf,0
-krb5_priKDC_1_template.conf,1
-krb5_priKDC_2_template.conf,0
-krb5_priKDC_3_template.conf,0
-krb5_priKDC_4_template.conf,1
-krb5_priKDC_5_template.conf,1
-krb5_priKDC_6_template.conf,1
-krb5_priKDC_7_template.conf,0
-krb5_priKDC_8_template.conf,0
\ No newline at end of file
diff --git a/src/tests/kdc_realm/input_conf/test_KDCs_1.conf b/src/tests/kdc_realm/input_conf/test_KDCs_1.conf
deleted file mode 100644
index e66425e..0000000
--- a/src/tests/kdc_realm/input_conf/test_KDCs_1.conf
+++ /dev/null
@@ -1,9 +0,0 @@
-krb5_priKDC_template.conf,0
-krb5_priKDC_1_template.conf,1
-krb5_priKDC_2_template.conf,0
-krb5_priKDC_3_template.conf,1
-krb5_priKDC_4_template.conf,1
-krb5_priKDC_5_template.conf,1
-krb5_priKDC_6_template.conf,1
-krb5_priKDC_7_template.conf,0
-krb5_priKDC_8_template.conf,1
diff --git a/src/tests/kdc_realm/input_conf/test_princs.conf b/src/tests/kdc_realm/input_conf/test_princs.conf
deleted file mode 100644
index fb2c9fc..0000000
--- a/src/tests/kdc_realm/input_conf/test_princs.conf
+++ /dev/null
@@ -1 +0,0 @@
-princUser/admin
\ No newline at end of file
diff --git a/src/tests/kdc_realm/input_conf/test_setup.conf b/src/tests/kdc_realm/input_conf/test_setup.conf
deleted file mode 100644
index 2b3309a..0000000
--- a/src/tests/kdc_realm/input_conf/test_setup.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-sandboxDir=kdc_realm/sandbox
-testKDCconf=test_KDCs.conf
-testKDCconf_1=test_KDCs_1.conf
-principals=test_princs.conf
-tier1=sandbox/tier1
-tier2=sandbox/tier2
diff --git a/src/tests/kdc_realm/kdcref.py b/src/tests/kdc_realm/kdcref.py
deleted file mode 100755
index 217c38a..0000000
--- a/src/tests/kdc_realm/kdcref.py
+++ /dev/null
@@ -1,335 +0,0 @@
-import os
-import sys
-import time
-from subprocess import Popen, PIPE, STDOUT
-import signal
-import socket
-import errno
-import shutil
-
-
-class LaunchError(Exception):
- """ Exception class to signal startup error"""
- pass
-
-class AdminError(Exception):
- """ Exception class to handle admin errors"""
- pass
-
-
-class Launcher:
-
- def __init__(self, path):
- self._buildDir = path
- self._confDir = '%s/tests/kdc_realm/input_conf' % self._buildDir
- confFile ='%s/test_setup.conf' % self._confDir
- confParams = self._testSetup(confFile)
- self._sandboxDir = '%s/%s' % (self._buildDir,confParams['sandboxDir'])
- self._sandboxTier1 = '%s/%s' % (self._sandboxDir, 'tier1')
- self._sandboxTier2 = '%s/%s' % (self._sandboxDir, 'tier2')
- self._configurations = self._readServerConfiguration('%s/%s' % (self._confDir,confParams['testKDCconf']))
- self._configurations_1 = self._readServerConfiguration('%s/%s' % (self._confDir,confParams['testKDCconf_1']))
- self._principals = self._readTestInputs('%s/%s' % (self._confDir,confParams['principals']))
- os.environ["LD_LIBRARY_PATH"] = '%s/lib' % self._buildDir
- self._pidRefKDC = 0
- self._pidMap = dict()
- self._initialized = False
- self._tier1Init = False
- self._tier2Init = False
- self._vars = {'srcdir': self._buildDir,
- 'tier1':self._sandboxTier1,
- 'tier2':self._sandboxTier2,
- 'localFQDN':socket.getfqdn()}
-
- def _launchKDC(self, tierId, args, env):
- """
- Launching KDC server
- """
- cmd = '%s/kdc/krb5kdc' % self._buildDir
- handle = Popen([cmd, args], env=env)
- time.sleep(1)
- # make sure that process is running
- rc = handle.poll()
- if rc is None:
- print 'KDC server has been launched: pid=%s, tier=%s' % (handle.pid, tierId)
- self._pidMap[handle.pid] = 1
- return handle.pid
- else:
- raise LaunchError, 'Failed to launch kdc server'
-
-
- def _prepSandbox(self):
- for tierId in range(1,3):
- tierdir = '%s/tier%i' % (self._sandboxDir, tierId)
- if os.path.exists(tierdir):
- shutil.rmtree(tierdir)
- os.makedirs(tierdir, 0777)
-
-
- def _kill(self, pid = None):
- """
- Kill specific process or group saved in pidMap
- """
- if pid is None:
- target = self._pidMap.keys()
- else:
- target = [pid]
- for p in target:
- if p in self._pidMap:
- del self._pidMap[p]
- try:
- os.kill(p, signal.SIGKILL)
- except OSError:
- pass
-
-
- def _createDB(self, env):
- """
- Creating DB
- """
- cmd = '%s/kadmin/dbutil/kdb5_util' % self._buildDir
- p = Popen([cmd, 'create', '-s'], env = env, stdin=PIPE, stdout=PIPE, stderr=PIPE)
- (out, err) = p.communicate('a\na\n')
- if p.returncode != 0:
- err_msg = 'Failed to create DB: %s' % err
- raise LaunchError, err_msg
-
-
- def _launchClient(self, args, env, princType):
- """
- kinit & kvno
- """
- self._addPrinc(args, env)
- p = Popen(['kinit', args], env = env, stdin=PIPE, stdout=PIPE, stderr=PIPE)
- (out, err) = p.communicate('a\n')
- if int(p.wait()) == 0:
- self._initialized = True
- else:
- err_msg = 'Failed to kinit client: %s' % err
- raise AdminError, err_msg
-
- # testHost', 'mybox.mit.edu is a srv defined in referral KDC. Get its kvno
- cmd = '%s/clients/kvno/kvno' % self._buildDir
- if princType == 0:
- handle = Popen([cmd, '-C', '-S', 'testHost', 'mybox.mit.edu'],
- env = env, stdin=PIPE, stdout=PIPE, stderr=PIPE)
- if princType == 1:
- handle = Popen([cmd, '-C', '-u', 'testHost/mybox.mit.edu'],
- env = env, stdin=PIPE, stdout=PIPE, stderr=PIPE)
- (out, err) = handle.communicate()
- handle.wait()
- print 'kvno return code: %s' % handle.returncode
-
- # Cleanup cached info
- p = Popen(['kdestroy'], env = env, stdin=PIPE, stdout=PIPE, stderr=PIPE)
- (out, err) = p.communicate()
- if int(p.wait()) != 0:
- err_msg = 'Failed to kdestroy cashed tickets: %s' % err
- raise AdminError, err_msg
-
- return handle.returncode
-
-
- def _addPrinc(self, args, env):
- """
- Add Principal
- """
- msg = 'addprinc -pw a %s' % args
- p = Popen(['kadmin.local' ], env = env, stdin=PIPE, stdout=PIPE, stderr=PIPE)
- (out, err) = p.communicate(msg)
- if int(p.wait()) != 0:
- err_msg = 'Failed to add principal %s' % err_msg
- raise AdminError, err_msg
-
-
- def _crossRealm(self, r_local, r_remote, env):
- """
- Croos-realm setup
- """
- msg = 'addprinc -pw a krbtgt/%s@%s' % (r_remote, r_local)
- p = Popen(['kadmin.local' ], env = env, stdin=PIPE, stdout=PIPE, stderr=PIPE)
- (out, err) = p.communicate(msg)
- if int(p.wait()) != 0:
- err_msg = 'Failed to set cross-realm: %s' % err
- raise AdminError, err_msg
-
- msg = 'addprinc -pw a krbtgt/%s@%s' % (r_local, r_remote)
- p = Popen(['kadmin.local' ], env = env, stdin=PIPE, stdout=PIPE, stderr=PIPE)
- (out, err) = p.communicate(msg)
- if int(p.wait()) != 0:
- err_msg = 'Failed to set cross-realm: %s' % err
- raise AdminError, err_msg
-
-
- def _launchRefKDC(self,test_env):
- """
- Launch referral KDC
- """
- test_env["KRB5_CONFIG"] = '%s/krb5.conf' % self._sandboxTier1
- test_env["KRB5_KDC_PROFILE"] = '%s/kdc.conf' % self._sandboxTier1
- server_args = '-n'
- if self._tier1Init == False:
- # Create adequate to the environment config files
- self._createFileFromTemplate('%s' % test_env["KRB5_CONFIG"],
- '%s/%s' % (self._confDir,'krb5_ref_template.conf'),
- self._vars)
- self._createFileFromTemplate('%s' % test_env["KRB5_KDC_PROFILE"],
- '%s/%s' % (self._confDir, 'kdc_ref_template.conf'),
- self._vars)
-
- # create DB for KDC to be referred to
- pid = self._createDB(test_env)
-
- # launch KDC to be referred to
- self._pidRefKDC = self._launchKDC(1, server_args, test_env)
-
- # The tests run against 'testHost/mybox.mit.edu' srv.
- args = 'testHost/mybox.mit.edu'
- self._addPrinc(args, test_env)
- self._crossRealm('Z.COM', 'Y.COM', test_env)
- self._tier1Init = True
-
-
- def _launchTestingPair(self, srvParam,clntParam, princType):
- # launch KDC
- server_env = os.environ.copy()
- server_env["KRB5_KDC_PROFILE"] = '%s/kdc.conf' % self._sandboxTier2
- server_env["KRB5_CONFIG"] = '%s/krb5_KDC.conf' % self._sandboxTier2
- server_args = '-n'
- self._createFileFromTemplate('%s' % server_env["KRB5_CONFIG"],
- '%s/%s' % (self._confDir,srvParam),
- self._vars)
- self._createFileFromTemplate('%s' % server_env["KRB5_KDC_PROFILE"],
- '%s/%s' % (self._confDir,'kdc_pri_template.conf'),
- self._vars)
- if self._tier2Init == False:
- pid = self._createDB(server_env)
- self._crossRealm('Y.COM', 'Z.COM', server_env)
- self._tier2Init = True
-
- server = self._launchKDC( 2, server_args, server_env)
-
- # launch client
- client_env = os.environ.copy()
- client_env["KRB5_CONFIG"] = '%s/krb5_CL.conf' % self._sandboxTier2
- self._createFileFromTemplate('%s' % client_env["KRB5_CONFIG"],
- '%s/%s' % (self._confDir, 'krb5_priCL_template.conf'),
- self._vars)
- client_env["KRB5_KDC_PROFILE"] = server_env["KRB5_KDC_PROFILE"]
- rc = self._launchClient(clntParam, client_env, princType)
- self._kill(server)
- return rc
-
-
- def run(self, args):
- """
- run the test
- """
- test_env = os.environ.copy()
- test_env["SRCDIR"] = '%s' % self._buildDir
-
- # create sandbox file directory if it does not exist
- self._prepSandbox()
-
- if self._tier1Init == False:
- self._launchRefKDC(test_env)
-
- result = dict()
- for princs in self._principals:
- for conf in self._configurations:
- rc = self._launchTestingPair( conf['confName'], princs % self._vars, 0)
- result[conf['confName']] = {'expected':conf['expected'], 'actual':rc}
- print 'Test code for configuration %s principal %s type KRB5_NT_SRV_HST: %s' % (conf, princs, rc)
- self.printTestResults(result)
- for conf in self._configurations_1:
- rc = self._launchTestingPair( conf['confName'], princs % self._vars, 1)
- result[conf['confName']] = {'expected':conf['expected'], 'actual':rc}
- print 'Test code for configuration %s principal %si type KRB5_NT_UNKNOWN: %s' % (conf, princs, rc)
- self.printTestResults(result)
- return result
-
-
- def _readTestInputs(self, path):
- f = open(path, 'r')
- result = []
- for line in f:
- result.append(line.rstrip())
- f.close()
- return result
-
-
- def _readServerConfiguration(self, path):
- f = open(path, 'r')
- result = []
- for line in f:
- fields = (line.rstrip()).split(',')
- result.append({'confName':fields[0],'expected':fields[1]})
- f.close()
- return result
-
-
- def _testSetup(self, path):
- print path
- f = open(path, 'r')
- result = dict()
- for line in f:
- try:
- (a,v) = line.rstrip().split('=')
- result[a]=v
- except:
- print 'bad format for config file, line: %s' % line
- return None
- f.close()
- return result
-
-
- def _createFileFromTemplate(self, outpath, template, vars):
- fin = open(template, 'r')
- result = fin.read() % vars
- fin.close()
- fout = open(outpath, 'w')
- fout.write(result)
- fout.close()
-
-
- def _getDNS(self):
- print socket.getfqdn()
-
-
- def printTestResults(self, testResults):
- success_count = 0
- fail_count = 0
- print '\n'
- print '------------------- Test Results ------------------------'
- for (conf_name, result) in testResults.iteritems():
- if int(result['expected']) == int(result['actual']):
- print 'Test for configuration %s has succeeded' % conf_name
- success_count += 1
- else:
- print 'Test for configuration %s has failed' % conf_name
- fail_count += 1
-
- print '------------------- Summary -----------------------------'
- print 'Of %i tests %i failed, %i succeeded' % (len(testResults),
- fail_count,
- success_count)
- print '---------------------------------------------------------'
-
-
- def clean(self):
- self._kill()
-
-
-if __name__ == '__main__':
- src_path = "%s/.." % os.environ["PWD"]
- print "SOURCE PATH ==>" , src_path
- test = None
- try:
- test = Launcher(src_path)
- result = test.run('main')
- test.clean()
-
- except:
- if test is not None:
- test.clean()
- raise
More information about the cvs-krb5
mailing list