| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-03-15 | |||
| 13:57:29 | mordred | efried: yes. | |
| 13:57:40 | efried | so - already done \o/ | |
| 13:57:42 | efried | more or less | |
| 13:57:53 | mordred | efried: so - basically what we need is a loop that does what that's doing for all of the service types | |
| 13:58:33 | mordred | efried: and then we need to extract the parameters because the ks_loading.load_auth_from_ ... methods don't make sense in this context | |
| 13:58:41 | mordred | but it would be pretty quick/easy to do | |
| 13:58:57 | mordred | if we're talking train, it should be pretty easy to write the loader method in sdk | |
| 13:59:11 | efried | mordred: And as I understand it, the sdk contains "primitives" that will make e.g. https://review.openstack.org/#/c/642899/9/nova/virt/ironic/client_wrapper.py@101 (the node_get method) redundant and unnecessary. | |
| 13:59:18 | mordred | yes, that's right | |
| 13:59:52 | efried | cool. | |
| 14:00:06 | fried_rice | oh yeah ^ | |
| 14:00:25 | fried_rice | mordred: a little more on ks_loading_load_*_from conversion, if you please? | |
| 14:00:30 | mordred | efried: as a concrete example -- once you have a conn - you can either do conn.baremetal.get() for direct rest, or you can do conn.baremetal.chassis() to get a list of chassis | |
| 14:00:49 | fried_rice | mordred: ack, that makes sense (abstractly). | |
| 14:01:33 | mordred | fried_rice: yeah. sdk *needs* to be the one constructing the adapter, so it needs to consume those parameters as config input | |
| 14:01:42 | fried_rice | mordred: so right now we are, for all services (except maybe cinder?), doing this: https://github.com/openstack/nova/blob/master/nova/conf/ironic.py#L114-L115 | |
| 14:01:49 | mordred | it would be easier for it to also create the session and auth rather than having the ks_loading code do it | |
| 14:02:01 | mordred | yeah - totally - register_ksa_opts should stay | |
| 14:02:32 | fried_rice | so the ksa opts themselves don't change in the conf? That would be convenient. | |
| 14:02:35 | mordred | we just want to make the sdk be able to get its config from the same opts that ksa is defining | |
| 14:02:37 | mordred | yeah | |
| 14:02:53 | fried_rice | Ah nice. This sounds like a pretty low-surface-area change then, from a plumbing perspective. | |
| 14:03:04 | mordred | I *Think* there is a method call we can use to ask ksa what the opts are - so we should be able to be clever and the method should be pretty small | |
| 14:03:07 | mordred | yeah | |
| 14:03:29 | fried_rice | mordred: Yes, see https://github.com/openstack/nova/blob/master/nova/conf/utils.py#L58 | |
| 14:03:31 | mordred | it should be fairly easy - no noticable impact to deployers - and we should be able to delete a bunch of things from nova eventually | |
| 14:03:33 | fried_rice | i.e. we're already doing that. | |
| 14:04:03 | fried_rice | or rather https://github.com/openstack/nova/blob/master/nova/conf/utils.py#L36 | |
| 14:04:04 | mordred | yeah - awesome | |
| 14:04:21 | mordred | I can start a patch to sdk to add the conf loader function | |
| 14:04:31 | fried_rice | nice. | |
| 14:06:16 | mordred | I'm excited about this actually - I think it'll wind up being really helpful in both directions | |
| 14:06:20 | fried_rice | mordred: btw, in case you think this is all just serendipity, you helped me write all of that stuff. | |
| 14:06:38 | fried_rice | this is where you get to say things like, "I love it when a plan comes together". | |
| 14:07:28 | bauzas | internal meeting, in case people were looking at me | |
| 14:07:35 | fried_rice | mordred: agreed, there seems to be a lot of support for "get python-*client out of the way", to the point where I almost wonder whether it should be a Train community goal. | |
| 14:08:10 | fried_rice | mordred: I mean, it can be a U community goal, and that shouldn't stop us doing pieces of it in Train | |
| 14:08:22 | fried_rice | but that would get it more attention | |
| 14:09:31 | mordred | fried_rice: yeah - I thnik if we can get the sdk plumbed in and used in the places you're using adapters now (just the adapters on the sdk connection) | |
| 14:09:59 | mordred | then it'll be pretty easy then to pick off transitions one at a time - since the conn will be available and stuff | |
| 14:15:43 | openstackgerrit | Merged openstack/nova master: add python 3.7 unit test job https://review.openstack.org/610694 | |
| 14:20:01 | fried_rice | mordred: Well, tbh, the only place we're *actually* using the adapter that I know of is for talking to placement. | |
| 14:20:20 | fried_rice | mordred: All the other places we retrofitted to get and adapter so we could use its endpoint to pass to the client constructor and then throw the rest away. | |
| 14:20:40 | fried_rice | s/and adapter/an adapter/ | |
| 14:21:58 | fried_rice | mordred: that being the case, perhaps we could use the placement client (known as SchedulerReportClient) to lead the charge of testing the sdk plumbing. <== cdent | |
| 14:22:33 | cdent | i'd be pro that | |
| 14:22:56 | mordred | ++ | |
| 14:24:17 | fried_rice | mriedem, dansmith: Any foundational/historical/other reasons we shouldn't start doing this? (TLDR Incorporating openstacksdk into nova with the eventual goal of ripping out deps on python-*client and (directly) ksa.) | |
| 14:34:28 | bauzas | fried_rice: CLI is a thing, python bindings is another thing | |
| 14:34:43 | openstackgerrit | Eric Fried proposed openstack/nova master: WIP/PoC: Bypass ironicclient for node.get https://review.openstack.org/642899 | |
| 14:34:58 | bauzas | having a client that's managed by the project teams sounds more maintainable | |
| 14:35:14 | bauzas | with regards to microversions in particular | |
| 14:35:30 | bauzas | I honestly thought about the OSC gap we have atm | |
| 14:35:41 | bauzas | with sean mooney as well | |
| 14:36:00 | fried_rice | bauzas: Sorry, I don't follow. Are you suggesting we keep python-*client in the mix?? | |
| 14:36:12 | bauzas | and we wonder whether we could just use the plugin interface of OSC for having our microversions support *in-tree* | |
| 14:37:10 | fried_rice | forget CLI for the moment; I'm talking about e.g. nova talking to ironic via openstacksdk rather than through python-ironicclient | |
| 14:37:22 | bauzas | fried_rice: IIRC we said in the past that we could probably one day have an OSC CLI which'd be using novaclient python PAI | |
| 14:37:26 | bauzas | API* | |
| 14:37:50 | bauzas | fried_rice: yup, got it | |
| 14:38:10 | bauzas | the problem is that we don't have support for OSC microversions. In what openstacksdk would change this ? | |
| 14:38:27 | bauzas | pardon my french | |
| 14:38:39 | bauzas | I mean 'we don't have OSC supporting nova API microversions' | |
| 14:40:26 | fried_rice | bauzas: forget OSC for the moment. | |
| 14:41:11 | fried_rice | Is there a reason we shouldn't rip out nova's dep on the pythot-ironicclient lib (see nova/virt/ironic/client_wrapper.py) | |
| 14:41:43 | fried_rice | s/pythot/python/ wow | |
| 14:44:52 | bauzas | fried_rice: is there a feature parity between ironicclient and openstacksdk ? | |
| 14:46:02 | bauzas | at least for compute, I can't see it https://docs.openstack.org/openstacksdk/latest/user/guides/compute.html | |
| 14:46:03 | fried_rice | bauzas: For many if not all of the APIs - creepy_owlet could answer that - but even if there's a specific API missing, we can use the adapter.get/put/post/delete primitives | |
| 14:46:55 | fried_rice | ...which is what I was starting to do (via ksa directly as opposed to sdk) via https://review.openstack.org/642899 which started this discussion. | |
| 14:48:13 | bauzas | I'm confused, I thought we were talking about the potential TC goal for Train | |
| 14:49:02 | bauzas | my sole take on using other clients but the project ones is that we need to make sure those projects take ownerships of their respective parts | |
| 14:49:54 | fried_rice | bauzas: Right, we're specifically *not* talking about the current community goal. We're talking about a potential future community goal that's similar, but different. Namely: stop using python-*client from *services* (as opposed to CLIs). | |
| 14:50:49 | mordred | fried_rice: https://review.openstack.org/643601 WIP Make factory for a CloudRegion from CONF objects | |
| 14:51:27 | fried_rice | mordred: ack | |
| 14:51:30 | mordred | fried_rice: that's probably 95% there - obviously needs tests and whatnot - but that's the overall idea | |
| 14:52:22 | mordred | fried_rice: I think - because nova supports people having different accounts for different services, for now we should keep the existing model and have your nova code load session and auth plugin and pass them in - and we'll do one-connection-per-service - even though that's ultimately a little strange | |
| 14:52:44 | fried_rice | mordred: okay, I was wondering about that. | |
| 14:52:46 | mordred | fried_rice: but fits with the consumption model better so we can keep things as it is | |
| 14:53:06 | mordred | then, later, we can talk about whether it makes sense to think about it differently | |
| 14:54:49 | mordred | fried_rice: anyway - I've got a call now, so I'll have to come back to it -but I don't think it'll be super hard to get a working poc based on that | |
| 14:55:02 | fried_rice | ack | |
| 14:56:31 | creepy_owlet | bauzas: there is no feature parity overall, but most of things needed for Nova are there. | |
| 14:57:04 | creepy_owlet | One missing is Volume API, but it should be easy to introduce now that we have all basic bits in place. | |
| 14:57:34 | mordred | and it woudl be good all around to get that added to sdk anyway, so the work would be generally useful | |
| 14:58:15 | creepy_owlet | exactly | |
| 14:58:43 | creepy_owlet | FYI I'd like to start Train with replacing ironicclient with openstacksdk in ironic-inspector | |
| 14:58:54 | creepy_owlet | metalsmith is already 100% openstacksdk | |
| 14:59:28 | openstackgerrit | Eric Fried proposed openstack/nova master: Remove [ironic]api_endpoint option https://review.openstack.org/643483 | |
| 15:16:46 | melwitt | aspiers: heya, was wondering if you're up for writing up a doc for https://review.openstack.org/538498 for rc1? L38 https://etherpad.openstack.org/p/nova-stein-rc-potential | |
| 15:19:48 | mriedem | fried_rice: i was out, but i have an answer, sec | |
| 15:20:39 | mriedem | fried_rice: i mentioned historical context in the community wide goal about sdk usage in server projects and dtroyer replied https://review.openstack.org/#/c/639376/4/goals/train/osc.rst@33 | |
| 15:20:52 | mriedem | tl;dr is it used to be heavyweight to use the sdk | |
| 15:20:59 | mriedem | now it's not so much so we should be ok to use if we want | |
| 15:26:28 | mriedem | but i see dmitry and monty already told you all this | |
| 15:40:51 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Remove stale aggregates notes from scheduler evolution doc https://review.openstack.org/643613 | |
| 15:40:54 | mriedem | bauzas: edleafe: ^ | |
| 15:44:55 | edleafe | mriedem: so is the plan for the evolution doc to remove piece-by-piece instead of all at once? | |
| 15:44:58 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Remove "Fixing the Scheduler DB model" from schedule evolution doc https://review.openstack.org/643615 | |
| 15:45:08 | mriedem | edleafe: some of it needs re-wording, | |