)]}'
{"playbookconfig/playbookconfig/playbooks/bootstrap/host_vars/default.yml":[{"author":{"_account_id":28439,"name":"Matt Peters","email":"matt.peters@windriver.com","username":"mpeters-wrs"},"change_message_id":"63babbece36c2b7477c0c374cdd143592e645466","unresolved":false,"context_lines":[{"line_number":117,"context_line":"# Parameter is_secure_registry is only relevant when a unified registry is"},{"line_number":118,"context_line":"# used."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"docker_registries:"},{"line_number":121,"context_line":"  k8s: k8s.gcr.io"},{"line_number":122,"context_line":"  gcr: gcr.io"},{"line_number":123,"context_line":"  quay: quay.io"},{"line_number":124,"context_line":"  docker: docker.io"},{"line_number":125,"context_line":"  # unified: example.domain"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"#is_secure_registry: True"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"bfb3d3c7_7ba1e0f7","line":124,"range":{"start_line":120,"start_character":0,"end_line":124,"end_character":19},"updated":"2019-05-29 18:35:06.000000000","message":"Why use a custom key?  I know this currently aligns to the sysinv service parameters, but it means there is an extra level of abstraction for the names.  I think it would be better to use the fully scoped registry name for the key, and assign the same name for the defaults. If a particular registry is overridden then they can use the original registry value as the key followed by a custom IP address or domain for the value.","commit_id":"6e3126b7208a780fdde069588c42ab6f21cdb451"},{"author":{"_account_id":28439,"name":"Matt Peters","email":"matt.peters@windriver.com","username":"mpeters-wrs"},"change_message_id":"24ef24a6f0fbf2c1c7ba9a50767ca27113ccf5b8","unresolved":false,"context_lines":[{"line_number":117,"context_line":"# Parameter is_secure_registry is only relevant when a unified registry is"},{"line_number":118,"context_line":"# used."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"docker_registries:"},{"line_number":121,"context_line":"  k8s: k8s.gcr.io"},{"line_number":122,"context_line":"  gcr: gcr.io"},{"line_number":123,"context_line":"  quay: quay.io"},{"line_number":124,"context_line":"  docker: docker.io"},{"line_number":125,"context_line":"  # unified: example.domain"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"#is_secure_registry: True"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"bfb3d3c7_95f6dcd6","line":124,"range":{"start_line":120,"start_character":0,"end_line":124,"end_character":19},"in_reply_to":"bfb3d3c7_1b454470","updated":"2019-05-29 23:19:37.000000000","message":"I believe the changes should be limited to the playbook since you are passing the values through to the populate_initial_config as independent variables and are mapped to the sysinv names within that script.","commit_id":"6e3126b7208a780fdde069588c42ab6f21cdb451"},{"author":{"_account_id":28486,"name":"Tee Ngo","email":"tee.ngo@windriver.com","username":"teewrs"},"change_message_id":"7f6a7d702f0a4a0ca3bd1650de0af998c5f16632","unresolved":false,"context_lines":[{"line_number":117,"context_line":"# Parameter is_secure_registry is only relevant when a unified registry is"},{"line_number":118,"context_line":"# used."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"docker_registries:"},{"line_number":121,"context_line":"  k8s: k8s.gcr.io"},{"line_number":122,"context_line":"  gcr: gcr.io"},{"line_number":123,"context_line":"  quay: quay.io"},{"line_number":124,"context_line":"  docker: docker.io"},{"line_number":125,"context_line":"  # unified: example.domain"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"#is_secure_registry: True"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"bfb3d3c7_1b454470","line":124,"range":{"start_line":120,"start_character":0,"end_line":124,"end_character":19},"in_reply_to":"bfb3d3c7_7ba1e0f7","updated":"2019-05-29 19:15:00.000000000","message":"Is this commit gating? Can it be addressed as part of the long term solution? There may be other places in sysinv (service parameter, kube_app, puppet) besides the playbook that need change and this has high test overhead.\n\nIntel test team is waiting for the fix as this issue currently blocks their automation.","commit_id":"6e3126b7208a780fdde069588c42ab6f21cdb451"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"4f3523ade7f1b67527fd73c8fd4f7248c520e4e2","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"docker_registries:"},{"line_number":125,"context_line":"  k8s.gcr.io:"},{"line_number":126,"context_line":"  gcr.io :"},{"line_number":127,"context_line":"  quay.io :"},{"line_number":128,"context_line":"  docker.io :"},{"line_number":129,"context_line":"  # unified: example.domain"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"#is_secure_registry: True"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_3e1b4473","line":128,"range":{"start_line":126,"start_character":0,"end_line":128,"end_character":13},"updated":"2019-05-30 15:45:20.000000000","message":"nit: extra space before colon","commit_id":"51937dd015f28d131d1a13eca3f4893c2a90c6bc"}],"playbookconfig/playbookconfig/playbooks/bootstrap/roles/persist-config/files/populate_initial_config.py":[{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"0cd0ebccfd3f8d4c8771a33b7fba6ccff61bb6a4","unresolved":false,"context_lines":[{"line_number":459,"context_line":"        # TODO(tngo): The following 4 service parameters will be removed when"},{"line_number":460,"context_line":"        # we switch to the long term solution using a single \"registries\""},{"line_number":461,"context_line":"        # service parameter that is extensible."},{"line_number":462,"context_line":"        registry_value \u003d list(registries.split(\u0027,\u0027))[0]"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        parameters[\u0027k8s\u0027] \u003d registry_value"},{"line_number":465,"context_line":"        parameters[\u0027gcr\u0027] \u003d registry_value"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_d01a3bca","line":462,"range":{"start_line":462,"start_character":8,"end_line":462,"end_character":55},"updated":"2019-05-29 00:17:22.000000000","message":"So you are now ignoring anything after the first registry? Maybe add a print statement to make this clear (until you have the long term fix).","commit_id":"73c23fd3af082854cb95b228f6f6f8740ac9e42a"},{"author":{"_account_id":28402,"name":"Mingyuan Qi","email":"mingyuan.qi@intel.com","username":"myqi"},"change_message_id":"f1f6816cb080b6475b28b4631c8939239f4c5e30","unresolved":false,"context_lines":[{"line_number":459,"context_line":"        # TODO(tngo): The following 4 service parameters will be removed when"},{"line_number":460,"context_line":"        # we switch to the long term solution using a single \"registries\""},{"line_number":461,"context_line":"        # service parameter that is extensible."},{"line_number":462,"context_line":"        registry_value \u003d list(registries.split(\u0027,\u0027))[0]"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        parameters[\u0027k8s\u0027] \u003d registry_value"},{"line_number":465,"context_line":"        parameters[\u0027gcr\u0027] \u003d registry_value"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_3c3a90cb","line":462,"range":{"start_line":462,"start_character":8,"end_line":462,"end_character":55},"in_reply_to":"bfb3d3c7_26dcc1e2","updated":"2019-05-29 06:24:19.000000000","message":"For example, one can\u0027t access k8s.gcr.io and gcr.io, and have slow access to quay.io and docker.io, then it\u0027s possible to set:\n  k8s.gcr.io to private registry\n  gcr.io to private registry\n  quay.io to public quay mirror\n  docker.io to public docker mirror\nor set all 4 registries to private unified registry.","commit_id":"73c23fd3af082854cb95b228f6f6f8740ac9e42a"},{"author":{"_account_id":28402,"name":"Mingyuan Qi","email":"mingyuan.qi@intel.com","username":"myqi"},"change_message_id":"68fce5716b7b39fb32ed6f43f2961af1c62a5028","unresolved":false,"context_lines":[{"line_number":459,"context_line":"        # TODO(tngo): The following 4 service parameters will be removed when"},{"line_number":460,"context_line":"        # we switch to the long term solution using a single \"registries\""},{"line_number":461,"context_line":"        # service parameter that is extensible."},{"line_number":462,"context_line":"        registry_value \u003d list(registries.split(\u0027,\u0027))[0]"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        parameters[\u0027k8s\u0027] \u003d registry_value"},{"line_number":465,"context_line":"        parameters[\u0027gcr\u0027] \u003d registry_value"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_e3569b2a","line":462,"range":{"start_line":462,"start_character":8,"end_line":462,"end_character":55},"in_reply_to":"bfb3d3c7_506bab1c","updated":"2019-05-29 02:35:56.000000000","message":"We support setting different registry mirrors for corresponding registries in config_controller, is there a way to achieve that before the long term fix?\n4 same registries setting is reasonable, it\u0027s users behaviour to choose pulling images from unified registry or different public registry mirrors or mixed. Whether using a single service parameter or not, there is always possible to have repeated registries set by user.","commit_id":"73c23fd3af082854cb95b228f6f6f8740ac9e42a"},{"author":{"_account_id":28486,"name":"Tee Ngo","email":"tee.ngo@windriver.com","username":"teewrs"},"change_message_id":"07b0bee20922bed2d63681a30cc756d229a73a3e","unresolved":false,"context_lines":[{"line_number":459,"context_line":"        # TODO(tngo): The following 4 service parameters will be removed when"},{"line_number":460,"context_line":"        # we switch to the long term solution using a single \"registries\""},{"line_number":461,"context_line":"        # service parameter that is extensible."},{"line_number":462,"context_line":"        registry_value \u003d list(registries.split(\u0027,\u0027))[0]"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        parameters[\u0027k8s\u0027] \u003d registry_value"},{"line_number":465,"context_line":"        parameters[\u0027gcr\u0027] \u003d registry_value"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_506bab1c","line":462,"range":{"start_line":462,"start_character":8,"end_line":462,"end_character":55},"in_reply_to":"bfb3d3c7_d01a3bca","updated":"2019-05-29 00:54:00.000000000","message":"Yes, in case there is a mis-configuration. I have seen .ini configuration for config_controller with the same registry repeated 4 times!","commit_id":"73c23fd3af082854cb95b228f6f6f8740ac9e42a"},{"author":{"_account_id":28486,"name":"Tee Ngo","email":"tee.ngo@windriver.com","username":"teewrs"},"change_message_id":"94f6eda58a95b04d417f7013cd065098382861aa","unresolved":false,"context_lines":[{"line_number":459,"context_line":"        # TODO(tngo): The following 4 service parameters will be removed when"},{"line_number":460,"context_line":"        # we switch to the long term solution using a single \"registries\""},{"line_number":461,"context_line":"        # service parameter that is extensible."},{"line_number":462,"context_line":"        registry_value \u003d list(registries.split(\u0027,\u0027))[0]"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        parameters[\u0027k8s\u0027] \u003d registry_value"},{"line_number":465,"context_line":"        parameters[\u0027gcr\u0027] \u003d registry_value"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_26dcc1e2","line":462,"range":{"start_line":462,"start_character":8,"end_line":462,"end_character":55},"in_reply_to":"bfb3d3c7_e3569b2a","updated":"2019-05-29 03:49:30.000000000","message":"The current config_controller solution has a limitation that we want to address in the long term solution as it does not provide the ability to add new registries.\n\nBack to the fixed number of registries (4) back-end, can you elaborate on your statement \"it\u0027s users behaviour to chose pulling images from unified registry or different public registry mirror or mixed\"? Ins\u0027t the use of \"unified\" registry and different public registry mirrors mutual exclusive?","commit_id":"73c23fd3af082854cb95b228f6f6f8740ac9e42a"}],"playbookconfig/playbookconfig/playbooks/bootstrap/roles/validate-config/tasks/main.yml":[{"author":{"_account_id":28439,"name":"Matt Peters","email":"matt.peters@windriver.com","username":"mpeters-wrs"},"change_message_id":"7425a5cff7d2d01753e9a6cbf0282a3f575aaa33","unresolved":false,"context_lines":[{"line_number":257,"context_line":"- block:"},{"line_number":258,"context_line":"  - set_fact:"},{"line_number":259,"context_line":"      use_default_registries: true"},{"line_number":260,"context_line":"      k8s_registry: \"{{ docker_registries[\u0027k8s.gcr.io\u0027] if docker_registries[\u0027k8s.gcr.io\u0027] is not none else default_k8s_registry }}\""},{"line_number":261,"context_line":"      gcr_registry: \"{{ docker_registries[\u0027gcr.io\u0027] if docker_registries[\u0027gcr.io\u0027] is not none else default_gcr_registry }}\""},{"line_number":262,"context_line":"      quay_registry: \"{{ docker_registries[\u0027quay.io\u0027] if docker_registries[\u0027quay.io\u0027] is not none else default_quay_registry }}\""},{"line_number":263,"context_line":"      docker_registry: \"{{ docker_registries[\u0027docker.io\u0027] if docker_registries[\u0027docker.io\u0027] is not none else default_docker_registry }}\""},{"line_number":264,"context_line":"      default_no_proxy:"},{"line_number":265,"context_line":"        - localhost"},{"line_number":266,"context_line":"        - 127.0.0.1"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_3934c692","line":263,"range":{"start_line":260,"start_character":0,"end_line":263,"end_character":136},"updated":"2019-05-30 09:53:40.000000000","message":"This can be simplified to this:\n\n      k8s_registry: \"{{ docker_registries[default_k8s_registry] | default(default_k8s_registry) }}\"\n      gcr_registry: \"{{ docker_registries[default_gcr_registry] | default(default_gcr_registry) }}\"\n      quay_registry: \"{{ docker_registries[default_quay_registry] | default(default_quay_registry) }}\"\n      docker_registry: \"{{ docker_registries[default_docker_registry] | default(default_docker_registry) }}\"","commit_id":"0dfddcee35ec8ffd391fe92e6542481791a678d6"},{"author":{"_account_id":28486,"name":"Tee Ngo","email":"tee.ngo@windriver.com","username":"teewrs"},"change_message_id":"261e839009bdc7e04338a76267e713a5a019dbde","unresolved":false,"context_lines":[{"line_number":257,"context_line":"- block:"},{"line_number":258,"context_line":"  - set_fact:"},{"line_number":259,"context_line":"      use_default_registries: true"},{"line_number":260,"context_line":"      k8s_registry: \"{{ docker_registries[\u0027k8s.gcr.io\u0027] if docker_registries[\u0027k8s.gcr.io\u0027] is not none else default_k8s_registry }}\""},{"line_number":261,"context_line":"      gcr_registry: \"{{ docker_registries[\u0027gcr.io\u0027] if docker_registries[\u0027gcr.io\u0027] is not none else default_gcr_registry }}\""},{"line_number":262,"context_line":"      quay_registry: \"{{ docker_registries[\u0027quay.io\u0027] if docker_registries[\u0027quay.io\u0027] is not none else default_quay_registry }}\""},{"line_number":263,"context_line":"      docker_registry: \"{{ docker_registries[\u0027docker.io\u0027] if docker_registries[\u0027docker.io\u0027] is not none else default_docker_registry }}\""},{"line_number":264,"context_line":"      default_no_proxy:"},{"line_number":265,"context_line":"        - localhost"},{"line_number":266,"context_line":"        - 127.0.0.1"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_dcb6b88a","line":263,"range":{"start_line":260,"start_character":0,"end_line":263,"end_character":136},"in_reply_to":"bfb3d3c7_3934c692","updated":"2019-05-30 11:45:40.000000000","message":"The default filter is used when there is a possibility that the parameter is not defined (e.g. it is commented out in default.yml such as pxeboot_start_address). But it is a mandatory parameter and is defined in default.yml the if else construct should be used to properly set the values of k8s_registry, gcr_registry, etc... variables. \n\nHaving said that I should probably make use of the already defined dict keys for better code aesthetic.","commit_id":"0dfddcee35ec8ffd391fe92e6542481791a678d6"},{"author":{"_account_id":28439,"name":"Matt Peters","email":"matt.peters@windriver.com","username":"mpeters-wrs"},"change_message_id":"c5bea124541588103c342c4e89a7460b7d4722b3","unresolved":false,"context_lines":[{"line_number":257,"context_line":"- block:"},{"line_number":258,"context_line":"  - set_fact:"},{"line_number":259,"context_line":"      use_default_registries: true"},{"line_number":260,"context_line":"      k8s_registry: \"{{ docker_registries[\u0027k8s.gcr.io\u0027] if docker_registries[\u0027k8s.gcr.io\u0027] is not none else default_k8s_registry }}\""},{"line_number":261,"context_line":"      gcr_registry: \"{{ docker_registries[\u0027gcr.io\u0027] if docker_registries[\u0027gcr.io\u0027] is not none else default_gcr_registry }}\""},{"line_number":262,"context_line":"      quay_registry: \"{{ docker_registries[\u0027quay.io\u0027] if docker_registries[\u0027quay.io\u0027] is not none else default_quay_registry }}\""},{"line_number":263,"context_line":"      docker_registry: \"{{ docker_registries[\u0027docker.io\u0027] if docker_registries[\u0027docker.io\u0027] is not none else default_docker_registry }}\""},{"line_number":264,"context_line":"      default_no_proxy:"},{"line_number":265,"context_line":"        - localhost"},{"line_number":266,"context_line":"        - 127.0.0.1"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_8d27acca","line":263,"range":{"start_line":260,"start_character":0,"end_line":263,"end_character":136},"in_reply_to":"bfb3d3c7_4dd9b41f","updated":"2019-05-30 14:21:58.000000000","message":"ok, I missed that.","commit_id":"0dfddcee35ec8ffd391fe92e6542481791a678d6"},{"author":{"_account_id":28486,"name":"Tee Ngo","email":"tee.ngo@windriver.com","username":"teewrs"},"change_message_id":"e5fb38f87ae19983f3236ec579bdac6ed4d98017","unresolved":false,"context_lines":[{"line_number":257,"context_line":"- block:"},{"line_number":258,"context_line":"  - set_fact:"},{"line_number":259,"context_line":"      use_default_registries: true"},{"line_number":260,"context_line":"      k8s_registry: \"{{ docker_registries[\u0027k8s.gcr.io\u0027] if docker_registries[\u0027k8s.gcr.io\u0027] is not none else default_k8s_registry }}\""},{"line_number":261,"context_line":"      gcr_registry: \"{{ docker_registries[\u0027gcr.io\u0027] if docker_registries[\u0027gcr.io\u0027] is not none else default_gcr_registry }}\""},{"line_number":262,"context_line":"      quay_registry: \"{{ docker_registries[\u0027quay.io\u0027] if docker_registries[\u0027quay.io\u0027] is not none else default_quay_registry }}\""},{"line_number":263,"context_line":"      docker_registry: \"{{ docker_registries[\u0027docker.io\u0027] if docker_registries[\u0027docker.io\u0027] is not none else default_docker_registry }}\""},{"line_number":264,"context_line":"      default_no_proxy:"},{"line_number":265,"context_line":"        - localhost"},{"line_number":266,"context_line":"        - 127.0.0.1"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_4dd9b41f","line":263,"range":{"start_line":260,"start_character":0,"end_line":263,"end_character":136},"in_reply_to":"bfb3d3c7_b2252b0b","updated":"2019-05-30 14:09:21.000000000","message":"It will be merged with the default and the end result will be:\ndocker_registries:\n  k82.gcr.io: \u003ccustom value\u003e\n  grc.io: \u003cdefault value\u003e\n  quay.io: \u003cdefault value\u003e\n  docker.io: \u003cdefault value\u003e\n\nThe merge is done upfront during prepare-env step","commit_id":"0dfddcee35ec8ffd391fe92e6542481791a678d6"},{"author":{"_account_id":28439,"name":"Matt Peters","email":"matt.peters@windriver.com","username":"mpeters-wrs"},"change_message_id":"76225b297e525678832610f55ddee69392fa8c58","unresolved":false,"context_lines":[{"line_number":257,"context_line":"- block:"},{"line_number":258,"context_line":"  - set_fact:"},{"line_number":259,"context_line":"      use_default_registries: true"},{"line_number":260,"context_line":"      k8s_registry: \"{{ docker_registries[\u0027k8s.gcr.io\u0027] if docker_registries[\u0027k8s.gcr.io\u0027] is not none else default_k8s_registry }}\""},{"line_number":261,"context_line":"      gcr_registry: \"{{ docker_registries[\u0027gcr.io\u0027] if docker_registries[\u0027gcr.io\u0027] is not none else default_gcr_registry }}\""},{"line_number":262,"context_line":"      quay_registry: \"{{ docker_registries[\u0027quay.io\u0027] if docker_registries[\u0027quay.io\u0027] is not none else default_quay_registry }}\""},{"line_number":263,"context_line":"      docker_registry: \"{{ docker_registries[\u0027docker.io\u0027] if docker_registries[\u0027docker.io\u0027] is not none else default_docker_registry }}\""},{"line_number":264,"context_line":"      default_no_proxy:"},{"line_number":265,"context_line":"        - localhost"},{"line_number":266,"context_line":"        - 127.0.0.1"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_b2252b0b","line":263,"range":{"start_line":260,"start_character":0,"end_line":263,"end_character":136},"in_reply_to":"bfb3d3c7_dcb6b88a","updated":"2019-05-30 13:31:46.000000000","message":"That is the exact scenario that I think needs to be covered.  If the user did not define one of the registries, is it \"none\" or undefined?  From my tests, the index is undefined and results in the default value being used.\n\nExample:\n\ndocker_registries:\n  k8s.gcr.io: \u003csome custom value\u003e\n  - no other values provided","commit_id":"0dfddcee35ec8ffd391fe92e6542481791a678d6"}],"sysinv/sysinv/sysinv/sysinv/common/service_parameter.py":[{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"0cd0ebccfd3f8d4c8771a33b7fba6ccff61bb6a4","unresolved":false,"context_lines":[{"line_number":659,"context_line":""},{"line_number":660,"context_line":"def _validate_docker_registry_address(name, value):"},{"line_number":661,"context_line":"    \"\"\"Check if registry address is valid\"\"\""},{"line_number":662,"context_line":"    values \u003d value.split(\u0027,\u0027)"},{"line_number":663,"context_line":"    for item in values:"},{"line_number":664,"context_line":"        if not cutils.is_valid_domain_or_ip(item):"},{"line_number":665,"context_line":"            raise wsme.exc.ClientSideError(_("},{"line_number":666,"context_line":"                \"Parameter \u0027%s\u0027 includes an invalid address \u0027%s\u0027.\" %"},{"line_number":667,"context_line":"                (name, item)))"},{"line_number":668,"context_line":""},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"def _validate_docker_insecure_registry_bool(name, value):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_f01e5fb9","line":667,"range":{"start_line":662,"start_character":4,"end_line":667,"end_character":30},"updated":"2019-05-29 00:17:22.000000000","message":"I don\u0027t understand the reason for this change. The calls to this function seem to only be for a single registry address.","commit_id":"73c23fd3af082854cb95b228f6f6f8740ac9e42a"},{"author":{"_account_id":28402,"name":"Mingyuan Qi","email":"mingyuan.qi@intel.com","username":"myqi"},"change_message_id":"68fce5716b7b39fb32ed6f43f2961af1c62a5028","unresolved":false,"context_lines":[{"line_number":659,"context_line":""},{"line_number":660,"context_line":"def _validate_docker_registry_address(name, value):"},{"line_number":661,"context_line":"    \"\"\"Check if registry address is valid\"\"\""},{"line_number":662,"context_line":"    values \u003d value.split(\u0027,\u0027)"},{"line_number":663,"context_line":"    for item in values:"},{"line_number":664,"context_line":"        if not cutils.is_valid_domain_or_ip(item):"},{"line_number":665,"context_line":"            raise wsme.exc.ClientSideError(_("},{"line_number":666,"context_line":"                \"Parameter \u0027%s\u0027 includes an invalid address \u0027%s\u0027.\" %"},{"line_number":667,"context_line":"                (name, item)))"},{"line_number":668,"context_line":""},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"def _validate_docker_insecure_registry_bool(name, value):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_e63229f2","line":667,"range":{"start_line":662,"start_character":4,"end_line":667,"end_character":30},"in_reply_to":"bfb3d3c7_70590f8c","updated":"2019-05-29 02:35:56.000000000","message":"should it be implemented in the long term fix?","commit_id":"73c23fd3af082854cb95b228f6f6f8740ac9e42a"},{"author":{"_account_id":28486,"name":"Tee Ngo","email":"tee.ngo@windriver.com","username":"teewrs"},"change_message_id":"07b0bee20922bed2d63681a30cc756d229a73a3e","unresolved":false,"context_lines":[{"line_number":659,"context_line":""},{"line_number":660,"context_line":"def _validate_docker_registry_address(name, value):"},{"line_number":661,"context_line":"    \"\"\"Check if registry address is valid\"\"\""},{"line_number":662,"context_line":"    values \u003d value.split(\u0027,\u0027)"},{"line_number":663,"context_line":"    for item in values:"},{"line_number":664,"context_line":"        if not cutils.is_valid_domain_or_ip(item):"},{"line_number":665,"context_line":"            raise wsme.exc.ClientSideError(_("},{"line_number":666,"context_line":"                \"Parameter \u0027%s\u0027 includes an invalid address \u0027%s\u0027.\" %"},{"line_number":667,"context_line":"                (name, item)))"},{"line_number":668,"context_line":""},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"def _validate_docker_insecure_registry_bool(name, value):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_70590f8c","line":667,"range":{"start_line":662,"start_character":4,"end_line":667,"end_character":30},"in_reply_to":"bfb3d3c7_f01e5fb9","updated":"2019-05-29 00:54:00.000000000","message":"This validation method is also used to validate the value of \"registries\" service parameter (see line 457 of file populate_initial_config.py) which may contain more than one item (potentially same value repeated 4 times by those who do the direct port of registry config in .ini to localhost.yml). \n\nThe registries service parameter was meant to be a (dynamic) list of registries that are used to retrieve platform, stx-openstack as well as custom apps images. So far there has not been the need to add abc.com for abc app. This will require update to sysinv (e.g. kube_app) for full behavior.","commit_id":"73c23fd3af082854cb95b228f6f6f8740ac9e42a"}]}
