| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-01-10 | |||
| 12:52:49 | lyarwood | kashyap: given that the call to detach the encryptor is now hidden from them in _disconnect_volume | |
| 12:53:18 | lyarwood | kashyap: I'm all for helping first time readers through code but it makes the entire thing more confusing IMHO | |
| 12:55:18 | kashyap | lyarwood: Hmm, if you think it'll confuse more, I'll defer to you. | |
| 12:55:35 | kashyap | lyarwood: I noticed what you said is missing in your review comment | |
| 12:56:35 | kashyap | lyarwood: Then maybe you'd want to note that the call to detach the encryptor is elsewhere :-) | |
| 13:01:43 | takashin | alex_xu: Are you aroud? | |
| 13:02:06 | alex_xu | takashin: yea | |
| 13:02:23 | takashin | alex_xu: Is there API meeting today? | |
| 13:03:16 | alex_xu | takashin: yes, but passed few weeks, there is no people show up, then I didn't run it, is there anything you want to discuss, we can discussed at here I think | |
| 13:03:55 | takashin | alex_xu: Okay. I have 2 patches for reviews. | |
| 13:04:07 | takashin | api-ref: Parameter verification for servers.inc: https://review.openstack.org/#/c/528201/ | |
| 13:04:13 | gmann | alex_xu: takashin i was away too since 2-3 weeks. we can resume from next week may be | |
| 13:04:16 | takashin | api-ref: Example verification for servers.inc: https://review.openstack.org/#/c/529520/ | |
| 13:04:38 | takashin | gmann: thanks. | |
| 13:05:00 | takashin | alex_xu: gmann: Would you review the patches? | |
| 13:05:03 | alex_xu | gmann: cool, we will run it | |
| 13:05:20 | alex_xu | takashin: I add them to my review list, will try to reach them | |
| 13:05:40 | gmann | takashin: ywa, i remember to review those half way last week, ll do tomorrow for sure | |
| 13:05:55 | takashin | alex_xu: gmann: Thank you. | |
| 13:06:00 | takashin | That's all. | |
| 13:06:33 | alex_xu | takashin: did you see my comment https://review.openstack.org/#/c/459483/, I think that is thing we should keep consistent, and I think that isn't worth another microversion | |
| 13:07:22 | takashin | alex_xu: I saw your comment. I will fix it tomorrow. | |
| 13:07:34 | alex_xu | takashin: thanks | |
| 13:08:17 | alex_xu | takashin: gmann btw, there is API patch closed to merge https://review.openstack.org/#/c/330406, I'm reviewing it, but still still found something, it will be great you guys can help review it also, the API patch is really huge :) | |
| 13:08:18 | mdbooth | lyarwood: Anyway, like I said the patch is a huge improvement, I don't see any issues in the code. It's simpler and it fixes at least 3 bugs. I'm just cautious about removing context from a driver which is already plenty opaque in places. | |
| 13:09:00 | gmann | alex_xu: sure, added in my tomorrow list | |
| 13:09:24 | takashin | alex_xu: okay. I will review it tomorrow. | |
| 13:10:33 | alex_xu | gmann: takashin thanks! | |
| 13:14:40 | kashyap | mdbooth: Do you recall top off your head, in what scenarios Nova calls 'qemu-img info' for _running_ guests? | |
| 13:14:50 | kashyap | If not, don't worry, I'll go look into code | |
| 13:15:30 | mdbooth | kashyap: Not off the top of my head, but pretty sure there are some. | |
| 13:16:02 | mdbooth | Look at live migration. Maybe imagecache reaper. | |
| 13:19:47 | kashyap | mdbooth: Okido, I'm in a discussion w/ the QEMU Block folks, and they're asking this. | |
| 13:19:54 | efried | mgoddard Where's set_traits_for_provider (https://review.openstack.org/#/c/532290/1/nova/compute/resource_tracker.py@890) defined? I can't find it in master or in your series. | |
| 13:19:54 | kashyap | I'm sure we do, just have to audit | |
| 13:20:09 | efried | mgoddard I ask because I'm actually in the process of implementing that method right now. | |
| 13:20:21 | efried | mgoddard Want to avoid duplication of effort if possible. | |
| 13:31:43 | mgoddard | efried: hi. I'm still implementing that one. I can submit what I have for review if you'd like to see it | |
| 13:32:25 | efried | mgoddard I would, yes. I'll show you mine if you show me yours :) | |
| 13:33:16 | mgoddard | efried: well I don't usually do this, but go on then | |
| 13:34:06 | efried | mgoddard You're probably a little further along BUT one of the key things I'm doing there is exposing a new exception base class for placement API conflicts and raising subclasses thereof from this method and its brethren (e.g. set_aggregates_for_provider, tbd) when they encounter 409s. | |
| 13:34:52 | efried | mgoddard It's in the middle of a rather messy restack, won't be ready to show for a little while yet. | |
| 13:35:22 | efried | mgoddard But now that I know you're also wanting it for the ironic traits bp, seems it needs to be peeled out of that series. | |
| 13:36:21 | efried | which is probably not super hard. Though at the moment it's based on a change that raises a conflict exception for RP creation, which I think *is* tied pretty heavily into that series. | |
| 13:44:24 | kashyap | mdbooth: Just noting for the record, looked for the past few minutes: | |
| 13:44:26 | kashyap | _rebase_with_qemu_img() , _live_snapshot() and _get_instance_disk_info_from_config() [from nova/virt/libvirt/driver.py] | |
| 13:44:42 | kashyap | nova/virt/libvirt/imagebackend.py: | |
| 13:44:59 | kashyap | - cache() --> fetch_func_sync() --> get_disk_size() --> qemu_img_info() | |
| 13:45:04 | sean-k-mooney | efried: QQ is there a top level api for placement aggregates? e.g. can i list all aggregates or list all resocue providers in an aggregate given the aggregate uuid? | |
| 13:45:21 | efried | sean-k-mooney sec... | |
| 13:46:04 | efried | sean-k-mooney Hum, I thought there was, cause I'm gonna need it. Still looking... | |
| 13:46:46 | sean-k-mooney | efried: no rush. you can get teh aggregates a resouce provider is part of but at least looking at the master docs the recprical api does not appear to exist | |
| 13:46:56 | cdent | you can use member_of to get all rps in a given aggregate | |
| 13:47:07 | efried | Ahh, that's it, thanks cdent | |
| 13:47:17 | cdent | https://developer.openstack.org/api-ref/placement/#list-resource-providers | |
| 13:47:57 | cdent | It's not clear how you're supposed to discovery an aggregate, though, other than by looking at https://developer.openstack.org/api-ref/placement/#list-resource-provider-aggregates | |
| 13:48:06 | cdent | or knowing the uuid prior | |
| 13:48:12 | mdbooth | kashyap: I'm not convinced cache() would be called on a running instance. As always with that code, though, it's far from obvious without checking carefully. | |
| 13:48:28 | mdbooth | kashyap: cache() mostly means 'create' | |
| 13:48:29 | kashyap | mdbooth: Yeah, I should've been careful in pointing that out | |
| 13:48:37 | efried | cdent Yeah. That said, is there a use case for that? | |
| 13:48:50 | sean-k-mooney | cdent: ah yes cool. that still leaves me with one question. how do i create the aggreate in the first place with out a top level aggregates api? | |
| 13:49:18 | cdent | efried: not that I'm aware, but just as I was thinking of it I stumbled on "How do I know the aggregates" | |
| 13:49:27 | cdent | sean-k-mooney: it gets created when you use it | |
| 13:49:40 | kashyap | mdbooth: I didn't do a thorough audit, though. Taking notes as I find instances of it & then see where they're called on a running guest | |
| 13:49:47 | kashyap | For live snapshot we do for sure | |
| 13:50:00 | cdent | so if you PUT to /resource_provider/{uuid}/aggregates with a new uuid there ya go | |
| 13:50:01 | efried | sean-k-mooney You "create" it by assigning it to a provider via PUT /rp/{uuid}/aggs | |
| 13:50:02 | sean-k-mooney | cdent: so the first time i add a resouce provider to an agregate it creates the uuid | |
| 13:50:04 | efried | yeah, what he said. | |
| 13:50:12 | mdbooth | kashyap: Did you look in the imagecache periodic task? | |
| 13:50:12 | cdent | yes | |
| 13:50:43 | kashyap | mdbooth: Not yet; so far I'm just noting down instances where it's called. E.g: | |
| 13:50:46 | kashyap | nova/virt/libvirt/imagebackend.py | |
| 13:50:49 | kashyap | - cache() --> fetch_func_sync() | |
| 13:50:51 | kashyap | --> get_disk_size() [from nova/virt/libvirt/driver.py] | |
| 13:50:54 | kashyap | --> qemu_img_info() [from nova/virt/images.py] | |
| 13:50:56 | kashyap | - verify_base_size() --> get_disk_size() | |
| 13:50:59 | kashyap | - class LVM() --> create_image() --> create_lvm_image() --> get_disk_size() --> qemu_img_info() | |
| 13:51:00 | sean-k-mooney | cdent: so the problem of determining an un used uuid for the aggregate is left to the client | |
| 13:51:09 | cdent | yes | |
| 13:51:12 | kashyap | (And then see the calls for the live guest.) | |
| 13:51:12 | efried | sean-k-mooney I knew I wrote that code: https://github.com/openstack/nova/blob/master/nova/scheduler/client/report.py#L431 | |
| 13:51:44 | sean-k-mooney | cdent: ok cool. more reading for me to do :) | |
| 13:51:48 | cdent | sean-k-mooney: there's some stuff in the very early rp specs about such things | |
| 13:51:49 | efried | sean-k-mooney There shouldn't be any such thing as an "unused" aggregate UUID. Unless you mean "used only for one provider", which is pointless. | |
| 13:52:14 | cdent | but if I remember right, the thinking was that the client would already have some identifier in min | |
| 13:52:15 | cdent | d | |
| 13:52:30 | efried | ...because when you remove the last association, placement ought to get rid of that agg ID. | |
| 13:53:02 | efried | cdent Yeah, that's a weird one. In the PowerVM SSP case, the only thing that makes sense is to give the agg the same UUID as the shared storage pool | |
| 13:53:22 | efried | Though I *suppose* I could give the agg the UUID of the cluster instead. It's effectively the same thing in powervm land. | |
| 13:53:43 | sean-k-mooney | efried: well what i mean is if i am createing a set of recouse providers and i want to make them part of a aggregate to group them i need to choose a uuid that is not useed by anyone else. | |
| 13:54:30 | cdent | placement does not clean up the unused agg uuids. that was an early design decision, sort of resulting from how the tables were being normalized to not use uuid keys (and a few others things, it's so long ago) | |
| 13:54:32 | efried | sean-k-mooney Yes, which one would normally do by generating one randomly, BUT that breaks down quickly if you have more than one point of control for that agg. | |
| 13:54:45 | efried | cdent Whoah, so how do they get cleaned up? | |
| 13:54:58 | cdent | they don't | |
| 13:55:02 | cdent | at least not last I checked | |
| 13:55:03 | efried | They just... leak? | |
| 13:55:04 | mgoddard | efried: I have some concerns with the storage of the generation in the provider tree | |
| 13:55:06 | mgoddard | efried: there is a single generation per-provider that covers inventory, traits, and aggregates | |