Bug #28948
Updated by John Mitsch about 4 years ago
Currently this is breaking in a dev box: <pre> [vagrant@centos7-katello-devel-stable foreman_maintain{master}]$ foreman_maintain_scl service status Running Status Services ================================================================================ Get status of applicable services: Displaying the following service(s): [FAIL] undefined method `+' for nil:NilClass -------------------------------------------------------------------------------- Scenario [Status Services] failed. The following steps ended up in failing state: [service-status] Resolve the failed steps and rerun the command. In case the failures are false positives, use --whitelist="service-status" </pre> Foreman-maintain reads from /etc/pulp/settings.py (PULPCORE_DB_CONFIG variable here) https://github.com/theforeman/foreman_maintain/blob/master/definitions/features/pulpcore_database.rb def load_configuration full_config = File.read(PULPCORE_DB_CONFIG).split(/[\s,':]/).reject(&:empty?) @configuration = {} @configuration['adapter'] = 'postgresql' @configuration['host'] = full_config[full_config.index('HOST') + 1] @configuration['port'] = full_config[full_config.index('PORT') + 1] @configuration['database'] = full_config[full_config.index('NAME') + 1] @configuration['username'] = full_config[full_config.index('USER') + 1] @configuration['password'] = full_config[full_config.index('PASSWORD') + 1] @configuration end In /etc/pulp/settings.py, this info is in `DATABASES` on a single line `DATABASES`, not in the top level [vagrant@centos7-katello-devel-stable foreman_maintain{master}]$ sudo cat /etc/pulp/settings.py DATABASES = {"default": {"HOST": "localhost", "ENGINE": "django.db.backends.postgresql_psycopg2", "NAME": "pulp", "USER": "pulp", "PASSWORD": "pulp", "PORT": 7878}} SECRET_KEY = "secret" CONTENT_ORIGIN = "centos7-katello-devel-stable.example.com" TOKEN_AUTH_DISABLED = True REMOTE_USER_ENVIRON_NAME = "HTTP_REMOTE_USER" ANSIBLE_API_HOSTNAME = "centos7-katello-devel-stable.example.com" ANSIBLE_CONTENT_HOSTNAME = "https://centos7-katello-devel-stable.example.com/pulp_ansible/content/" PULP2_MONGODB = {"name": "pulp_database", "seeds": "localhost:27017"} There is a workaround for a more forgiving way to parse a config file by changing the `split` method to be `split(/[\s,'":]/)` in pulpcore_database.rb Ideally we figure out a more robust way of parsing the file or convert it into a parseable format