| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2017-02-10 | |||
| 19:08:54 | leakypipes | https://github.com/openstack/nova/blob/master/nova/virt/ironic/driver.py#L331 | |
| 19:09:17 | mriedem | ok, | |
| 19:09:26 | leakypipes | that's how things *already* work :) only for Ironic of course, though. | |
| 19:09:32 | mriedem | so why do we need the extra 'if resource_class: do special ironic stuff' in RT? | |
| 19:09:42 | superdan | because it's the wrong layer | |
| 19:09:47 | superdan | instead of returning the node class, | |
| 19:09:49 | superdan | we should return resources | |
| 19:09:53 | mriedem | because it's doing the whole drop old types, add new resource class | |
| 19:09:56 | leakypipes | mriedem: because Ironic doesn't require the node.resource_class to be present. | |
| 19:09:56 | superdan | so that the RT doesn't need to translate | |
| 19:10:15 | superdan | the ironic driver can return the VCPU, DISK, and IRONIC_FOO things when appropriate | |
| 19:10:21 | leakypipes | Take a look at the first PS on this: https://review.openstack.org/#/c/415921/ | |
| 19:11:22 | superdan | leakypipes: why not just "return inventory"? | |
| 19:11:25 | leakypipes | specifically, go here: | |
| 19:11:26 | leakypipes | https://review.openstack.org/#/c/415921/8..1/nova/virt/libvirt/driver.py | |
| 19:11:31 | leakypipes | line 5471 | |
| 19:11:59 | superdan | I don't like the semantics of this, but the general idea is what I'm saying | |
| 19:12:12 | leakypipes | superdan: because there was a complaint that "the virt driver then needs to understand the internals of the resource provider and inventory modeling of the placement API"./ | |
| 19:12:30 | jroll | I don't think it does | |
| 19:12:42 | superdan | it just needs to know about resources, which is completely reasonable IMHO | |
| 19:12:42 | jroll | it just needs to know what a VCPUS is, what a MEMORY_MB is, etc | |
| 19:12:53 | superdan | right | |
| 19:12:54 | superdan | and it knows about those today | |
| 19:13:00 | superdan | we just have to translate them from useless to usefulish in the RT | |
| 19:13:10 | superdan | and then we get shit like "if ironic, do other stuff" too high in the stack | |
| 19:14:54 | superdan | leakypipes: okay so I have sufficiently shit all over your thing, but I think that the end result is getting to do it like you originally wanted right? | |
| 19:15:02 | leakypipes | superdan: and hierarchies of providers, and traits, etc... | |
| 19:15:07 | melwitt | mriedem: on that max_count = 50 thing on the map_instances, I was trying to say I think because of the map_all = True it will keep looping doing batches of 50 until all are mapped, and then it will return 0 | |
| 19:15:46 | leakypipes | superdan: heh, who knows? I think I've actually had about 3 different patch series that use three different strategies to get there. :) | |
| 19:15:53 | mriedem | melwitt: you're right | |
| 19:15:54 | mriedem | i'm dumb | |
| 19:17:12 | leakypipes | jroll: just go for it :) | |
| 19:17:30 | jroll | leakypipes: I will try next week sometime | |
| 19:17:37 | superdan | jroll: well, we're two weeks from being able to do that right? | |
| 19:17:41 | jroll | or at least pseudo-code it on the list | |
| 19:17:52 | jroll | superdan: from being able to do what now | |
| 19:17:53 | superdan | leakypipes: well, sorry I dunno what to say.. you asked me to review it | |
| 19:17:58 | superdan | jroll: draw shit on the walls | |
| 19:18:09 | jroll | superdan: yeah that too | |
| 19:18:18 | figleaf | superdan: my objection was that there was too much in terms of placement engine implementation details in the virt layer | |
| 19:18:19 | jroll | f your language | |
| 19:18:34 | figleaf | superdan: not that the virt layer reported its inventory | |
| 19:18:49 | cfriesen | leakypipes: regarding https://review.openstack.org/#/c/265282/4/specs/pike/approved/instance-flavor-api.rst , mordred specifically asked for the flavor "id" to be included as a historical data point about what was used to boot the instance. | |
| 19:18:59 | leakypipes | superdan: no worries man :) | |
| 19:19:07 | superdan | figleaf: the resource class and inventory part of placement is very much the business of the virt driver, IMHO.. | |
| 19:19:17 | cfriesen | leakypipes: even though that id might represent something else now. | |
| 19:19:19 | figleaf | jroll: I think that we *all* need a more visual representation of the flow of information through the code | |
| 19:19:30 | superdan | figleaf: reporting it to placement is not, but reporting it up the stack to compute manager and RT is | |
| 19:19:36 | jroll | figleaf: I want one built in VR where I can swim through it | |
| 19:19:47 | leakypipes | cfriesen: nobody listens to mordred. nothing to see here. move along. | |
| 19:19:51 | figleaf | jroll: you might drown | |
| 19:19:52 | mordred | leakypipes: :) | |
| 19:20:20 | jroll | ha | |
| 19:20:27 | dims_ | LOL | |
| 19:20:57 | leakypipes | here is a visualization of the data flow between the systems: http://www.27bslash6.com/images/logo_for_simon_edhouse.gif | |
| 19:21:13 | superdan | now I'm paying attention | |
| 19:21:16 | jroll | wow | |
| 19:21:50 | leakypipes | ok, back to work people. | |
| 19:21:57 | superdan | wait, which one is ironic and which one is nova | |
| 19:21:58 | mriedem | https://specs.openstack.org/openstack/nova-specs/specs/ocata/approved/resource-providers-scheduler-db-filters.html#other-deployer-impact needs to be updated... | |
| 19:22:02 | superdan | I think ironic is behind, no? | |
| 19:22:29 | jroll | I thought front was nova devs and back was the resource tracker | |
| 19:22:50 | jroll | that's been my experience | |
| 19:22:52 | superdan | jroll: well, certainly has been true some of the time | |
| 19:23:12 | jroll | mriedem: what about it | |
| 19:23:22 | mriedem | jroll: last paragraph isn't correct | |
| 19:23:25 | mriedem | i can update it | |
| 19:23:34 | jroll | ah ok | |
| 19:23:36 | mriedem | but it's going in my ocata marketing survey so it needs to be spotless | |
| 19:23:49 | leakypipes | mriedem: what about the last paragraph is incorrect? | |
| 19:24:18 | mriedem | leakypipes: we don't even attempt to use placement until all of your computes are ocata | |
| 19:24:23 | mriedem | and they can't start in ocata w/o reporting into placement | |
| 19:24:27 | jroll | mriedem: trying to make readers' minds melt so they don't see that you don't care about marketing surveys? | |
| 19:24:34 | mriedem | the fallback described in there says that you can get like one compute / RP back | |
| 19:25:56 | mriedem | specifically, "There may be a short period of time while the scheduler receives a smaller-than-accurate set of resource providers that meet the requested resource amounts." | |
| 19:25:58 | leakypipes | mriedem: gotcha. you want me to push up a fix? | |
| 19:26:23 | mriedem | i think the rest of it, while not correct per the implementation, is generic enough that it's still truthy | |
| 19:26:27 | mriedem | leakypipes: if you want | |
| 19:27:00 | leakypipes | thx mordred I see that :) | |
| 19:27:41 | superdan | mordred: you don't think it's confusing to say that this instance is from flavor foo when foo exists an is totally different now? | |
| 19:28:52 | superdan | mordred: like you booted this instance with flavor foo, and that flavor had 24TB of disk, but foo now has no disk and 64MB of ram, but we report that the instance's flavor is "foo" ? | |
| 19:29:12 | mordred | yah. I mean, the operator who did that is an operator who hates their users | |
| 19:29:30 | sdague | superdan: in the conversation the other day we said we'd document it as "potentially highly fictional" | |
| 19:29:31 | mordred | but as a user who booted the server in the first place, I booted a "foo" server | |
| 19:29:43 | superdan | mordred: for what it's worth, horizon makes the above trivial to do | |
| 19:29:54 | mordred | superdan: that's really sad for everyone | |
| 19:30:05 | sdague | superdan: it does, but there are also lots of people that don't change the meanings of their flavors | |
| 19:30:06 | mordred | I think of flavors sort of like server model numbers | |
| 19:30:16 | mordred | when you order a DL380 from HPE, you get a DL380 | |
| 19:30:19 | superdan | mordred: right, horizon says "you can edit flavors" but what it really means is "I will delete and recreate it for you" | |
| 19:30:19 | mordred | it doesn't stop being a dl380 | |
| 19:30:31 | mordred | but next year, hpe will sell you a new thing called a dl380 | |
| 19:31:01 | sdague | so, it feels fine to include it, but say that the underlying definition may have changed, hence why we give you the definition of what it once was as well | |
| 19:31:09 | leakypipes | mordred: even though you can order 10 DL380s and you'll get seven different motherboard manufacturers? ;) | |
| 19:31:09 | mordred | ++ | |
| 19:31:25 | mordred | (to both of you) | |
| 19:31:30 | sdague | I also think mordred should open a bug with horizon and get them to remove that feature | |
| 19:31:43 | sdague | because, it's terrible as an easy thing to tell users to do | |
| 19:31:51 | mordred | sdague: can we just make flavors undeletable instead? | |
| 19:32:00 | superdan | we've had bugs reported because they changed the size of the flavor foo and the instances didn't change and that was surprising to them | |