#
# ARGV: -x -H ${PERSISTENT_SEARCH_TEST_SERVER} -D "cn=Directory Manager" -w "secret123"
+# OUT:peopleAddfred
#
dn: uid=fred,ou=people,dc=example,dc=com
changeType: add
#
# ARGV: -x -H ${PERSISTENT_SEARCH_TEST_SERVER} -D "cn=Directory Manager" -w "secret123"
+# OUT:peopleModifyjane
#
dn: uid=jane,ou=people,dc=example,dc=com
changeType: modify
#
# ARGV: -x -H ${PERSISTENT_SEARCH_TEST_SERVER} -D "cn=Directory Manager" -w "secret123"
+# OUT:peopleModifyanne
#
dn: uid=ann,ou=people,dc=example,dc=com
changeType: modrdn
#
# ARGV: -x -H ${PERSISTENT_SEARCH_TEST_SERVER} -D "cn=Directory Manager" -w "secret123"
+# OUT:peopleDeletebill
#
dn: uid=bill,ou=people,dc=example,dc=com
changetype: delete
#
# ARGV: -x -H ${PERSISTENT_SEARCH_TEST_SERVER} -D "cn=Directory Manager" -w "secret123"
+# OUT:groupAddbosses
#
dn: cn=bosses,ou=groups,dc=example,dc=com
changeType: add
#
# ARGV: -x -H ${PERSISTENT_SEARCH_TEST_SERVER} -D "cn=Directory Manager" -w "secret123"
+# OUT:groupModifyfoo
#
dn: cn=foo,ou=groups,dc=example,dc=com
changetype: modify
#
# ARGV: -x -H ${PERSISTENT_SEARCH_TEST_SERVER} -D "cn=Directory Manager" -w "secret123"
+# OUT:groupModifybar
#
dn: cn=bar,ou=groups,dc=example,dc=com
changetype: modify
#
# ARGV: -x -H ${PERSISTENT_SEARCH_TEST_SERVER} -D "cn=Directory Manager" -w "secret123"
+# OUT:groupDeletebaz
#
dn: cn=baz,ou=groups,dc=example,dc=com
changetype: delete
$(eval FOUND := $(patsubst %.ldif,%.out,$@))
$(eval ARGV := $(shell grep "#.*ARGV:" $< | cut -f2 -d ':'))
$(eval OUT_DIR := $(BUILD_DIR)/tests/ldap_sync/persistent_search)
+ $(eval OUT := $(shell grep "#.*OUT:" $< | cut -f2 -d ':'))
$(Q)echo "LDAPSYNC-TEST persistent_search $(TARGET)"
$(Q)[ -f $(dir $@)/radiusd.pid ] || exit 1
- $(Q)rm -f $(OUT_DIR)/linelog.out
+ $(Q)rm -f $(OUT_DIR)/$(OUT).out
+ $(Q)sleep 1
$(Q)ldapmodify $(ARGV) -f $< > /dev/null
- $(Q)i=0; while [ $$i -lt 300 ] ; \
- do if [ -e $(OUT_DIR)/linelog.out ] ; \
+ $(Q)i=0; while [ $$i -lt 600 ] ; \
+ do if [ -e $(OUT_DIR)/$(OUT).out ] ; \
then \
break; \
fi; \
i=$$((i+1)); \
done ;
$(Q)sleep .1
- $(Q)mv $(OUT_DIR)/linelog.out $(FOUND)
+ $(Q)mv $(OUT_DIR)/$(OUT).out $(FOUND)
$(Q)if [ -e "$(EXPECTED)" ] && ! cmp -s $(FOUND) $(EXPECTED); then \
echo "LDAP_SYNC FAILED $@"; \
policy {
linelogprep {
+ &request.Tmp-String-8 := &LDAP-Sync.DN
+ if (&Tmp-String-8 == "ou=people,dc=example,dc=com") {
+ &control.Tmp-String-9 := "people"
+ } else {
+ &control.Tmp-String-9 := "group"
+ }
&control.Tmp-String-0 := "%{Packet-Type} %{LDAP-Sync.DN} %{LDAP-Sync.Entry-DN} %{LDAP-Sync.Original-DN} %{Proto.radius.User-Name}"
}
destination = file
file {
- filename = ${run_dir}/linelog.out
+ filename = ${run_dir}/%{control.Tmp-String-9}%{Packet-Type}%{Proto.radius.User-Name}%{Tmp-String-2}.out
}
}
update {
&Tmp-String-1 += "member"
+ &Tmp-String-2 = 'cn'
}
}
}