{ 'startDS' : True } { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : DIRECTORY_INSTANCE_DN , 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD , 'DNToModify' : 'cn=Virtual Static uniqueMember,cn=Virtual Attributes,cn=config' , 'changetype' : 'replace' , 'attributeName' : 'ds-cfg-allow-retrieving-membership' , 'newAttributeValue' : 'true' } '++++ Application add group entry %s' % newVirtualStaticGroupDn { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'DNToAdd' : newVirtualStaticGroupDn, 'listAttributes' : listAttr } '++++ Application do a search to check the entry has been created' { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'dsBaseDN' : newVirtualStaticGroupDn , 'dsFilter' : 'objectclass=*' , 'dsAttributes' : 'uniquemember' } { 'baseDn' : 'uid=user_02,ou=dynamic,dc=groups,dc=com' , 'string2find' : newVirtualStaticGroupDn , 'nbExpected' : 1 } '++++ Delete the group entry %s' % newVirtualStaticGroupDn { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'dsBaseDN' : newVirtualStaticGroupDn, } '++++ Check the group entry %s no more exist' % newVirtualStaticGroup { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'dsBaseDN' : newVirtualStaticGroupDn , 'dsFilter' : 'objectclass=*' , 'expectedRC' : 32 } { 'baseDn' : 'uid=user_02,ou=dynamic,dc=groups,dc=com' , 'string2find' : newVirtualStaticGroupDn , 'nbExpected' : 0 } '++++ Search members of group %s' % virtualStaticGroupDn { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'dsBaseDN' : virtualStaticGroupDn , 'dsFilter' : 'uniquemember=*' , 'expectedRC' : 0 } '++++ Check uid=user_01,ou=dynamic,dc=groups,dc=com is NOT a group member' { 'string2find' : 'uid=user_01,ou=dynamic,dc=groups,dc=com' , 'mainString' : ldapSearchResult , 'nbExpected' : 0 } '++++ Check uid=user_02,ou=dynamic,dc=groups,dc=com is a group member' { 'string2find' : 'uid=user_02,ou=dynamic,dc=groups,dc=com' , 'mainString' : ldapSearchResult , 'nbExpected' : 1 } '++++ Check uid=user_12,ou=dynamic,dc=groups,dc=com is a group member' { 'string2find' : 'uid=user_12,ou=dynamic,dc=groups,dc=com' , 'mainString' : ldapSearchResult , 'nbExpected' : 1 } '++++ Application add a new user %s / %s ' % (user2AddDn,user2AddPswd) { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'DNToAdd' : user2AddDn, 'listAttributes' : listAttr } '++++ Application search the new user %s in the virtual static group entry (should be a member)' % user2Add { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'dsBaseDN' : virtualStaticGroupDn , 'dsFilter' : 'uniquemember=*' , 'expectedRC' : 0 } '++++ Check the search returns the added user' { 'string2find' : user2AddDn , 'mainString' : STAXResult[0][1] , 'nbExpected' : 1 } { 'baseDn' : user2AddDn , 'string2find' : virtualStaticGroupDn , 'nbExpected' : 1 } '++++ Application delete user %s' % user2Add { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'dsBaseDN' : user2AddDn } '++++ Application search the deleted user %s in the virtual static group entry (should not be in)' % user2Add { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'dsBaseDN' : virtualStaticGroupDn , 'dsFilter' : 'uniquemember=*' , 'expectedRC' : 0 } '++++ Check the search returns the added user' { 'string2find' : user2AddDn , 'mainString' : STAXResult[0][1] , 'nbExpected' : 0 } '++++ Application set a value %s to ds-target-group-dn attribute for group %s' % (dynamicGroup2Dn,virtualStaticGroupDn) { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'DNToModify' : virtualStaticGroupDn , 'changetype' : 'replace' , 'attributeName' : 'ds-target-group-dn' , 'newAttributeValue' : dynamicGroup2Dn } '++++ Application search users becoming to the updated virtual static group entry' { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'dsBaseDN' : virtualStaticGroupDn , 'dsFilter' : 'uniquemember=*' , 'expectedRC' : 0 } { 'string2find' : 'uid=user_03,ou=dynamic,dc=groups,dc=com' , 'mainString' : STAXResult[0][1] , 'nbExpected' : 1 } '++++ Application reset ds-target-group-dn attribute to default value %s' % (dynamicGroupDn) { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'DNToModify' : virtualStaticGroupDn , 'changetype' : 'replace' , 'attributeName' : 'ds-target-group-dn' , 'newAttributeValue' : dynamicGroupDn } '++++ Application set a value %s to ds-target-group-dn attribute for group %s' % (staticGroupDn,virtualStaticGroupDn) { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'DNToModify' : virtualStaticGroupDn , 'changetype' : 'replace' , 'attributeName' : 'ds-target-group-dn' , 'newAttributeValue' : staticGroupDn } '++++ Application search users becoming to the updated virtual static group entry' { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'dsBaseDN' : virtualStaticGroupDn , 'dsFilter' : 'uniquemember=*' , 'expectedRC' : 0 } { 'string2find' : 'uid=user_09,ou=static,dc=groups,dc=com' , 'mainString' : STAXResult[0][1] , 'nbExpected' : 1 } '++++ Application reset ds-target-group-dn attribute to default value %s' % (dynamicGroupDn) { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'DNToModify' : virtualStaticGroupDn , 'changetype' : 'replace' , 'attributeName' : 'ds-target-group-dn' , 'newAttributeValue' : dynamicGroupDn } '++++ Application set a value %s to ds-target-group-dn attribute for group %s' % (staticGroupDn,virtualStaticGroupDn) { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'DNToModify' : virtualStaticGroupDn , 'changetype' : 'replace' , 'attributeName' : 'ds-target-group-dn' , 'newAttributeValue' : staticGroupDn } '++++ Application search users becoming to the updated virtual static group entry' { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'dsBaseDN' : virtualStaticGroupDn , 'dsFilter' : 'uniquemember=*' , 'expectedRC' : 0 } { 'string2find' : 'uid=user_09,ou=static,dc=groups,dc=com' , 'mainString' : STAXResult[0][1] , 'nbExpected' : 1 } '++++ Application reset ds-target-group-dn attribute to default value %s' % (dynamicGroupDn) { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'DNToModify' : virtualStaticGroupDn , 'changetype' : 'replace' , 'attributeName' : 'ds-target-group-dn' , 'newAttributeValue' : dynamicGroupDn } '++++ Application remove ds-target-group-dn attribute' { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'DNToModify' : virtualStaticGroupDn , 'changetype' : 'delete' , 'attributeName' : 'ds-target-group-dn' , 'newAttributeValue' : dynamicGroupDn , 'expectedRC' : 65 } '++++ Group should not be modified' { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : applicationDn , 'dsInstancePswd' : applicationPswd , 'dsBaseDN' : virtualStaticGroupDn , 'dsFilter' : 'uniquemember=*' , 'expectedRC' : 0 } { 'string2find' : 'uid=user_02,ou=dynamic,dc=groups,dc=com' , 'mainString' : STAXResult[0][1] , 'nbExpected' : 1 } { 'stopDS' : True }