)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6e35d904f22f6efeb883d4c68add96fc0fc96228","unresolved":true,"context_lines":[{"line_number":10,"context_line":"threads, and the size of the listen queue in Debian, which uses"},{"line_number":11,"context_line":"uwsgi to run Keystone. Therefore, this patch adds a new"},{"line_number":12,"context_line":"keystone_uwsgi_config provider as well as a new"},{"line_number":13,"context_line":"::keystone::wsgi::uwsgi class."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This is, hopefully, the first of a long series of patches for"},{"line_number":16,"context_line":"the whole puppet-openstack to add uwsgi support."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"80185b36_96fd6dac","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":2},"updated":"2021-03-29 08:51:38.000000000","message":"You can remove this.","commit_id":"504f27726e5602bb546b024c0b04c2eaa322e523"}],"manifests/init.pp":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e0db9c346269f5a81043ef506f09da14c52060d7","unresolved":true,"context_lines":[{"line_number":487,"context_line":"  $database_retry_interval              \u003d undef,"},{"line_number":488,"context_line":"  $database_max_pool_size               \u003d undef,"},{"line_number":489,"context_line":"  $database_max_overflow                \u003d undef,"},{"line_number":490,"context_line":"  $workers                              \u003d 4,"},{"line_number":491,"context_line":") inherits keystone::params {"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"  include keystone::deps"}],"source_content_type":"text/x-puppet","patch_set":1,"id":"db22b75a_dee72233","line":490,"range":{"start_line":490,"start_character":2,"end_line":490,"end_character":44},"updated":"2021-03-17 09:46:02.000000000","message":"Because this is specific to wsgi then I think it\u0027s better to have an independent keystone::wsgi::uwsgi class to define all parameters for uwsgi. This helps us implement additional parameters like ports etc later.\n\nAlso, because the way we setup wsgi is supposed to be same in the all services. Thus it would make more sense to implement the basic implementation in puppet-openstacklib and use that class.","commit_id":"721396def738658861e619323384c7d780f09c65"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"a0ab0f384e61ad0c3173f5e4979d710c9d0e7208","unresolved":false,"context_lines":[{"line_number":487,"context_line":"  $database_retry_interval              \u003d undef,"},{"line_number":488,"context_line":"  $database_max_pool_size               \u003d undef,"},{"line_number":489,"context_line":"  $database_max_overflow                \u003d undef,"},{"line_number":490,"context_line":"  $workers                              \u003d 4,"},{"line_number":491,"context_line":") inherits keystone::params {"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"  include keystone::deps"}],"source_content_type":"text/x-puppet","patch_set":1,"id":"b19e4b93_a18332b2","line":490,"range":{"start_line":490,"start_character":2,"end_line":490,"end_character":44},"in_reply_to":"db22b75a_dee72233","updated":"2021-03-17 10:19:36.000000000","message":"Done","commit_id":"721396def738658861e619323384c7d780f09c65"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e0db9c346269f5a81043ef506f09da14c52060d7","unresolved":true,"context_lines":[{"line_number":567,"context_line":"  }"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"  if $::os_package_type \u003d\u003d \u0027debian\u0027 and $workers !\u003d undef{"},{"line_number":570,"context_line":"    keystone_uwsgi_config {"},{"line_number":571,"context_line":"      \u0027uwsgi/processes\u0027: value \u003d\u003e $workers;"},{"line_number":572,"context_line":"    }"},{"line_number":573,"context_line":"  }"}],"source_content_type":"text/x-puppet","patch_set":1,"id":"33124895_dfbe3cae","line":570,"range":{"start_line":570,"start_character":4,"end_line":570,"end_character":25},"updated":"2021-03-17 09:46:02.000000000","message":"If you want to make this happen during configuration phase and trigger restart of services then you should add something like the following example into deps.\n\n```\n  Anchor[\u0027keystone::config::begin\u0027]\n  -\u003e Keystone_uwsgi_config\u003c||\u003e\n  ~\u003e Anchor[\u0027keystone::config::end\u0027]\n```\n\nNote that if you implement the base class in puppet-openstacklib as I suggested in my earlier comment then you can implement the dependency like\n\n```\n  Anchor[\u0027keystone::config::begin\u0027]\n  -\u003e Openstacklib::Wsgi::Uwsgi\u003c||\u003e\n  ~\u003e Anchor[\u0027keystone::config::end\u0027]\n```","commit_id":"721396def738658861e619323384c7d780f09c65"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"a0ab0f384e61ad0c3173f5e4979d710c9d0e7208","unresolved":false,"context_lines":[{"line_number":567,"context_line":"  }"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"  if $::os_package_type \u003d\u003d \u0027debian\u0027 and $workers !\u003d undef{"},{"line_number":570,"context_line":"    keystone_uwsgi_config {"},{"line_number":571,"context_line":"      \u0027uwsgi/processes\u0027: value \u003d\u003e $workers;"},{"line_number":572,"context_line":"    }"},{"line_number":573,"context_line":"  }"}],"source_content_type":"text/x-puppet","patch_set":1,"id":"55392b1c_ab06f69c","line":570,"range":{"start_line":570,"start_character":4,"end_line":570,"end_character":25},"in_reply_to":"33124895_dfbe3cae","updated":"2021-03-17 10:19:36.000000000","message":"Done","commit_id":"721396def738658861e619323384c7d780f09c65"}],"manifests/wsgi/uwsgi.pp":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"d98629a900694882ec81135654db431cb951e755","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright 2021 Thomas Goirand \u003czigo@debian.org\u003e"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Author: Thomas Goirand \u003czigo@debian.org\u003e"}],"source_content_type":"text/x-puppet","patch_set":3,"id":"17bf2da3_8ca6cb1a","line":1,"updated":"2021-03-17 13:21:43.000000000","message":"As I mentioned in my previous comment I think we should implement the base class in openstacklib and use that class from this class, because we are supposed to require the same set of parameters for all services.","commit_id":"c04b6193bd1876215ef5ce2f1846f2f585da543f"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"d98629a900694882ec81135654db431cb951e755","unresolved":true,"context_lines":[{"line_number":25,"context_line":"#"},{"line_number":26,"context_line":"class keystone::wsgi::uwsgi ("},{"line_number":27,"context_line":"  $processes         \u003d undef,"},{"line_number":28,"context_line":"  $threads           \u003d undef,"},{"line_number":29,"context_line":"  $listen_queue_size \u003d undef,"},{"line_number":30,"context_line":") inherits ::keystone::params {"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-puppet","patch_set":3,"id":"17f2c236_0a2e803b","line":28,"range":{"start_line":28,"start_character":23,"end_line":28,"end_character":28},"updated":"2021-03-17 13:21:43.000000000","message":"You don\u0027t need to use undef but set the default value.","commit_id":"c04b6193bd1876215ef5ce2f1846f2f585da543f"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"d98629a900694882ec81135654db431cb951e755","unresolved":true,"context_lines":[{"line_number":26,"context_line":"class keystone::wsgi::uwsgi ("},{"line_number":27,"context_line":"  $processes         \u003d undef,"},{"line_number":28,"context_line":"  $threads           \u003d undef,"},{"line_number":29,"context_line":"  $listen_queue_size \u003d undef,"},{"line_number":30,"context_line":") inherits ::keystone::params {"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  include keystone::deps"}],"source_content_type":"text/x-puppet","patch_set":3,"id":"8a20ee70_70887a26","line":29,"range":{"start_line":29,"start_character":23,"end_line":29,"end_character":28},"updated":"2021-03-17 13:21:43.000000000","message":"ditto","commit_id":"c04b6193bd1876215ef5ce2f1846f2f585da543f"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"d98629a900694882ec81135654db431cb951e755","unresolved":true,"context_lines":[{"line_number":27,"context_line":"  $processes         \u003d undef,"},{"line_number":28,"context_line":"  $threads           \u003d undef,"},{"line_number":29,"context_line":"  $listen_queue_size \u003d undef,"},{"line_number":30,"context_line":") inherits ::keystone::params {"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  include keystone::deps"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-puppet","patch_set":3,"id":"575d7bdf_d39082c2","line":30,"range":{"start_line":30,"start_character":2,"end_line":30,"end_character":29},"updated":"2021-03-17 13:21:43.000000000","message":"This inherit is not required.","commit_id":"c04b6193bd1876215ef5ce2f1846f2f585da543f"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"d98629a900694882ec81135654db431cb951e755","unresolved":true,"context_lines":[{"line_number":35,"context_line":"    warning(\u0027This class is only valid for Debian, as other operating systems are not using uwsgi by default.\u0027)"},{"line_number":36,"context_line":"  }"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"  $processor_count \u003d $facts[\u0027processors\u0027][\u0027count\u0027]"},{"line_number":39,"context_line":"  if $processes \u003d\u003d undef and $processor_count !\u003d undef {"},{"line_number":40,"context_line":"    if($facts[\u0027memory\u0027][\u0027system\u0027][\u0027available_bytes\u0027] \u003c 34359738368){"},{"line_number":41,"context_line":"      $processes_real \u003d 2"}],"source_content_type":"text/x-puppet","patch_set":3,"id":"842f0e65_31e3269b","line":38,"updated":"2021-03-17 13:21:43.000000000","message":"Is there any specific reason why you don\u0027t use $::os_workers ?","commit_id":"c04b6193bd1876215ef5ce2f1846f2f585da543f"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5b713f634d57d0ff4b22186c6491db5f96381fac","unresolved":true,"context_lines":[{"line_number":25,"context_line":"  $processes         \u003d $::os_workers,"},{"line_number":26,"context_line":"  $threads           \u003d 32,"},{"line_number":27,"context_line":"  $listen_queue_size \u003d 100,"},{"line_number":28,"context_line":") inherits ::keystone::params {"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  include keystone::deps"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-puppet","patch_set":4,"id":"97625748_b6100815","line":28,"range":{"start_line":28,"start_character":2,"end_line":28,"end_character":29},"updated":"2021-03-18 09:43:40.000000000","message":"This inheritance is not required","commit_id":"5dd8794335ca2b26cb041bfc0bb64054adbf6e93"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"8fdf3a4bcdf802c4f78b562157e414026c61fb05","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  $processes         \u003d $::os_workers,"},{"line_number":26,"context_line":"  $threads           \u003d 32,"},{"line_number":27,"context_line":"  $listen_queue_size \u003d 100,"},{"line_number":28,"context_line":") inherits ::keystone::params {"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  include keystone::deps"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-puppet","patch_set":4,"id":"afb9663f_3e8203ed","line":28,"range":{"start_line":28,"start_character":2,"end_line":28,"end_character":29},"in_reply_to":"97625748_b6100815","updated":"2021-03-18 12:27:23.000000000","message":"Done","commit_id":"5dd8794335ca2b26cb041bfc0bb64054adbf6e93"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5b713f634d57d0ff4b22186c6491db5f96381fac","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    \u0027uwsgi/processes\u0027: value \u003d\u003e $processes;"},{"line_number":38,"context_line":"    \u0027uwsgi/threads\u0027:   value \u003d\u003e $threads;"},{"line_number":39,"context_line":"    \u0027uwsgi/listen\u0027:    value \u003d\u003e $listen_queue_size;"},{"line_number":40,"context_line":"  }"},{"line_number":41,"context_line":"}"}],"source_content_type":"text/x-puppet","patch_set":4,"id":"f06fb1c6_d1219d4c","line":40,"updated":"2021-03-18 09:43:40.000000000","message":"As I mentioned earlier because we expect similar configurations required in each services, it would be better to implement a base class in openstacklib.\nIt might looks overkilling at this point but definitely helps us when we need any common logic later.\n\nI have submitted a change to puppet-openstacklib [1] which implements the basic resource type.\n\n[1] https://review.opendev.org/c/openstack/puppet-openstacklib/+/781230\n\nWhat we need is to split this change to two parts and set dependencies like;\n\n 1. puppet-keystone: Introcude keystone_uwsgi_config into puppet-keystone\n 2. puppet-openstacklib: add openstacklib::wsgi::uwsgi\n 3. puppet-keystone: Add keystone::wsgi::uwsgi using openstacklib::wsgi::uwsgi\n\nAnother option would be to keep the current implementation and submit another commit to replace current implementation by openstacklib::wsgi::uwsgi","commit_id":"5dd8794335ca2b26cb041bfc0bb64054adbf6e93"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"8fdf3a4bcdf802c4f78b562157e414026c61fb05","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    \u0027uwsgi/processes\u0027: value \u003d\u003e $processes;"},{"line_number":38,"context_line":"    \u0027uwsgi/threads\u0027:   value \u003d\u003e $threads;"},{"line_number":39,"context_line":"    \u0027uwsgi/listen\u0027:    value \u003d\u003e $listen_queue_size;"},{"line_number":40,"context_line":"  }"},{"line_number":41,"context_line":"}"}],"source_content_type":"text/x-puppet","patch_set":4,"id":"f8655052_3a20590c","line":40,"in_reply_to":"f06fb1c6_d1219d4c","updated":"2021-03-18 12:27:23.000000000","message":"I\u0027ll take the road of \"another option\" and will openstacklib in a 2nd commit instead of calling keystone_uwsgi_config directly.","commit_id":"5dd8794335ca2b26cb041bfc0bb64054adbf6e93"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6e35d904f22f6efeb883d4c68add96fc0fc96228","unresolved":true,"context_lines":[{"line_number":33,"context_line":"    warning(\u0027This class is only valid for Debian, as other operating systems are not using uwsgi by default.\u0027)"},{"line_number":34,"context_line":"  }"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"  keystone_uwsgi_config {"},{"line_number":37,"context_line":"    \u0027uwsgi/processes\u0027: value \u003d\u003e $processes;"},{"line_number":38,"context_line":"    \u0027uwsgi/threads\u0027:   value \u003d\u003e $threads;"},{"line_number":39,"context_line":"    \u0027uwsgi/listen\u0027:    value \u003d\u003e $listen_queue_size;"}],"source_content_type":"text/x-puppet","patch_set":9,"id":"bd06073c_77a93bec","line":36,"updated":"2021-03-29 08:51:38.000000000","message":"This is not consistent with expectation from unit tests. I have spitted my patch to puppet-openstacklib so you can use that implementation in openstacklib by depending on the first patch.\n\nhttps://review.opendev.org/c/openstack/puppet-openstacklib/+/781230","commit_id":"504f27726e5602bb546b024c0b04c2eaa322e523"}],"spec/classes/keystone_wsgi_uwsgi_spec.rb":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"975a7d3b5b8c69c898d777b7caa5659cae645da2","unresolved":true,"context_lines":[{"line_number":5,"context_line":"  let :pre_condition do"},{"line_number":6,"context_line":"    \"class { \u0027keystone\u0027:"},{"line_number":7,"context_line":"       service_name \u003d\u003e \u0027keystone\u0027,"},{"line_number":8,"context_line":"     }\""},{"line_number":9,"context_line":"  end"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"  shared_examples \u0027keystone::wsgi::uwsgi\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":9,"id":"824ff8b6_b7a7c0fc","line":8,"updated":"2021-03-29 08:56:09.000000000","message":"Do we need this ? My concern is that we are likely to drop support for service_name\u003d\u003e\u0027keystone\u0027 in CentOS/Ubuntu because they no longer provides standalone service, so we should remove this if this is not required.\n\nAnother option would be to implement a logic in the bottom block to run keystone::wsgi::uwsgi tests only for Debian.","commit_id":"504f27726e5602bb546b024c0b04c2eaa322e523"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"fe8497244ab1657588e1573172184a3c182a696f","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  let :pre_condition do"},{"line_number":6,"context_line":"    \"class { \u0027keystone\u0027:"},{"line_number":7,"context_line":"       service_name \u003d\u003e \u0027keystone\u0027,"},{"line_number":8,"context_line":"     }\""},{"line_number":9,"context_line":"  end"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"  shared_examples \u0027keystone::wsgi::uwsgi\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":9,"id":"ab8249b0_0358ddaa","line":8,"in_reply_to":"824ff8b6_b7a7c0fc","updated":"2021-03-29 08:59:56.000000000","message":"Done","commit_id":"504f27726e5602bb546b024c0b04c2eaa322e523"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6e35d904f22f6efeb883d4c68add96fc0fc96228","unresolved":true,"context_lines":[{"line_number":8,"context_line":"     }\""},{"line_number":9,"context_line":"  end"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"  shared_examples \u0027keystone::wsgi::uwsgi\u0027 do"},{"line_number":12,"context_line":"    context \u0027with default parameters\u0027 do"},{"line_number":13,"context_line":"      it {"},{"line_number":14,"context_line":"        should contain_class(\u0027keystone::deps\u0027)"}],"source_content_type":"text/x-ruby","patch_set":9,"id":"921ea9be_d4288246","line":11,"range":{"start_line":11,"start_character":2,"end_line":11,"end_character":44},"updated":"2021-03-29 08:51:38.000000000","message":"Is it intentional that these examples are not tested ?","commit_id":"504f27726e5602bb546b024c0b04c2eaa322e523"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"fe8497244ab1657588e1573172184a3c182a696f","unresolved":false,"context_lines":[{"line_number":8,"context_line":"     }\""},{"line_number":9,"context_line":"  end"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"  shared_examples \u0027keystone::wsgi::uwsgi\u0027 do"},{"line_number":12,"context_line":"    context \u0027with default parameters\u0027 do"},{"line_number":13,"context_line":"      it {"},{"line_number":14,"context_line":"        should contain_class(\u0027keystone::deps\u0027)"}],"source_content_type":"text/x-ruby","patch_set":9,"id":"9f946c21_76f63fa4","line":11,"range":{"start_line":11,"start_character":2,"end_line":11,"end_character":44},"in_reply_to":"921ea9be_d4288246","updated":"2021-03-29 08:59:56.000000000","message":"Done","commit_id":"504f27726e5602bb546b024c0b04c2eaa322e523"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"975a7d3b5b8c69c898d777b7caa5659cae645da2","unresolved":true,"context_lines":[{"line_number":30,"context_line":"        facts.merge!(OSDefaults.get_facts({"},{"line_number":31,"context_line":"          :os_workers_keystone \u003d\u003e 8,"},{"line_number":32,"context_line":"        }))"},{"line_number":33,"context_line":"      end"},{"line_number":34,"context_line":"    end"},{"line_number":35,"context_line":"  end"},{"line_number":36,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":9,"id":"485c36a8_2b553971","line":33,"updated":"2021-03-29 08:56:09.000000000","message":"You should add\n\nit_behaves_like \u0027keystone::wsgi::uwsgi\u0027\n\nhere","commit_id":"504f27726e5602bb546b024c0b04c2eaa322e523"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"fe8497244ab1657588e1573172184a3c182a696f","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        facts.merge!(OSDefaults.get_facts({"},{"line_number":31,"context_line":"          :os_workers_keystone \u003d\u003e 8,"},{"line_number":32,"context_line":"        }))"},{"line_number":33,"context_line":"      end"},{"line_number":34,"context_line":"    end"},{"line_number":35,"context_line":"  end"},{"line_number":36,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":9,"id":"126fcf5d_e548d334","line":33,"in_reply_to":"485c36a8_2b553971","updated":"2021-03-29 08:59:56.000000000","message":"Done","commit_id":"504f27726e5602bb546b024c0b04c2eaa322e523"}]}
