Skip to content

Commit b5008f7

Browse files
authored
Merge pull request #710 from cevich/fixdockerlatest
Add docker-latest to list of BZ components to scan
2 parents 5861788 + e8a4db0 commit b5008f7

File tree

2 files changed

+47
-49
lines changed

2 files changed

+47
-49
lines changed

config_defaults/control.ini

+3-3
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ key_match = docker-autotest
7676
# 'key_match' above.
7777

7878
product = Red Hat Enterprise Linux 7, Fedora
79-
component = docker, docker-distribution, docker-registry, atomic,
80-
rhel-server-atomic, rhel-server-docker, rhel-tools-docker,
79+
component = docker, docker-latest, docker-distribution, docker-registry,
80+
atomic, rhel-server-atomic, rhel-server-docker, rhel-tools-docker,
8181
rsyslog-docker, sadc-docker, sssd-docker, runc, skopeo,
82-
ostree, rpm-ostree
82+
ostree, rpm-ostree, docker-selinux, container-selinux
8383
status = NEW, ASSIGNED, POST, MODIFIED, ON_DEV, VERIFIED

control

+44-46
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def subtests_subsubtests(subthing_set, subtest_modules):
5757
subtest_to_subsubtest = {}
5858
for subthing in subthing_set:
5959
parent = subtest_of_subsubtest(subthing, subtest_modules)
60-
if parent == None:
60+
if parent is None:
6161
subtest = subthing
6262
subsubtest = set()
6363
else:
@@ -153,64 +153,62 @@ class ControlINI(ConfigParser.SafeConfigParser, Singleton):
153153
Representation of control settings
154154
"""
155155

156-
# Default relative locations for control settings files
157-
CONTROL_INI_DEFAULT = "config_defaults/control.ini"
158-
CONTROL_INI_CUSTOM = "config_custom/control.ini"
159-
160-
# Mapping of option-name to section name (for generating defaults)
161-
OPT_SEC_MAP = {'include': 'Control',
162-
'exclude': 'Control',
163-
'subthings': 'Control',
164-
'pretests': 'Control',
165-
'subtests': 'Control',
166-
'intratests': 'Control',
167-
'posttests': 'Control',
168-
'url': 'Bugzilla',
169-
'username': 'Bugzilla',
170-
'password': 'Bugzilla',
171-
'excluded': 'Bugzilla',
172-
'key_field': 'Bugzilla',
173-
'key_match': 'Bugzilla',}
174-
175-
# Absolute base path where all other relative paths reside
156+
# Absolute base path to prefix onto below
176157
control_path = os.path.dirname(job.control)
177158

159+
# Default relative locations, prefixed by above
160+
control_ini_default = os.path.join(control_path,
161+
"config_defaults/control.ini")
162+
control_ini_custom = os.path.join(control_path,
163+
"config_custom/control.ini")
164+
178165
# Default location where write() writes to if no file given
179166
write_path = job.resultdir
180167

181168
# Token that signals not to execute tests
182169
NOEXECTOK = '!!!'
183170

184171
def __init__(self):
185-
# Help catch missing options in defaults but not in OPT_SEC_MAP
186-
# by making them None instead of ''
187-
super(ControlINI, self).__init__(allow_no_value=True)
172+
# Inject defaults dict into ancestor's initialization
173+
super(ControlINI, self).__init__(self.defaults(), allow_no_value=True)
188174
self.optionxform = str # support case-sensitive options
189-
for option, section in self.OPT_SEC_MAP.iteritems():
190-
try:
191-
self.add_section(section)
192-
except ConfigParser.DuplicateSectionError:
193-
pass # already existing section
194-
# Empty string is the default value
195-
self.set(section, option, '')
196-
# These option values default to the option name, look up section
197-
for key in ('pretests', 'subtests', 'intratests', 'posttests'):
198-
self.set(self.OPT_SEC_MAP[key], key, key)
175+
176+
def defaults(self): # Part of the ConfigParser interface
177+
"""Return a dictionary containing the instance-wide defaults."""
178+
return dict(include='', exclude='', subthings='',
179+
pretests='pretests', subtests='subtests',
180+
intratests='intratests', posttests='posttests',
181+
url='', username='', password='',
182+
excluded='', key_field='',
183+
key_match='', product='', component='',
184+
status='')
199185

200186
def read(self, filenames=None):
201187
"""
202-
Read CONTROL_INI_DEFAULT or CONTROL_INI_CUSTOM if filenames is None
203-
"""
204-
if filenames is None:
205-
control_ini_default = os.path.join(self.control_path,
206-
self.CONTROL_INI_DEFAULT)
207-
control_ini_custom = os.path.join(self.control_path,
208-
self.CONTROL_INI_CUSTOM)
209-
filenames = [control_ini_default, control_ini_custom]
210-
result = super(ControlINI, self).read(filenames)
211-
if len(result) == 0:
212-
result = ["<ControlINI defaults>"]
213-
logging.debug("Loaded control configuration from %s", str(result[-1]))
188+
Read default and/or custom control.init plus filesnames
189+
190+
:param filenames: List of filenames to attempt to load (in order)
191+
returns: Representation of loaded items
192+
rtype: list
193+
"""
194+
if filenames is None: # Preserve ancestor interface just in case
195+
filenames = []
196+
filenames.append(self.control_ini_custom)
197+
result = ["<Empty Defaults>"]
198+
# Try load defaults via readfp as documented
199+
try:
200+
with open(self.control_ini_default, 'rb') as defaults_file:
201+
# readfp does _not_ merge content, defaults still
202+
# used for missing keys, upon reference.
203+
super(ControlINI, self).readfp(defaults_file)
204+
result.append(defaults_file.name)
205+
except IOError:
206+
pass # Use defaults set from __init__()
207+
# _merge_ any content from the last readable item in filenames
208+
loaded = super(ControlINI, self).read(filenames)
209+
if loaded:
210+
result += loaded
211+
logging.debug("Loaded control configuration from %s", result)
214212
return result
215213

216214
def write(self, fileobject=None):

0 commit comments

Comments
 (0)