)]}'
{"specs/rocky/approved/cell-disable.rst":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"58588ac1340368dbe6339c7df1b6fe7e1dc791a1","unresolved":false,"context_lines":[{"line_number":65,"context_line":"   passed to the _get_computes_for_cells function by using the new query added"},{"line_number":66,"context_line":"   to CellMappingList. Hence only the states of hosts in the enabled cells will"},{"line_number":67,"context_line":"   be passed back to the filter scheduler so that no scheduling happens to the"},{"line_number":68,"context_line":"   disabled cells."},{"line_number":69,"context_line":"#. If the ``spec_obj.requested_destination.cell`` is a disabled cell, the"},{"line_number":70,"context_line":"   scheduling will fail with an appropriate log error message."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_79d2675e","line":68,"updated":"2018-02-21 20:53:27.000000000","message":"It caches this list forever, which would mean you wouldn\u0027t notice newly disabled or enabled cells after this. Maybe you could add a work item here to make the scheduler catch SIGHUP and wipe and/or refresh the cache?","commit_id":"514e80f2f25657148b0f9e3b1e54633b50420231"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"c48291644504f8949ec018fb3b1cc0aba22cfe9b","unresolved":false,"context_lines":[{"line_number":65,"context_line":"   passed to the _get_computes_for_cells function by using the new query added"},{"line_number":66,"context_line":"   to CellMappingList. Hence only the states of hosts in the enabled cells will"},{"line_number":67,"context_line":"   be passed back to the filter scheduler so that no scheduling happens to the"},{"line_number":68,"context_line":"   disabled cells."},{"line_number":69,"context_line":"#. If the ``spec_obj.requested_destination.cell`` is a disabled cell, the"},{"line_number":70,"context_line":"   scheduling will fail with an appropriate log error message."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_c2061887","line":68,"in_reply_to":"3fa0c359_5ce98e17","updated":"2018-02-22 09:54:42.000000000","message":"On second thoughts, this patch https://review.openstack.org/#/c/539005/ removes global caching and for every request the host_state_map is newly populated right and same for the ComputeNodeList that is queried? So we do not have to deal with the caching anymore ?","commit_id":"514e80f2f25657148b0f9e3b1e54633b50420231"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"e92314ed0f88fca28669091cd38d475de3d096bf","unresolved":false,"context_lines":[{"line_number":65,"context_line":"   passed to the _get_computes_for_cells function by using the new query added"},{"line_number":66,"context_line":"   to CellMappingList. Hence only the states of hosts in the enabled cells will"},{"line_number":67,"context_line":"   be passed back to the filter scheduler so that no scheduling happens to the"},{"line_number":68,"context_line":"   disabled cells."},{"line_number":69,"context_line":"#. If the ``spec_obj.requested_destination.cell`` is a disabled cell, the"},{"line_number":70,"context_line":"   scheduling will fail with an appropriate log error message."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_5ce98e17","line":68,"in_reply_to":"3fa0c359_79d2675e","updated":"2018-02-22 09:02:58.000000000","message":"I totally did not think about the caching part. I will add a task to refresh the cache when we have a change in the state.","commit_id":"514e80f2f25657148b0f9e3b1e54633b50420231"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"204e5e707f33eb608e3c6430c477e40f9a325554","unresolved":false,"context_lines":[{"line_number":65,"context_line":"   passed to the _get_computes_for_cells function by using the new query added"},{"line_number":66,"context_line":"   to CellMappingList. Hence only the states of hosts in the enabled cells will"},{"line_number":67,"context_line":"   be passed back to the filter scheduler so that no scheduling happens to the"},{"line_number":68,"context_line":"   disabled cells."},{"line_number":69,"context_line":"#. If the ``spec_obj.requested_destination.cell`` is a disabled cell, the"},{"line_number":70,"context_line":"   scheduling will fail with an appropriate log error message."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff6b8bd7_939eaf05","line":68,"in_reply_to":"3fa0c359_c2061887","updated":"2018-03-06 22:29:08.000000000","message":"Ah, just hit the cell cache, so that\u0027s the cache you meant I guess ? and not the host_state map cache...","commit_id":"514e80f2f25657148b0f9e3b1e54633b50420231"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e53a0c5998a04d8767ec01d8cdd4e513d263f285","unresolved":false,"context_lines":[{"line_number":73,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"},{"line_number":74,"context_line":"following manner, thus allowing the user to enable/disable a cell."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* Add new flags to ``nova-manage cell_v2 update_cell`` command -"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"  * ``nova-manage cell_v2 --update_cell --cell_uuid \u003ccell_uuid\u003e [--disable]``"},{"line_number":79,"context_line":"      which will disable an enabled cell, meaning set the ``diasbled`` field of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_5929ab34","line":76,"updated":"2018-02-21 20:58:15.000000000","message":"Thinking out loud, but at some point I have to think that we\u0027re going to want to consider a REST API for cells v2 stuff. We have os-cells but that\u0027s for cells v1 things. But nova-manage isn\u0027t a great interface and isn\u0027t versioned, so before we make it so feature rich it\u0027s hard to maintain, I\u0027d like to actually discuss a REST API for cells v2 stuff at the PTG.","commit_id":"514e80f2f25657148b0f9e3b1e54633b50420231"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"15c6fde8679e8d539db49d027446835781a6dc67","unresolved":false,"context_lines":[{"line_number":73,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"},{"line_number":74,"context_line":"following manner, thus allowing the user to enable/disable a cell."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* Add new flags to ``nova-manage cell_v2 update_cell`` command -"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"  * ``nova-manage cell_v2 --update_cell --cell_uuid \u003ccell_uuid\u003e [--disable]``"},{"line_number":79,"context_line":"      which will disable an enabled cell, meaning set the ``diasbled`` field of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_aae2cfd3","line":76,"in_reply_to":"3fa0c359_2448362b","updated":"2018-02-21 23:29:40.000000000","message":"I\u0027m confused by why you want this. Didn\u0027t you or Belmiro say that you don\u0027t like aggregates because in order to address them from config management you have to provide credentials? If we move cells administration to the api then you\u0027ll have to have credentials for all of that, as well as be passing/exposing credentials for low-level things like access to the database and message queues to an API endpoint.","commit_id":"514e80f2f25657148b0f9e3b1e54633b50420231"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"d6bfd4585b7a66629c9287e7c4a4267f12885916","unresolved":false,"context_lines":[{"line_number":73,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"},{"line_number":74,"context_line":"following manner, thus allowing the user to enable/disable a cell."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* Add new flags to ``nova-manage cell_v2 update_cell`` command -"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"  * ``nova-manage cell_v2 --update_cell --cell_uuid \u003ccell_uuid\u003e [--disable]``"},{"line_number":79,"context_line":"      which will disable an enabled cell, meaning set the ``diasbled`` field of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_dc04b717","line":76,"in_reply_to":"3fa0c359_4aa78bbd","updated":"2018-02-22 13:44:06.000000000","message":"I see your point,,,","commit_id":"514e80f2f25657148b0f9e3b1e54633b50420231"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"15c6fde8679e8d539db49d027446835781a6dc67","unresolved":false,"context_lines":[{"line_number":73,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"},{"line_number":74,"context_line":"following manner, thus allowing the user to enable/disable a cell."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* Add new flags to ``nova-manage cell_v2 update_cell`` command -"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"  * ``nova-manage cell_v2 --update_cell --cell_uuid \u003ccell_uuid\u003e [--disable]``"},{"line_number":79,"context_line":"      which will disable an enabled cell, meaning set the ``diasbled`` field of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_4aa78bbd","line":76,"in_reply_to":"3fa0c359_5929ab34","updated":"2018-02-21 23:29:40.000000000","message":"I\u0027m majorly opposed to that, and it has been one of the things we specifically intended to never do with cellsv2. That\u0027s why we haven\u0027t done anything with the os-cells code to make it work for cellsv2. I thought it was in the manifesto, but I don\u0027t see it from a quick scan.\n\nAs I\u0027ve said, I really (really) don\u0027t think we should be exposing cells outside of nova at all, even through an admin-only interface. IMHO, the way CERN has built their environment around cells as a structural block is why they\u0027re having issues moving to something different. I think cells in nova should be purely an operational thing, where cells can be split or combined as necessary and exposing them externally means things outside of nova can (and eventually will) build dependence on the structure within.","commit_id":"514e80f2f25657148b0f9e3b1e54633b50420231"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"d2064be02de41588bfb7b1ec58b8d96acb390dfc","unresolved":false,"context_lines":[{"line_number":73,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"},{"line_number":74,"context_line":"following manner, thus allowing the user to enable/disable a cell."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* Add new flags to ``nova-manage cell_v2 update_cell`` command -"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"  * ``nova-manage cell_v2 --update_cell --cell_uuid \u003ccell_uuid\u003e [--disable]``"},{"line_number":79,"context_line":"      which will disable an enabled cell, meaning set the ``diasbled`` field of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_2448362b","line":76,"in_reply_to":"3fa0c359_5929ab34","updated":"2018-02-21 21:45:36.000000000","message":"That would be great! I wanted to bring this up at some point too, I was thinking of proposing a spec to move nova-manage utility to REST API. But yes, we can discuss more at the PTG.","commit_id":"514e80f2f25657148b0f9e3b1e54633b50420231"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"d6bfd4585b7a66629c9287e7c4a4267f12885916","unresolved":false,"context_lines":[{"line_number":73,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"},{"line_number":74,"context_line":"following manner, thus allowing the user to enable/disable a cell."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* Add new flags to ``nova-manage cell_v2 update_cell`` command -"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"  * ``nova-manage cell_v2 --update_cell --cell_uuid \u003ccell_uuid\u003e [--disable]``"},{"line_number":79,"context_line":"      which will disable an enabled cell, meaning set the ``diasbled`` field of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_5c3987d4","line":76,"in_reply_to":"3fa0c359_aae2cfd3","updated":"2018-02-22 13:44:06.000000000","message":"Right, we did say that....Okay maybe I did not think this through. Will discuss this with Belmiro.","commit_id":"514e80f2f25657148b0f9e3b1e54633b50420231"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"58588ac1340368dbe6339c7df1b6fe7e1dc791a1","unresolved":false,"context_lines":[{"line_number":80,"context_line":"      this cell\u0027s cell_mapping record in the api DB to 1."},{"line_number":81,"context_line":"  * ``nova-manage cell_v2 --update_cell --cell_uuid \u003ccell_uuid\u003e [--enable]``"},{"line_number":82,"context_line":"      which will enable a disabled cell, meaning set the ``disabled`` field of"},{"line_number":83,"context_line":"      this cell_mapping record back to 0."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"The scope of this spec is limited to considering the scenario of using a filter"},{"line_number":86,"context_line":"scheduler since that is the maintained scheduler."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_d9b85b12","line":83,"updated":"2018-02-21 20:53:27.000000000","message":"Presumably you also want to allow create_cell to create cells pre-disabled right?","commit_id":"514e80f2f25657148b0f9e3b1e54633b50420231"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"e92314ed0f88fca28669091cd38d475de3d096bf","unresolved":false,"context_lines":[{"line_number":80,"context_line":"      this cell\u0027s cell_mapping record in the api DB to 1."},{"line_number":81,"context_line":"  * ``nova-manage cell_v2 --update_cell --cell_uuid \u003ccell_uuid\u003e [--enable]``"},{"line_number":82,"context_line":"      which will enable a disabled cell, meaning set the ``disabled`` field of"},{"line_number":83,"context_line":"      this cell_mapping record back to 0."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"The scope of this spec is limited to considering the scenario of using a filter"},{"line_number":86,"context_line":"scheduler since that is the maintained scheduler."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_1c7a2676","line":83,"in_reply_to":"3fa0c359_d9b85b12","updated":"2018-02-22 09:02:58.000000000","message":"Yes, pretty useful to create cells that way. Will add this point.","commit_id":"514e80f2f25657148b0f9e3b1e54633b50420231"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"58588ac1340368dbe6339c7df1b6fe7e1dc791a1","unresolved":false,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"#. Add a new column ``disabled`` to nova_api.cell_mappings table."},{"line_number":176,"context_line":"#. Add a new field ``disabled`` to CellMapping object."},{"line_number":177,"context_line":"#. Add a query method to CellMappingList to obtained all the cell mapping"},{"line_number":178,"context_line":"   records of enabled cells."},{"line_number":179,"context_line":"#. Change the method of querying for the host states in the host_manager to"},{"line_number":180,"context_line":"   only query in the enabled cells."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_b98d4f7d","line":177,"range":{"start_line":177,"start_character":44,"end_line":177,"end_character":52},"updated":"2018-02-21 20:53:27.000000000","message":"obtain","commit_id":"514e80f2f25657148b0f9e3b1e54633b50420231"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"a4afe6fec2bc9f4e2e6fa45e693a6db6bec63444","unresolved":false,"context_lines":[{"line_number":65,"context_line":"   passed to the _get_computes_for_cells function by using the new query added"},{"line_number":66,"context_line":"   to CellMappingList. Hence only the states of hosts in the enabled cells will"},{"line_number":67,"context_line":"   be passed back to the filter scheduler so that no scheduling happens to the"},{"line_number":68,"context_line":"   disabled cells."},{"line_number":69,"context_line":"#. If the ``spec_obj.requested_destination.cell`` is a disabled cell, the"},{"line_number":70,"context_line":"   scheduling will fail with an appropriate log error message."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df7087c5_3cc8e753","line":68,"updated":"2018-03-07 22:05:36.000000000","message":"address the cache","commit_id":"7d75bb61878c606389acac95416d7fc9c3e87391"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"a4afe6fec2bc9f4e2e6fa45e693a6db6bec63444","unresolved":false,"context_lines":[{"line_number":81,"context_line":"  * ``nova-manage cell_v2 --update_cell --cell_uuid \u003ccell_uuid\u003e [--enable]``"},{"line_number":82,"context_line":"      which will enable a disabled cell, meaning set the ``disabled`` field of"},{"line_number":83,"context_line":"      this cell_mapping record back to 0."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"When creating a new cell, by default the cell will be in enabled state, however"},{"line_number":86,"context_line":"an option ``disable`` will be added to the ``nova-manage cell_v2 create_cell``"},{"line_number":87,"context_line":"command by which the users will be able to create pre-disabled cells which can"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df7087c5_1ccba353","line":84,"updated":"2018-03-07 22:05:36.000000000","message":"list_cells","commit_id":"7d75bb61878c606389acac95416d7fc9c3e87391"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6148494452d1e73c510ed84ea8bf340aafb0559a","unresolved":false,"context_lines":[{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Currently we have a number of ways to pre-select cells into which we want the"},{"line_number":22,"context_line":"vms to be scheduled into, like using host aggregates or scheduler filters."},{"line_number":23,"context_line":"These mechanisms however are white listing and selecting suitable hosts by"},{"line_number":24,"context_line":"which we are indirectly able to pre-select a cell. So although we have ways to"},{"line_number":25,"context_line":"remove undesired hosts from being selected for scheduling, large deployments"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_697a1a25","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":3},"updated":"2018-03-07 21:05:13.000000000","message":"femtonit: This should be VMs to help my OCD.","commit_id":"75bf39d453a8959c09ad1d37068e7f045d274907"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"a4afe6fec2bc9f4e2e6fa45e693a6db6bec63444","unresolved":false,"context_lines":[{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Currently we have a number of ways to pre-select cells into which we want the"},{"line_number":22,"context_line":"vms to be scheduled into, like using host aggregates or scheduler filters."},{"line_number":23,"context_line":"These mechanisms however are white listing and selecting suitable hosts by"},{"line_number":24,"context_line":"which we are indirectly able to pre-select a cell. So although we have ways to"},{"line_number":25,"context_line":"remove undesired hosts from being selected for scheduling, large deployments"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_44129d5a","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":3},"in_reply_to":"df7087c5_697a1a25","updated":"2018-03-07 22:05:36.000000000","message":"will fix this.","commit_id":"75bf39d453a8959c09ad1d37068e7f045d274907"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6148494452d1e73c510ed84ea8bf340aafb0559a","unresolved":false,"context_lines":[{"line_number":68,"context_line":"   disabled cells."},{"line_number":69,"context_line":"#. Since the list of cells are currently cached globally (better performance)"},{"line_number":70,"context_line":"   after every enabling/disabling action of any cell, this cache will be"},{"line_number":71,"context_line":"   refreshed so that the new changes are reflected."},{"line_number":72,"context_line":"#. If the ``spec_obj.requested_destination.cell`` is a disabled cell, the"},{"line_number":73,"context_line":"   scheduling will fail with an appropriate log error message."},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_29ff42ab","line":71,"updated":"2018-03-07 21:05:13.000000000","message":"This can\u0027t really work like this. The caches are in memory of all the processes that have populated the list beforehand. Just toggling a value in the database isn\u0027t going to signal them to do anything.\n\nI think for this you\u0027ll want to add a sighup handler in the scheduler which will invalidate the cache. This really needs to happen for anything caching the list of cells anyway, so maybe it could be done to more than just the scheduler in the process.","commit_id":"75bf39d453a8959c09ad1d37068e7f045d274907"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"a4afe6fec2bc9f4e2e6fa45e693a6db6bec63444","unresolved":false,"context_lines":[{"line_number":68,"context_line":"   disabled cells."},{"line_number":69,"context_line":"#. Since the list of cells are currently cached globally (better performance)"},{"line_number":70,"context_line":"   after every enabling/disabling action of any cell, this cache will be"},{"line_number":71,"context_line":"   refreshed so that the new changes are reflected."},{"line_number":72,"context_line":"#. If the ``spec_obj.requested_destination.cell`` is a disabled cell, the"},{"line_number":73,"context_line":"   scheduling will fail with an appropriate log error message."},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_64f561cb","line":71,"in_reply_to":"df7087c5_29ff42ab","updated":"2018-03-07 22:05:36.000000000","message":"okay my bad, probably I haven\u0027t explained the part of \"will be refreshed\" well enough ; I was thinking of adding a refreshing cells cache function in the host_manager which would then be called when something changes. - https://review.openstack.org/#/c/550527/1/nova/scheduler/host_manager.py but yea I am not totally sure about the call to this.\n\nSo I guess I could do this \"signup handler\" instead - so I just define the handler in the Scheduler which would flush the cache and signal to it when I do the change to the DB ?","commit_id":"75bf39d453a8959c09ad1d37068e7f045d274907"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"70ce51435f83582a095c379f88c64507b0fec513","unresolved":false,"context_lines":[{"line_number":68,"context_line":"   disabled cells."},{"line_number":69,"context_line":"#. Since the list of cells are currently cached globally (better performance)"},{"line_number":70,"context_line":"   after every enabling/disabling action of any cell, this cache will be"},{"line_number":71,"context_line":"   refreshed so that the new changes are reflected."},{"line_number":72,"context_line":"#. If the ``spec_obj.requested_destination.cell`` is a disabled cell, the"},{"line_number":73,"context_line":"   scheduling will fail with an appropriate log error message."},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_43c6016a","line":71,"in_reply_to":"df7087c5_64f561cb","updated":"2018-03-08 15:20:02.000000000","message":"Yep, for example, compute manager does a few things related to purging a cache here:\n\n https://github.com/openstack/nova/blob/master/nova/compute/manager.py#L543-L546\n\nOslo service base calls reset() on a manager on SIGHUP. You\u0027ll need to implement that on scheduler manager, and then call into host manager to do the work.","commit_id":"75bf39d453a8959c09ad1d37068e7f045d274907"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6148494452d1e73c510ed84ea8bf340aafb0559a","unresolved":false,"context_lines":[{"line_number":70,"context_line":"   after every enabling/disabling action of any cell, this cache will be"},{"line_number":71,"context_line":"   refreshed so that the new changes are reflected."},{"line_number":72,"context_line":"#. If the ``spec_obj.requested_destination.cell`` is a disabled cell, the"},{"line_number":73,"context_line":"   scheduling will fail with an appropriate log error message."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Since we have the nova-manage utility for the operators, the nova-manaage"},{"line_number":76,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_691e9a0d","line":73,"updated":"2018-03-07 21:05:13.000000000","message":"This is only set when we\u0027re doing things like scheduling a resize. If you honor this in that case, you\u0027ll effectively disable resizes (and other migrations) within the cell. That may be desired, but also may be surprising to people. I suppose it\u0027s equivalent to disabling all hosts within the cell in terms of behavior, but it\u0027s probably worth calling out here so it\u0027s clear.","commit_id":"75bf39d453a8959c09ad1d37068e7f045d274907"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"a4afe6fec2bc9f4e2e6fa45e693a6db6bec63444","unresolved":false,"context_lines":[{"line_number":70,"context_line":"   after every enabling/disabling action of any cell, this cache will be"},{"line_number":71,"context_line":"   refreshed so that the new changes are reflected."},{"line_number":72,"context_line":"#. If the ``spec_obj.requested_destination.cell`` is a disabled cell, the"},{"line_number":73,"context_line":"   scheduling will fail with an appropriate log error message."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Since we have the nova-manage utility for the operators, the nova-manaage"},{"line_number":76,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_6424810e","line":73,"in_reply_to":"df7087c5_691e9a0d","updated":"2018-03-07 22:05:36.000000000","message":"Actually I did not intend to mess around with resizing and other functionalities available to the users who have VMs in that cell. I would probably just want cell-disable to mean no more new scheduling happens. I would not want to disrupt user actions in the disabled cell for the existing machines.\n\nSo I think I will just remove this point of making it fail.","commit_id":"75bf39d453a8959c09ad1d37068e7f045d274907"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6148494452d1e73c510ed84ea8bf340aafb0559a","unresolved":false,"context_lines":[{"line_number":86,"context_line":"      this cell_mapping record back to 0."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"When creating a new cell, by default the cell will be in enabled state, however"},{"line_number":89,"context_line":"an option ``disable`` will be added to the ``nova-manage cell_v2 create_cell``"},{"line_number":90,"context_line":"command by which the users will be able to create pre-disabled cells which can"},{"line_number":91,"context_line":"be enabled later whenever needed."},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_49cf167f","line":89,"range":{"start_line":89,"start_character":12,"end_line":89,"end_character":19},"updated":"2018-03-07 21:05:13.000000000","message":"Personally I\u0027d rather this be \"disabled\" on the create command as it implies you\u0027re \"Creating the cell, pre-disabled\".","commit_id":"75bf39d453a8959c09ad1d37068e7f045d274907"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"a4afe6fec2bc9f4e2e6fa45e693a6db6bec63444","unresolved":false,"context_lines":[{"line_number":86,"context_line":"      this cell_mapping record back to 0."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"When creating a new cell, by default the cell will be in enabled state, however"},{"line_number":89,"context_line":"an option ``disable`` will be added to the ``nova-manage cell_v2 create_cell``"},{"line_number":90,"context_line":"command by which the users will be able to create pre-disabled cells which can"},{"line_number":91,"context_line":"be enabled later whenever needed."},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_c94b2685","line":89,"range":{"start_line":89,"start_character":12,"end_line":89,"end_character":19},"in_reply_to":"df7087c5_49cf167f","updated":"2018-03-07 22:05:36.000000000","message":"Will fix this.","commit_id":"75bf39d453a8959c09ad1d37068e7f045d274907"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6148494452d1e73c510ed84ea8bf340aafb0559a","unresolved":false,"context_lines":[{"line_number":116,"context_line":"of type tinyint to the ``nova_api.cell_mappings`` table. An api_migration will"},{"line_number":117,"context_line":"be required. This column will be set to 0 by default."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"At the same time, the ``CellMapping`` object will need to gain a new field"},{"line_number":120,"context_line":"called ``disabled``."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_4994f644","line":119,"range":{"start_line":119,"start_character":0,"end_line":119,"end_character":16},"updated":"2018-03-07 21:05:13.000000000","message":"My preference for these are to do the schema migration and the model change in one review, and the object change in another one. That helps to ensure that we can apply N+1 schema to N without disrupting things. You don\u0027t need to call that out here necessarily, but pre-warning that I\u0027ll complain if the object and schema change are together :)","commit_id":"75bf39d453a8959c09ad1d37068e7f045d274907"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"a4afe6fec2bc9f4e2e6fa45e693a6db6bec63444","unresolved":false,"context_lines":[{"line_number":116,"context_line":"of type tinyint to the ``nova_api.cell_mappings`` table. An api_migration will"},{"line_number":117,"context_line":"be required. This column will be set to 0 by default."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"At the same time, the ``CellMapping`` object will need to gain a new field"},{"line_number":120,"context_line":"called ``disabled``."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_e9cb8a1b","line":119,"range":{"start_line":119,"start_character":0,"end_line":119,"end_character":16},"in_reply_to":"df7087c5_4994f644","updated":"2018-03-07 22:05:36.000000000","message":"Ah, thanks for the warning; I actually have a patch doing this together. I will split this up then.","commit_id":"75bf39d453a8959c09ad1d37068e7f045d274907"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6148494452d1e73c510ed84ea8bf340aafb0559a","unresolved":false,"context_lines":[{"line_number":179,"context_line":"  \u003ctssurya\u003e"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Other contributors:"},{"line_number":182,"context_line":"  \u003cbelmoreira\u003e"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Work Items"},{"line_number":185,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_6991ba52","line":182,"range":{"start_line":182,"start_character":2,"end_line":182,"end_character":14},"updated":"2018-03-07 21:05:13.000000000","message":"Okay, but I better see some contribution from him! :)","commit_id":"75bf39d453a8959c09ad1d37068e7f045d274907"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"a4afe6fec2bc9f4e2e6fa45e693a6db6bec63444","unresolved":false,"context_lines":[{"line_number":179,"context_line":"  \u003ctssurya\u003e"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Other contributors:"},{"line_number":182,"context_line":"  \u003cbelmoreira\u003e"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Work Items"},{"line_number":185,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_e9f4ea5d","line":182,"range":{"start_line":182,"start_character":2,"end_line":182,"end_character":14},"in_reply_to":"df7087c5_6991ba52","updated":"2018-03-07 22:05:36.000000000","message":":)","commit_id":"75bf39d453a8959c09ad1d37068e7f045d274907"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6148494452d1e73c510ed84ea8bf340aafb0559a","unresolved":false,"context_lines":[{"line_number":185,"context_line":"----------"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"#. Add a new column ``disabled`` to nova_api.cell_mappings table."},{"line_number":188,"context_line":"#. Add a new field ``disabled`` to CellMapping object."},{"line_number":189,"context_line":"#. Add a query method to CellMappingList to obtain all the cell mapping"},{"line_number":190,"context_line":"   records of enabled cells."},{"line_number":191,"context_line":"#. Change the method of querying for the host states in the host_manager to"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_299bc272","line":188,"updated":"2018-03-07 21:05:13.000000000","message":"Yesss, two bullets, two patches :)","commit_id":"75bf39d453a8959c09ad1d37068e7f045d274907"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6148494452d1e73c510ed84ea8bf340aafb0559a","unresolved":false,"context_lines":[{"line_number":187,"context_line":"#. Add a new column ``disabled`` to nova_api.cell_mappings table."},{"line_number":188,"context_line":"#. Add a new field ``disabled`` to CellMapping object."},{"line_number":189,"context_line":"#. Add a query method to CellMappingList to obtain all the cell mapping"},{"line_number":190,"context_line":"   records of enabled cells."},{"line_number":191,"context_line":"#. Change the method of querying for the host states in the host_manager to"},{"line_number":192,"context_line":"   only query in the enabled cells."},{"line_number":193,"context_line":"#. Add the new flags to the nova-manage cell_v2 update_cell command."}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_c989e626","line":190,"updated":"2018-03-07 21:05:13.000000000","message":"We could also just put a disabled\u003dNone arg, which if non-None filters by disabled\u003d$disabled instead of a new method. Your call I suppose.","commit_id":"75bf39d453a8959c09ad1d37068e7f045d274907"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"a4afe6fec2bc9f4e2e6fa45e693a6db6bec63444","unresolved":false,"context_lines":[{"line_number":187,"context_line":"#. Add a new column ``disabled`` to nova_api.cell_mappings table."},{"line_number":188,"context_line":"#. Add a new field ``disabled`` to CellMapping object."},{"line_number":189,"context_line":"#. Add a query method to CellMappingList to obtain all the cell mapping"},{"line_number":190,"context_line":"   records of enabled cells."},{"line_number":191,"context_line":"#. Change the method of querying for the host states in the host_manager to"},{"line_number":192,"context_line":"   only query in the enabled cells."},{"line_number":193,"context_line":"#. Add the new flags to the nova-manage cell_v2 update_cell command."}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_896c4e09","line":190,"in_reply_to":"df7087c5_c989e626","updated":"2018-03-07 22:05:36.000000000","message":"hmm true, I just thought of doing the new method to keep it clean without modifying the get_all function","commit_id":"75bf39d453a8959c09ad1d37068e7f045d274907"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"064d49bcc03aff25f3f9f5504890e06b66412f92","unresolved":false,"context_lines":[{"line_number":24,"context_line":"which we are indirectly able to pre-select a cell. So although we have ways to"},{"line_number":25,"context_line":"remove undesired hosts from being selected for scheduling, large deployments"},{"line_number":26,"context_line":"may not always want to engage on a host-level. If they want to just stop"},{"line_number":27,"context_line":"scheduling to a set of cells, presently they would some how have to deal with"},{"line_number":28,"context_line":"ensuring none of the hosts in those cells are filtered out by the scheduler"},{"line_number":29,"context_line":"since there is no way to simply black list those set of cells."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"So the problem that this spec is trying to address is the fact that there is"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_599816bf","line":28,"range":{"start_line":27,"start_character":51,"end_line":28,"end_character":75},"updated":"2018-03-09 17:31:19.000000000","message":"this part of the sentence is confusing. how about this instead?\n\n\"somehow have to exclude all the hosts in the disabled cell from being considered by the scheduler\"","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"fe03fc667365e2ae48a51e4cb3d36ef7fd4f84ee","unresolved":false,"context_lines":[{"line_number":24,"context_line":"which we are indirectly able to pre-select a cell. So although we have ways to"},{"line_number":25,"context_line":"remove undesired hosts from being selected for scheduling, large deployments"},{"line_number":26,"context_line":"may not always want to engage on a host-level. If they want to just stop"},{"line_number":27,"context_line":"scheduling to a set of cells, presently they would some how have to deal with"},{"line_number":28,"context_line":"ensuring none of the hosts in those cells are filtered out by the scheduler"},{"line_number":29,"context_line":"since there is no way to simply black list those set of cells."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"So the problem that this spec is trying to address is the fact that there is"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_1087b1d9","line":28,"range":{"start_line":27,"start_character":51,"end_line":28,"end_character":75},"in_reply_to":"df7087c5_599816bf","updated":"2018-03-12 13:32:24.000000000","message":"Done","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dbc88fb4274302408587df6dd55d3f35fd9c7c17","unresolved":false,"context_lines":[{"line_number":23,"context_line":"These mechanisms however are white listing and selecting suitable hosts by"},{"line_number":24,"context_line":"which we are indirectly able to pre-select a cell. So although we have ways to"},{"line_number":25,"context_line":"remove undesired hosts from being selected for scheduling, large deployments"},{"line_number":26,"context_line":"may not always want to engage on a host-level. If they want to just stop"},{"line_number":27,"context_line":"scheduling to a set of cells, presently they would some how have to deal with"},{"line_number":28,"context_line":"ensuring none of the hosts in those cells are filtered out by the scheduler"},{"line_number":29,"context_line":"since there is no way to simply black list those set of cells."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"So the problem that this spec is trying to address is the fact that there is"},{"line_number":32,"context_line":"no elegant way to block scheduling to a group of cells."}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_2ce97419","line":29,"range":{"start_line":26,"start_character":47,"end_line":29,"end_character":62},"updated":"2018-03-08 21:30:02.000000000","message":"This sentence is a bit confusing to me. I\u0027m not sure if it\u0027s because I read \"have to deal with\nensuring none of the hosts in those cells are filtered out by the scheduler\" as it should be \"have to deal with\nensuring ALL of the hosts in those cells are filtered out by the scheduler\".\n\nIsn\u0027t the point of disabling a cell that you don\u0027t want any requests to go to hosts in those cells?\n\nSo I think s/none of the hosts/all of the hosts/ is the thing.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"fe03fc667365e2ae48a51e4cb3d36ef7fd4f84ee","unresolved":false,"context_lines":[{"line_number":23,"context_line":"These mechanisms however are white listing and selecting suitable hosts by"},{"line_number":24,"context_line":"which we are indirectly able to pre-select a cell. So although we have ways to"},{"line_number":25,"context_line":"remove undesired hosts from being selected for scheduling, large deployments"},{"line_number":26,"context_line":"may not always want to engage on a host-level. If they want to just stop"},{"line_number":27,"context_line":"scheduling to a set of cells, presently they would some how have to deal with"},{"line_number":28,"context_line":"ensuring none of the hosts in those cells are filtered out by the scheduler"},{"line_number":29,"context_line":"since there is no way to simply black list those set of cells."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"So the problem that this spec is trying to address is the fact that there is"},{"line_number":32,"context_line":"no elegant way to block scheduling to a group of cells."}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_f09f9d00","line":29,"range":{"start_line":26,"start_character":47,"end_line":29,"end_character":62},"in_reply_to":"df7087c5_0cbd9064","updated":"2018-03-12 13:32:24.000000000","message":"Combined mriedem\u0027s and jaypipes\u0027s suggestions together. Hope it is less confusing now.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"fe03fc667365e2ae48a51e4cb3d36ef7fd4f84ee","unresolved":false,"context_lines":[{"line_number":23,"context_line":"These mechanisms however are white listing and selecting suitable hosts by"},{"line_number":24,"context_line":"which we are indirectly able to pre-select a cell. So although we have ways to"},{"line_number":25,"context_line":"remove undesired hosts from being selected for scheduling, large deployments"},{"line_number":26,"context_line":"may not always want to engage on a host-level. If they want to just stop"},{"line_number":27,"context_line":"scheduling to a set of cells, presently they would some how have to deal with"},{"line_number":28,"context_line":"ensuring none of the hosts in those cells are filtered out by the scheduler"},{"line_number":29,"context_line":"since there is no way to simply black list those set of cells."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"So the problem that this spec is trying to address is the fact that there is"},{"line_number":32,"context_line":"no elegant way to block scheduling to a group of cells."}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_10d571b9","line":29,"range":{"start_line":26,"start_character":47,"end_line":29,"end_character":62},"in_reply_to":"df7087c5_2ce97419","updated":"2018-03-12 13:32:24.000000000","message":"Done","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6823f8183dfc7dbe3b866fa9013f4e5f3a224d97","unresolved":false,"context_lines":[{"line_number":23,"context_line":"These mechanisms however are white listing and selecting suitable hosts by"},{"line_number":24,"context_line":"which we are indirectly able to pre-select a cell. So although we have ways to"},{"line_number":25,"context_line":"remove undesired hosts from being selected for scheduling, large deployments"},{"line_number":26,"context_line":"may not always want to engage on a host-level. If they want to just stop"},{"line_number":27,"context_line":"scheduling to a set of cells, presently they would some how have to deal with"},{"line_number":28,"context_line":"ensuring none of the hosts in those cells are filtered out by the scheduler"},{"line_number":29,"context_line":"since there is no way to simply black list those set of cells."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"So the problem that this spec is trying to address is the fact that there is"},{"line_number":32,"context_line":"no elegant way to block scheduling to a group of cells."}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_0cbd9064","line":29,"range":{"start_line":26,"start_character":47,"end_line":29,"end_character":62},"in_reply_to":"df7087c5_2ce97419","updated":"2018-03-08 22:00:42.000000000","message":"You don\u0027t want the scheduler to choose hosts in that cell for new requests. Regular calls to those hosts (like attach_volume()) should continue to work.\n\nBut I see your point. The filter scheduler filters out hosts, it doesn\u0027t select hosts, so the logic in the sentence seems a bit backwards. I didn\u0027t stumble over it when I read it, probably because I have context, but now that you point it out it\u0027s hard not to see it. I\u0027m not sure it\u0027s really that important to the spec, but legit I guess :)","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dbc88fb4274302408587df6dd55d3f35fd9c7c17","unresolved":false,"context_lines":[{"line_number":50,"context_line":"returned by placement to the scheduler. A detailed procedure of how this is"},{"line_number":51,"context_line":"aimed to be implemented is explained below:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"#. Add a new column ``disabled`` to the nova_api.cell_mappings table which can"},{"line_number":54,"context_line":"   be set to either 1 or 0 for each record. Setting it to 1 means that cell is"},{"line_number":55,"context_line":"   disabled; and so by default this value will be set to 0."},{"line_number":56,"context_line":"#. Add a new field ``disabled`` to the CellMapping object which will represent"},{"line_number":57,"context_line":"   the value of the newly added column in the cell_mappings table."},{"line_number":58,"context_line":"#. Add a query method to CellMappingList object, to query for only the enabled"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_2c6094a5","line":55,"range":{"start_line":53,"start_character":3,"end_line":55,"end_character":59},"updated":"2018-03-08 21:30:02.000000000","message":"Why an int rather than a boolean? Leaving it open to future interpretations of what \u0027disabled\u0027 could mean?","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6823f8183dfc7dbe3b866fa9013f4e5f3a224d97","unresolved":false,"context_lines":[{"line_number":50,"context_line":"returned by placement to the scheduler. A detailed procedure of how this is"},{"line_number":51,"context_line":"aimed to be implemented is explained below:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"#. Add a new column ``disabled`` to the nova_api.cell_mappings table which can"},{"line_number":54,"context_line":"   be set to either 1 or 0 for each record. Setting it to 1 means that cell is"},{"line_number":55,"context_line":"   disabled; and so by default this value will be set to 0."},{"line_number":56,"context_line":"#. Add a new field ``disabled`` to the CellMapping object which will represent"},{"line_number":57,"context_line":"   the value of the newly added column in the cell_mappings table."},{"line_number":58,"context_line":"#. Add a query method to CellMappingList object, to query for only the enabled"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_acb10492","line":55,"range":{"start_line":53,"start_character":3,"end_line":55,"end_character":59},"in_reply_to":"df7087c5_2c6094a5","updated":"2018-03-08 22:00:42.000000000","message":"TBH I thought more of our booleans in the DB were integer types, but I see we\u0027ve got more booleans than I thought.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"fe03fc667365e2ae48a51e4cb3d36ef7fd4f84ee","unresolved":false,"context_lines":[{"line_number":50,"context_line":"returned by placement to the scheduler. A detailed procedure of how this is"},{"line_number":51,"context_line":"aimed to be implemented is explained below:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"#. Add a new column ``disabled`` to the nova_api.cell_mappings table which can"},{"line_number":54,"context_line":"   be set to either 1 or 0 for each record. Setting it to 1 means that cell is"},{"line_number":55,"context_line":"   disabled; and so by default this value will be set to 0."},{"line_number":56,"context_line":"#. Add a new field ``disabled`` to the CellMapping object which will represent"},{"line_number":57,"context_line":"   the value of the newly added column in the cell_mappings table."},{"line_number":58,"context_line":"#. Add a query method to CellMappingList object, to query for only the enabled"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_1071f1e0","line":55,"range":{"start_line":53,"start_character":3,"end_line":55,"end_character":59},"in_reply_to":"df7087c5_4f305a57","updated":"2018-03-12 13:32:24.000000000","message":"Oops, my bad. I totally did do a boolean (https://review.openstack.org/#/c/550090/2/nova/db/sqlalchemy/api_migrations/migrate_repo/versions/053_cell_mapping_add_disabled.py) but wrote int here. Will fix this.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ef58a92f8c849fa86ca0fac40f4583ba02a5b6b9","unresolved":false,"context_lines":[{"line_number":50,"context_line":"returned by placement to the scheduler. A detailed procedure of how this is"},{"line_number":51,"context_line":"aimed to be implemented is explained below:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"#. Add a new column ``disabled`` to the nova_api.cell_mappings table which can"},{"line_number":54,"context_line":"   be set to either 1 or 0 for each record. Setting it to 1 means that cell is"},{"line_number":55,"context_line":"   disabled; and so by default this value will be set to 0."},{"line_number":56,"context_line":"#. Add a new field ``disabled`` to the CellMapping object which will represent"},{"line_number":57,"context_line":"   the value of the newly added column in the cell_mappings table."},{"line_number":58,"context_line":"#. Add a query method to CellMappingList object, to query for only the enabled"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_4f305a57","line":55,"range":{"start_line":53,"start_character":3,"end_line":55,"end_character":59},"in_reply_to":"df7087c5_acb10492","updated":"2018-03-08 22:47:32.000000000","message":"Unless there is a good reason to use ints here, I\u0027d rather this be a boolean.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dbc88fb4274302408587df6dd55d3f35fd9c7c17","unresolved":false,"context_lines":[{"line_number":60,"context_line":"#. Presently the scheduler calls the host_manager to get_host_states_by_uuids"},{"line_number":61,"context_line":"   and the host_manager queries for the compute_nodes and services in the cells"},{"line_number":62,"context_line":"   by calling _get_computes_for_cells from get_host_states_by_uuids function."},{"line_number":63,"context_line":"   While loading the cells in the get_host_states_by_uuids function, the"},{"line_number":64,"context_line":"   disabled cells will be filtered out and only the enabled cells will be"},{"line_number":65,"context_line":"   passed to the _get_computes_for_cells function by using the new query added"},{"line_number":66,"context_line":"   to CellMappingList. Hence only the states of hosts in the enabled cells will"},{"line_number":67,"context_line":"   be passed back to the filter scheduler so that no scheduling happens to the"},{"line_number":68,"context_line":"   disabled cells."},{"line_number":69,"context_line":"#. Since the list of cells are currently cached globally (better performance)"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_cc70f875","line":66,"range":{"start_line":63,"start_character":3,"end_line":66,"end_character":22},"updated":"2018-03-08 21:30:02.000000000","message":"Today get_host_states_by_uuids uses a cached list of cells, so we\u0027d have to stop using a cache and do the new query to the cell mappings table for each scheduling request. That should probably be mentioned in the performance impact section which currently does not mention that we only actually get the list of cells once and then cache the results.\n\n\u003clater\u003e\n\nNow I see the next point about refreshing the cache every time a cell is enabled/disabled.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dbc88fb4274302408587df6dd55d3f35fd9c7c17","unresolved":false,"context_lines":[{"line_number":68,"context_line":"   disabled cells."},{"line_number":69,"context_line":"#. Since the list of cells are currently cached globally (better performance)"},{"line_number":70,"context_line":"   after every enabling/disabling action of any cell, this cache will be"},{"line_number":71,"context_line":"   refreshed so that the new changes are reflected. The refreshing will be done"},{"line_number":72,"context_line":"   using a \"SIGHUP\" handler that will be created in the scheduler and a signal"},{"line_number":73,"context_line":"   to this handler will be made during the change to disabled column."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Since we have the nova-manage utility for the operators, the nova-manaage"},{"line_number":76,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_ecaa9c83","line":73,"range":{"start_line":71,"start_character":52,"end_line":73,"end_character":69},"updated":"2018-03-08 21:30:02.000000000","message":"Is it going to be a real SIGHUP executed from nova-manage or is there just going to be some hook in the scheduler code to dirty the cache which nova-manage will use?","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"fe03fc667365e2ae48a51e4cb3d36ef7fd4f84ee","unresolved":false,"context_lines":[{"line_number":68,"context_line":"   disabled cells."},{"line_number":69,"context_line":"#. Since the list of cells are currently cached globally (better performance)"},{"line_number":70,"context_line":"   after every enabling/disabling action of any cell, this cache will be"},{"line_number":71,"context_line":"   refreshed so that the new changes are reflected. The refreshing will be done"},{"line_number":72,"context_line":"   using a \"SIGHUP\" handler that will be created in the scheduler and a signal"},{"line_number":73,"context_line":"   to this handler will be made during the change to disabled column."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Since we have the nova-manage utility for the operators, the nova-manaage"},{"line_number":76,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_6b55dcc5","line":73,"range":{"start_line":71,"start_character":52,"end_line":73,"end_character":69},"in_reply_to":"df7087c5_2c31740c","updated":"2018-03-12 13:32:24.000000000","message":"Yes, planning to do it as Dan suggested in the previous version ^^ .","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6823f8183dfc7dbe3b866fa9013f4e5f3a224d97","unresolved":false,"context_lines":[{"line_number":68,"context_line":"   disabled cells."},{"line_number":69,"context_line":"#. Since the list of cells are currently cached globally (better performance)"},{"line_number":70,"context_line":"   after every enabling/disabling action of any cell, this cache will be"},{"line_number":71,"context_line":"   refreshed so that the new changes are reflected. The refreshing will be done"},{"line_number":72,"context_line":"   using a \"SIGHUP\" handler that will be created in the scheduler and a signal"},{"line_number":73,"context_line":"   to this handler will be made during the change to disabled column."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Since we have the nova-manage utility for the operators, the nova-manaage"},{"line_number":76,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_2c31740c","line":73,"range":{"start_line":71,"start_character":52,"end_line":73,"end_character":69},"in_reply_to":"df7087c5_ecaa9c83","updated":"2018-03-08 22:00:42.000000000","message":"It can\u0027t be a sighup from nova-manage, otherwise you\u0027d have to run it on the scheduler node for that to work. In previous revisions I suggested just using a reset() handler on scheduler manager just like we do for compute manager and the service version cache.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dbc88fb4274302408587df6dd55d3f35fd9c7c17","unresolved":false,"context_lines":[{"line_number":73,"context_line":"   to this handler will be made during the change to disabled column."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Since we have the nova-manage utility for the operators, the nova-manaage"},{"line_number":76,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"},{"line_number":77,"context_line":"following manner, thus allowing the user to enable/disable a cell."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* Add new flags to ``nova-manage cell_v2 update_cell`` command -"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_ec0e1ce4","line":76,"range":{"start_line":76,"start_character":55,"end_line":76,"end_character":61},"updated":"2018-03-08 21:30:02.000000000","message":"remove the comma?","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"fe03fc667365e2ae48a51e4cb3d36ef7fd4f84ee","unresolved":false,"context_lines":[{"line_number":73,"context_line":"   to this handler will be made during the change to disabled column."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Since we have the nova-manage utility for the operators, the nova-manaage"},{"line_number":76,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"},{"line_number":77,"context_line":"following manner, thus allowing the user to enable/disable a cell."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* Add new flags to ``nova-manage cell_v2 update_cell`` command -"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_0bf780f7","line":76,"range":{"start_line":76,"start_character":55,"end_line":76,"end_character":61},"in_reply_to":"df7087c5_ec0e1ce4","updated":"2018-03-12 13:32:24.000000000","message":"Done","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dbc88fb4274302408587df6dd55d3f35fd9c7c17","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Since we have the nova-manage utility for the operators, the nova-manaage"},{"line_number":76,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"},{"line_number":77,"context_line":"following manner, thus allowing the user to enable/disable a cell."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* Add new flags to ``nova-manage cell_v2 update_cell`` command -"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_0c14b0f4","line":77,"range":{"start_line":77,"start_character":36,"end_line":77,"end_character":40},"updated":"2018-03-08 21:30:02.000000000","message":"nit: operator","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"fe03fc667365e2ae48a51e4cb3d36ef7fd4f84ee","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Since we have the nova-manage utility for the operators, the nova-manaage"},{"line_number":76,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"},{"line_number":77,"context_line":"following manner, thus allowing the user to enable/disable a cell."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* Add new flags to ``nova-manage cell_v2 update_cell`` command -"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_8be2b02e","line":77,"range":{"start_line":77,"start_character":36,"end_line":77,"end_character":40},"in_reply_to":"df7087c5_0c14b0f4","updated":"2018-03-12 13:32:24.000000000","message":"Done","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dbc88fb4274302408587df6dd55d3f35fd9c7c17","unresolved":false,"context_lines":[{"line_number":76,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"},{"line_number":77,"context_line":"following manner, thus allowing the user to enable/disable a cell."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* Add new flags to ``nova-manage cell_v2 update_cell`` command -"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"  * ``nova-manage cell_v2 --update_cell --cell_uuid \u003ccell_uuid\u003e [--disable]``"},{"line_number":82,"context_line":"      which will disable an enabled cell, meaning set the ``diasbled`` field of"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_4c8f082a","line":79,"updated":"2018-03-08 21:30:02.000000000","message":"For the record, I\u0027m not completely comfortable with building more and more functionality into nova-manage for interfacing with cells. I\u0027m not sure why there is such a push back on a REST API for managing cells - we have a REST API hosts, services and hypervisors, so adding a REST API for cell mappings seems like a natural extension of that. Furthermore, our REST API is versioned and nova-manage is not, so it just feels dirty to build more and more API contract type stuff into a CLI tool.\n\nI realize hacking stuff into nova-manage is quick and dirty, but I think it\u0027s going to be a pain in the butt to maintain long-term and not especially user friendly for operators that don\u0027t want to have to shell into a host to make these changes.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bf6facc38360418ce384c58013268831f1e89696","unresolved":false,"context_lines":[{"line_number":76,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"},{"line_number":77,"context_line":"following manner, thus allowing the user to enable/disable a cell."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* Add new flags to ``nova-manage cell_v2 update_cell`` command -"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"  * ``nova-manage cell_v2 --update_cell --cell_uuid \u003ccell_uuid\u003e [--disable]``"},{"line_number":82,"context_line":"      which will disable an enabled cell, meaning set the ``diasbled`` field of"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_9209a496","line":79,"in_reply_to":"df7087c5_19ca9e6c","updated":"2018-03-09 21:46:30.000000000","message":"https://developer.openstack.org/api-ref/compute/#cells-os-cells-capacities\n\nCells v2 makes cells native to nova, not optional like cells v1, so at least doing things with the mappings via REST API seems like a fine thing to do, especially since we basically have CRUD API operations now for cell mappings, but it\u0027s all behind a nova-manage CLI.\n\nI think of it like the os-services API - yes your deployment tooling deploys the services on hosts and those get reported and services table entries get created, but we have a REST API to list services, check their health and enable/disable them - basically the same thing we\u0027re building up for cell mappings in nova-manage.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"064d49bcc03aff25f3f9f5504890e06b66412f92","unresolved":false,"context_lines":[{"line_number":76,"context_line":"command to update the fields in the cell_mappings table, can be reused in the"},{"line_number":77,"context_line":"following manner, thus allowing the user to enable/disable a cell."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* Add new flags to ``nova-manage cell_v2 update_cell`` command -"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"  * ``nova-manage cell_v2 --update_cell --cell_uuid \u003ccell_uuid\u003e [--disable]``"},{"line_number":82,"context_line":"      which will disable an enabled cell, meaning set the ``diasbled`` field of"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_19ca9e6c","line":79,"in_reply_to":"df7087c5_4c8f082a","updated":"2018-03-09 17:31:19.000000000","message":"I think primarily because cells have never been exposed via a public API due to the fact that cells are really a deployment-internal concept.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dbc88fb4274302408587df6dd55d3f35fd9c7c17","unresolved":false,"context_lines":[{"line_number":79,"context_line":"* Add new flags to ``nova-manage cell_v2 update_cell`` command -"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"  * ``nova-manage cell_v2 --update_cell --cell_uuid \u003ccell_uuid\u003e [--disable]``"},{"line_number":82,"context_line":"      which will disable an enabled cell, meaning set the ``diasbled`` field of"},{"line_number":83,"context_line":"      this cell\u0027s cell_mapping record in the api DB to 1."},{"line_number":84,"context_line":"  * ``nova-manage cell_v2 --update_cell --cell_uuid \u003ccell_uuid\u003e [--enable]``"},{"line_number":85,"context_line":"      which will enable a disabled cell, meaning set the ``disabled`` field of"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_6c020cb7","line":82,"range":{"start_line":82,"start_character":60,"end_line":82,"end_character":68},"updated":"2018-03-08 21:30:02.000000000","message":"disabled","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"fe03fc667365e2ae48a51e4cb3d36ef7fd4f84ee","unresolved":false,"context_lines":[{"line_number":79,"context_line":"* Add new flags to ``nova-manage cell_v2 update_cell`` command -"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"  * ``nova-manage cell_v2 --update_cell --cell_uuid \u003ccell_uuid\u003e [--disable]``"},{"line_number":82,"context_line":"      which will disable an enabled cell, meaning set the ``diasbled`` field of"},{"line_number":83,"context_line":"      this cell\u0027s cell_mapping record in the api DB to 1."},{"line_number":84,"context_line":"  * ``nova-manage cell_v2 --update_cell --cell_uuid \u003ccell_uuid\u003e [--enable]``"},{"line_number":85,"context_line":"      which will enable a disabled cell, meaning set the ``disabled`` field of"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_2b38449e","line":82,"range":{"start_line":82,"start_character":60,"end_line":82,"end_character":68},"in_reply_to":"df7087c5_6c020cb7","updated":"2018-03-12 13:32:24.000000000","message":"Done","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dbc88fb4274302408587df6dd55d3f35fd9c7c17","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The scope of this spec is limited to considering the scenario of using a filter"},{"line_number":98,"context_line":"scheduler since that is the maintained scheduler. Also note that this spec only"},{"line_number":99,"context_line":"focuses on stopping new scheduling to the disabled cells and does not hamper"},{"line_number":100,"context_line":"any user operations for existing VMs in the disabled cells like resizing."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Alternatives"},{"line_number":103,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_4cc14854","line":100,"range":{"start_line":99,"start_character":57,"end_line":100,"end_character":73},"updated":"2018-03-08 21:30:02.000000000","message":"How are you going to know that you\u0027re doing a move operation for an existing server? get_host_states_by_uuids does not currently have that context. It does have a RequestSpec object though so I\u0027m sure we could build something in, like a special unpersisted scheduler filter (like we do for rebuild operations).","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"49006bfb8ac7412289c7e441384a2302c00ca78d","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The scope of this spec is limited to considering the scenario of using a filter"},{"line_number":98,"context_line":"scheduler since that is the maintained scheduler. Also note that this spec only"},{"line_number":99,"context_line":"focuses on stopping new scheduling to the disabled cells and does not hamper"},{"line_number":100,"context_line":"any user operations for existing VMs in the disabled cells like resizing."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Alternatives"},{"line_number":103,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_60195620","line":100,"range":{"start_line":99,"start_character":57,"end_line":100,"end_character":73},"in_reply_to":"df7087c5_377e4baf","updated":"2018-03-13 12:18:58.000000000","message":"Okay, so I will not be blocking any actions on existing VMs in the disabled cell. So will go ahead with what is stated above and even if RequestSpec.request_destination.cell is set to a disabled cell, it will not be blocked.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6823f8183dfc7dbe3b866fa9013f4e5f3a224d97","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The scope of this spec is limited to considering the scenario of using a filter"},{"line_number":98,"context_line":"scheduler since that is the maintained scheduler. Also note that this spec only"},{"line_number":99,"context_line":"focuses on stopping new scheduling to the disabled cells and does not hamper"},{"line_number":100,"context_line":"any user operations for existing VMs in the disabled cells like resizing."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Alternatives"},{"line_number":103,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_6c2e8ca6","line":100,"range":{"start_line":99,"start_character":57,"end_line":100,"end_character":73},"in_reply_to":"df7087c5_4cc14854","updated":"2018-03-08 22:00:42.000000000","message":"From memory, we\u0027re setting RequestSpec.requested_destination.cell on any move operations where we do have context to keep the scheduler confined. So that\u0027s at least one key to use I think.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bf6facc38360418ce384c58013268831f1e89696","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The scope of this spec is limited to considering the scenario of using a filter"},{"line_number":98,"context_line":"scheduler since that is the maintained scheduler. Also note that this spec only"},{"line_number":99,"context_line":"focuses on stopping new scheduling to the disabled cells and does not hamper"},{"line_number":100,"context_line":"any user operations for existing VMs in the disabled cells like resizing."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Alternatives"},{"line_number":103,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_b2f3889e","line":100,"range":{"start_line":99,"start_character":57,"end_line":100,"end_character":73},"in_reply_to":"df7087c5_6c2e8ca6","updated":"2018-03-09 21:46:30.000000000","message":"Yeah good point. RequestSpec.requested_destination.host/node can be set for other reasons, but the \u0027cell\u0027 attribute is I think only currently set during move operations to make sure the scheduler picks a host (if not forced) to the same cell.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"38bda77c7fe2f8072bfd388656ae1992b8832a1d","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The scope of this spec is limited to considering the scenario of using a filter"},{"line_number":98,"context_line":"scheduler since that is the maintained scheduler. Also note that this spec only"},{"line_number":99,"context_line":"focuses on stopping new scheduling to the disabled cells and does not hamper"},{"line_number":100,"context_line":"any user operations for existing VMs in the disabled cells like resizing."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Alternatives"},{"line_number":103,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_377e4baf","line":100,"range":{"start_line":99,"start_character":57,"end_line":100,"end_character":73},"in_reply_to":"df7087c5_7172ae13","updated":"2018-03-13 10:28:53.000000000","message":"This spec goal is to block the creation of new instances in a cell.\nActions in existing VMs running in a disabled cell should continue to be supported, including rebuild/resize.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0221b47c284a3adfffce8308b3253aa403571859","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The scope of this spec is limited to considering the scenario of using a filter"},{"line_number":98,"context_line":"scheduler since that is the maintained scheduler. Also note that this spec only"},{"line_number":99,"context_line":"focuses on stopping new scheduling to the disabled cells and does not hamper"},{"line_number":100,"context_line":"any user operations for existing VMs in the disabled cells like resizing."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Alternatives"},{"line_number":103,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_7172ae13","line":100,"range":{"start_line":99,"start_character":57,"end_line":100,"end_character":73},"in_reply_to":"df7087c5_aba3f49d","updated":"2018-03-12 14:31:34.000000000","message":"\u003e However, considering the whole concept of \"disabling\" I am now tilted towards not allowing any kind of operations in that cell like rebuilding/resizing/... so #confused.\n\nWhat does CERN do today for actions on an instance in a disabled cell?\n\nIf we did block all actions, that would likely be some new 409 error code, but we likely don\u0027t want to leak information about an instance being in a disabled cell.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"fe03fc667365e2ae48a51e4cb3d36ef7fd4f84ee","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The scope of this spec is limited to considering the scenario of using a filter"},{"line_number":98,"context_line":"scheduler since that is the maintained scheduler. Also note that this spec only"},{"line_number":99,"context_line":"focuses on stopping new scheduling to the disabled cells and does not hamper"},{"line_number":100,"context_line":"any user operations for existing VMs in the disabled cells like resizing."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Alternatives"},{"line_number":103,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_aba3f49d","line":100,"range":{"start_line":99,"start_character":57,"end_line":100,"end_character":73},"in_reply_to":"df7087c5_b2f3889e","updated":"2018-03-12 13:32:24.000000000","message":"In the previous revision of the spec, I was considering the RequestSpec.requested_destination.cell being set condition and blocking that operation also in case that cell was disabled, but then decided that I did not want to hamper user actions on existing VMs in the disabled cell and that the aim of disabling is only for stopping new scheduling. Hence added this to clarify I will not be blocking the existing server operations.\n\n\nHowever, considering the whole concept of \"disabling\" I am now tilted towards not allowing any kind of operations in that cell like rebuilding/resizing/... so #confused.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dbc88fb4274302408587df6dd55d3f35fd9c7c17","unresolved":false,"context_lines":[{"line_number":107,"context_line":"   this would anyways still need a new field in cell_mappings, it would be more"},{"line_number":108,"context_line":"   integrated if this is implemented through a simple change in query in the"},{"line_number":109,"context_line":"   host_manager."},{"line_number":110,"context_line":"#. Another alternative would be loop through all the compute services in that"},{"line_number":111,"context_line":"   cell and enable/disable them, but this may not be ideal in cases of cells"},{"line_number":112,"context_line":"   having large number of computes."},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_8ce3e033","line":110,"updated":"2018-03-08 21:30:02.000000000","message":"This is the alternative I was thinking about before you listed it.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dbc88fb4274302408587df6dd55d3f35fd9c7c17","unresolved":false,"context_lines":[{"line_number":108,"context_line":"   integrated if this is implemented through a simple change in query in the"},{"line_number":109,"context_line":"   host_manager."},{"line_number":110,"context_line":"#. Another alternative would be loop through all the compute services in that"},{"line_number":111,"context_line":"   cell and enable/disable them, but this may not be ideal in cases of cells"},{"line_number":112,"context_line":"   having large number of computes."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Data model impact"},{"line_number":115,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_2c3734b3","line":112,"range":{"start_line":111,"start_character":33,"end_line":112,"end_character":35},"updated":"2018-03-08 21:30:02.000000000","message":"Not only that, but we don\u0027t have a way from the REST API to list nova-compute services per cell, so one would have to write a script to get the host mappings per cell from the database, and from those host mappings disable the services; or a script that is configured for database access only to the specific cell and disable all of the nova-compute services within. The latter would be relatively simple to do from nova-manage but might not be fast enough if it has to churn through hundreds of service records and update them one at a time.","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dbc88fb4274302408587df6dd55d3f35fd9c7c17","unresolved":false,"context_lines":[{"line_number":139,"context_line":"Other end user impact"},{"line_number":140,"context_line":"---------------------"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Users will gain two new options to the existing ``nova-manage cell_v2"},{"line_number":143,"context_line":"update_cell`` command called ``disable`` and ``enable``. The documentation will"},{"line_number":144,"context_line":"be updated to benefit the users."},{"line_number":145,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_0cbb50e2","line":142,"updated":"2018-03-08 21:30:02.000000000","message":"nit: plus the create_cell command, but...","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"fe03fc667365e2ae48a51e4cb3d36ef7fd4f84ee","unresolved":false,"context_lines":[{"line_number":139,"context_line":"Other end user impact"},{"line_number":140,"context_line":"---------------------"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Users will gain two new options to the existing ``nova-manage cell_v2"},{"line_number":143,"context_line":"update_cell`` command called ``disable`` and ``enable``. The documentation will"},{"line_number":144,"context_line":"be updated to benefit the users."},{"line_number":145,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_6b64fce4","line":142,"in_reply_to":"df7087c5_0cbb50e2","updated":"2018-03-12 13:32:24.000000000","message":"Done","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"b0fc2695cb67e8bc1230505aa7c8873921285c22","unresolved":false,"context_lines":[{"line_number":193,"context_line":"#. Change the method of querying for the host states in the host_manager to"},{"line_number":194,"context_line":"   only query in the enabled cells and add a SIGHUP handler."},{"line_number":195,"context_line":"#. Add the new flags to the nova-manage cell_v2 update_cell command."},{"line_number":196,"context_line":"#. Add the new flag to the nova-manage cell_v2 create_cell command."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"Dependencies"},{"line_number":199,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_490a688a","line":196,"updated":"2018-03-12 08:26:16.000000000","message":"nit, extend the columnt of nova-manage cell_v2 list_cells","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"fe03fc667365e2ae48a51e4cb3d36ef7fd4f84ee","unresolved":false,"context_lines":[{"line_number":193,"context_line":"#. Change the method of querying for the host states in the host_manager to"},{"line_number":194,"context_line":"   only query in the enabled cells and add a SIGHUP handler."},{"line_number":195,"context_line":"#. Add the new flags to the nova-manage cell_v2 update_cell command."},{"line_number":196,"context_line":"#. Add the new flag to the nova-manage cell_v2 create_cell command."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"Dependencies"},{"line_number":199,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_eb57ac01","line":196,"in_reply_to":"df7087c5_490a688a","updated":"2018-03-12 13:32:24.000000000","message":"Done","commit_id":"a0b4241141b888e9f0e9d981d34adf24bce35d3b"}]}
