use name_or_id_clause in get_host
This commit is contained in:
parent
5ee9c7396a
commit
f87d1c3479
2 changed files with 10 additions and 15 deletions
|
|
@ -5467,17 +5467,12 @@ def get_host(hostInfo, strict=False, event=None):
|
|||
}
|
||||
clauses = [eventCondition(event, table='host_config')]
|
||||
|
||||
if isinstance(hostInfo, int):
|
||||
clauses.append("host.id = %(hostInfo)i")
|
||||
elif isinstance(hostInfo, str):
|
||||
clauses.append("host.name = %(hostInfo)s")
|
||||
else:
|
||||
raise koji.GenericError('Invalid type for hostInfo: %s' % type(hostInfo))
|
||||
clause, values = name_or_id_clause(hostInfo, table='host')
|
||||
clauses.append(clause)
|
||||
|
||||
data = {'hostInfo': hostInfo}
|
||||
fields, aliases = zip(*fields.items())
|
||||
query = QueryProcessor(columns=fields, aliases=aliases, tables=tables,
|
||||
joins=joins, clauses=clauses, values=data)
|
||||
joins=joins, clauses=clauses, values=values)
|
||||
result = query.executeOne()
|
||||
if not result:
|
||||
if strict:
|
||||
|
|
|
|||
|
|
@ -40,13 +40,13 @@ class TestSetHostEnabled(unittest.TestCase):
|
|||
joins = ['host ON host.id = host_config.host_id']
|
||||
aliases = ['id', 'user_id', 'name', 'ready', 'task_load',
|
||||
'arches', 'capacity', 'description', 'comment', 'enabled']
|
||||
clauses = ['(host_config.active = TRUE)', 'host.name = %(hostInfo)s']
|
||||
values = {'hostInfo': 'hostname'}
|
||||
clauses = ['(host_config.active = TRUE)', '(host.name = %(host_name)s)']
|
||||
values = {'host_name': 'hostname'}
|
||||
self.assertEqual(query.tables, ['host_config'])
|
||||
self.assertEqual(query.joins, joins)
|
||||
self.assertEqual(set(query.columns), set(columns))
|
||||
self.assertEqual(set(query.aliases), set(aliases))
|
||||
self.assertEqual(query.clauses, clauses)
|
||||
self.assertEqual(set(query.clauses), set(clauses))
|
||||
self.assertEqual(query.values, values)
|
||||
|
||||
def test_get_host_by_id_event(self):
|
||||
|
|
@ -63,13 +63,13 @@ class TestSetHostEnabled(unittest.TestCase):
|
|||
'arches', 'capacity', 'description', 'comment', 'enabled']
|
||||
clauses = ['(host_config.create_event <= 345 AND ( host_config.revoke_event IS NULL '
|
||||
'OR 345 < host_config.revoke_event ))',
|
||||
'host.id = %(hostInfo)i']
|
||||
values = {'hostInfo': 123}
|
||||
'(host.id = %(host_id)s)']
|
||||
values = {'host_id': 123}
|
||||
self.assertEqual(query.tables, ['host_config'])
|
||||
self.assertEqual(query.joins, joins)
|
||||
self.assertEqual(set(query.columns), set(columns))
|
||||
self.assertEqual(set(query.aliases), set(aliases))
|
||||
self.assertEqual(query.clauses, clauses)
|
||||
self.assertEqual(set(query.clauses), set(clauses))
|
||||
self.assertEqual(query.values, values)
|
||||
|
||||
def getQueryMissing(self, *args, **kwargs):
|
||||
|
|
@ -95,5 +95,5 @@ class TestSetHostEnabled(unittest.TestCase):
|
|||
host_info = {'host_id': 567}
|
||||
with self.assertRaises(koji.GenericError) as cm:
|
||||
self.exports.getHost(host_info)
|
||||
self.assertEqual("Invalid type for hostInfo: %s" % type(host_info), str(cm.exception))
|
||||
self.assertEqual("Invalid name or id value: %s" % host_info, str(cm.exception))
|
||||
self.assertEqual(len(self.queries), 0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue