)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"61cf51c6fde07a974285fb28f414377b17ffb943","unresolved":false,"context_lines":[{"line_number":10,"context_line":"* Moved opts to lists"},{"line_number":11,"context_line":"* Improved indentation"},{"line_number":12,"context_line":"* Grouped opts"},{"line_number":13,"context_line":"* Removed not needed sections"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Icdcf839b6d28893694bfa1355e9dbe8dbb5ea8c3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3ac371cc_ae50d80b","line":13,"updated":"2016-08-18 19:24:01.000000000","message":"Link to cetralize-config-options bp here","commit_id":"4e8eaf80eb0560b3d97abf0f72c4a5e1bbdbac20"}],"nova/conf/scheduler.py":[{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"6694fa56a240d12780fd9758117cf477f5894bc5","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# The scheduler has options in several groups"},{"line_number":19,"context_line":"trust_group \u003d cfg.OptGroup(name\u003d\"trusted_computing\","},{"line_number":20,"context_line":"                           title\u003d\"Trust parameters\")"},{"line_number":21,"context_line":"metrics_group \u003d cfg.OptGroup(name\u003d\"metrics\","},{"line_number":22,"context_line":"                             title\u003d\"Metrics parameters\")"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_1cf1896b","line":20,"range":{"start_line":20,"start_character":34,"end_line":20,"end_character":50},"updated":"2016-08-01 21:11:57.000000000","message":"Please add help in these group objects with little more explanation as what they do.","commit_id":"08a4a951d7906667c941fec31d1a7bf1ddff59da"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"6694fa56a240d12780fd9758117cf477f5894bc5","unresolved":false,"context_lines":[{"line_number":19,"context_line":"trust_group \u003d cfg.OptGroup(name\u003d\"trusted_computing\","},{"line_number":20,"context_line":"                           title\u003d\"Trust parameters\")"},{"line_number":21,"context_line":"metrics_group \u003d cfg.OptGroup(name\u003d\"metrics\","},{"line_number":22,"context_line":"                             title\u003d\"Metrics parameters\")"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"default_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_fcf3d570","line":22,"updated":"2016-08-01 21:11:57.000000000","message":"same here","commit_id":"08a4a951d7906667c941fec31d1a7bf1ddff59da"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"6694fa56a240d12780fd9758117cf477f5894bc5","unresolved":false,"context_lines":[{"line_number":22,"context_line":"                             title\u003d\"Metrics parameters\")"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"default_opts \u003d ["},{"line_number":26,"context_line":"    cfg.IntOpt(\"scheduler_host_subset_size\","},{"line_number":27,"context_line":"        default\u003d1,"},{"line_number":28,"context_line":"        help\u003d\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_3ca1ed46","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":12},"updated":"2016-08-01 21:11:57.000000000","message":"I somehow never like the generic group name and always prefer name that represent something, but that could be just me. So no need to change unless someone else feel the same.","commit_id":"08a4a951d7906667c941fec31d1a7bf1ddff59da"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5eaeeb0233fd1cc5c729164ec1f4cf7284528111","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Options under this group allow to adjust how values assigned to metrics are"},{"line_number":31,"context_line":"calculated."},{"line_number":32,"context_line":"\"\"\")"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"default_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_297b8dbf","line":32,"updated":"2016-08-05 15:13:47.000000000","message":"Nit: its tempting to put these opt groups into a different file, or maybe define the group at the top of the list of options for that group.\n\nBut either way, this works.","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":14511,"name":"Maciej Szankin","email":"maciej+review@szankin.pl","username":"mszankin"},"change_message_id":"c5e32226c219150f9e987ad897ed7f6337114f76","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Options under this group allow to adjust how values assigned to metrics are"},{"line_number":31,"context_line":"calculated."},{"line_number":32,"context_line":"\"\"\")"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"default_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_52281a86","line":32,"in_reply_to":"bacf61ea_297b8dbf","updated":"2016-08-05 18:57:35.000000000","message":"Will take 2nd approach","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"b5e97064f32b7f1ccd4a8577c5e96a1613f296d3","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Possible values:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Any integer, although any value less than 1 will be treated as 1"},{"line_number":56,"context_line":"\"\"\"),"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    cfg.ListOpt(\"baremetal_scheduler_default_filters\","}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_d456c4cc","line":55,"range":{"start_line":55,"start_character":14,"end_line":55,"end_character":66},"updated":"2016-08-05 15:04:43.000000000","message":"Add min\u003d1 variable for this. Then https://github.com/openstack/nova/blob/bc5035343d366a18cae587f92ecb4e871aba974a/nova/scheduler/filter_scheduler.py#L125 could also change to just assign conf value directly","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6fdde057c0abe62d830f551695dd5cdb4324fd58","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Possible values:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Any integer, although any value less than 1 will be treated as 1"},{"line_number":56,"context_line":"\"\"\"),"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    cfg.ListOpt(\"baremetal_scheduler_default_filters\","}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_af9add5f","line":55,"range":{"start_line":55,"start_character":14,"end_line":55,"end_character":66},"in_reply_to":"bacf61ea_d456c4cc","updated":"2016-08-05 15:15:10.000000000","message":"-1, lets leave that for now, it might cause incompatibilities across upgrade.","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5eaeeb0233fd1cc5c729164ec1f4cf7284528111","unresolved":false,"context_lines":[{"line_number":203,"context_line":"a different scheduler, this option has no effect."},{"line_number":204,"context_line":"\"\"\"),"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    cfg.StrOpt(\"scheduler_topic\","},{"line_number":207,"context_line":"        default\u003d\"scheduler\","},{"line_number":208,"context_line":"        help\u003d\"\"\""},{"line_number":209,"context_line":"This is the message queue topic that the scheduler \u0027listens\u0027 on. It is used"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_541c9469","line":206,"updated":"2016-08-05 15:13:47.000000000","message":"Nit: would be good to add a TODO to deprecate this one, but we have a different patch worrying about that already, I think.","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5eaeeb0233fd1cc5c729164ec1f4cf7284528111","unresolved":false,"context_lines":[{"line_number":245,"context_line":"* Either \u0027host_manager\u0027 (default), or \"ironic_hos"},{"line_number":246,"context_line":"\"\"\"),"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    cfg.StrOpt(\"scheduler_driver\","},{"line_number":249,"context_line":"        default\u003d\"filter_scheduler\","},{"line_number":250,"context_line":"        help\u003d\"\"\""},{"line_number":251,"context_line":"The class of the driver used by the scheduler. This should be chosen from one"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_5433f4f5","line":248,"updated":"2016-08-05 15:13:47.000000000","message":"We should really have a set of choices defined here.\n\n  choices\u003d(\"filter_scheduler\", \"caching_scheduler\", \"chance_scheduler\", \"fake_scheduler\")","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":14511,"name":"Maciej Szankin","email":"maciej+review@szankin.pl","username":"mszankin"},"change_message_id":"c5e32226c219150f9e987ad897ed7f6337114f76","unresolved":false,"context_lines":[{"line_number":245,"context_line":"* Either \u0027host_manager\u0027 (default), or \"ironic_hos"},{"line_number":246,"context_line":"\"\"\"),"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    cfg.StrOpt(\"scheduler_driver\","},{"line_number":249,"context_line":"        default\u003d\"filter_scheduler\","},{"line_number":250,"context_line":"        help\u003d\"\"\""},{"line_number":251,"context_line":"The class of the driver used by the scheduler. This should be chosen from one"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_32876662","line":248,"in_reply_to":"bacf61ea_5433f4f5","updated":"2016-08-05 18:57:35.000000000","message":"Good catch!","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5eaeeb0233fd1cc5c729164ec1f4cf7284528111","unresolved":false,"context_lines":[{"line_number":256,"context_line":"Other options are:"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    * \u0027caching_scheduler\u0027 which aggressively caches the system state for better"},{"line_number":259,"context_line":"    individual scheduler performance at the risk of more retries when running"},{"line_number":260,"context_line":"    multiple schedulers."},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    * \u0027chance_scheduler\u0027 which simply picks a host at random."},{"line_number":263,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_3445a042","line":260,"range":{"start_line":259,"start_character":44,"end_line":260,"end_character":24},"updated":"2016-08-05 15:13:47.000000000","message":"It doesn\u0027t work with multiple schedulers, we should be stronger than that. It also can also have issues if you have a lot of deletes happening and you run out of capacity, it takes a while for the scheduler to notice the deletes.\n\nCurrently the max through put is which a single scheduler using the caching_scheduler.","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":14511,"name":"Maciej Szankin","email":"maciej+review@szankin.pl","username":"mszankin"},"change_message_id":"c5e32226c219150f9e987ad897ed7f6337114f76","unresolved":false,"context_lines":[{"line_number":256,"context_line":"Other options are:"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    * \u0027caching_scheduler\u0027 which aggressively caches the system state for better"},{"line_number":259,"context_line":"    individual scheduler performance at the risk of more retries when running"},{"line_number":260,"context_line":"    multiple schedulers."},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    * \u0027chance_scheduler\u0027 which simply picks a host at random."},{"line_number":263,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_f24e6e36","line":260,"range":{"start_line":259,"start_character":44,"end_line":260,"end_character":24},"in_reply_to":"bacf61ea_3445a042","updated":"2016-08-05 18:57:35.000000000","message":"Done","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5eaeeb0233fd1cc5c729164ec1f4cf7284528111","unresolved":false,"context_lines":[{"line_number":277,"context_line":""},{"line_number":278,"context_line":"    cfg.IntOpt(\"scheduler_driver_task_period\","},{"line_number":279,"context_line":"        default\u003d60,"},{"line_number":280,"context_line":"        min\u003d0,"},{"line_number":281,"context_line":"        help\u003d\"\"\""},{"line_number":282,"context_line":"This value controls how often (in seconds) to run periodic tasks in the"},{"line_number":283,"context_line":"scheduler. The specific tasks that are run for each period are determined by"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_b45990ff","line":280,"updated":"2016-08-05 15:13:47.000000000","message":"I think any negative number means don\u0027t run, 0 I think means use the default interval (60 seconds?) and a positive integer is the number of seconds.\n\nTo find that out you actually have to look here:\nhttps://github.com/openstack/oslo.service/blob/master/oslo_service/periodic_task.py#L119\n\nAs such, we should drop \"min\u003d0\" and document the details.","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":14511,"name":"Maciej Szankin","email":"maciej+review@szankin.pl","username":"mszankin"},"change_message_id":"c5e32226c219150f9e987ad897ed7f6337114f76","unresolved":false,"context_lines":[{"line_number":277,"context_line":""},{"line_number":278,"context_line":"    cfg.IntOpt(\"scheduler_driver_task_period\","},{"line_number":279,"context_line":"        default\u003d60,"},{"line_number":280,"context_line":"        min\u003d0,"},{"line_number":281,"context_line":"        help\u003d\"\"\""},{"line_number":282,"context_line":"This value controls how often (in seconds) to run periodic tasks in the"},{"line_number":283,"context_line":"scheduler. The specific tasks that are run for each period are determined by"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_729a7e63","line":280,"in_reply_to":"bacf61ea_b45990ff","updated":"2016-08-05 18:57:35.000000000","message":"Done","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"b5e97064f32b7f1ccd4a8577c5e96a1613f296d3","unresolved":false,"context_lines":[{"line_number":363,"context_line":"performing IO (in a build, resize, snapshot, migrate, rescue, or unshelve task"},{"line_number":364,"context_line":"state) before that host becomes ineligible to build new instances."},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"Valid values are positive integers: 1 or greater."},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":369,"context_line":"a different scheduler, this option has no effect. Also note that this setting"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_74f39873","line":366,"range":{"start_line":366,"start_character":0,"end_line":366,"end_character":48},"updated":"2016-08-05 15:04:43.000000000","message":"Add min here as well","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6fdde057c0abe62d830f551695dd5cdb4324fd58","unresolved":false,"context_lines":[{"line_number":363,"context_line":"performing IO (in a build, resize, snapshot, migrate, rescue, or unshelve task"},{"line_number":364,"context_line":"state) before that host becomes ineligible to build new instances."},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"Valid values are positive integers: 1 or greater."},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":369,"context_line":"a different scheduler, this option has no effect. Also note that this setting"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_efc7b542","line":366,"range":{"start_line":366,"start_character":0,"end_line":366,"end_character":48},"in_reply_to":"bacf61ea_74f39873","updated":"2016-08-05 15:15:10.000000000","message":"-1 that idea, for same reason as above.","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5eaeeb0233fd1cc5c729164ec1f4cf7284528111","unresolved":false,"context_lines":[{"line_number":502,"context_line":""},{"line_number":503,"context_line":"    cfg.IntOpt(\"scheduler_max_attempts\","},{"line_number":504,"context_line":"        default\u003d3,"},{"line_number":505,"context_line":"        min\u003d0,"},{"line_number":506,"context_line":"        help\u003d\"\"\""},{"line_number":507,"context_line":"This is the maximum number of attempts that will be made to schedule an"},{"line_number":508,"context_line":"instance before it is assumed that the failures aren\u0027t due to normal occasional"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_8f4f196a","line":505,"range":{"start_line":505,"start_character":8,"end_line":505,"end_character":14},"updated":"2016-08-05 15:13:47.000000000","message":"When we move code, its best not to make modifications like this, as its almost impossible to spot.\n\nI am not sure min\u003d0 is correct here, it should be min\u003d1, I think if you set it below 1, you actually stop all builds from ever working.","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":14511,"name":"Maciej Szankin","email":"maciej+review@szankin.pl","username":"mszankin"},"change_message_id":"c5e32226c219150f9e987ad897ed7f6337114f76","unresolved":false,"context_lines":[{"line_number":502,"context_line":""},{"line_number":503,"context_line":"    cfg.IntOpt(\"scheduler_max_attempts\","},{"line_number":504,"context_line":"        default\u003d3,"},{"line_number":505,"context_line":"        min\u003d0,"},{"line_number":506,"context_line":"        help\u003d\"\"\""},{"line_number":507,"context_line":"This is the maximum number of attempts that will be made to schedule an"},{"line_number":508,"context_line":"instance before it is assumed that the failures aren\u0027t due to normal occasional"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_72e8beb3","line":505,"range":{"start_line":505,"start_character":8,"end_line":505,"end_character":14},"in_reply_to":"bacf61ea_8f4f196a","updated":"2016-08-05 18:57:35.000000000","message":"You are right. Changing this one to 1","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5eaeeb0233fd1cc5c729164ec1f4cf7284528111","unresolved":false,"context_lines":[{"line_number":594,"context_line":"* attestation_auth_timeout"},{"line_number":595,"context_line":"* attestation_insecure_ssl"},{"line_number":596,"context_line":"\"\"\"),"},{"line_number":597,"context_line":"    cfg.StrOpt(\"attestation_port\","},{"line_number":598,"context_line":"            default\u003d\"8443\","},{"line_number":599,"context_line":"            help\u003d\"\"\""},{"line_number":600,"context_line":"The port to use when connecting to the attestation server. See the"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_0fc7a996","line":597,"range":{"start_line":597,"start_character":8,"end_line":597,"end_character":14},"updated":"2016-08-05 15:13:47.000000000","message":"This should be a PortOpt","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":14511,"name":"Maciej Szankin","email":"maciej+review@szankin.pl","username":"mszankin"},"change_message_id":"c5e32226c219150f9e987ad897ed7f6337114f76","unresolved":false,"context_lines":[{"line_number":594,"context_line":"* attestation_auth_timeout"},{"line_number":595,"context_line":"* attestation_insecure_ssl"},{"line_number":596,"context_line":"\"\"\"),"},{"line_number":597,"context_line":"    cfg.StrOpt(\"attestation_port\","},{"line_number":598,"context_line":"            default\u003d\"8443\","},{"line_number":599,"context_line":"            help\u003d\"\"\""},{"line_number":600,"context_line":"The port to use when connecting to the attestation server. See the"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_d2fa4a74","line":597,"range":{"start_line":597,"start_character":8,"end_line":597,"end_character":14},"in_reply_to":"bacf61ea_0fc7a996","updated":"2016-08-05 18:57:35.000000000","message":"Done","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5eaeeb0233fd1cc5c729164ec1f4cf7284528111","unresolved":false,"context_lines":[{"line_number":646,"context_line":"* attestation_auth_timeout"},{"line_number":647,"context_line":"* attestation_insecure_ssl"},{"line_number":648,"context_line":"\"\"\"),"},{"line_number":649,"context_line":"    cfg.StrOpt(\"attestation_auth_blob\","},{"line_number":650,"context_line":"            help\u003d\"\"\""},{"line_number":651,"context_line":"Attestation servers require a specific blob that is used to authenticate. The"},{"line_number":652,"context_line":"content and format of the blob are determined by the particular attestation"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_af593dff","line":649,"updated":"2016-08-05 15:13:47.000000000","message":"This should be marked with secret\u003dTrue","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":14511,"name":"Maciej Szankin","email":"maciej+review@szankin.pl","username":"mszankin"},"change_message_id":"c5e32226c219150f9e987ad897ed7f6337114f76","unresolved":false,"context_lines":[{"line_number":646,"context_line":"* attestation_auth_timeout"},{"line_number":647,"context_line":"* attestation_insecure_ssl"},{"line_number":648,"context_line":"\"\"\"),"},{"line_number":649,"context_line":"    cfg.StrOpt(\"attestation_auth_blob\","},{"line_number":650,"context_line":"            help\u003d\"\"\""},{"line_number":651,"context_line":"Attestation servers require a specific blob that is used to authenticate. The"},{"line_number":652,"context_line":"content and format of the blob are determined by the particular attestation"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_72ff1e66","line":649,"in_reply_to":"bacf61ea_af593dff","updated":"2016-08-05 18:57:35.000000000","message":"Done","commit_id":"15da6e74b51337bea44f9c0521bd6f9faa30a309"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"0357576c9fb20bc5cf1148ad36952ae075733845","unresolved":false,"context_lines":[{"line_number":597,"context_line":"The port to use when connecting to the attestation server. See the"},{"line_number":598,"context_line":"`attestation_server` help text for more information about host verification."},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"Valid values are strings, not integers, but must be digits only."},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":603,"context_line":"a different scheduler, this option has no effect. Also note that this setting"}],"source_content_type":"text/x-python","patch_set":5,"id":"9ad45d7e_16a12baa","line":600,"range":{"start_line":600,"start_character":0,"end_line":600,"end_character":63},"updated":"2016-08-08 17:07:37.000000000","message":"Since you have changed it to PortOpt, it accepts integers as well. I would recommend to change the default value to integer and possible values section representing the same.","commit_id":"44119694ff1f6fabacc7dfcc02701512a4d69115"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"cf3b93d3a42db7d6dff7a1fa676c713cc7d6a117","unresolved":false,"context_lines":[{"line_number":597,"context_line":"The port to use when connecting to the attestation server. See the"},{"line_number":598,"context_line":"`attestation_server` help text for more information about host verification."},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"Valid values are strings, not integers, but must be digits only."},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"This option is only used by the FilterScheduler and its subclasses; if you use"},{"line_number":603,"context_line":"a different scheduler, this option has no effect. Also note that this setting"}],"source_content_type":"text/x-python","patch_set":5,"id":"9ad45d7e_3836b552","line":600,"range":{"start_line":600,"start_character":0,"end_line":600,"end_character":63},"in_reply_to":"9ad45d7e_16a12baa","updated":"2016-08-09 10:44:48.000000000","message":"Oh dear, very good point.","commit_id":"44119694ff1f6fabacc7dfcc02701512a4d69115"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"cf3b93d3a42db7d6dff7a1fa676c713cc7d6a117","unresolved":false,"context_lines":[{"line_number":603,"context_line":"a different scheduler, this option has no effect. Also note that this setting"},{"line_number":604,"context_line":"only affects scheduling if the \u0027TrustedFilter\u0027 filter is enabled."},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"Possible values:"},{"line_number":607,"context_line":""},{"line_number":608,"context_line":"* A string of digits representing the port number of the attestation server, or"},{"line_number":609,"context_line":"  an empty string."},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"Related options:"},{"line_number":612,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9ad45d7e_78402da6","line":609,"range":{"start_line":606,"start_character":0,"end_line":609,"end_character":18},"updated":"2016-08-09 10:44:48.000000000","message":"Given its a port opt, not sure we need this any more.","commit_id":"44119694ff1f6fabacc7dfcc02701512a4d69115"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8699f5dc0dc2039d5dcab447b87bf7cadedd62d4","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    cfg.StrOpt(\"scheduler_driver\","},{"line_number":62,"context_line":"        default\u003d\"filter_scheduler\","},{"line_number":63,"context_line":"        choices\u003d(\"filter_scheduler\", \"caching_scheduler\","},{"line_number":64,"context_line":"                 \"chance_scheduler\", \"fake_scheduler\"),"},{"line_number":65,"context_line":"        help\u003d\"\"\""},{"line_number":66,"context_line":"The class of the driver used by the scheduler."},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"7a8ec9b2_e2e29e9f","line":64,"updated":"2016-09-21 11:17:23.000000000","message":"Hmm, we are seeing test failures here:\nValueError: Valid values are [filter_scheduler, caching_scheduler, chance_scheduler, fake_scheduler], but found \u0027nova.scheduler.chance.ChanceScheduler\u0027\n\nIf we want add choices like this (and I think we do), we must do this in a separate change, with a release note. We also then need to update this bit of code: https://github.com/openstack/nova/blob/bc5035343d366a18cae587f92ecb4e871aba974a/nova/scheduler/driver.py#L51","commit_id":"0e68d189b6b5b6f24541b59bfadfdfdbd3f177d6"}]}
