Earlier  
Posted Nick Remark
#openstack-nova - 2021-04-14
20:23:54 noonedeadpunk because verification if that cell already exists is just broken for tempalate user scenario - as it compares what is passed as an argument with already resolved template
20:23:54 noonedeadpunk because verification if that cell already exists is just broken for tempalate user scenario - as it compares what is passed as an argument with already resolved template
20:23:57 sean-k-mooney i cant think of a valid reason to allow that
20:23:57 sean-k-mooney i cant think of a valid reason to allow that
20:24:23 sean-k-mooney right we should have a unique constraint on the cell name
20:24:23 sean-k-mooney right we should have a unique constraint on the cell name
20:24:35 noonedeadpunk and you can't do that anyway when you use just old good fixed stuff
20:24:35 noonedeadpunk and you can't do that anyway when you use just old good fixed stuff
20:25:12 noonedeadpunk or avoid resolution of the template when we checking if same cell already exist
20:25:12 noonedeadpunk or avoid resolution of the template when we checking if same cell already exist
20:26:03 sean-k-mooney https://opendev.org/openstack/nova/src/branch/master/nova/db/sqlalchemy/api_models.py#L111-L129
20:26:03 sean-k-mooney https://opendev.org/openstack/nova/src/branch/master/nova/db/sqlalchemy/api_models.py#L111-L129
20:26:15 noonedeadpunk So I'd say when we call here https://opendev.org/openstack/nova/src/commit/9e5feb051c15166988e87b10132927135bd56884/nova/cmd/manage.py#L618 we should pass smth like resolve=false
20:26:15 noonedeadpunk So I'd say when we call here https://opendev.org/openstack/nova/src/commit/9e5feb051c15166988e87b10132927135bd56884/nova/cmd/manage.py#L618 we should pass smth like resolve=false
20:26:17 sean-k-mooney so the unique constatin is only the uuid currently
20:26:17 sean-k-mooney so the unique constatin is only the uuid currently
20:26:27 sean-k-mooney we shoudl also have one on the name
20:26:27 sean-k-mooney we shoudl also have one on the name
20:26:41 noonedeadpunk yeah, I saw that...
20:26:41 noonedeadpunk yeah, I saw that...
20:26:46 sean-k-mooney dansmith: do you know why that is the case today ^
20:26:46 sean-k-mooney dansmith: do you know why that is the case today ^
20:27:08 sean-k-mooney dansmith: i.e. why we allow to cell records with the same name?
20:27:08 sean-k-mooney dansmith: i.e. why we allow to cell records with the same name?
20:27:27 sean-k-mooney noonedeadpunk: as far as i know we only use the id in other tables
20:27:27 sean-k-mooney noonedeadpunk: as far as i know we only use the id in other tables
20:27:41 sean-k-mooney noonedeadpunk: so other then cell0 which is speciall we dont really use the cell name
20:27:41 sean-k-mooney noonedeadpunk: so other then cell0 which is speciall we dont really use the cell name
20:28:07 sean-k-mooney noonedeadpunk: its just for operators really
20:28:07 sean-k-mooney noonedeadpunk: its just for operators really
20:28:21 dansmith yeah, name is just for the humans
20:28:21 dansmith yeah, name is just for the humans
20:28:32 noonedeadpunk well, I'm probably even ok that cell name is not unique. I just see no reason in adding cells with same name, transport_url and database_connection
20:28:32 noonedeadpunk well, I'm probably even ok that cell name is not unique. I just see no reason in adding cells with same name, transport_url and database_connection
20:28:34 dansmith but no I dunno any reason to or not to be unique on name for any reason
20:28:34 dansmith but no I dunno any reason to or not to be unique on name for any reason
20:29:07 dansmith noonedeadpunk: well, we had initially talked about sharding on the db but not the mq, or vice versa,
20:29:07 dansmith noonedeadpunk: well, we had initially talked about sharding on the db but not the mq, or vice versa,
20:29:12 dansmith so I think that's why we didn't make those unique
20:29:12 dansmith so I think that's why we didn't make those unique
20:29:41 noonedeadpunk And there's an attempt to avoid that with condition and raising `The specified transport_url and/or database_connection combination already exists for another cell with uuid ef89aebc-142d-4755-a377-6ed23b6c1ed4.`
20:29:41 noonedeadpunk And there's an attempt to avoid that with condition and raising `The specified transport_url and/or database_connection combination already exists for another cell with uuid ef89aebc-142d-4755-a377-6ed23b6c1ed4.`
20:29:42 sean-k-mooney dansmith: i was debating if this was for some kind of loadbalancing
20:29:42 dansmith however, I think we'd have work to do before that would actually work
20:29:42 sean-k-mooney dansmith: i was debating if this was for some kind of loadbalancing
20:29:42 dansmith however, I think we'd have work to do before that would actually work
20:29:43 dansmith at least testing
20:29:43 dansmith at least testing
20:30:45 sean-k-mooney kind of like the way you can list multple glance? rabbnit? instances in the config instead of using haproxy
20:30:45 sean-k-mooney kind of like the way you can list multple glance? rabbnit? instances in the config instead of using haproxy
20:31:04 dansmith no, that was never the reasoning for lack of uniqueness that I recall,
20:31:04 dansmith no, that was never the reasoning for lack of uniqueness that I recall,
20:31:06 dansmith more the opposite,
20:31:06 dansmith more the opposite,
20:31:25 dansmith where you wanted to be able to have two DBs and not two MQs or the like
20:31:25 dansmith where you wanted to be able to have two DBs and not two MQs or the like
20:31:25 sean-k-mooney ok
20:31:59 sean-k-mooney noonedeadpunk: in any case i guess you need to figure out why you are creatin gmultiple cells
20:31:59 sean-k-mooney noonedeadpunk: in any case i guess you need to figure out why you are creatin gmultiple cells
20:32:30 sean-k-mooney noonedeadpunk: i guess its not checking if it already exits?
20:32:30 sean-k-mooney noonedeadpunk: i guess its not checking if it already exits?
20:32:55 noonedeadpunk um... any time I run exact same comand - new cell is created. I just want to use same cell, and get exit code 2, when cell with provided transport_url and database_connection already exist
20:32:55 noonedeadpunk um... any time I run exact same comand - new cell is created. I just want to use same cell, and get exit code 2, when cell with provided transport_url and database_connection already exist
20:33:14 noonedeadpunk and when I get exit code 2, I want to update cell if necessary
20:33:14 noonedeadpunk and when I get exit code 2, I want to update cell if necessary
20:33:28 noonedeadpunk sean-k-mooney: it's checking, but check is broken
20:33:28 noonedeadpunk sean-k-mooney: it's checking, but check is broken
20:33:41 noonedeadpunk I'm kind of trying to explain that for the last several minutes :)
20:33:41 noonedeadpunk I'm kind of trying to explain that for the last several minutes :)
20:33:42 sean-k-mooney so nova manage bug?
20:33:42 sean-k-mooney so nova manage bug?
20:33:58 noonedeadpunk https://opendev.org/openstack/nova/src/commit/9e5feb051c15166988e87b10132927135bd56884/nova/cmd/manage.py#L623-L624
20:33:58 noonedeadpunk https://opendev.org/openstack/nova/src/commit/9e5feb051c15166988e87b10132927135bd56884/nova/cmd/manage.py#L623-L624
20:34:51 sean-k-mooney hum ok
20:34:51 sean-k-mooney hum ok
20:35:00 sean-k-mooney that should retrun true an print the message
20:35:00 sean-k-mooney that should retrun true an print the message
20:35:05 sean-k-mooney did you get that message printed
20:35:05 sean-k-mooney did you get that message printed
20:35:23 noonedeadpunk cell.database_connection here is resolved and `mysql+pymysql://nova:534d29a090559b5a6345122e999a8ef29f67@172.29.236.101/nova?charset=utf8` but database_connection is `{scheme}://{username}:{password}@{hostname}/{path}?{query}`
20:35:23 noonedeadpunk cell.database_connection here is resolved and `mysql+pymysql://nova:534d29a090559b5a6345122e999a8ef29f67@172.29.236.101/nova?charset=utf8` but database_connection is `{scheme}://{username}:{password}@{hostname}/{path}?{query}`
20:35:28 sean-k-mooney looking at http://paste.openstack.org/show/804488/ no
20:35:28 sean-k-mooney looking at http://paste.openstack.org/show/804488/ no
20:35:52 sean-k-mooney noonedeadpunk: ah ok
20:35:52 sean-k-mooney noonedeadpunk: ah ok
20:36:19 noonedeadpunk as when we run objects.CellMappingList.get_all(ctxt) we end up in https://opendev.org/openstack/nova/src/branch/master/nova/objects/cell_mapping.py#L159-L169
20:36:19 noonedeadpunk as when we run objects.CellMappingList.get_all(ctxt) we end up in https://opendev.org/openstack/nova/src/branch/master/nova/objects/cell_mapping.py#L159-L169
20:36:22 sean-k-mooney that porbaly happing when we load the object form the db
20:36:22 sean-k-mooney that porbaly happing when we load the object form the db
20:36:33 sean-k-mooney yep
20:36:56 noonedeadpunk yep, and we trigger it here https://opendev.org/openstack/nova/src/branch/master/nova/objects/cell_mapping.py#L258
20:36:56 noonedeadpunk yep, and we trigger it here https://opendev.org/openstack/nova/src/branch/master/nova/objects/cell_mapping.py#L258
20:37:18 sean-k-mooney so we need to do this https://opendev.org/openstack/nova/src/branch/master/nova/objects/cell_mapping.py#L162-L165
20:37:18 sean-k-mooney so we need to do this https://opendev.org/openstack/nova/src/branch/master/nova/objects/cell_mapping.py#L162-L165
20:37:25 sean-k-mooney in the nova manage command
20:37:25 sean-k-mooney in the nova manage command
20:37:27 noonedeadpunk So I was thinking to add an extra argumet or adjust context, so that it contained like `template_resolve=false`
20:37:27 noonedeadpunk So I was thinking to add an extra argumet or adjust context, so that it contained like `template_resolve=false`
20:37:56 sean-k-mooney noonedeadpunk: i think it would be simpler just to reolve the unresolved one
20:37:56 sean-k-mooney noonedeadpunk: i think it would be simpler just to reolve the unresolved one

Earlier   Later