use of com.zimbra.cs.ephemeral.EphemeralLocation in project zm-mailbox by Zimbra.
the class MigrateAttributesTest method testAttributeMigration.
/*
* Test end-to-end AttributeMigration
*/
@Test
public void testAttributeMigration() throws Exception {
EphemeralStore destination = EphemeralStore.getFactory().getStore();
EntrySource source = new DummyEntrySource(acct);
Multimap<String, Object> deletedAttrs = LinkedListMultimap.create();
List<String> attrsToMigrate = Arrays.asList(new String[] { Provisioning.A_zimbraAuthTokens, Provisioning.A_zimbraCsrfTokenData, Provisioning.A_zimbraLastLogonTimestamp });
//DummyMigrationCallback will store attributes in InMemoryEphemeralStore, and track deletions in deletedAttrs map
MigrationCallback callback = new DummyMigrationCallback(destination, deletedAttrs);
AttributeMigration migration = new AttributeMigration(attrsToMigrate, source, callback, null);
//disable running in separate thread
//run migration
migration.migrateAllAccounts();
EphemeralLocation location = new LdapEntryLocation(acct);
EphemeralResult result = destination.get(new EphemeralKey(Provisioning.A_zimbraAuthTokens, "1234"), location);
assertEquals("server_1", result.getValue());
result = destination.get(new EphemeralKey(Provisioning.A_zimbraAuthTokens, "5678"), location);
assertEquals("server_2", result.getValue());
result = destination.get(new EphemeralKey(Provisioning.A_zimbraCsrfTokenData, "crumb1"), location);
assertEquals("data1", result.getValue());
result = destination.get(new EphemeralKey(Provisioning.A_zimbraCsrfTokenData, "crumb2"), location);
assertEquals("data2", result.getValue());
result = destination.get(new EphemeralKey(Provisioning.A_zimbraLastLogonTimestamp), location);
assertEquals("currentdate", result.getValue());
Collection<Object> deleted = deletedAttrs.get(Provisioning.A_zimbraAuthTokens);
assertTrue(deleted.contains(authToken1));
assertTrue(deleted.contains(authToken2));
deleted = deletedAttrs.get(Provisioning.A_zimbraCsrfTokenData);
assertTrue(deleted.contains(csrfToken1));
assertTrue(deleted.contains(csrfToken2));
deleted = deletedAttrs.get(Provisioning.A_zimbraLastLogonTimestamp);
assertTrue(deleted.contains(lastLogon));
}
use of com.zimbra.cs.ephemeral.EphemeralLocation in project zm-mailbox by Zimbra.
the class Entry method modifyEphemeralAttr.
public void modifyEphemeralAttr(String key, String dynamicComponent, String value, boolean update, Expiration expiration) throws ServiceException {
EphemeralLocation location = new LdapEntryLocation(this);
EphemeralStore store = EphemeralStore.getFactory().getStore();
modifyEphemeralAttrInternal(key, dynamicComponent, value, update, expiration, store, location);
}
use of com.zimbra.cs.ephemeral.EphemeralLocation in project zm-mailbox by Zimbra.
the class Entry method modifyEphemeralAttr.
public void modifyEphemeralAttr(EphemeralInput input, boolean update) throws ServiceException {
EphemeralLocation location = new LdapEntryLocation(this);
EphemeralStore store = EphemeralStore.getFactory().getStore();
if (update) {
store.update(input, location);
} else {
store.set(input, location);
}
}
use of com.zimbra.cs.ephemeral.EphemeralLocation in project zm-mailbox by Zimbra.
the class Entry method purgeEphemeralAttr.
public void purgeEphemeralAttr(String key) throws ServiceException {
EphemeralLocation location = new LdapEntryLocation(this);
EphemeralStore store = EphemeralStore.getFactory().getStore();
store.purgeExpired(new EphemeralKey(key), location);
}
use of com.zimbra.cs.ephemeral.EphemeralLocation in project zm-mailbox by Zimbra.
the class Entry method modifyEphemeralAttr.
public void modifyEphemeralAttr(String key, String dynamicComponent, String[] values, boolean update, Expiration expiration) throws ServiceException {
EphemeralLocation location = new LdapEntryLocation(this);
EphemeralStore store = EphemeralStore.getFactory().getStore();
for (String value : values) {
modifyEphemeralAttrInternal(key, dynamicComponent, value, update, expiration, store, location);
}
}
Aggregations