def test_abort(automember_fixture, topo): """Test the abort rebuild task :id: 24763279-48ec-4c34-91b3-f681679dec3a :setup: Standalone Instance :steps: 1. Setup automember and create a bunch of users 2. Start rebuild task 3. Abort rebuild task 4. Verify rebuild task was aborted :expectedresults: 1. Success 2. Success 3. Success 4. Success """ automemberplugin = AutoMembershipPlugin(topo.standalone) # Run rebuild task task = automemberplugin.fixup(DEFAULT_SUFFIX, "objectclass=top") time.sleep(1) # Abort rebuild task automemberplugin.abort_fixup() # Wait for rebuild task to finish task.wait() # Check errors log for abort message assert topo.standalone.searchErrorsLog("task was intentionally aborted")
def fixup(inst, basedn, log, args): plugin = AutoMembershipPlugin(inst) log.info( 'Attempting to add task entry... This will fail if Automembership plug-in is not enabled.' ) if not plugin.status(): log.error( "'%s' is disabled. Rebuild membership task can't be executed" % plugin.rdn) fixup_task = plugin.fixup(args.DN, args.filter) fixup_task.wait() exitcode = fixup_task.get_exit_code() if exitcode != 0: log.error( 'Rebuild membership task for %s has failed. Please, check logs') else: log.info('Successfully added task entry')
def test_mods(automember_fixture, topo): """Modify the user so that it is added to the various automember groups :id: 28a2b070-7f16-4905-8831-c80fa6441693 :setup: Standalone Instance :steps: 1. Update user that should add it to group[0] 2. Update user that should add it to group[1] 3. Update user that should add it to group[2] 4. Update user that should add it to group[0] 5. Test rebuild task correctly moves user to group[1] :expectedresults: 1. Success 2. Success 3. Success 4. Success 5. Success """ (user, groups) = automember_fixture # Update user which should go into group[0] user.replace('cn', 'whatever') groups[0].is_member(user.dn) if groups[1].is_member(user.dn): assert False if groups[2].is_member(user.dn): assert False # Update user0 which should go into group[1] user.replace('cn', 'mark') groups[1].is_member(user.dn) if groups[0].is_member(user.dn): assert False if groups[2].is_member(user.dn): assert False # Update user which should go into group[2] user.replace('cn', 'simon') groups[2].is_member(user.dn) if groups[0].is_member(user.dn): assert False if groups[1].is_member(user.dn): assert False # Update user which should go back into group[0] (full circle) user.replace('cn', 'whatever') groups[0].is_member(user.dn) if groups[1].is_member(user.dn): assert False if groups[2].is_member(user.dn): assert False # # Test rebuild task. First disable plugin # automemberplugin = AutoMembershipPlugin(topo.standalone) automemberplugin.disable() topo.standalone.restart() # Make change that would move the entry from group[0] to group[1] user.replace('cn', 'mark') # Enable plugin automemberplugin.enable() topo.standalone.restart() # Run rebuild task task = automemberplugin.fixup(DEFAULT_SUFFIX, "objectclass=posixaccount") task.wait() # Test membership groups[1].is_member(user.dn) if groups[0].is_member(user.dn): assert False if groups[2].is_member(user.dn): assert False # Success log.info("Test PASSED")