| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2017-08-01 | |||
| 00:59:10 | mriedem | stephenfin: ^ do we have plans to import that into the nova docs? | |
| 00:59:19 | mriedem | because this forced_host thing isn't in the compute API reference | |
| 01:00:51 | jaypipes | really wish we used the names source and destination instead of "host" and "other" | |
| 01:01:09 | mikal | jaypipes: that's defeatist | |
| 01:01:24 | mikal | jaypipes: next you'll be complaining that we convey "hairpin enable failed" with a ProcessException | |
| 01:01:36 | jaypipes | heh | |
| 01:02:08 | mriedem | jaypipes: agree on the naming there, we could rename / refactor later too | |
| 01:02:25 | mriedem | plus there is a lot of redundant code in there before we get to the confirm/revert action which could be put into a private common method | |
| 01:02:51 | jaypipes | mriedem: honestly, I just don't understand why there's a need for the whole "do this test in the opposite order" thing. | |
| 01:04:59 | dansmith | jaypipes: because you fail it differently in each case | |
| 01:05:09 | dansmith | jaypipes: keep it on master and disable the skips and you'll see | |
| 01:05:26 | jaypipes | dansmith: but if the whole "availability_zone": "nova:" + initial thing is so deterministic, why the need? | |
| 01:05:38 | dansmith | because going from one compute node to the other, and running their periodics in that order end up with an updated allocation | |
| 01:05:45 | dansmith | in the reverse order, one of them deletes it last | |
| 01:06:00 | dansmith | i.e. one updates, then the other deletes | |
| 01:06:06 | dansmith | vs one deletes then the other updates (creates) | |
| 01:06:45 | jaypipes | with all the stuff we discussed today about ocata computes, there's going to need to be so many friggin conditionals in these code paths that we're introducing more risk than anything else :( | |
| 01:07:00 | dansmith | you mean in order to pass the tests? | |
| 01:07:07 | dansmith | that's exactly why we must have it tested both ways | |
| 01:07:20 | dansmith | ocata to pike _has_ to work, and pike to pike _has_ to work, with no leaks | |
| 01:07:35 | jaypipes | well these tests don't test ocata to pike, only pike to pike | |
| 01:07:38 | dansmith | pike to ocata I can kind of get on board with allowing to be leaky, but it's still not awesome | |
| 01:07:50 | dansmith | jaypipes: exactly, we must have _at least_ this much coverage, | |
| 01:07:59 | dansmith | and we really need one that simulates the pike/ocata split | |
| 01:08:38 | dansmith | we have the grenade multinode case, which helps, but it's not deterministic | |
| 01:08:49 | dansmith | and I think we've shown thus far, that if we don't lay down a test-driven approach to what we expect, | |
| 01:08:55 | jaypipes | I'm in a fix one thing, break ten others place right now :( | |
| 01:08:58 | dansmith | we're going to keep bouncing around between partial solutions | |
| 01:10:23 | dansmith | jaypipes: I'm not sure what the alternative is.. if I can write a test that shows that the code is broken if we end up running things in a particular sequence, that's a problem right? | |
| 01:11:21 | mriedem | we can possibly build on this to make one of the computes' service version be ocata | |
| 01:11:31 | mriedem | to test that code path in the change that checks the min service version | |
| 01:11:32 | jaypipes | dansmith: I'm not disagreeing with you that shit is broken. I just don't know how to fix this without breaking the happy path | |
| 01:11:44 | dansmith | mriedem: we have to simulate the ocata way of managing allocations too | |
| 01:11:46 | mriedem | plus we can do the single node resize to same host testing building on this | |
| 01:12:15 | dansmith | mriedem: i.e. the "always blow away everything without looking first" way | |
| 01:12:18 | mriedem | happy path is all computes are pike isn't it? | |
| 01:12:22 | dansmith | yes | |
| 01:12:27 | mriedem | which this tests | |
| 01:12:30 | dansmith | right | |
| 01:12:42 | jaypipes | no. happy path is non-move operations. | |
| 01:12:49 | dansmith | hah | |
| 01:12:56 | dansmith | that's the beer path | |
| 01:13:10 | mriedem | so, | |
| 01:13:26 | mriedem | what about bfv with shared storage resize to another az? | |
| 01:13:29 | mriedem | will THAT work?! | |
| 01:13:45 | jaypipes | not funny | |
| 01:13:48 | mriedem | uh mixed compute too | |
| 01:14:16 | mriedem | fine fine fine | |
| 01:14:19 | mriedem | s/resize/evacuate/ | |
| 01:14:23 | mriedem | happy? | |
| 01:15:35 | mriedem | so i think the tests as written are a same-version compute good representation of what we expect for confirm and revert, and before dan moved them from the top of the series of fixes, they were passing | |
| 01:15:45 | mriedem | so i think we get that baseline going, and then starting adding in test wrinkles | |
| 01:16:00 | mriedem | i think this is all easier once we have the tests written | |
| 01:16:21 | dansmith | mriedem: meaning they worked on top of the series, which means the series can work atop the tests, right? | |
| 01:16:30 | mriedem | yeah | |
| 01:16:39 | dansmith | that was my reason for doing that before rebasing, to make sure they could work with jay's set | |
| 01:16:49 | mriedem | just like how we do the functional regression bug testaroos | |
| 01:17:05 | dansmith | agreed, we *have* to get this baseline working, and then we can expand the base a bit | |
| 01:17:12 | dansmith | for things like single compute at least | |
| 01:17:31 | jaypipes | I don't disagree with you. | |
| 01:17:38 | jaypipes | just raging that's all. | |
| 01:17:43 | jaypipes | I'll figure it out eventually. | |
| 01:18:47 | mriedem | i'll go back to commenting up dan's cells docs patch :) | |
| 01:27:30 | jaypipes | dansmith: still here? | |
| 01:27:35 | dansmith | jaypipes: yeah | |
| 01:27:45 | jaypipes | 1136 compute_version = objects.Service.get_minimum_version( | |
| 01:27:45 | jaypipes | dansmith: so this: | |
| 01:27:46 | jaypipes | 1140 heal_allocations = True | |
| 01:27:46 | jaypipes | 1139 if compute_version < 22: | |
| 01:27:46 | jaypipes | 1138 heal_allocations = False | |
| 01:27:46 | jaypipes | 1137 context, 'nova-compute') | |
| 01:27:56 | jaypipes | is not working | |
| 01:28:09 | jaypipes | or at least, it's returning heal_allocations = True in the functional tests | |
| 01:28:27 | dansmith | jaypipes: are you using the allservicescurrent fixture? | |
| 01:28:28 | jaypipes | which is triggering the healing of allocations improperly. | |
| 01:28:36 | dansmith | otherwise you probably have a min ver of zero | |
| 01:28:38 | jaypipes | dansmith: sigh | |
| 01:28:47 | dansmith | jaypipes: mriedem pointed that out earlier | |
| 01:28:50 | jaypipes | you even told me about that earlier. | |
| 01:28:54 | jaypipes | yeah.. :( | |
| 01:28:56 | dansmith | yeah, sorry | |
| 01:39:57 | mriedem | dansmith: ok comments in https://review.openstack.org/#/c/487183/ for the cells docs - looks real purdy | |
| 01:40:06 | mriedem | you can tell me you'll look in the morning and i won't be hurt | |
| 01:40:31 | dansmith | mriedem: I'll look in the morning | |
| 01:41:59 | dansmith | but.. you said... | |
| 01:46:21 | jaypipes | dansmith: other_provider_uuid is the source host right? | |
| 01:46:40 | dansmith | jaypipes: it depends on which direction you're going | |
| 01:47:12 | dansmith | jaypipes: actually, it should always be target the way it's written I think | |
| 01:47:25 | dansmith | provider_uuid is instance[host] and other is the target right/ | |
| 01:47:26 | jaypipes | dansmith: ? if "host" is always the one you were originally scheduled to, then other is the one you're going *to*, right? | |
| 01:47:57 | jaypipes | yeah, ok | |
| 01:48:33 | jaypipes | dansmith: the only thing the "other direction" refers to isn't the direction but rather the order in which the hosts' update_available_resource() is called. | |
| 01:48:45 | jaypipes | I think? | |
| 01:48:46 | dansmith | no | |
| 01:48:54 | dansmith | we always call host1 first and host2 second | |
| 01:49:00 | dansmith | for the periodic | |
| 01:50:47 | mriedem | other_provider_uuid is the target | |
| 01:50:55 | dansmith | right | |
| 01:51:00 | dansmith | the destination host | |
| 01:51:06 | mriedem | we could rename to target or dest or whatever | |