| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-06-20 | |||
| 17:03:19 | tssurya | by stuff I mean fields, | |
| 17:03:22 | dansmith | mordred: well, and we're trying to be more reliable than "our one database went down so we're stuck", just wanted to make sure you preferred that over consistency | |
| 17:04:10 | dansmith | tssurya: I want the state to be unknown, | |
| 17:04:20 | dansmith | tssurya: and the other fields can all be missing I think | |
| 17:04:23 | mordred | dansmith: yeah - I think as long as there's a thing we can flag on for the different behavior, it should be fine | |
| 17:04:52 | tssurya | dansmith: but the current API would complain since for some fields we surely need to have values like they can't be blank | |
| 17:04:53 | mordred | and then yeah - state of unknown to me then says you can either omit the other fields or set their value to null | |
| 17:04:58 | tssurya | (right?) | |
| 17:05:07 | dansmith | mordred: ack | |
| 17:05:12 | mordred | clients are going to need to handle servers in an unknown state regardless - there is no magical thing we can do to make this transparent for existing api consumers | |
| 17:05:20 | dansmith | tssurya: yeah, maybe, but that seems like mechanics we can work around if we need | |
| 17:05:29 | tssurya | mordred: setting it to NULL/empty is kind of like lying and not truth also | |
| 17:05:33 | dansmith | tssurya: mordred is a "real api consumer" which is why I want his opinion on this | |
| 17:05:39 | mordred | so I think saying "if you get a server in state UNKNOWN - here's what that means for the rest of the thing" | |
| 17:05:45 | tssurya | dansmith: ack :) | |
| 17:06:15 | mordred | tssurya: yah - totally - honestly I think we could also remove the whole entry (this is a microversion behavior, right?) | |
| 17:06:25 | mordred | sorry - when I said whole entry - I mean key and value | |
| 17:06:26 | dansmith | tssurya: well, saying we don't know what the value is is definitely more honest than saying it _is_ "unknown" or some fake value | |
| 17:06:47 | dansmith | mordred: yeah, so before a microversion you'd get a 500 if a cell is down I guess | |
| 17:06:47 | tssurya | dansmith: true, | |
| 17:06:57 | mordred | I know there is a concern about hitting key errors - but if you opt in to this microversion, you're saying you can deal with unknown state servers | |
| 17:07:03 | mordred | dansmith: ++ | |
| 17:07:04 | dansmith | which is an odd microversion, but.. | |
| 17:07:26 | mordred | well - it's a "list servers with this microversion because I can handle some of the servers in the list having less keys thn I was expecting" | |
| 17:07:32 | dansmith | it's a pretty well-baited one, because if you don't opt into that one for list, you're basically saying "meh, I can't handle the inconsistency" so we're helping by not showing you anything | |
| 17:07:34 | mordred | whereas existing code is just going to error | |
| 17:07:39 | dansmith | yes | |
| 17:07:45 | mordred | dansmith: exactly | |
| 17:08:13 | mordred | it's the old data consistency thing - it's better for the entire data store to be unavailable than to behave ina half-available state and maybe lose data when you thought it was ok | |
| 17:08:38 | dansmith | yeah, like gibi said, | |
| 17:08:41 | mordred | current behavior is 500 - nobody gets accidentally hosed - they can always retry the query until it stops 500ing | |
| 17:08:41 | tssurya | mordred: right | |
| 17:08:43 | mordred | ++ | |
| 17:08:52 | dansmith | if we report hostId=UNKNOWN, then a client thinks all the instances are suddenly on the same host :) | |
| 17:09:56 | dansmith | tssurya: okay so anyway, I think mordred and I agree on this, so I'll comment on the spec about this convo and maybe we can sync up with mriedem when he's back next week and see what he thinks | |
| 17:10:11 | dansmith | tssurya: are you opposed to making this unified or are you okay with either? | |
| 17:10:12 | tssurya | dansmith: ack | |
| 17:10:15 | dansmith | and which is your preference? | |
| 17:10:25 | tssurya | I am okay with either | |
| 17:10:27 | dansmith | all things equal, I mean, which do you think is better? | |
| 17:10:33 | mordred | dansmith: would we have the addresses dict since those are coming from neutron? or do those get stored in the cells db? | |
| 17:10:40 | tssurya | as long as we give at least the uuid back | |
| 17:10:57 | dansmith | mordred: we would have to hit neutron for it since our _cache_ of those values are in the cell db | |
| 17:11:07 | tssurya | like keeping the current 500 behavior if 1 out of 70 goes down is wrong for sure | |
| 17:11:19 | dansmith | tssurya: yeah okay | |
| 17:11:21 | mordred | nod. I mean - I already have code to hit neutron api if the addresses dict is empty - so I'm fine if it's not | |
| 17:11:43 | tssurya | 1) we fix this with skipping down cells as first step 2) return just the uuids with rest as empty | |
| 17:11:48 | mordred | tssurya: uuid and name (filtering on name client-side is frequent/important) | |
| 17:11:50 | tssurya | makes sense ? | |
| 17:12:17 | mordred | if it's possible | |
| 17:12:18 | dansmith | mordred: we don't have easy access to the name, but we can get it from the reqspec if you think it's important | |
| 17:12:21 | tssurya | mordred: we were thinking of skipping a cell if filters are used | |
| 17:12:40 | dansmith | yeah, if you're filtering, and we don't know the value, we assume no match | |
| 17:12:51 | tssurya | dansmith: we don't have the name in req_spec right ? | |
| 17:12:57 | dansmith | tssurya: the display name? | |
| 17:13:05 | tssurya | yes | |
| 17:13:32 | tssurya | meaning we don't have the display_name | |
| 17:13:36 | tssurya | in req_spec | |
| 17:13:52 | dansmith | oh, I guess I'm thinking of buildreq, which stores it while we're building | |
| 17:13:56 | dansmith | so yeah maybe not | |
| 17:14:31 | mordred | ah - we don't have the name? hrm. | |
| 17:15:15 | tssurya | mordred: no :( the only info we can get is uuid, flavor, image, avz, project_id | |
| 17:15:49 | dansmith | the point here is to not store the same thing in multiple places where it gets out of sync (like in cellsv1) | |
| 17:16:19 | stephenfin | zcorneli|lunch: One nit left in that that should be fixed but not blocking on it. If you could address that (and anything else you fancy fixing) in a follow up, that would be appreciated. | |
| 17:16:20 | tssurya | dansmith: yea and I agree with not adding info into top API, but we should make use of the existing info | |
| 17:16:37 | dansmith | tssurya: yeah | |
| 17:16:42 | tssurya | infact just the uuid would also be good enough with the state as UNKNOWN like you said | |
| 17:16:58 | tssurya | and we would anyways need a "odd microversion" bump | |
| 17:17:23 | mordred | hrm. well - it would make things a bit awkward for ansible dynamic inventory without name ... but if that's life, I guess that's life | |
| 17:17:56 | tssurya | mordred: :) | |
| 17:18:19 | mordred | basically it'll make operations that are working with servers that are up not able to find the server if part of the api control is down if/when those servers are being managed by name and not uuid | |
| 17:18:22 | mordred | BUT | |
| 17:18:53 | mordred | maybe that's just life - the existing system would mean you can't deal with ANY of your servers - so it's still an improvement | |
| 17:19:08 | dansmith | yeah | |
| 17:19:15 | dansmith | if we do the 1a option then it gets better | |
| 17:19:18 | mordred | yup | |
| 17:19:28 | tssurya | yea | |
| 17:19:40 | mordred | so yeah - I think 1 followed by 1a would be great | |
| 17:20:23 | dansmith | mordred: thanks for the discussion! | |
| 17:20:26 | tssurya | mordred: totally appreciate your view and opinion on this :) thanks! | |
| 17:20:49 | tssurya | dansmith: so you will write a comment on yours and mordred's behalf in the spec ? | |
| 17:20:58 | dansmith | tssurya: am now yeah | |
| 17:21:04 | tssurya | and then we can discuss it with mriedem and gibi next week | |
| 17:21:18 | tssurya | dansmith: thanks! | |
| 17:21:29 | dansmith | yup | |
| 17:29:10 | openstackgerrit | Merged openstack/nova master: Optimize member_of check for nested providers https://review.openstack.org/573203 | |
| 17:45:55 | zcorneli | stephenfin: Ack. I'll fix that up. | |
| 18:00:39 | dansmith | zcorneli: bonus points if you fix up the stuff in the devstack patch so we can merge that | |
| 18:00:45 | dansmith | if not, I'll try to get around to it at some point | |
| 18:01:13 | zcorneli | Sure, IIRC it looked pretty simple/quick to fix up the stuff mriedem was looking for. | |
| 18:01:27 | dansmith | yup | |
| 18:01:28 | zcorneli | dansmith: I've also got the discard patch almost ready to review as well. | |
| 18:01:34 | dansmith | zcorneli: excellent | |
| 18:02:05 | zcorneli | dansmith: Going to finish the fix up patch, rebase onto it, then post, I think. | |
| 18:02:14 | zcorneli | Then I can take a crack at the devstack fixup. | |
| 18:02:19 | dansmith | cool | |
| 18:11:09 | openstackgerrit | Chris Dent proposed openstack/nova master: WIP: [placement] Add /reshaper handler for POST https://review.openstack.org/576927 | |
| 18:23:02 | openstackgerrit | Merged openstack/nova master: Ensure that os-traits sync is attempted only at start of process https://review.openstack.org/553857 | |
| 18:39:45 | mnaser | so mriedem was working on a patch adding `nova-status upgrade check as part of openstack ansible deployment which is really sweet, but one of the issues we're having is detecting what action we're missing | |
| 18:39:56 | mnaser | is it possible to perhaps have a different exit code depending on which 'issue' | |