Search in sources :

Example 21 with Policy

use of com.zimbra.soap.mail.type.Policy in project zm-mailbox by Zimbra.

the class PurgeTest method invalidFolderMessageLifetime.

@Test
public void invalidFolderMessageLifetime() throws Exception {
    Mailbox mbox = MailboxManager.getInstance().getMailboxByAccountId(MockProvisioning.DEFAULT_ACCOUNT_ID);
    Folder folder = mbox.createFolder(null, "/invalidFolderMessageLifetime", new Folder.FolderOptions().setDefaultView(MailItem.Type.MESSAGE));
    Policy p = Policy.newUserPolicy("45x");
    RetentionPolicy purgePolicy = new RetentionPolicy(null, Arrays.asList(p));
    try {
        mbox.setRetentionPolicy(null, folder.getId(), MailItem.Type.FOLDER, purgePolicy);
        fail("Invalid time interval should not have been accepted.");
    } catch (ServiceException e) {
    }
}
Also used : Policy(com.zimbra.soap.mail.type.Policy) RetentionPolicy(com.zimbra.soap.mail.type.RetentionPolicy) ServiceException(com.zimbra.common.service.ServiceException) RetentionPolicy(com.zimbra.soap.mail.type.RetentionPolicy) Test(org.junit.Test)

Example 22 with Policy

use of com.zimbra.soap.mail.type.Policy in project zm-mailbox by Zimbra.

the class PurgeTest method modifyCosSystemPolicy.

@Test
public void modifyCosSystemPolicy() throws Exception {
    Map<String, Object> attrs = new HashMap<String, Object>();
    Cos cos = Provisioning.getInstance().createCos("testcos", attrs);
    RetentionPolicyManager mgr = RetentionPolicyManager.getInstance();
    Policy keep1 = mgr.createSystemKeepPolicy(cos, "keep1", "300d");
    Policy keep2 = mgr.createSystemKeepPolicy(cos, "keep2", "400d");
    Policy purge1 = mgr.createSystemPurgePolicy(cos, "purge1", "500d");
    Policy purge2 = mgr.createSystemPurgePolicy(cos, "purge2", "500d");
    assertEquals(keep1, mgr.getPolicyById(cos, keep1.getId()));
    assertEquals(keep2, mgr.getPolicyById(cos, keep2.getId()));
    assertEquals(purge1, mgr.getPolicyById(cos, purge1.getId()));
    assertEquals(purge2, mgr.getPolicyById(cos, purge2.getId()));
    // Test modify.
    mgr.modifySystemPolicy(cos, keep1.getId(), "new keep1", "301d");
    Policy newKeep1 = mgr.getPolicyById(cos, keep1.getId());
    assertFalse(keep1.equals(newKeep1));
    assertEquals(keep1.getId(), newKeep1.getId());
    assertEquals("new keep1", newKeep1.getName());
    assertEquals("301d", newKeep1.getLifetime());
    // Test delete.
    assertTrue(mgr.deleteSystemPolicy(cos, purge2.getId()));
    assertNull(mgr.getPolicyById(cos, purge2.getId()));
    RetentionPolicy rp = mgr.getSystemRetentionPolicy(cos);
    assertEquals(2, rp.getKeepPolicy().size());
    assertEquals(1, rp.getPurgePolicy().size());
}
Also used : Policy(com.zimbra.soap.mail.type.Policy) RetentionPolicy(com.zimbra.soap.mail.type.RetentionPolicy) HashMap(java.util.HashMap) Cos(com.zimbra.cs.account.Cos) RetentionPolicy(com.zimbra.soap.mail.type.RetentionPolicy) Test(org.junit.Test)

Example 23 with Policy

use of com.zimbra.soap.mail.type.Policy in project zm-mailbox by Zimbra.

the class PurgeTest method multipleUserPolicy.

@Test
public void multipleUserPolicy() throws Exception {
    Mailbox mbox = MailboxManager.getInstance().getMailboxByAccountId(MockProvisioning.DEFAULT_ACCOUNT_ID);
    Folder folder = mbox.createFolder(null, "/multipleUserPolicy", new Folder.FolderOptions().setDefaultView(MailItem.Type.MESSAGE));
    List<Policy> list = Arrays.asList(Policy.newUserPolicy("45d"), Policy.newUserPolicy("60d"));
    RetentionPolicy purgePolicy = new RetentionPolicy(null, list);
    try {
        mbox.setRetentionPolicy(null, folder.getId(), MailItem.Type.FOLDER, purgePolicy);
        fail("Multiple purge policies.");
    } catch (ServiceException e) {
    }
    purgePolicy = new RetentionPolicy(list, null);
    try {
        mbox.setRetentionPolicy(null, folder.getId(), MailItem.Type.FOLDER, purgePolicy);
        fail("Multiple keep policies.");
    } catch (ServiceException e) {
    }
}
Also used : Policy(com.zimbra.soap.mail.type.Policy) RetentionPolicy(com.zimbra.soap.mail.type.RetentionPolicy) ServiceException(com.zimbra.common.service.ServiceException) RetentionPolicy(com.zimbra.soap.mail.type.RetentionPolicy) Test(org.junit.Test)

Example 24 with Policy

use of com.zimbra.soap.mail.type.Policy in project zm-mailbox by Zimbra.

the class RetentionPolicyManager method createSystemPurgePolicy.

public Policy createSystemPurgePolicy(Entry entry, String name, String lifetime) throws ServiceException {
    validateLifetime(lifetime);
    Policy p = Policy.newSystemPolicy(generateId(), name, lifetime);
    synchronized (entry) {
        SystemPolicy sp = getCachedSystemPolicy(entry);
        sp.purge.put(p.getId(), p);
        saveSystemPolicy(entry, new RetentionPolicy(sp.keep.values(), sp.purge.values()));
    }
    return p;
}
Also used : Policy(com.zimbra.soap.mail.type.Policy) RetentionPolicy(com.zimbra.soap.mail.type.RetentionPolicy) RetentionPolicy(com.zimbra.soap.mail.type.RetentionPolicy)

Example 25 with Policy

use of com.zimbra.soap.mail.type.Policy in project zm-mailbox by Zimbra.

the class RetentionPolicyManager method getPolicyById.

public Policy getPolicyById(Entry entry, String id) throws ServiceException {
    SystemPolicy sp = getCachedSystemPolicy(entry);
    Policy p = sp.keep.get(id);
    if (p != null) {
        return p;
    }
    p = sp.purge.get(id);
    if (p != null) {
        return p;
    }
    return null;
}
Also used : Policy(com.zimbra.soap.mail.type.Policy) RetentionPolicy(com.zimbra.soap.mail.type.RetentionPolicy)

Aggregations

Policy (com.zimbra.soap.mail.type.Policy)28 RetentionPolicy (com.zimbra.soap.mail.type.RetentionPolicy)25 Test (org.junit.Test)12 Config (com.zimbra.cs.account.Config)6 Provisioning (com.zimbra.cs.account.Provisioning)4 ZMailbox (com.zimbra.client.ZMailbox)3 ServiceException (com.zimbra.common.service.ServiceException)3 Cos (com.zimbra.cs.account.Cos)3 Entry (com.zimbra.cs.account.Entry)3 NoSuchItemException (com.zimbra.cs.mailbox.MailServiceException.NoSuchItemException)3 ZimbraSoapContext (com.zimbra.soap.ZimbraSoapContext)3 CosSelector (com.zimbra.soap.admin.type.CosSelector)3 ZFolder (com.zimbra.client.ZFolder)2 Element (com.zimbra.common.soap.Element)2 CreateSystemRetentionPolicyRequest (com.zimbra.soap.admin.message.CreateSystemRetentionPolicyRequest)2 CreateSystemRetentionPolicyResponse (com.zimbra.soap.admin.message.CreateSystemRetentionPolicyResponse)2 DeleteSystemRetentionPolicyRequest (com.zimbra.soap.admin.message.DeleteSystemRetentionPolicyRequest)2 DeleteSystemRetentionPolicyResponse (com.zimbra.soap.admin.message.DeleteSystemRetentionPolicyResponse)2 ModifySystemRetentionPolicyRequest (com.zimbra.soap.admin.message.ModifySystemRetentionPolicyRequest)2 ModifySystemRetentionPolicyResponse (com.zimbra.soap.admin.message.ModifySystemRetentionPolicyResponse)2