| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2020-12-09 | |||
| 13:41:26 | elod | lyarwood: the problem is that it could cause another repositories to break (according to the comment in blacklist.txt) :/ | |
| 13:41:47 | elod | however it would be the most convenient way | |
| 13:42:26 | elod | otherwise lots of branches in lots of repos needs to be patched separately :/ | |
| 13:42:35 | lyarwood | elod: I'll propose it and post to the ML | |
| 13:42:38 | lyarwood | elod: yeah indeed | |
| 13:43:50 | elod | lyarwood: thanks! let's see what we can do | |
| 13:48:27 | elod | lyarwood: or maybe if bandit 1.6.3 gets yanked... there's already the issue reported: https://github.com/PyCQA/bandit/issues/663 | |
| 13:53:49 | lyarwood | elod: ah cool | |
| 14:19:28 | bauzas | gibi: around ? | |
| 14:19:49 | bauzas | gibi: I was looking at your comment for https://review.opendev.org/c/openstack/nova/+/749068/2/nova/scheduler/request_filter.py@327 | |
| 14:20:31 | bauzas | actually, I think we need to discuss about why we shouldn't be get required_aggregates | |
| 14:20:57 | bauzas | this would be because Neutron doesn't create those aggregates | |
| 14:22:17 | sean-k-mooney | which aggreates | |
| 14:22:28 | bauzas | (well, Nova would create those aggregates as per https://docs.openstack.org/neutron/latest/admin/config-routed-networks.html step 10 ) | |
| 14:22:40 | bauzas | sean-k-mooney: see ^ | |
| 14:22:45 | sean-k-mooney | neutron creates the nova host aggates and addes server too it for the routed networks | |
| 14:23:12 | sean-k-mooney | i.e. neutron calls nova api and relyes on the replciation fo those host aggrates to placment aggreates | |
| 14:23:15 | bauzas | sean-k-mooney: is that nova or neutron ? | |
| 14:23:36 | bauzas | ah-ha ok | |
| 14:24:09 | bauzas | ok, so neutron directly asks the nova api to create the nova aggregates which then automatically creates the placement one | |
| 14:24:11 | bauzas | kk | |
| 14:24:12 | bauzas | so | |
| 14:24:57 | sean-k-mooney | https://github.com/openstack/neutron/blob/master/neutron/services/segments/plugin.py#L272-L289 | |
| 14:25:20 | sean-k-mooney | yes when its creatign the RPs and inventories | |
| 14:25:22 | bauzas | if an operator uses this prefilter for routed networks, then in case we can't find a routed network related aggregate, should we accept to find any host ? | |
| 14:25:47 | sean-k-mooney | no i dont think so | |
| 14:25:58 | bauzas | (I mean , when a user asks for a network when creating the instance) | |
| 14:26:41 | sean-k-mooney | can you rephase do you mean "openstack server create --network " | |
| 14:26:45 | sean-k-mooney | or somethign else | |
| 14:27:55 | bauzas | yup, this | |
| 14:28:04 | sean-k-mooney | if a server has a port that is connected to a routed network we shoudl always reuiqre the aggreate if the prefilter is enabled | |
| 14:28:33 | sean-k-mooney | neutron does not allow mixing routed subnets and unrouted subnets in the same network | |
| 14:28:33 | bauzas | sean-k-mooney: look at https://review.opendev.org/c/openstack/nova/+/749068/2/nova/scheduler/request_filter.py | |
| 14:28:56 | bauzas | sean-k-mooney: and gibi's concern on L327 | |
| 14:29:13 | bauzas | actually, the prefilter won't ask for any aggregate if we can't find them | |
| 14:29:30 | bauzas | it's just the method which would be returning either False or True | |
| 14:29:34 | sean-k-mooney | so we shoudl be rejecting the request | |
| 14:29:35 | bauzas | but, | |
| 14:29:56 | bauzas | returning False won't do anything AFAICT | |
| 14:30:05 | sean-k-mooney | i mean raise an excption | |
| 14:31:05 | bauzas | sean-k-mooney: k, i see | |
| 14:31:10 | bauzas | sean-k-mooney: that said, just a question | |
| 14:31:14 | bauzas | given two networks | |
| 14:31:33 | bauzas | one having routed segments, and one without any routed segments | |
| 14:32:00 | bauzas | neutron would then create aggregates for the routed segments mapping to net1 | |
| 14:32:11 | bauzas | but wouldn't do anything for net2, right? | |
| 14:32:14 | sean-k-mooney | in that case you want the intersection fo the aggreates | |
| 14:32:23 | sean-k-mooney | yes | |
| 14:32:39 | sean-k-mooney | well not the intersection | |
| 14:32:45 | bauzas | sean-k-mooney: k, so if a user is passing net2 when creating the instance, then we should be accepting it | |
| 14:33:04 | bauzas | and not rejecting the instance creation | |
| 14:33:08 | sean-k-mooney | yes althoughg its unlikely that there will be a mix | |
| 14:33:25 | sean-k-mooney | its vlaid but you tend to have one or the other | |
| 14:33:38 | bauzas | sure, but then the fact that we can't find aggregates for this network doesn't mean it's a blocker | |
| 14:33:50 | sean-k-mooney | correct | |
| 14:33:51 | bauzas | hence us not rejecting it | |
| 14:34:01 | bauzas | so we should keep it valid | |
| 14:34:01 | sean-k-mooney | its only an issue if its a routed network | |
| 14:34:16 | bauzas | and me just accepting gibi's change to turn it into True | |
| 14:34:16 | sean-k-mooney | since that should always have an aggreate per segment | |
| 14:34:34 | sean-k-mooney | you still need to rais in the routed case i think | |
| 14:34:42 | bauzas | sean-k-mooney: sure but the prefilter doesn't know why the aggregate wasn't there | |
| 14:34:55 | bauzas | nova only knows about aggregates | |
| 14:35:05 | sean-k-mooney | but it know if its a routed network request right? | |
| 14:35:11 | bauzas | how? | |
| 14:35:45 | sean-k-mooney | from the presence of a segment on the neutron subnet | |
| 14:35:46 | bauzas | requested_networks is there for *any* network query | |
| 14:35:59 | sean-k-mooney | or ip_allocation=defer | |
| 14:36:01 | bauzas | sean-k-mooney: sorry but again, we don't know it | |
| 14:36:37 | sean-k-mooney | utils.get_aggregates_for_routed_network is calling neutron | |
| 14:36:43 | sean-k-mooney | so it can check | |
| 14:38:06 | sean-k-mooney | https://review.opendev.org/c/openstack/nova/+/749068/2/nova/network/neutron.py#3539 | |
| 14:38:19 | sean-k-mooney | if that retuns segments then its a routed netork | |
| 14:38:37 | bauzas | well, shit, you're right | |
| 14:38:57 | bauzas | we can raise an exception accordingly | |
| 14:40:14 | bauzas | and we do actually | |
| 14:40:36 | bauzas | sean-k-mooney: https://review.opendev.org/c/openstack/nova/+/749068/2/nova/scheduler/utils.py@1383 | |
| 14:42:12 | bauzas | aaaand we actually do this for *any* segment, which is bad and probably why I'm getting large number of issues | |
| 14:42:16 | bauzas | I think I found a bug :)à | |
| 14:43:20 | gibi | bauzas: sorry, I have to get back to you with this I had a complicated day so fat | |
| 14:43:23 | gibi | far | |
| 14:44:08 | bauzas | heh no worries | |
| 14:44:11 | sean-k-mooney | bauzas: raising PlacementAPIConnectFailure is not really the best | |
| 14:44:37 | bauzas | sean-k-mooney: mriedem did that I think in case of any placement call issues | |
| 14:44:56 | sean-k-mooney | ya but its not nessialy a connection issue | |
| 14:45:03 | bauzas | agreed | |
| 14:45:08 | sean-k-mooney | in this case however i dont know if we need to call placemnet at all | |
| 14:45:34 | sean-k-mooney | dont we mirror the aggreate to placement using the hostaggret uuid for the placement aggreate uuid | |
| 14:45:56 | sean-k-mooney | i think we can just do an api db lookup instead | |
| 14:45:57 | bauzas | correxct | |
| 14:46:29 | sean-k-mooney | this is how neutron creates the hostaggret | |
| 14:46:32 | bauzas | I see your point | |
| 14:46:48 | bauzas | if neutron creates a nova aggregate, then I'm ok with your proposal | |
| 14:47:05 | bauzas | I wouldn't be OK if neutron was creating a placement aggregate directly | |
| 14:47:33 | sean-k-mooney | yep it does then it lookup the uuid of the created nova aggrate and uses that to add its RP too the placment aggreate | |
| 14:47:53 | bauzas | your point is fair, I'll change it | |
| 14:47:55 | sean-k-mooney | the nova aggreate is named 'Neutron segment id %s' % segment_id | |
| 14:48:14 | bauzas | that being said, just a left concern, | |
| 14:48:32 | bauzas | if a user passes net2 when creating | |
| 14:48:35 | fungi | sorry, was in meetings... i'd never seen pipdeptree before, that's a rather awesome tool | |