From 9d8887ad91c121ec68bfb5c0f4871611ee6b8a41 Mon Sep 17 00:00:00 2001 From: Mark Reynolds Date: Jun 07 2018 13:34:41 +0000 Subject: Ticket 49754 - instances created with dscreate can not be upgraded with setup-ds.pl Bug Description: If you create an instance with dscreate and try to upgrade that instance using setup-ds.pl it will fail. While you should not mix and match the python and perl tools, it is still possible and it should work. Fix Description: The first problem was that the instance dir (inst_dir) was not set during dscreate, and second we were also not setting the correct inst_dir in defaults.inf. Also dscreate does not create a backend by default, which caused 80upgradednformat.pl to fail on an upgrade. Finally updated UI's instance creation template to use the correct inst_dir. https://pagure.io/389-ds-base/issue/49754 Reviewed by: vashirov(Thanks!) --- diff --git a/ldap/admin/src/defaults.inf.in b/ldap/admin/src/defaults.inf.in index 564b64f..bdc4081 100644 --- a/ldap/admin/src/defaults.inf.in +++ b/ldap/admin/src/defaults.inf.in @@ -37,7 +37,7 @@ run_dir = @localstatedir@/run/dirsrv # This is the expected location of ldapi. ldapi = @localstatedir@/run/slapd-{instance_name}.socket pid_file = @localstatedir@/run/dirsrv/slapd-{instance_name}.pid -inst_dir = @serverdir@ +inst_dir = @serverdir@/slapd-{instance_name} plugin_dir = @serverplugindir@ system_schema_dir = @systemschemadir@ diff --git a/ldap/admin/src/scripts/80upgradednformat.pl.in b/ldap/admin/src/scripts/80upgradednformat.pl.in index c566b42..2cb7b1a 100644 --- a/ldap/admin/src/scripts/80upgradednformat.pl.in +++ b/ldap/admin/src/scripts/80upgradednformat.pl.in @@ -36,7 +36,7 @@ sub runinst { my $backend_entry; my $mtentry = $conn->search($mappingtree, "onelevel", "(cn=*)", 0, @attr); if (!$mtentry) { - return ("error_no_mapping_tree_entries", $!); + return (); } my $db_config_entry = diff --git a/src/cockpit/389-console/js/servers.js b/src/cockpit/389-console/js/servers.js index cc46c2d..6e4d790 100644 --- a/src/cockpit/389-console/js/servers.js +++ b/src/cockpit/389-console/js/servers.js @@ -40,7 +40,7 @@ var create_full_template = "user = USER\n" + "group = GROUP\n" + "initconfig_dir = /etc/sysconfig\n" + - "inst_dir = /usr/lib64/dirsrv\n" + + "inst_dir = /usr/lib64/dirsrv/slapd-{instance_name}\n" + "instance_name = localhost\n" + "ldif_dir = /var/lib/dirsrv/slapd-{instance_name}/ldif\n" + "lib_dir = /usr/lib64\n" + @@ -72,7 +72,7 @@ var create_inf_template = "root_password = ROOTPW\n" + "secure_port = SECURE_PORT\n" + "self_sign_cert = SELF_SIGN\n"; - // TODO LDAPI Option (WIP) + function load_server_config() { var mark = document.getElementById("server-config-title"); diff --git a/src/lib389/lib389/instance/setup.py b/src/lib389/lib389/instance/setup.py index d3f56cb..a6d41be 100644 --- a/src/lib389/lib389/instance/setup.py +++ b/src/lib389/lib389/instance/setup.py @@ -399,7 +399,7 @@ class SetupDs(object): ldif_dir=slapd['ldif_dir'], bak_dir=slapd['backup_dir'], run_dir=slapd['run_dir'], - inst_dir="", + inst_dir=slapd['inst_dir'], log_dir=slapd['log_dir'], fqdn=general['full_machine_name'], ds_port=slapd['port'],