| Summary: | Adding additional node to instackenv.json and running "openstack baremetal import instackenv.json" causes all the existing nodes to lose their existing profile | ||
|---|---|---|---|
| Product: | Red Hat OpenStack | Reporter: | Alexander Chuzhoy <sasha> |
| Component: | openstack-tripleo-common | Assignee: | Miles Gould <mgould> |
| Status: | CLOSED NOTABUG | QA Contact: | Alexander Chuzhoy <sasha> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | medium | ||
| Version: | 10.0 (Newton) | CC: | augol, dsneddon, dtantsur, hbrock, jcoufal, jslagle, kbasil, mburns, mcornea, mgould, rhel-osp-director-maint, sasha, slinaber, srevivo |
| Target Milestone: | --- | ||
| Target Release: | 10.0 (Newton) | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2016-11-02 15:04:14 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
|
Description
Alexander Chuzhoy
2016-09-27 18:03:03 UTC
Thanks for the report, The "openstack baremetal import" command is not part of the Ironic project (even tho it uses the "baremetal" namespace). It's part of TripleO (python-tripleoclient to be more exact). Environment instack-undercloud-5.0.0-0.20160907134010.649dc3f.el7ost.noarch openstack-ironic-conductor-6.1.1-0.20160907120305.0acdfca.el7ost.noarch python-ironicclient-1.7.0-0.20160902094012.464044f.el7ost.noarch python-ironic-tests-6.1.1-0.20160907120305.0acdfca.el7ost.noarch python-ironic-lib-2.1.0-0.20160829084617.52b2d2f.el7ost.noarch openstack-ironic-common-6.1.1-0.20160907120305.0acdfca.el7ost.noarch puppet-ironic-9.2.0-0.20160905145838.d14c611.1.el7ost.noarch openstack-ironic-api-6.1.1-0.20160907120305.0acdfca.el7ost.noarch openstack-ironic-inspector-4.1.1-0.20160906074601.0276422.el7ost.noarch python-ironic-inspector-client-1.9.0-0.20160902092624.6364bc9.el7ost.noarch this is a usability issue in that the user would have to retag all their nodes. jcoufal, do you think this is a blocker? Adjusting the component. Also I don't believe this bug is a blocker at this stage. Answered above. Answered above. Alternative workaround: instead of adding the new nodes to an existing instackenv.json file, create a new file and pass that as the argument to `openstack baremetal import` instead. In general, I'm not convinced this is a bug: you've told Ironic to update the nodes according to the information given in instackenv.json, and it's done exactly that. I can try special-casing properties/capabilities in the update process, but I think there's a good chance it won't be accepted upstream. Sasha, can you attach the two instackenv.json files (before and after) that you were using? Looking at the instackenv.json file from a recent OSPd 10 install, I see that it explicitly includes an entry for each node's capabilities. The logic in the code is "if an entry is not specified in the file, leave it as it is; if it is specified, replace what's there with the version in the file". So blowing away the node's existing capabilities and setting them to what instackenv.json specifies is exactly the intended behaviour. We could special-case properties/capabilities to request the existing entry and merge it with what's specified in instackenv.json, but that would IMHO be weird and brittle. Given the existence of a simple workaround (create a new file for the new nodes, and pass that as the argument to `openstack baremetal import`) we should keep the logic simple, uniform and intelligible. Is there any documentation which suggests that node capabilities will be preserved across `openstack baremetal import` calls? If so, the right thing would IMHO be to fix that to match the existing semantics. closed, no need for needinfo. |