summaryrefslogtreecommitdiffstats
path: root/base/server
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2013-11-08 12:36:33 -0500
committerEndi S. Dewata <edewata@redhat.com>2013-11-08 19:28:52 -0500
commitf74c644b09dd1e18289c4a543a211c3ff8cd02d9 (patch)
tree296fe00e281225bd825c41b319c8435a4219855d /base/server
parent9d3090378bf4e5152df2c02d48ca8f9beeac2057 (diff)
downloadpki-f74c644b09dd1e18289c4a543a211c3ff8cd02d9.tar.gz
pki-f74c644b09dd1e18289c4a543a211c3ff8cd02d9.tar.xz
pki-f74c644b09dd1e18289c4a543a211c3ff8cd02d9.zip
Fixed find commands.
Some of the REST services have been fixed to consistently return a DataCollection which contains the total count, the requested subset of results, and links to request other subsets of the results. The TPSConnectorFindCLI has been split into separate find and show commands. Ticket #749
Diffstat (limited to 'base/server')
-rw-r--r--base/server/cms/src/com/netscape/cms/servlet/admin/GroupMemberProcessor.java3
-rw-r--r--base/server/cms/src/com/netscape/cms/servlet/admin/GroupService.java4
-rw-r--r--base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java48
-rw-r--r--base/server/cms/src/com/netscape/cms/servlet/tks/TPSConnectorService.java38
-rw-r--r--base/server/cmscore/src/com/netscape/cmscore/selftests/SelfTestService.java32
5 files changed, 94 insertions, 31 deletions
diff --git a/base/server/cms/src/com/netscape/cms/servlet/admin/GroupMemberProcessor.java b/base/server/cms/src/com/netscape/cms/servlet/admin/GroupMemberProcessor.java
index 9f976d401..b38277dd0 100644
--- a/base/server/cms/src/com/netscape/cms/servlet/admin/GroupMemberProcessor.java
+++ b/base/server/cms/src/com/netscape/cms/servlet/admin/GroupMemberProcessor.java
@@ -124,11 +124,12 @@ public class GroupMemberProcessor extends Processor {
// return entries up to the page size
for ( ; i<start+size && members.hasMoreElements(); i++) {
String memberID = members.nextElement();
- response.addMember(createGroupMemberData(groupID, memberID));
+ response.addEntry(createGroupMemberData(groupID, memberID));
}
// count the total entries
for ( ; members.hasMoreElements(); i++) members.nextElement();
+ response.setTotal(i);
if (start > 0) {
URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build();
diff --git a/base/server/cms/src/com/netscape/cms/servlet/admin/GroupService.java b/base/server/cms/src/com/netscape/cms/servlet/admin/GroupService.java
index 3f250517a..17c4387a3 100644
--- a/base/server/cms/src/com/netscape/cms/servlet/admin/GroupService.java
+++ b/base/server/cms/src/com/netscape/cms/servlet/admin/GroupService.java
@@ -109,7 +109,6 @@ public class GroupService extends PKIService implements GroupResource {
Enumeration<IGroup> groups = userGroupManager.listGroups(filter);
GroupCollection response = new GroupCollection();
-
int i = 0;
// skip to the start of the page
@@ -118,11 +117,12 @@ public class GroupService extends PKIService implements GroupResource {
// return entries up to the page size
for ( ; i<start+size && groups.hasMoreElements(); i++) {
IGroup group = groups.nextElement();
- response.addGroup(createGroupData(group));
+ response.addEntry(createGroupData(group));
}
// count the total entries
for ( ; groups.hasMoreElements(); i++) groups.nextElement();
+ response.setTotal(i);
if (start > 0) {
URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build();
diff --git a/base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java b/base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java
index 3f172abeb..b32bf6756 100644
--- a/base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java
+++ b/base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java
@@ -28,6 +28,7 @@ import java.security.cert.CertificateNotYetValidException;
import java.security.cert.X509Certificate;
import java.util.Arrays;
import java.util.Enumeration;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -137,7 +138,6 @@ public class UserService extends PKIService implements UserResource {
Enumeration<IUser> users = userGroupManager.findUsers(filter);
UserCollection response = new UserCollection();
-
int i = 0;
// skip to the start of the page
@@ -146,11 +146,12 @@ public class UserService extends PKIService implements UserResource {
// return entries up to the page size
for ( ; i<start+size && users.hasMoreElements(); i++) {
IUser user = users.nextElement();
- response.addUser(createUserData(user));
+ response.addEntry(createUserData(user));
}
// count the total entries
for ( ; users.hasMoreElements(); i++) users.nextElement();
+ response.setTotal(i);
if (start > 0) {
URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build();
@@ -556,24 +557,33 @@ public class UserService extends PKIService implements UserResource {
throw new UserNotFoundException(userID);
}
+ X509Certificate[] certs = user.getX509Certificates();
+ if (certs == null) certs = new X509Certificate[0];
+ Iterator<X509Certificate> entries = Arrays.asList(certs).iterator();
+
UserCertCollection response = new UserCertCollection();
+ int i = 0;
- X509Certificate[] certs = user.getX509Certificates();
- if (certs != null) {
- for (int i=start; i<start+size && i<certs.length; i++) {
- X509Certificate cert = certs[i];
- response.addCert(createUserCertData(userID, cert));
- }
+ // skip to the start of the page
+ for ( ; i<start && entries.hasNext(); i++) entries.next();
- if (start > 0) {
- URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build();
- response.addLink(new Link("prev", uri));
- }
+ // return entries up to the page size
+ for ( ; i<start+size && entries.hasNext(); i++) {
+ response.addEntry(createUserCertData(userID, entries.next()));
+ }
- if (start+size < certs.length) {
- URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", start+size).build();
- response.addLink(new Link("next", uri));
- }
+ // count the total entries
+ for ( ; entries.hasNext(); i++) entries.next();
+ response.setTotal(i);
+
+ if (start > 0) {
+ URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build();
+ response.addLink(new Link("prev", uri));
+ }
+
+ if (start+size < i) {
+ URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", start+size).build();
+ response.addLink(new Link("next", uri));
}
return response;
@@ -944,10 +954,9 @@ public class UserService extends PKIService implements UserResource {
throw new UserNotFoundException(userID);
}
- UserMembershipCollection response = new UserMembershipCollection();
-
Enumeration<IGroup> groups = userGroupManager.findGroupsByUser(user.getUserDN());
+ UserMembershipCollection response = new UserMembershipCollection();
int i = 0;
// skip to the start of the page
@@ -956,11 +965,12 @@ public class UserService extends PKIService implements UserResource {
// return entries up to the page size
for ( ; i<start+size && groups.hasMoreElements(); i++) {
IGroup group = groups.nextElement();
- response.addMembership(createUserMembershipData(userID, group.getName()));
+ response.addEntry(createUserMembershipData(userID, group.getName()));
}
// count the total entries
for ( ; groups.hasMoreElements(); i++) groups.nextElement();
+ response.setTotal(i);
if (start > 0) {
URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build();
diff --git a/base/server/cms/src/com/netscape/cms/servlet/tks/TPSConnectorService.java b/base/server/cms/src/com/netscape/cms/servlet/tks/TPSConnectorService.java
index 26f25bd4f..9351ffe60 100644
--- a/base/server/cms/src/com/netscape/cms/servlet/tks/TPSConnectorService.java
+++ b/base/server/cms/src/com/netscape/cms/servlet/tks/TPSConnectorService.java
@@ -8,6 +8,7 @@ import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Iterator;
import java.util.TreeSet;
import javax.servlet.http.HttpServletRequest;
@@ -53,21 +54,46 @@ public class TPSConnectorService implements TPSConnectorResource {
@Context
private HttpServletRequest servletRequest;
+ public final static int DEFAULT_SIZE = 20;
+
public IUGSubsystem userGroupManager = (IUGSubsystem) CMS.getSubsystem(CMS.SUBSYSTEM_UG);
@Override
- public TPSConnectorCollection listConnectors() {
+ public TPSConnectorCollection findConnectors(Integer start, Integer size) {
try {
- TPSConnectorCollection ret = new TPSConnectorCollection();
String tpsList = cs.getString(TPS_LIST, "");
+ Iterator<String> entries = Arrays.asList(StringUtils.split(tpsList,",")).iterator();
+
+ TPSConnectorCollection response = new TPSConnectorCollection();
+ int i = 0;
+
+ // skip to the start of the page
+ for ( ; i<start && entries.hasNext(); i++) entries.next();
+
+ // return entries up to the page size
+ for ( ; i<start+size && entries.hasNext(); i++) {
+ response.addEntry(createTPSConnectorData(entries.next()));
+ }
+
+ // count the total entries
+ for ( ; entries.hasNext(); i++) entries.next();
+ response.setTotal(i);
- for (String tpsID : StringUtils.split(tpsList,",")) {
- ret.addEntry(createTPSConnectorData(tpsID));
+ if (start > 0) {
+ URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build();
+ response.addLink(new Link("prev", uri));
}
- return ret;
+
+ if (start+size < i) {
+ URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", start+size).build();
+ response.addLink(new Link("next", uri));
+ }
+
+ return response;
+
} catch (EBaseException e) {
e.printStackTrace();
- throw new PKIException("Unable to get TPS connection data" + e);
+ throw new PKIException("Unable to get TPS connection data: " + e);
}
}
diff --git a/base/server/cmscore/src/com/netscape/cmscore/selftests/SelfTestService.java b/base/server/cmscore/src/com/netscape/cmscore/selftests/SelfTestService.java
index da7708e49..4fcddb7e4 100644
--- a/base/server/cmscore/src/com/netscape/cmscore/selftests/SelfTestService.java
+++ b/base/server/cmscore/src/com/netscape/cmscore/selftests/SelfTestService.java
@@ -21,6 +21,8 @@ package com.netscape.cmscore.selftests;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URLEncoder;
+import java.util.Arrays;
+import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.Context;
@@ -96,14 +98,38 @@ public class SelfTestService extends PKIService implements SelfTestResource {
CMS.debug("SelfTestService.findSelfTests()");
try {
- SelfTestCollection response = new SelfTestCollection();
+ start = start == null ? 0 : start;
+ size = size == null ? DEFAULT_SIZE : size;
ISelfTestSubsystem subsystem = (ISelfTestSubsystem)CMS.getSubsystem(ISelfTestSubsystem.ID);
- for (String name : subsystem.listSelfTestsEnabledOnDemand()) {
- SelfTestData data = createSelfTestData(subsystem, name);
+ Iterator<String> entries = Arrays.asList(subsystem.listSelfTestsEnabledOnDemand()).iterator();
+
+ SelfTestCollection response = new SelfTestCollection();
+ int i = 0;
+
+ // skip to the start of the page
+ for ( ; i<start && entries.hasNext(); i++) entries.next();
+
+ // return entries up to the page size
+ for ( ; i<start+size && entries.hasNext(); i++) {
+ SelfTestData data = createSelfTestData(subsystem, entries.next());
response.addEntry(data);
}
+ // count the total entries
+ for ( ; entries.hasNext(); i++) entries.next();
+ response.setTotal(i);
+
+ if (start > 0) {
+ URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build();
+ response.addLink(new Link("prev", uri));
+ }
+
+ if (start+size < i) {
+ URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", start+size).build();
+ response.addLink(new Link("next", uri));
+ }
+
return response;
} catch (Exception e) {