/* * (non-Javadoc) * * @see com.msi.tough.query.AbstractProxyAction# protected DescribeDBParameterGroupsActionResultMessage doWork0(DescribeDBParameterGroupsActionRequestMessage req, ServiceRequestContext context) throws Exception { * javax.servlet.http.HttpServletRequest, * javax.servlet.http.HttpServletResponse, java.util.Map) */ @Override protected DescribeDBParameterGroupsActionResultMessage doWork0( DescribeDBParameterGroupsActionRequestMessage req, ServiceRequestContext context) throws Exception { DescribeDBParameterGroupsActionResultMessage.Builder resp = null; String msg = ""; final Session sess = HibernateUtil.newSession(); try { sess.beginTransaction(); final AccountBean ac = context.getAccountBean(); final long userID = ac.getId(); final String grpName = req.getDbParameterGroupName(); final String marker = req.getMarker(); final int maxRecords = ValidationManager.validateMaxRecords(req.getMaxRecords(), false); logger.info( "DescribeDBParameterGroups: " + " account = " + ac.getId() + " DBParameterGroupName = " + grpName + " Marker = " + marker + " MaxRecords = " + maxRecords); // select the list of DBParameterGroups. final List<RdsDbparameterGroup> result = ParameterGroupEntity.selectDBParameterGroups( sess, grpName, ac.getId(), marker, maxRecords); if (grpName != null && (result == null || result.size() == 0)) { throw RDSQueryFaults.DBParameterGroupNotFound(); } // build response document final List<DBParameterGroup> grl = new ArrayList<DBParameterGroup>(); if (result != null) { logger.debug( result.size() + " DBParameterGroups are selected from custom DBParameterGroups."); for (final RdsDbparameterGroup gb : result) { grl.add(toDBParameterGroup(gb)); } } resp = DescribeDBParameterGroupsActionResultMessage.newBuilder(); resp.addAllDbParameterGroups(grl); sess.getTransaction().commit(); } catch (final ErrorResponse rde) { sess.getTransaction().rollback(); throw rde; } catch (final Exception e) { e.printStackTrace(); sess.getTransaction().rollback(); msg = "DescribeDBParameterGroups: Class: " + e.getClass() + "Msg:" + e.getMessage(); logger.error(msg); throw RDSQueryFaults.InternalFailure(); } finally { sess.close(); } return resp.buildPartial(); }