| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-sdks - 2019-08-05 | |||
| 16:44:48 | corvus | cliff==2.15.0 | |
| 16:45:44 | mordred | thanks | |
| 16:47:57 | frickler | I tested some older versions of cliff with no effect, versions 0.9.x of cmd2 give varying errors, so based on that short test list, I'd advise to cap cmd2<0.9 for now | |
| 16:52:14 | mordred | frickler: I don't know why it's not capped | |
| 16:52:58 | mordred | OH | |
| 16:53:00 | mordred | it's because I can't read | |
| 16:54:06 | openstackgerrit | Monty Taylor proposed openstack/cliff master: Pin cmd2 on python3 as well https://review.opendev.org/674652 | |
| 16:54:10 | mordred | frickler, dtroyer: ^& | |
| 17:01:05 | efried | mordred: This [1] is likely because of the way we're (not) fixturing [2], which was pretty weak to begin with. I suspect I can get moving by adding a mock for get_endpoint_from_catalog, and then possibly also get_session_client... but I'm kinda not sure I should keep chasing fixtures for sdk internals like that. Thoughts? | |
| 17:01:05 | efried | [1] https://logs.opendev.org/25/674625/1/check/nova-tox-functional-py36/27b16b6/testr_results.html.gz | |
| 17:01:05 | efried | [2] https://opendev.org/openstack/nova/src/branch/master/nova/tests/fixtures.py#L2125 | |
| 17:13:26 | mordred | efried: hrm. you're making my brain do work | |
| 17:13:44 | mordred | efried: I agree - I don't think you should need to chase fixtures for internals lke that | |
| 17:14:11 | efried | I did open a story for sdk to publish fixtures for this purpose, but people are busy | |
| 17:14:22 | mordred | yeah. and I really want to publish those | |
| 17:14:46 | efried | perhaps initially it's as simple as moving the one from nova into sdk, and it can get better refined later. | |
| 17:14:51 | mordred | efried: maybe for today just adding in a get_endpoint_from_catalog mock - but let's elevate the priority of getting you a real fixture | |
| 17:15:19 | efried | okay, I'll try that on the nova test patch and see what shakes out. | |
| 17:15:55 | mordred | efried: cool. and I'll see if I can sort out something WRT workable long-term exported fixture status | |
| 17:16:45 | efried | thanks mordred | |
| 17:24:54 | openstackgerrit | Merged openstack/openstacksdk master: Enable ansible module test for keypair to check return data https://review.opendev.org/674333 | |
| 17:28:05 | tosky | mordred: hi, is there any update on version handling in SDK (and then microversioning in osc)? I happened to discuss about https://review.opendev.org/#/c/590807/ a few days ago with some cinder developers | |
| 17:58:24 | mordred | tosky: well - sdk handles versions and microversions - but I think to take advantage of that in osc we need to make progress on osc4 | |
| 17:58:44 | mordred | and then start using sdk methods instead of python-cinderclient methods for cinder operations - it's not going to be a QUICK process | |
| 18:01:40 | tosky | mordred: so it does not match that "a couple of weeks" from that comment, I guess? Can you share there (or some public place) what is missing? Because this was one of the blockers for cinder to even start considering OSC as proper replacement | |
| 18:01:50 | tosky | or so I understood | |
| 18:02:10 | tosky | and maybe other people could help with the porting effort | |
| 18:02:26 | mordred | tosky: I just replied on the change - I think we need to circle with dtroyer on plans here - but yes, I totally agree it would be best if we get people to help with the porting effort | |
| 18:09:49 | tosky | mordred: slightly different question - I noticed that the openstackclient functional tests implements their own base classes; have you considered using CLIClient from tempest.lib? | |
| 18:10:18 | tosky | It can be used without the rest of tempest; that's what the python-cinderclient functional tests do (stestr run and that's it) | |
| 19:01:14 | openstackgerrit | Eric Fried proposed openstack/openstacksdk master: Allow limiting Connection service_types from oslo.config https://review.opendev.org/674675 | |
| 19:01:24 | efried | mordred: howza ^ | |
| 21:14:33 | mordred | efried: awesome | |
| 21:43:21 | openstackgerrit | Merged openstack/openstacksdk master: Fix bm tests: sort lists being compared https://review.opendev.org/674640 | |
| 23:53:45 | openstackgerrit | Christian Berendt proposed openstack/openstacksdk master: Update betacloud vendor entry https://review.opendev.org/674715 | |
| #openstack-sdks - 2019-08-06 | |||
| 08:24:43 | dtantsur | Shrews, mordred: there was an existing patch for the traits problem, but thanks for fixing it anyway | |
| 10:22:17 | openstackgerrit | Merged openstack/openstacksdk master: Update betacloud vendor entry https://review.opendev.org/674715 | |
| 10:22:18 | openstackgerrit | Merged openstack/openstacksdk master: Add Python 3 Train unit tests https://review.opendev.org/667494 | |
| 10:32:13 | dtantsur | mordred: we don't support global_request_id in SDK, do we? | |
| 10:36:55 | dtantsur | also it seems that the Volume support it very basic, right? | |
| 12:10:11 | mordred | dtantsur: I'm not sure what global_request_id is? so probably not - but maybe we do via keystoneauth? | |
| 12:11:09 | mordred | dtantsur: and yeah - the openstack.block_storage layer could use more love for sure. | |
| 12:25:46 | dtantsur | oh, yeah, global_request_id is a keystoneauth thing. I just need to know how to pass it to a Connectin.. | |
| 12:44:33 | mordred | dtantsur: ok. I just read the global_request_id stuff in ksa | |
| 12:45:08 | mordred | this is going to be a fun one ... because it's supposed to be set per-request, but the individual requests aren't partcularly exposed | |
| 12:46:58 | mordred | dtantsur: I almost think we should make a $something like a context manager or something, so you coudl say with conn.global_request_id(the_id) as req_conn: req_conn.baremetal.machines() ... or something similar | |
| 12:48:08 | mordred | (because a Connection can be used from a multi-threaded context, so just setting a global_request_id attribute on the Connection object so that it picked it up and passed it in to the request arguments would be a step, but it wouldnt' be the full picture) | |
| 12:48:44 | dtantsur | Ironic currently creates a connection per request (may end up in 1-10 sdk requests, but still) | |
| 12:49:04 | dtantsur | but I like the idea with a context manager | |
| 12:50:34 | mordred | dtantsur: let me poke for just a sec - I think I can make you a patch real quick | |
| 13:04:08 | openstackgerrit | Monty Taylor proposed openstack/openstacksdk master: Add support for global_request_id https://review.opendev.org/674807 | |
| 13:04:13 | mordred | dtantsur: ^^ how about that? | |
| 13:04:22 | dtantsur | lemme see | |
| 13:04:52 | mordred | dtantsur: (it should also let you just set it in the constructor in ironic since you're only doing connection per request anyway) | |
| 13:23:58 | rm_work | dtroyer: apparently here | |
| 13:24:13 | dtroyer | rm_work: +1 | |
| 13:25:34 | rm_work | dtroyer: barbican meeting happening right now and there's some discussion of the right direction for client work, like ... python-Xclient, openstack-sdk, and interfacing with openstackclient etc | |
| 13:25:56 | rm_work | i dunno if they want to spend meeting time on it or if we might just follow up after, but i know you had some thoughts on this from the last time we talked at the PTG I think? | |
| 13:27:10 | rm_work | they're considering deprecating their python-barbicanclient and moving to openstacksdk only? is that right right direction? | |
| 13:27:22 | rm_work | and then would they write in openstack-client support via the SDK code? | |
| 13:27:25 | dtroyer | rm_work: I'm in another meeting at the moment but everything is basically converging on SDK, so I'd support tha | |
| 13:27:30 | rm_work | kk | |
| 13:27:36 | rm_work | np maybe can talk after | |
| 13:31:02 | mordred | rm_work: yes - deprecating python-*client and moving to SDK is the right direction for sure | |
| 13:43:02 | rm_work | ok cool thanks :) | |
| 13:55:43 | efried | mordred, dtantsur: I just added that global_request_id kwarg in ksa's Session.request so you can set it per call | |
| 13:56:01 | efried | I haven't looked at what you're doing in sdk yet... | |
| 13:56:02 | mordred | efried: yah - I bumped the sdk min so we can consume it | |
| 13:56:09 | efried | ah cool | |
| 13:56:17 | mordred | (and added some hooks and stuff) | |
| 13:56:48 | efried | okay, I'll take a closer look. | |
| 14:04:06 | dtantsur | great! | |
| 14:20:43 | Shrews | dtantsur: oops, sorry for missing the traits fix | |
| 16:37:30 | Shrews | mordred: so that code... seems to delete a single object, yet from my cleanup, i see multiple objects for each image. does sdk split that up into separate objects, or is that something rax does behind the scenes? | |
| 16:38:03 | mordred | Shrews: it's something we do ... one sec | |
| 16:38:30 | mordred | Shrews: if you look in openstack/cloud/_object_store.py - and look for "use_slo" | |
| 16:39:02 | mordred | Shrews: and then _upload_large_object | |
| 16:40:24 | mordred | Shrews: https://docs.openstack.org/swift/latest/overview_large_objects.html is the docs for the feature | |
| 16:42:01 | Shrews | ok. i'll have to study this | |
| 16:42:23 | mordred | Shrews: and in delete_object in openstack/cloud/_object_store.py - we check to see if it was a static-large-object. if not, we pass the multipart-manifest = delete param which shoudl cause deleting the dynamic-large-object to delete all the segments. and if it is a static large object deleting the manifest is _supposed_ to delete the segments *I think* | |
| 16:42:45 | mordred | it's also possibel that with static large objects it's our responsibility to delete the segments | |
| 16:42:47 | mordred | or with dynamic | |
| 16:42:52 | mordred | I might be getting the boolean backwards | |
| 16:43:11 | mordred | anyway - yes - please learn things - I'm probably wrong about many parts | |
| 16:48:08 | timburke | ?multipart-manifest=delete works on SLOs -- it does *not* work on DLOs | |
| 16:50:55 | mordred | timburke: on DLOs, we're supposed to delete all of the segments ourselves, yes? | |
| 17:16:13 | timburke | mordred, yup, client's gotta manage the segments for DLO | |
| 18:14:03 | mordred | Shrews: ^^ - ok, so on DLO we're almost certainly leaking segments | |
| 18:14:53 | mordred | Shrews: but I don't see anywhere in nodepool where we're setting use_slo to false so I'd expect we're using SLO | |
| 18:15:44 | Shrews | mordred: would that come from a clouds.yaml setting? | |
| 18:16:08 | Shrews | rackspace profile maybe? | |
| 18:17:30 | Shrews | hrm, all i see is "image_api_use_tasks": true | |
| 18:29:05 | mordred | yeah - it's not a setting we set in clouds.yaml | |
| 18:29:26 | mordred | Shrews: so - a few things ... | |
| 18:30:07 | mordred | Shrews: I think it's entirely possible that we will leak swift objects any time sometihng _else_ goes wrong in an image upload that doesn't trigger that finally | |
| 18:30:27 | mordred | also - maybe we leaked a bunch of things a while back - I think there was a time when the default of use_slo was the opposite | |
| 18:31:08 | mordred | Shrews: maybe on use_tasks clouds we should have delete_image go and look for the object that would have been used and try to delete it? | |
| 18:31:41 | Shrews | maybe | |
| 18:34:19 | Shrews | mordred: is the slo manifest an object within itself? where would i find it? | |
| 18:35:39 | Shrews | wondering if i can view it from the openstack client. all i see are the segments in 'images' | |