Bug 731615
Summary: | support selecting systems by device in <hostRequires/> | ||
---|---|---|---|
Product: | [Retired] Beaker | Reporter: | Dan Callaghan <dcallagh> |
Component: | scheduler | Assignee: | Dan Callaghan <dcallagh> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | |
Severity: | high | Docs Contact: | |
Priority: | high | ||
Version: | 0.6 | CC: | bpeck, dcallagh, kzhang, mcepl, mcsontos, rmancy, stl |
Target Milestone: | --- | Keywords: | FutureFeature |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Enhancement | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2012-04-26 07:16:14 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Dan Callaghan
2011-08-18 04:21:10 UTC
Would it make sense to also accept <device_pciid op="=" value="1234" /> and search only on the PCI vendor ID? What about searching by PCI subsystem vendor/device IDs? Is that likely to be useful to anybody? *** Bug 784026 has been marked as a duplicate of this bug. *** I have a patch for this, but it doesn't support querying by device type as mentioned in the duplicate bug 784026. But it should be pretty easy to add. (In reply to comment #1) > Would it make sense to also accept > > <device_pciid op="=" value="1234" /> > > and search only on the PCI vendor ID? Just let me note that this is wrong ... it is not obvious for which part of PCI ID (manufacturer or device) you search. (In reply to comment #4) > (In reply to comment #1) > > Would it make sense to also accept > > > > <device_pciid op="=" value="1234" /> > > > > and search only on the PCI vendor ID? > > Just let me note that this is wrong ... it is not obvious for which part of PCI > ID (manufacturer or device) you search. I think such search would be useful (if possible): <device_pciid op="contains" value="1234:" /> <device_pciid op="contains" value=":5678" /> Regards. Dan, Unless you have started working on this please assign to ryang I'd like to free you up to work on native provisioning. Thanks Patch submitted to Gerrit for review: http://gerrit.beaker-project.org/854 The new element is not documented anywhere except in the RELAX NG schema for validating Beaker jobs: http://git.beaker-project.org/cgit/beaker/tree/Common/bkr/common/schema/beaker-job.rng?h=develop#n282 (Eventually we will generate human-readable docs from this schema, one day...) It's the same as described in https://bugzilla.redhat.com/show_bug.cgi?id=784026#c0 except that the element name is <device/> not <pci_id/> because you can select non-PCI devices with it too (for example by driver name). This is broken on stage due to a mistake in the RELAX NG schema (jobs using <device/> will fail validation unless they have all the attributes). Fix pushed to Gerrit: http://gerrit.beaker-project.org/1012 I think we have another failure in this code as well. ProgrammingError: (ProgrammingError) (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')) AND (system.private = 0 OR (EXISTS (SELECT 1 \nFROM system_group \nWHERE system' at line 5") 'SELECT count(1) AS count_1 \nFROM system_arch_map AS system_arch_map_1, system INNER JOIN lab_controller ON lab_controller.id = system.lab_controller_id INNER JOIN distro_lab_controller_map ON lab_controller.id = distro_lab_controller_map.lab_controller_id INNER JOIN distro ON distro.id = distro_lab_controller_map.distro_id \nWHERE system.type = %s AND (EXISTS (SELECT 1 \nFROM system_device_map, device \nWHERE system.id = system_device_map.system_id AND device.id = system_device_map.device_id AND )) AND (system.private = %s OR (EXISTS (SELECT 1 \nFROM system_group \nWHERE system.id = system_group.system_id AND (EXISTS (SELECT 1 \nFROM tg_group, user_group AS user_group_1 \nWHERE tg_group.group_id = system_group.group_id AND tg_group.group_id = user_group_1.group_id AND %s = user_group_1.user_id)))) OR system.owner_id = %s OR system.user_id = %s) AND system.status = %s AND (system.owner_id = %s OR system.loan_id = %s OR system.shared = %s AND NOT (EXISTS (SELECT 1 \nFROM system_group \nWHERE system.id = system_group.system_id)) OR system.shared = %s AND (EXISTS (SELECT 1 \nFROM system_group \nWHERE system.id = system_group.system_id AND (EXISTS (SELECT 1 \nFROM tg_group, user_group AS user_group_2 \nWHERE tg_group.group_id = system_group.group_id AND tg_group.group_id = user_group_2.group_id AND %s = user_group_2.user_id))))) AND system.id = system_arch_map_1.system_id AND %s = system_arch_map_1.arch_id AND NOT (EXISTS (SELECT 1 \nFROM exclude_osmajor \nWHERE system.id = exclude_osmajor.system_id AND %s = exclude_osmajor.osmajor_id AND %s = exclude_osmajor.arch_id)) AND NOT (EXISTS (SELECT 1 \nFROM exclude_osversion \nWHERE system.id = exclude_osversion.system_id AND %s = exclude_osversion.osversion_id AND %s = exclude_osversion.arch_id)) AND distro.install_name = %s' ('Machine', 0, 149L, 149L, 149L, 'Automated', 149L, 149L, 1, 1, 149L, 1L, 3L, 1L, 165L, 1L, 'RHEL5.9-Server-20120417.0.n_nfs-i386') specifically here: (SELECT 1 \nFROM system_device_map, device \nWHERE system.id = system_device_map.system_id AND device.id = system_device_map.device_id AND ) I believe that additional AND is causing the query to explode. I guess this should go back to ASSIGNED, shouldn't it? (In reply to comment #14) > I guess this should go back to ASSIGNED, shouldn't it? Please try again on stage. This should be resolved. |