From f25ce32b84d6c7cccdc0e17212adce13aba41a03 Mon Sep 17 00:00:00 2001 From: dmaes Date: Fri, 25 Aug 2023 18:22:58 +0200 Subject: [PATCH] openldap_schema: fix replace w/o attribute types Check if the schema contains any attribute types before adding the relevant `replace:` lines to the replace ldif. This fixes failing updates on schemas without any attribute types. --- lib/puppet/provider/openldap_schema/olc.rb | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/puppet/provider/openldap_schema/olc.rb b/lib/puppet/provider/openldap_schema/olc.rb index 989b89e0..32127344 100644 --- a/lib/puppet/provider/openldap_schema/olc.rb +++ b/lib/puppet/provider/openldap_schema/olc.rb @@ -106,9 +106,11 @@ def self.schemaToLdifReplace(schema, name) ldif.push('-') end - ldif.push('replace: olcAttributeTypes') - ldif.push(*attrType) - ldif.push('-') + unless attrType.empty? + ldif.push('replace: olcAttributeTypes') + ldif.push(*attrType) + ldif.push('-') + end ldif.push('replace: olcObjectClasses') ldif.push(*objClass) @@ -154,9 +156,11 @@ def self.ldifReplace(ldif, name) new_ldif.push('-') end - new_ldif.push('replace: olcAttributeTypes') - new_ldif.push(*attrType) - new_ldif.push('-') + unless attrType.empty? + new_ldif.push('replace: olcAttributeTypes') + new_ldif.push(*attrType) + new_ldif.push('-') + end new_ldif.push('replace: olcObjectClasses') new_ldif.push(*objClass)