| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-11-27 | |||
| 12:38:55 | alex_xu | tssurya: I'm not sure whether it is bug. I guess we only trigger that code path when nova side allow normal user can look up other user quota | |
| 12:40:09 | alex_xu | or keystone side policy shrink the authorization | |
| 12:40:18 | tssurya | alex_xu: we have a ML discussion here http://lists.openstack.org/pipermail/openstack-discuss/2019-November/011184.html | |
| 12:40:28 | tssurya | would be great to hear your thoughts too | |
| 12:40:40 | alex_xu | tssurya: cool, i will check | |
| 12:55:03 | openstackgerrit | Balazs Gibizer proposed openstack/nova stable/rocky: Fix false ERROR message at compute restart https://review.opendev.org/694581 | |
| 13:25:34 | openstackgerrit | Merged openstack/nova stable/stein: Join migration_context and flavor in Migration.instance https://review.opendev.org/696083 | |
| 13:29:05 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Mask the token used to allow access to consoles https://review.opendev.org/220622 | |
| 13:29:53 | gibi | melwitt, mriedem: I have updated ^^ | |
| 13:32:15 | openstackgerrit | Brin Zhang proposed openstack/nova master: WIP: Support re-configure the delete_on_termination in server https://review.opendev.org/693828 | |
| 14:43:52 | efried | gibi: you got a minute? | |
| 14:44:07 | gibi | efried: sure | |
| 14:44:17 | efried | I was looking at one of the cyborg patches last night | |
| 14:44:38 | efried | and it led me to looking at how bandwidth resource groups are being sent around | |
| 14:44:52 | efried | which I had never looked at before (I didn't review the original bw series for $reasons) | |
| 14:46:03 | efried | it looks like we're doing this thing where we populate RequestSpec.requested_resources... | |
| 14:46:31 | gibi | yepp | |
| 14:46:50 | efried | ...rather than just populating the ResourceRequest directly from the flavor/image | |
| 14:47:15 | gibi | the bandwidth request is coming from neutron not from flavor/image | |
| 14:47:19 | efried | which makes sense I guess because we need to get the... yes | |
| 14:48:01 | efried | but theoretically... | |
| 14:48:15 | efried | is there a reason we would need to populate requested_resources that way? | |
| 14:48:35 | efried | The difference being that requested_resources is going to be persisted in the RequestSpec as part of the Instance? | |
| 14:48:47 | efried | whereas the ResourceRequest is ephemeral? | |
| 14:49:03 | gibi | RequestSpec.requested_resources is ephemar too | |
| 14:49:15 | gibi | it is explicitly not persisted with the rest of the RequestSpec | |
| 14:49:48 | gibi | as far as I see ResourceRequest is only created right before we generate the a | |
| 14:49:54 | gibi | generate the a_c query | |
| 14:50:15 | gibi | while RequestSpec is created a lot earlier and also kept around a lot more | |
| 14:50:25 | gibi | e.g. sent down to the compute after scheduling | |
| 14:51:42 | gibi | I think this ML post is at least partially realted http://lists.openstack.org/pipermail/openstack-discuss/2019-May/005920.html | |
| 14:53:05 | efried | gibi: I think what I'm asking (and maybe dansmith also could weigh in on this) is: In general if it's possible simply to use the flavor/image-meta to construct the request groups, like what these guys do: | |
| 14:53:05 | efried | https://opendev.org/openstack/nova/src/branch/master/nova/scheduler/utils.py#L141-L143 | |
| 14:53:05 | efried | ...then would there be any other reason to use RequestSpec.requested_resources instead? | |
| 14:53:26 | dansmith | efried: that was supposed to be a hack | |
| 14:53:53 | efried | dansmith: which was? the thing I linked? | |
| 14:53:55 | dansmith | because the requested_resources stuff wasn't ready for ... something | |
| 14:53:59 | dansmith | efried: doing it via the flavor | |
| 14:54:53 | gibi | efried: how do you use flavor/image-meta to construct the bandwidth related request groups? | |
| 14:55:14 | efried | gibi: oh, you wouldn't necessarily for bw, I don't know. | |
| 14:55:21 | dansmith | efried: https://opendev.org/openstack/nova/src/branch/master/nova/scheduler/request_filter.py#L188 | |
| 14:55:27 | efried | presumably that one is more involved, requires going back to neutron API etc. | |
| 14:56:01 | efried | dansmith: that makes it sound like using the *request spec* is the hacky one. | |
| 14:56:32 | efried | i.e. if we want to make sure we don't persist the "interpreted request groups", they're better off being put in the ResourceRequest constructor. | |
| 14:56:48 | dansmith | efried: it's using the *flavor* in the request_spec, instead of requested_resources | |
| 14:57:08 | gibi | efried: there is a gap, an itch, something. We have flavor to describe the nova related resource requst, we have the neutron port that describes the networking related resource request. And we need a common, internal place where we collect these. And that should be the RequestSpec. But today we have different ways to collect the resource request there | |
| 14:57:30 | dansmith | efried: there was a big thing when we merged that code, something that couldn't be done with requested_resources because of traits in the unnumbered group or some such, so that flavor-based approach was the workaround until that got resolved | |
| 14:57:38 | dansmith | efried: I'm sure mriedem remembers, but he's out | |
| 14:57:43 | gibi | we store a flavor in the RequestSpec but also a list of RequestGroups | |
| 14:58:40 | gibi | dansmith, efried: at the moment the requested_resources list does not have _all_ the request groups represented as resources reqeusted throigh the flavor are not added to the requested_resources | |
| 14:59:00 | gibi | so there is no unnumbered group there either | |
| 14:59:14 | dansmith | gibi: I don't remember the details, I could try to find that review | |
| 14:59:18 | efried | Right -- no matter what, ResourceRequest.__init__ is going to parse the flavor. | |
| 14:59:26 | dansmith | gibi: but we couldn't request the trait via requested_resources | |
| 14:59:58 | gibi | dansmith: yes, as you would need to add that to the unnumbered group but there is no unnumbered group in the requested_resources | |
| 15:00:24 | dansmith | ah okay I see | |
| 15:00:32 | gibi | efried: yes, at the end ResourceRequest.__init__ uses the flavor,image and the requested_resources to construc the a_c query | |
| 15:01:06 | dansmith | https://review.opendev.org/#/c/656413/2/nova/scheduler/request_filter.py@105 | |
| 15:01:38 | dansmith | anyway, since the (ab)use of the flavor is only transient, not stored or exposed anywhere, it makes it fairly obscure what is going on, IMHO | |
| 15:01:55 | gibi | https://github.com/openstack/nova/blob/23995b4f9945aa242f6a9e7bd5bc700c27f31eb2/nova/objects/request_spec.py#L491 | |
| 15:02:05 | gibi | here is a TODO that is hard to fix ^^ | |
| 15:02:19 | gibi | as per my mail http://lists.openstack.org/pipermail/openstack-discuss/2019-May/005920.html | |
| 15:02:51 | openstackgerrit | Merged openstack/nova stable/stein: Add --dry-run option to heal_allocations CLI https://review.opendev.org/693199 | |
| 15:07:33 | efried | it looks like | |
| 15:07:33 | efried | --> in _provision_instances we populate the RequestSpec.requested_resources, but only with part of the info available | |
| 15:07:33 | efried | --> from select_destinations we call resources_from_request_spec which | |
| 15:07:33 | efried | ---> calls ResourceRequest.__init__ with the RequestSpec, (that ignores the requested_resources and only processes the flavor/image) | |
| 15:07:33 | efried | ---> *then* appends RequestSpec.requested_resources into the ResourceRequest | |
| 15:07:34 | efried | then we call GET /a_c | |
| 15:08:32 | gibi | yepp that sounds like it | |
| 15:08:53 | efried | _provision_instances happens on the conductor side? | |
| 15:09:28 | gibi | I think it happens at the nova-api side | |
| 15:09:52 | efried | sorry, yeah, this whole thing happens on the controller side, duh. | |
| 15:10:21 | gibi | it is called from nova.api.openstack.compute.servers.ServersController.create during boot | |
| 15:38:54 | efried | gibi, bauzas, stephenfin: do y'all want to have a meeting tomorrow or should I cancel? (US folk will be out) | |
| 15:39:07 | stephenfin | I don't have anything to bring up | |
| 15:39:15 | gibi | me neither but I can be present | |
| 15:39:38 | efried | let me see if anyone has put topics on the agenda. If not, I'll cancel. | |
| 15:40:55 | efried | it looks like shilpasd wants to talk about disk provider stuff. | |
| 15:41:08 | gibi | I reviewd the sharing disk spec today it looks good to me | |
| 15:41:19 | gibi | but somebody else should check at least the API impact part | |
| 15:41:20 | stephenfin | Because it's stuck? | |
| 15:41:29 | stephenfin | Maybe we can unstick it now | |
| 15:41:39 | efried | I don't know. I saw gibi's review but haven't dug in | |
| 15:41:39 | gibi | the API impact part needs eyes I would say | |
| 15:42:01 | gibi | bauzas was involved but he is busy downstream recently | |
| 15:42:08 | efried | If nothing else it gives her a scheduled time to talk to a couple of cores. So, gibi would you mind running that meeting? | |
| 15:42:19 | gibi | efried: I can do that, yes | |
| 15:42:26 | efried | thank you sir. | |
| 15:53:38 | bauzas | gibi: efried: thanks | |
| 15:53:47 | bauzas | sorry for being busy at the moment :( | |
| 15:53:52 | gibi | bauzas: no worries | |
| 15:54:14 | efried | gibi, dansmith: stephenfin: can you see any problem with putting the appending of RequestSpec.resource_requests [1] directly into ResourceRequest.__init__ [2]? | |
| 15:54:14 | efried | [1] https://opendev.org/openstack/nova/src/branch/master/nova/scheduler/utils.py#L546-L551 | |
| 15:54:14 | efried | [2] https://opendev.org/openstack/nova/src/branch/master/nova/scheduler/utils.py#L60 | |
| 15:54:43 | efried | Since we're passing in the RequestSpec anyway, it makes sense to me to consolidate that. | |
| 15:55:32 | gibi | efried: that refactoring make sense to me | |
| 15:56:07 | gibi | efried: is it part of a bigger surgery series? | |
| 15:56:28 | efried | gibi: not specifically, no. It's a standalone "make this shit make more sense to efried" patch. | |
| 15:56:40 | gibi | efried: ack. go for it! | |