java/code/src/com/redhat/rhn/common/db/datasource/xml/Monitoring_queries.xml |
25 ++
java/code/src/com/redhat/rhn/frontend/action/groups/ProbesListAction.java |
63 +++++
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml |
12 +
java/code/src/com/redhat/rhn/manager/monitoring/MonitoringManager.java |
20 +
java/code/webapp/WEB-INF/nav/system_group_detail.xml |
4
java/code/webapp/WEB-INF/pages/common/fragments/systems/monitoring_status_groups.jspf |
4
java/code/webapp/WEB-INF/pages/groups/probes.jsp |
106 ++++++++++
java/code/webapp/WEB-INF/struts-config.xml |
8
java/spacewalk-java.spec |
5
rel-eng/packages/spacewalk-java |
2
web/html/network/systems/groups/probe_list.pxt |
32 ---
web/include/nav/system_group_detail.xml |
20 -
web/include/network/components/system_groups/sgdc_header.pxi |
25 --
web/modules/sniglets/Sniglets/ListView/SystemGroupList.pm |
2
14 files changed, 245 insertions(+), 83 deletions(-)
New commits:
commit 22292882396f0b89e0b775568c0c7f6a9b8ddd3a
Author: Jan Dobes <jdobes(a)redhat.com>
Date: Fri Jan 24 18:46:54 2014 +0100
Automatic commit of package [spacewalk-java] release [2.1.129-1].
diff --git a/java/spacewalk-java.spec b/java/spacewalk-java.spec
index 64af34c..eb572c6 100644
--- a/java/spacewalk-java.spec
+++ b/java/spacewalk-java.spec
@@ -28,7 +28,7 @@ Name: spacewalk-java
Summary: Spacewalk Java site packages
Group: Applications/Internet
License: GPLv2
-Version: 2.1.128
+Version: 2.1.129
Release: 1%{?dist}
URL:
https://fedorahosted.org/spacewalk
Source0:
https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -801,6 +801,9 @@ fi
%{jardir}/postgresql-jdbc.jar
%changelog
+* Fri Jan 24 2014 Jan Dobes 2.1.129-1
+- porting system group monitoring probes page to java
+
* Fri Jan 24 2014 Simon Lukasik <slukasik(a)redhat.com> 2.1.128-1
- 1057294 - Wrap choise by <c:choose>
- fix exceptions when user is deleted
diff --git a/rel-eng/packages/spacewalk-java b/rel-eng/packages/spacewalk-java
index 304988d..a50c2d0 100644
--- a/rel-eng/packages/spacewalk-java
+++ b/rel-eng/packages/spacewalk-java
@@ -1 +1 @@
-2.1.128-1 java/
+2.1.129-1 java/
commit 2eefd8da5d2b0f452148f5245aed6a807dfce0b0
Author: Jan Dobes <jdobes(a)redhat.com>
Date: Thu Jan 23 15:26:22 2014 +0100
delete old pages
diff --git a/web/html/network/systems/groups/probe_list.pxt
b/web/html/network/systems/groups/probe_list.pxt
deleted file mode 100644
index f7ce560..0000000
--- a/web/html/network/systems/groups/probe_list.pxt
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<pxt-passthrough>
- <pxt-use class="Grail::Frame" />
- <pxt-use class="Sniglets::Lists" />
- <pxt-use class="Sniglets::ServerGroup" />
-
- <grail-canvas-template base="/templates/c.pxt"
mode="main_canvas">
-
-<pxt-include file="/network/components/system_groups/sgdc_header.pxi" />
-
- <rhn-toolbar base="h2" icon="header-system-groups">
- Probe Status
- </rhn-toolbar>
-
- <rhn-listview class="Sniglets::ListView::ProbeList"
mode="system_groups_probes">
- <column name="State" label="probe_state_icon"
align="center" width="5%" />
-
- <column name="System" label="system_name"
align="left">
-
<url>/rhn/systems/details/probes/ProbesList.do?sid={column:system_id}</url>
- </column>
-
- <column name="Probe" label="probe_description"
align="left">
-
<url>/rhn/systems/details/probes/ProbeDetails.do?sid={column:system_id}&probe_id={column:probe_id}</url>
- </column>
-
- <column name="Last Updated" label="last_check"
align="center" />
-
- <empty_list_message>No Probes configured.</empty_list_message>
- </rhn-listview>
-
- </grail-canvas-template>
-</pxt-passthrough>
diff --git a/web/include/nav/system_group_detail.xml
b/web/include/nav/system_group_detail.xml
deleted file mode 100644
index d3f9588..0000000
--- a/web/include/nav/system_group_detail.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<rhn-navi-tree label="system_group_detail" invisible="1"
formvar="sgid" title-depth="1">
- <rhn-tab name="Details">
- <rhn-tab-url>/rhn/groups/GroupDetail.do</rhn-tab-url>
- </rhn-tab>
- <rhn-tab name="Systems">
- <rhn-tab-url>/rhn/groups/ListRemoveSystems.do</rhn-tab-url>
- </rhn-tab>
- <rhn-tab name="Target Systems"
acl="user_role(system_group_admin)">
- <rhn-tab-url>/rhn/groups/AddSystems.do</rhn-tab-url>
- </rhn-tab>
- <rhn-tab name="Errata">
- <rhn-tab-url>/rhn/groups/ListErrata.do</rhn-tab-url>
- </rhn-tab>
-
- <rhn-tab name="Admins" url="/rhn/groups/AdminList.do"
acl="user_role(system_group_admin)" />
-
- <rhn-tab name="Probes"
url="/network/systems/groups/probe_list.pxt"
acl="org_entitlement(rhn_monitor)" />
-
-</rhn-navi-tree>
diff --git a/web/include/network/components/system_groups/sgdc_header.pxi
b/web/include/network/components/system_groups/sgdc_header.pxi
deleted file mode 100644
index 7ccd6c2..0000000
--- a/web/include/network/components/system_groups/sgdc_header.pxi
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<pxt-passthrough>
- <pxt-use class="Sniglets::HTML" />
- <pxt-use class="Sniglets::Users" />
- <pxt-use class="Sniglets::ServerGroup" />
-
-<pxt-formvar>
-
- <rhn-toolbar base="h1"
- icon="header-system-groups"
- alt="system group"
- help-url="s1-sm-systems.jsp#s2-sm-system-group-list"
- misc-url="/rhn/systems/WorkWithGroup.do?sgid={formvar:sgid}"
- misc-alt="work with group"
- misc-icon="header-system-groups"
- misc-text="work with group"
- deletion-type="group"
- deletion-url="/rhn/groups/Delete.do?sgid={formvar:sgid}"
- deletion-acl="user_role(system_group_admin)">
- <rhn-server-group-name />
- </rhn-toolbar>
- <rhn-navi-nav prefix="system_group_details" depth="0"
file="/nav/system_group_detail.xml" style="contentnav" />
-
-</pxt-formvar>
-</pxt-passthrough>
commit 8a1445d2e1aee6d2eb86cdcb0d8a2cc2b4cd4380
Author: Jan Dobes <jdobes(a)redhat.com>
Date: Thu Jan 23 10:09:04 2014 +0100
porting system group monitoring probes page to java
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Monitoring_queries.xml
b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Monitoring_queries.xml
index 8ccc59d..de42b64 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Monitoring_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Monitoring_queries.xml
@@ -319,6 +319,31 @@ ORDER BY p.description]]>
</query>
</mode>
+<mode name="system_groups_probes"
class="com.redhat.rhn.frontend.dto.monitoring.ServerProbeDto">
+ <query params="group_id">
+SELECT S.id server_id,
+ S.name server_name,
+ P.recid id,
+ P.description,
+ PS.state,
+ PS.output,
+ PS.last_check last_check
+ FROM rhnServer S, rhn_probe P, rhn_probe_state PS
+ WHERE P.recid = PS.probe_id
+ AND S.id = (SELECT host_id from rhn_check_probe where probe_id = P.recid)
+<!-- In group -->
+ AND exists (SELECT 1 from rhnServerGroupMembership SGM
+ WHERE SGM.server_id = s.ID
+ AND SGM.group_id = :group_id)
+<!-- Entitled -->
+ AND EXISTS (SELECT 1 FROM rhnServerFeaturesView SFV
+ WHERE SFV.server_id = S.id
+ AND SFV.label = 'ftr_system_grouping')
+ AND P.probe_type = 'check'
+ORDER BY server_name, P.description
+ </query>
+</mode>
+
<mode name="probes_in_server_with_alerts"
class="com.redhat.rhn.frontend.dto.monitoring.ServerProbeDto">
<query params="sid"><![CDATA[
SELECT p.recid id, p.description,
diff --git a/java/code/src/com/redhat/rhn/frontend/action/groups/ProbesListAction.java
b/java/code/src/com/redhat/rhn/frontend/action/groups/ProbesListAction.java
new file mode 100644
index 0000000..fcaae78
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/frontend/action/groups/ProbesListAction.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2014 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ *
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+
+package com.redhat.rhn.frontend.action.groups;
+
+import java.util.List;
+
+import com.redhat.rhn.domain.server.ManagedServerGroup;
+import com.redhat.rhn.frontend.struts.RequestContext;
+import com.redhat.rhn.frontend.struts.RhnAction;
+import com.redhat.rhn.frontend.struts.RhnHelper;
+import com.redhat.rhn.frontend.taglibs.list.helper.ListHelper;
+import com.redhat.rhn.frontend.taglibs.list.helper.Listable;
+import com.redhat.rhn.manager.monitoring.MonitoringManager;
+
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+
+/**
+ * ProbesListAction
+ * @version 1.0
+ */
+public class ProbesListAction extends RhnAction implements Listable {
+
+ /** {@inheritDoc} */
+ public ActionForward execute(ActionMapping actionMapping,
+ ActionForm formIn,
+ HttpServletRequest request,
+ HttpServletResponse response) {
+
+ RequestContext requestContext = new RequestContext(request);
+ ManagedServerGroup serverGroup = requestContext.lookupAndBindServerGroup();
+ request.setAttribute(RequestContext.SERVER_GROUP_ID, serverGroup.getId());
+
+ ListHelper helper = new ListHelper(this, request);
+ helper.execute();
+
+ return actionMapping.findForward(RhnHelper.DEFAULT_FORWARD);
+ }
+ @Override
+ public List getResult(RequestContext context) {
+ ManagedServerGroup serverGroup = context.lookupAndBindServerGroup();
+ return MonitoringManager.getInstance().
+ probesForSystemGroup(context.getCurrentUser(), serverGroup, null);
+ }
+}
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
index e46805b..059a4a4 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
@@ -7661,6 +7661,12 @@ organization management tools if you choose to remove this role
from your login.
<context
context-type="sourcefile">/rhn/systems/details/probes/ProbesList.do</context>
</context-group>
</trans-unit>
+ <trans-unit id="probes.groups.jsp.summary">
+ <source>This list shows the Probes that are assigned to systems in this
system group. This list includes individual System Probes as well as Probes that are part
of Probe Suites used by this System.</source>
+ <context-group name="ctx">
+ <context
context-type="sourcefile">/rhn/groups/ProbesList.do</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="probes.index.jsp.description">
<source>Probe Description</source>
<context-group name="ctx">
@@ -7710,6 +7716,12 @@ organization management tools if you choose to remove this role
from your login.
<context
context-type="sourcefile">/rhn/systems/details/probes/ProbesList.do</context>
</context-group>
</trans-unit>
+ <trans-unit id="probes.groups.jsp.noprobes">
+ <source>No probes assigned to this system group.</source>
+ <context-group name="ctx">
+ <context
context-type="sourcefile">/rhn/groups/ProbesList.do</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="probes.index.jsp.toolbar">
<source>Configured Monitoring Probes</source>
<context-group name="ctx">
diff --git a/java/code/src/com/redhat/rhn/manager/monitoring/MonitoringManager.java
b/java/code/src/com/redhat/rhn/manager/monitoring/MonitoringManager.java
index 84f795d..2feab5e 100644
--- a/java/code/src/com/redhat/rhn/manager/monitoring/MonitoringManager.java
+++ b/java/code/src/com/redhat/rhn/manager/monitoring/MonitoringManager.java
@@ -37,6 +37,7 @@ import com.redhat.rhn.domain.org.OrgFactory;
import com.redhat.rhn.domain.role.RoleFactory;
import com.redhat.rhn.domain.server.Server;
import com.redhat.rhn.domain.server.ServerConstants;
+import com.redhat.rhn.domain.server.ServerGroup;
import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.dto.SystemOverview;
import com.redhat.rhn.frontend.dto.monitoring.ServerProbeDto;
@@ -628,6 +629,25 @@ public class MonitoringManager extends BaseManager {
}
/**
+ * Get the Probes running against a system group.
+ *
+ * @param currentUser who is requesting the probes
+ * @param sg group who's probes you want to see
+ * @param pc for pagnation. Null if you want them all.
+ * @return DataResult of ServerProbeDto objects
+ */
+ public DataResult<ServerProbeDto> probesForSystemGroup(User currentUser,
+ ServerGroup sg, PageControl pc) {
+
+ SelectMode m = ModeFactory.getMode("Monitoring_queries",
"system_groups_probes");
+ Map params = new HashMap();
+ params.put("group_id", sg.getId());
+ Map elabParams = new HashMap();
+ return makeDataResultNoPagination(params, elabParams, m);
+
+ }
+
+ /**
* Get the Probes running against a system that are in the warning or critical
status
*
* @param currentUser who is requesting the probes
diff --git a/java/code/webapp/WEB-INF/nav/system_group_detail.xml
b/java/code/webapp/WEB-INF/nav/system_group_detail.xml
index d3f9588..002d1c1 100644
--- a/java/code/webapp/WEB-INF/nav/system_group_detail.xml
+++ b/java/code/webapp/WEB-INF/nav/system_group_detail.xml
@@ -15,6 +15,8 @@
<rhn-tab name="Admins" url="/rhn/groups/AdminList.do"
acl="user_role(system_group_admin)" />
- <rhn-tab name="Probes"
url="/network/systems/groups/probe_list.pxt"
acl="org_entitlement(rhn_monitor)" />
+ <rhn-tab name="Probes" acl="org_entitlement(rhn_monitor)">
+ <rhn-tab-url>/rhn/groups/ProbesList.do</rhn-tab-url>
+ </rhn-tab>
</rhn-navi-tree>
diff --git
a/java/code/webapp/WEB-INF/pages/common/fragments/systems/monitoring_status_groups.jspf
b/java/code/webapp/WEB-INF/pages/common/fragments/systems/monitoring_status_groups.jspf
index 9e008d7..a12267d 100644
---
a/java/code/webapp/WEB-INF/pages/common/fragments/systems/monitoring_status_groups.jspf
+++
b/java/code/webapp/WEB-INF/pages/common/fragments/systems/monitoring_status_groups.jspf
@@ -7,7 +7,7 @@
styleclass="center"
headerclass="thin-column">
- <c:out value="<a
href=\"/network/systems/groups/probe_list.pxt?sgid=${current.id}\">"
escapeXml="false" />
+ <c:out value="<a
href=\"/rhn/groups/ProbesList.do?sgid=${current.id}\">"
escapeXml="false" />
<c:if test="${current.monitoringStatus ==
'CRITICAL'}">
<rhn:icon type="monitoring-crit"
title="systemlist.jsp.probecritical" />
@@ -29,4 +29,4 @@
</rl:column>
- </rhn:require>
\ No newline at end of file
+ </rhn:require>
diff --git a/java/code/webapp/WEB-INF/pages/groups/probes.jsp
b/java/code/webapp/WEB-INF/pages/groups/probes.jsp
new file mode 100644
index 0000000..0820d78
--- /dev/null
+++ b/java/code/webapp/WEB-INF/pages/groups/probes.jsp
@@ -0,0 +1,106 @@
+<%@ taglib
uri="http://rhn.redhat.com/rhn" prefix="rhn" %>
+<%@ taglib
uri="http://java.sun.com/jsp/jstl/core" prefix="c"
%>
+<%@ taglib
uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"
%>
+<%@ taglib
uri="http://struts.apache.org/tags-html" prefix="html"
%>
+<%@ taglib
uri="http://struts.apache.org/tags-bean" prefix="bean"
%>
+<%@ taglib
uri="http://java.sun.com/jsp/jstl/functions"
prefix="fn" %>
+<%@ taglib
uri="http://rhn.redhat.com/tags/list" prefix="rl"
%>
+
+<html:xhtml/>
+<html>
+<head>
+ <meta name="page-decorator" content="none" />
+</head>
+<body>
+
+<%@ include file="/WEB-INF/pages/common/fragments/groups/header.jspf" %>
+
+<rhn:toolbar base="h2" icon="header-system"
helpUrl="/rhn/help/reference/en-US/s1-sm-systems.jsp#s4-sm-system-details-probes">
+ <bean:message key="probes.index.jsp.toolbar"/>
+</rhn:toolbar>
+
+<div class="page-summary">
+ <p>
+ <bean:message key="probes.groups.jsp.summary"/>
+ </p>
+</div>
+
+
+<rl:listset name="probeSet">
+
+<rhn:csrf />
+<rhn:submitted />
+<rl:list emptykey="probes.groups.jsp.noprobes"
+ alphabarcolumn="description"
+ styleclass="list">
+
+ <rl:decorator name="PageSizeDecorator"/>
+ <rl:decorator name="ElaborationDecorator"/>
+
+ <%@ include
file="/WEB-INF/pages/common/fragments/probes/probe-state-column-new.jspf" %>
+
+ <rl:column sortable="true"
+ bound="false"
+ headerkey="probes.index.jsp.system"
+ sortattr="serverName"
+ defaultsort="asc"
+ filterattr="serverName">
+
+ <a
href="/rhn/systems/details/probes/ProbesList.do?sid=${current.serverId}">${current.serverName}</a>
+
+ </rl:column>
+
+ <rl:column sortable="true"
+ bound="false"
+ headerkey="probes.index.jsp.description"
+ sortattr="description"
+ defaultsort="asc">
+
+ <a
href="/rhn/systems/details/probes/ProbeDetails.do?probe_id=${current.id}&sid=${current.serverId}">${current.description}</a>
+
+ </rl:column>
+
+ <rl:column sortable="true"
+ bound="false"
+ headerkey="probes.index.jsp.status"
+ sortattr="stateOutputString">
+
+ ${current.stateOutputString}
+
+ </rl:column>
+
+ <rl:column sortable="false"
+ bound="false"
+ headerkey="probes.index.jsp.type">
+
+ <c:if test="${current.isSuiteProbe}">
+ <a title='<bean:message
key="probes.index.jsp.suiteedit"/>'
href="/rhn/monitoring/config/ProbeSuiteProbeEdit.do?suite_id=${current.probeSuiteId}&probe_id=${current.id}">
+ <bean:message key="probes.index.jsp.suite"/>
+ </a>
+ </c:if>
+ <c:if test="${not current.isSuiteProbe}">
+ <a title='<bean:message
key="probes.index.jsp.systemedit"/>'
href="/rhn/systems/details/probes/ProbeEdit.do?probe_id=${current.id}&sid=${current.serverId}">
+ <bean:message key="probes.index.jsp.system"/>
+ </a>
+ </c:if>
+ </rl:column>
+
+ <rl:column sortable="true"
+ bound="false"
+ headerkey="lastCheck"
+ sortattr="lastCheck">
+
+ <fmt:formatDate value="${current.lastCheck}" type="both"
dateStyle="short" timeStyle="long"/>
+
+ </rl:column>
+
+</rl:list>
+
+<input type="hidden" name="sgid" value="${sgid}" />
+
+<rl:csv
exportColumns="id,serverName,description,stateString,stateOutputString,lastCheck"/>
+
+</rl:listset>
+
+</body>
+</html>
diff --git a/java/code/webapp/WEB-INF/struts-config.xml
b/java/code/webapp/WEB-INF/struts-config.xml
index c96c141..f7d358c 100644
--- a/java/code/webapp/WEB-INF/struts-config.xml
+++ b/java/code/webapp/WEB-INF/struts-config.xml
@@ -4002,6 +4002,14 @@
path="/systems/SystemGroupList.do"/>
</action>
+ <action path="/groups/ProbesList"
+ scope="request"
+ type="com.redhat.rhn.frontend.action.groups.ProbesListAction"
+ className="com.redhat.rhn.frontend.struts.RhnActionMapping">
+ <forward name="default"
+ path="/WEB-INF/pages/groups/probes.jsp"/>
+ </action>
+
<action path="/systems/details/configuration/ViewModifyCentralPaths"
scope="request"
type="com.redhat.rhn.frontend.action.configuration.sdc.ViewModifyPathsAction"
diff --git a/web/modules/sniglets/Sniglets/ListView/SystemGroupList.pm
b/web/modules/sniglets/Sniglets/ListView/SystemGroupList.pm
index 1ca9309..77d503f 100644
--- a/web/modules/sniglets/Sniglets/ListView/SystemGroupList.pm
+++ b/web/modules/sniglets/Sniglets/ListView/SystemGroupList.pm
@@ -87,7 +87,7 @@ sub row_callback {
-title => $icon_data->{status_str},
-border => 0);
- $row->{MONITORING_ICON} =
PXT::HTML->link("/network/systems/groups/probe_list.pxt?sgid=" .
$row->{ID}, $image);
+ $row->{MONITORING_ICON} =
PXT::HTML->link("/rhn/groups/ProbesList.do?sgid=" . $row->{ID}, $image);
}
my $use_group_btn =
PXT::HTML->link(sprintf("/rhn/systems/WorkWithGroup.do?sgid=%d",
$row->{ID}),