[rhq] Branch 'raw-config' - modules/enterprise
by Adam Young
modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/configuration/view-raw.xhtml | 30 +++++-----
1 file changed, 16 insertions(+), 14 deletions(-)
New commits:
commit 89f727616b9c90290f948c0de30abc8dbdadbc39
Author: Adam Young <ayoung(a)redhat.com>
Date: Mon Nov 23 11:16:08 2009 -0500
Made links to structured conditional of structred being supported
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/configuration/view-raw.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/configuration/view-raw.xhtml
index 5f919f3..65ac139 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/configuration/view-raw.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/configuration/view-raw.xhtml
@@ -33,32 +33,34 @@
}
</script>
- <h:outputText value="#{messages.youareviewingraw}" />
- <h:outputText value=" #{messages.switch2}" />
- <h:outputLink value="view.xhtml">
- <s:conversationId />
+ <h:outputText value="#{messages.youareviewingraw}" />
+ <h:panelGroup rendered="#{rawConfigCollection.structuredSupported}">
+ <h:outputText value=" #{messages.switch2}" />
+ <h:outputLink value="view.xhtml">
+ <s:conversationId />
<f:param name="id" value="#{ResourceUIBean.id}" />
<h:outputText value=" #{messages.structured}" />
- </h:outputLink>
+ </h:outputLink>
+ </h:panelGroup>
+
+ <h:form id="viewResourceConfigurationForm">
+ <!-- TODO remove the id version -->
+ <input type="hidden" name="id" value="#{ResourceUIBean.id}"/>
- <h:form id="viewResourceConfigurationForm">
- <!-- TODO remove the id version -->
- <input type="hidden" name="id" value="#{ResourceUIBean.id}"/>
-
-
- <h:panelGrid columns="2" styleClass="buttons-table" columnClasses="button-cell"
+ <h:panelGrid columns="2" styleClass="buttons-table" columnClasses="button-cell"
rendered="#{ExistingResourceConfigurationUIBean.configuration != null and !ExistingResourceConfigurationUIBean.updateInProgress}">
- <h:commandButton value="#{messages.editstructured}" action="#{ExistingResourceConfigurationUIBean.editConfiguration}"
+
+ <h:commandButton value="#{messages.editstructured}" action="#{ExistingResourceConfigurationUIBean.editConfiguration}"
title="Edit this Configuration" styleClass="buttonmed"
rendered="${ResourceUIBean.permissions.configure and rawConfigCollection.structuredSupported and !ExistingResourceConfigurationUIBean.updateInProgress}" />
<h:commandButton value="#{messages.editraw}" action="#{ExistingResourceConfigurationUIBean.editRawConfiguration}"
title="Advanced Mode Edit of Raw Configuration Files" styleClass="buttonmed"
rendered="${ResourceUIBean.permissions.configure and rawConfigCollection.rawSupported and !ExistingResourceConfigurationUIBean.updateInProgress}" />
- </h:panelGrid>
+ </h:panelGrid>
- </h:form>
+ </h:form>
<table class="summary-props-table" style="">
<tr>
14 years, 6 months
[rhq] Branch 'pc' - modules/enterprise
by mazz
modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/plugin/plugin-list.xhtml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
New commits:
commit e77a657abf17907a25dba4498b6e4993604ed38c
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Mon Nov 23 10:48:13 2009 -0500
the column should be "enabled" since everywhere else we talk about a plugin being enabled or disabled, not active/inactive
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/plugin/plugin-list.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/plugin/plugin-list.xhtml
index 9f7f6b7..72f941e 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/plugin/plugin-list.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/plugin/plugin-list.xhtml
@@ -105,7 +105,7 @@
<rich:column>
<f:facet name="header">
- <h:outputText styleClass="headerText" value="Active"/>
+ <h:outputText styleClass="headerText" value="Enabled"/>
</f:facet>
<h:outputText value="#{agentPlugin.enabled}"/>
@@ -190,7 +190,7 @@
<rich:column>
<f:facet name="header">
- <h:outputText styleClass="headerText" value="Active"/>
+ <h:outputText styleClass="headerText" value="Enabled"/>
</f:facet>
<h:outputText value="#{serverPlugin.enabled}"/>
14 years, 6 months
[rhq] Branch 'linux-config' - 7 commits - etc/samples modules/enterprise
by Jay Shaughnessy
etc/samples/perspectives/sample-perspective/perspective/src/main/resources/META-INF/rhq-serverplugin.xml | 4
modules/enterprise/server/ear/pom.xml | 6
modules/enterprise/server/jar/src/main/resources/perspectives/admin.xml | 5
modules/enterprise/server/jar/src/main/resources/perspectives/content.xml | 29
modules/enterprise/server/jar/src/main/resources/perspectives/middleware.xml | 5
modules/enterprise/server/jar/src/main/resources/perspectives/root.xml | 5
modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml | 62
modules/enterprise/server/plugins/perspectives/core/perspective/src/main/resources/META-INF/rhq-serverplugin.xml | 506 ++++++
modules/enterprise/server/plugins/perspectives/core/pom.xml | 44
modules/enterprise/server/plugins/pom.xml | 1
modules/enterprise/server/xml-schemas/src/main/resources/rhq-serverplugin-perspective.xsd | 778 +++++++++-
modules/enterprise/server/xml-schemas/src/test/resources/test-serverplugin-perspective.xml | 5
12 files changed, 1358 insertions(+), 92 deletions(-)
New commits:
commit ef77c4af198f1deca1f869bbd880b7c9a948a613
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Nov 23 10:28:37 2009 -0500
more perspective descriptor schema tweaks
diff --git a/modules/enterprise/server/xml-schemas/src/main/resources/rhq-serverplugin-perspective.xsd b/modules/enterprise/server/xml-schemas/src/main/resources/rhq-serverplugin-perspective.xsd
index b6fabfd..0ddd9b5 100644
--- a/modules/enterprise/server/xml-schemas/src/main/resources/rhq-serverplugin-perspective.xsd
+++ b/modules/enterprise/server/xml-schemas/src/main/resources/rhq-serverplugin-perspective.xsd
@@ -228,7 +228,8 @@
<xs:attribute
name="action"
type="perspective:ActionType"
- use="optional">
+ use="optional"
+ default="add">
<xs:annotation>
<xs:documentation>
Add or remove the menu entry. For removal all but the name attribute are ignored.
@@ -342,7 +343,8 @@
<xs:attribute
name="action"
type="perspective:ActionType"
- use="optional">
+ use="optional"
+ default="add">
<xs:annotation>
<xs:documentation>
Add or remove the menu entry. Add is the default.
@@ -401,7 +403,8 @@
<xs:attribute
name="action"
type="perspective:ActionType"
- use="optional">
+ use="optional"
+ default="add">
<xs:annotation>
<xs:documentation>
Add or remove the menu entry. Add is the default.
@@ -581,6 +584,12 @@
type="perspective:PlacementType"
use="required">
</xs:attribute>
+ <xs:attribute
+ name="break"
+ type="xs:boolean"
+ use="optional"
+ default="false">
+ </xs:attribute>
</xs:complexType>
<xs:simpleType
@@ -616,7 +625,7 @@
<xs:restriction
base="xs:string">
<xs:minLength
- value="1" />
+ value="0" />
<xs:maxLength
value="128" />
</xs:restriction>
commit c60357c442440143a537a703a0d11b993d644f07
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Nov 23 10:27:30 2009 -0500
Add core perspective to rhq.ear
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index 4e40aae..02e4f91 100644
--- a/modules/enterprise/server/ear/pom.xml
+++ b/modules/enterprise/server/ear/pom.xml
@@ -411,6 +411,12 @@
<version>${project.version}</version>
</artifactItem>
+ <artifactItem>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-core-perspective</artifactId>
+ <version>${project.version}</version>
+ </artifactItem>
+
<!-- Temporary Sample Perspective -->
<artifactItem>
<groupId>org.rhq</groupId>
commit 29c7c2e62bc7cbb75ac92ae1af173968477d81fb
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Nov 23 10:26:42 2009 -0500
conforming to schema change
diff --git a/etc/samples/perspectives/sample-perspective/perspective/src/main/resources/META-INF/rhq-serverplugin.xml b/etc/samples/perspectives/sample-perspective/perspective/src/main/resources/META-INF/rhq-serverplugin.xml
index 490ae03..36430f3 100644
--- a/etc/samples/perspectives/sample-perspective/perspective/src/main/resources/META-INF/rhq-serverplugin.xml
+++ b/etc/samples/perspectives/sample-perspective/perspective/src/main/resources/META-INF/rhq-serverplugin.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<perspective-plugin
+<perspectivePlugin
apiVersion="1.0"
version="1.0"
description="A Sample Perspective Utilizing Every Extension Point and Filter"
@@ -11,4 +11,4 @@
xmlns:serverplugin="urn:xmlns:rhq-serverplugin"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-</perspective-plugin>
\ No newline at end of file
+</perspectivePlugin>
\ No newline at end of file
commit 996b0c7f09dcdc85f3964d3442d8b54c5f4d3bf0
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Nov 20 22:23:28 2009 -0500
Add Core perspective to build
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index a3331db..dc2c402 100644
--- a/modules/enterprise/server/plugins/pom.xml
+++ b/modules/enterprise/server/plugins/pom.xml
@@ -39,6 +39,7 @@
<module>yum</module>
<module>url</module>
<module>rhnhosted</module>
+ <module>perspectives/core</module>
<!-- temporary sample perspective plugin -->
<module>../../../../etc/samples/perspectives/sample-perspective</module>
</modules>
commit 90bc40f44690b85ece0a86502fcf2cde9d57e624
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Nov 20 22:22:51 2009 -0500
New Core Perspective defining CoreUI extensions
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
new file mode 100644
index 0000000..e8dfec7
--- /dev/null
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+
+<project
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-parent</artifactId>
+ <version>1.4.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-core-perspective</artifactId>
+ <packaging>jar</packaging>
+
+ <name>RHQ Core Perspective</name>
+ <description>A Perspective defining Core UI Elements</description>
+
+ <properties>
+ <rhq.version>1.4.0-SNAPSHOT</rhq.version>
+ </properties>
+
+ <dependencies>
+
+ <!-- Below are the core modules that are required dependencies of all server plugins -->
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-enterprise-server</artifactId>
+ <version>${rhq.version}</version>
+ <scope>provided</scope> <!-- provided by the server/plugin-container -->
+ </dependency>
+
+ <!-- uncomment the one of the three logging systems your plugin uses: log4j, commons-logging or i18nlog -->
+ <!-- all three are provided to your plugin by the server/plugin-container -->
+ <!--
+ <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.14</version>
+ <scope>provided</scope> </dependency>
+ -->
+
+ <!--
+ <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1</version>
+ <scope>provided</scope> </dependency>
+ -->
+
+ <!--
+ <dependency> <groupId>i18nlog</groupId> <artifactId>i18nlog</artifactId> <version>1.0.9</version> </dependency>
+ -->
+
+ <!-- Define any third-party dependencies your plugin has here. -->
+ <!--
+ <dependency> <groupId>group-id-of-dependency-goes-here</groupId>
+ <artifactId>artifact-id-of-dependency-goes-here</artifactId> <version>version-of-dependency-goes-here</version>
+ </dependency>
+ -->
+
+ </dependencies>
+
+</project>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/src/main/resources/META-INF/rhq-serverplugin.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/src/main/resources/META-INF/rhq-serverplugin.xml
new file mode 100644
index 0000000..63e1746
--- /dev/null
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/src/main/resources/META-INF/rhq-serverplugin.xml
@@ -0,0 +1,506 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<perspectivePlugin
+ version="1.0"
+ apiVersion="2.0"
+ description="The Core Perspective defining Core UI Elements"
+ displayName="Core Perspective"
+ name="CorePerspective"
+ package="org.rhq.perspective.core"
+ xmlns="urn:xmlns:rhq-serverplugin.perspective"
+ xmlns:serverplugin="urn:xmlns:rhq-serverplugin"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
+ <!-- Core Menu -->
+ <menuItem
+ name="logo"
+ displayName=""
+ url="/"
+ iconUrl="/images/JBossLogo_small.png">
+ <position
+ extensionPoint="coreMenu"
+ placement="start" />
+ </menuItem>
+ <menuItem
+ name="overview"
+ displayName="Overview">
+ <position
+ extensionPoint="coreMenu"
+ name="logo"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="resources"
+ displayName="Resources">
+ <position
+ extensionPoint="coreMenu"
+ name="overview"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="groups"
+ displayName="Groups">
+ <position
+ extensionPoint="coreMenu"
+ name="resources"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="administration"
+ displayName="Administration">
+ <position
+ extensionPoint="coreMenu"
+ name="groups"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="help"
+ displayName="Help">
+ <position
+ extensionPoint="coreMenu"
+ name="administration"
+ placement="after" />
+ </menuItem>
+
+
+ <!-- Core Menu: Overview -->
+ <menuItem
+ name="overview.subsystemViews"
+ displayName="Subsystem Views">
+ <position
+ extensionPoint="coreMenu"
+ name="overview"
+ placement="start" />
+ </menuItem>
+ <menuItem
+ name="overview.autoDiscoveryQueue"
+ displayName="Auto Discovery Queue"
+ url="/rhq/discovery/queue.xhtml">
+ <position
+ extensionPoint="coreMenu"
+ name="overview.subsystemViews"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="overview.dashboard"
+ displayName="Dashboard"
+ url="/Dashboard.do">
+ <position
+ extensionPoint="coreMenu"
+ name="overview.autoDiscoveryQueue"
+ placement="after" />
+ </menuItem>
+
+ <!-- Core Menu: Resources -->
+ <menuItem
+ name="resources.platforms"
+ displayName="Platforms"
+ iconUrl="/images/icons/Platform_up_16.png"
+ url="/ResourceHub.do?resourceCategory=PLATFORM">
+ <position
+ extensionPoint="coreMenu"
+ name="resources"
+ placement="start" />
+ </menuItem>
+ <menuItem
+ name="resources.servers"
+ displayName="Servers"
+ iconUrl="/images/icons/Server_up_16.png"
+ url="/ResourceHub.do?resourceCategory=SERVER">
+ <position
+ extensionPoint="coreMenu"
+ name="resources.platforms"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="resources.services"
+ displayName="Services"
+ iconUrl="/images/icons/Service_up_16.png"
+ url="/ResourceHub.do?resourceCategory=SERVICE">
+ <position
+ extensionPoint="coreMenu"
+ name="resources.platforms"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="resources.favoriteResources"
+ displayName="Favorite Resources"
+ feature="resourceFavorites"
+ iconUrl="/images/icons/Favorite_16.png">
+ <position
+ extensionPoint="coreMenu"
+ name="resources.services"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="resources.recentlyViewedResources"
+ displayName="Recently Viewed Resources"
+ feature="resourceRecentlyViewed"
+ iconUrl="/images/icons/History_16.png">
+ <position
+ extensionPoint="coreMenu"
+ name="resources.favoriteResources"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="resources.search"
+ displayName="Search:"
+ feature="resourceSearch"
+ iconUrl="/images/icons/Search_16.png">
+ <position
+ extensionPoint="coreMenu"
+ name="resources.recentlyViewedResources"
+ placement="after"
+ break="true" />
+ </menuItem>
+
+ <!-- Core Menu: Groups -->
+ <menuItem
+ name="groups.compatibleGroups"
+ displayName="Compatible Groups"
+ iconUrl="images/icons/Cluster_up_16.png"
+ url="/GroupHub.do?groupCategory=COMPATIBLE">
+ <position
+ extensionPoint="coreMenu"
+ name="groups"
+ placement="start" />
+ </menuItem>
+ <menuItem
+ name="groups.mixedGroups"
+ displayName="Mixed Groups"
+ iconUrl="/images/icons/Group_up_16.png"
+ url="/GroupHub.do?groupCategory=MIXED">
+ <position
+ extensionPoint="coreMenu"
+ name="groups.compatibleGroups"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="groups.groupDefinitions"
+ displayName="Group Definitions"
+ iconUrl="/images/GroupDefinition_16.png"
+ url="/rhq/definition/group/list.xhtml">
+ <position
+ extensionPoint="coreMenu"
+ name="groups.mixedGroups"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="groups.newGroup"
+ displayName="New Group"
+ url="/resource/group/Inventory.do?mode=new">
+ <position
+ extensionPoint="coreMenu"
+ name="groups.groupDefinitions"
+ placement="after"
+ break="true" />
+ </menuItem>
+ <menuItem
+ name="groups.newGroupDefinition"
+ displayName="New Group Definition"
+ url="/rhq/definition/group/new.xhtml">
+ <position
+ extensionPoint="coreMenu"
+ name="groups.newGroup"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="groups.favoriteGroups"
+ displayName="Favorite Groups"
+ feature="groupFavorites"
+ iconUrl="/images/icons/Favorite_16.png">
+ <position
+ extensionPoint="coreMenu"
+ name="groups.newGroupDefinition"
+ placement="after"
+ break="true" />
+ </menuItem>
+ <menuItem
+ name="groups.recentlyViewedGroups"
+ displayName="Recently Viewed Groups"
+ feature="groupRecentlyViewed"
+ iconUrl="/images/icons/History_16.png">
+ <position
+ extensionPoint="coreMenu"
+ name="groups.favoriteGroups"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="groups.search"
+ displayName="Search:"
+ feature="groupSearch"
+ iconUrl="/images/icons/Search_16.png">
+ <position
+ extensionPoint="coreMenu"
+ name="groups.recentlyViewedGroups"
+ placement="after"
+ break="true" />
+ </menuItem>
+
+ <!-- Core Menu: Administration -->
+ <menuItem
+ name="administration.security"
+ displayName="Security">
+ <position
+ extensionPoint="coreMenu"
+ name="administration"
+ placement="start" />
+ </menuItem>
+ <menuItem
+ name="administration.systemConfiguration"
+ displayName="systemConfiguration">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.security"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="administration.content"
+ displayName="Content">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.systemConfiguration"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="administration.highAvailability"
+ displayName="High Availability">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.content"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="administration.reports"
+ displayName="Reports">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.highAvailability"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="administration.download"
+ displayName="Download"
+ iconUrl="/images/icons/Save_16.png"
+ url="/rhq/admin/downloads.xhtml">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.reports"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="administration.license"
+ displayName="License"
+ url="/admin/license/LicenseAdmin.do?mode=view">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.download"
+ placement="after" />
+ </menuItem>
+
+ <!-- Core Menu: Help -->
+ <menuItem
+ name="help.onlineDocumentation"
+ displayName="Online Documentation"
+ feature="newWindow"
+ url="http://www.redhat.com/docs/en-US/JBoss_ON/">
+ <position
+ extensionPoint="coreMenu"
+ name="help"
+ placement="start" />
+ </menuItem>
+ <menuItem
+ name="help.openASupportCase"
+ displayName="Open a Support Case"
+ feature="newWindow"
+ url="https://support.redhat.com/jbossnetwork/restricted/addCase.html">
+ <position
+ extensionPoint="coreMenu"
+ name="help.onlineDocumentation"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="help.about"
+ displayName="About"
+ feature="aboutBox"
+ iconUrl="/images/icons/availability_grey_16.png">
+ <position
+ extensionPoint="coreMenu"
+ name="help.openASupportCase"
+ placement="after"
+ break="true" />
+ </menuItem>
+
+ <!-- Core Menu: Overview.Subsystem Views -->
+ <menuItem
+ name="overview.subsystemViews.configurationChanges"
+ displayName="Configuration Changes"
+ iconUrl="/images/icons/Configure_16.png"
+ url="/rhq/subsystem/configurationUpdate.xhtml">
+ <position
+ extensionPoint="coreMenu"
+ name="overview.subsystemViews"
+ placement="start" />
+ </menuItem>
+ <menuItem
+ name="overview.subsystemViews.suspectMetrics"
+ displayName="suspectMetrics"
+ iconUrl="/images/icons/Monitor_failed_16.png"
+ url="/rhq/subsystem/oobHistory.xhtml">
+ <position
+ extensionPoint="coreMenu"
+ name="overview.subsystemViews.configurationChanges"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="overview.subsystemViews.operations"
+ displayName="Operations"
+ iconUrl="/images/icons/Operation_16.png"
+ url="/rhq/subsystem/operationHistory.xhtml">
+ <position
+ extensionPoint="coreMenu"
+ name="overview.subsystemViews.suspectMetrics"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="overview.subsystemViews.alerts"
+ displayName="Alerts"
+ iconUrl="/images/icons/Flag_blue_16.png"
+ url="/rhq/subsystem/alertHistory.xhtml">
+ <position
+ extensionPoint="coreMenu"
+ name="overview.subsystemViews.operations"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="overview.subsystemViews.alertDefinitions"
+ displayName="Alert Definitions"
+ iconUrl="/images/icons/Flag_blue_16.png"
+ url="/rhq/subsystem/alertDefinitions.xhtml">
+ <position
+ extensionPoint="coreMenu"
+ name="overview.subsystemViews.alerts"
+ placement="after" />
+ </menuItem>
+
+ <!-- Core Menu: Administration.Security -->
+ <menuItem
+ name="administration.security.users"
+ displayName="Users"
+ url="/admin/user/UserAdmin.do?mode=list">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.security"
+ placement="start" />
+ </menuItem>
+ <menuItem
+ name="administration.security.roles"
+ displayName="Roles"
+ url="/admin/role/RoleAdmin.do?mode=list">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.security.users"
+ placement="after" />
+ </menuItem>
+
+ <!-- Core Menu: administration.systemConfiguration -->
+ <menuItem
+ name="administration.systemConfiguration.settings"
+ displayName="Settings"
+ url="/admin/config/Config.do?mode=edit">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.systemConfiguration"
+ placement="start" />
+ </menuItem>
+ <menuItem
+ name="administration.systemConfiguration.plugins"
+ displayName="Plugins"
+ url="/rhq/admin/plugin/plugin-list.xhtml">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.systemConfiguration.settings"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="administration.systemConfiguration.templates"
+ displayName="Templates"
+ url="/admin/config/EditDefaults.do?mode=monitor&viewMode=all">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.systemConfiguration.plugins"
+ placement="after" />
+ </menuItem>
+
+ <!-- Core Menu: administration.content -->
+ <menuItem
+ name="administration.content.contentProviders"
+ displayName="Content Providers"
+ url="/rhq/content/listContentProviders.xhtml">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.content"
+ placement="start" />
+ </menuItem>
+ <menuItem
+ name="administration.content.repositories"
+ displayName="Repositories"
+ url="/rhq/content/listRepos.xhtml">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.content.contentProviders"
+ placement="after" />
+ </menuItem>
+
+ <!-- Core Menu: administration.highAvailability -->
+ <menuItem
+ name="administration.highAvailability.servers"
+ displayName="Servers"
+ url="/rhq/ha/listServers.xhtml">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.highAvailability"
+ placement="start" />
+ </menuItem>
+ <menuItem
+ name="administration.highAvailability.agents"
+ displayName="Agents"
+ url="/rhq/ha/listAgents.xhtml">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.highAvailability.servers"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="administration.highAvailability.affinityGroups"
+ displayName="Affinity Groups"
+ url="/rhq/ha/listAffinityGroups.xhtml">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.highAvailability.agents"
+ placement="after" />
+ </menuItem>
+ <menuItem
+ name="administration.highAvailability.paritionEvents"
+ displayName="Partition Events"
+ url="/rhq/ha/listPartitionEvents.xhtml">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.highAvailability.affinityGroups"
+ placement="after" />
+ </menuItem>
+
+ <!-- Core Menu: administration.reports -->
+ <menuItem
+ name="administration.reports.resourceVersionInventoryReport"
+ displayName="Servers"
+ url="/rhq/admin/report/resourceInstallReport.xhtml">
+ <position
+ extensionPoint="coreMenu"
+ name="administration.reports"
+ placement="start" />
+ </menuItem>
+
+
+
+</perspectivePlugin>
\ No newline at end of file
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
new file mode 100644
index 0000000..01ce0b1
--- /dev/null
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -0,0 +1,44 @@
+<project
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-parent</artifactId>
+ <version>1.4.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-core-perspective-parent</artifactId>
+ <packaging>pom</packaging>
+
+ <name>RHQ Core Perspective Parent</name>
+ <description>parent POM for modules comprising the RHQ Core Perspective</description>
+
+ <scm>
+ <connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/enterprise/plugins...</connection>
+ <developerConnection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/enterprise/plugins...</developerConnection>
+ </scm>
+
+ <properties>
+ <scm.module.path>modules/enterprise/plugins/perspectives/core/</scm.module.path>
+ </properties>
+
+ <profiles>
+
+ <profile>
+ <id>default</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <modules>
+ <module>perspective</module>
+ </modules>
+ </profile>
+
+ </profiles>
+
+</project>
\ No newline at end of file
commit 3da3d63d13bb70ce9319a22449845e8e03c095eb
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Nov 20 22:21:01 2009 -0500
Under Construction - Perspective Descriptor
diff --git a/modules/enterprise/server/xml-schemas/src/main/resources/rhq-serverplugin-perspective.xsd b/modules/enterprise/server/xml-schemas/src/main/resources/rhq-serverplugin-perspective.xsd
index ce586b7..b6fabfd 100644
--- a/modules/enterprise/server/xml-schemas/src/main/resources/rhq-serverplugin-perspective.xsd
+++ b/modules/enterprise/server/xml-schemas/src/main/resources/rhq-serverplugin-perspective.xsd
@@ -1,48 +1,731 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:config="urn:xmlns:rhq-configuration"
- xmlns:serverplugin="urn:xmlns:rhq-serverplugin"
- xmlns:perspective="urn:xmlns:rhq-serverplugin.perspective"
- targetNamespace="urn:xmlns:rhq-serverplugin.perspective"
- elementFormDefault="qualified"
- jaxb:version="2.0"
- xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" blockDefault="">
-
- <xs:import namespace="urn:xmlns:rhq-serverplugin" schemaLocation="rhq-serverplugin.xsd" />
-
- <xs:annotation>
- <xs:documentation>
- Schema for a Perspective Descriptor. Perspective are deployed as Server Plugins.
- </xs:documentation>
- <xs:appinfo>
- <jaxb:schemaBindings>
- <jaxb:package name="org.rhq.enterprise.server.xmlschema.generated.serverplugin.perspective" />
- </jaxb:schemaBindings>
- </xs:appinfo>
- </xs:annotation>
-
- <xs:element name="perspective-plugin" type="perspective:PerspectivePluginDescriptorType" substitutionGroup="serverplugin:server-plugin">
- <xs:annotation>
- <xs:documentation>
- Defines a Perspective plugin. A Perspective is deployed as a Server Plugin.
- The Server Plugin Container (SPC) handles simple lifecycle management for
- the deployed plugins (e.g. start, stop). The plugin is otherwise standalone
- and can do everything it needs to do without additional help from the SPC.
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:config="urn:xmlns:rhq-configuration"
+ xmlns:serverplugin="urn:xmlns:rhq-serverplugin"
+ xmlns:perspective="urn:xmlns:rhq-serverplugin.perspective"
+ targetNamespace="urn:xmlns:rhq-serverplugin.perspective"
+ elementFormDefault="qualified"
+ jaxb:version="2.0"
+ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+ blockDefault="">
+
+ <xs:include
+ schemaLocation=""></xs:include>
+ <xs:import
+ namespace="urn:xmlns:rhq-serverplugin"
+ schemaLocation="rhq-serverplugin.xsd" />
+
+ <xs:annotation>
+ <xs:documentation>
+ Schema for a Perspective Descriptor. Perspective are deployed as Server Plugins.
+ </xs:documentation>
+ <xs:appinfo>
+ <jaxb:schemaBindings>
+ <jaxb:package
+ name="org.rhq.enterprise.server.xmlschema.generated.serverplugin.perspective" />
+ </jaxb:schemaBindings>
+ </xs:appinfo>
+ </xs:annotation>
+
+ <xs:element
+ name="perspectivePlugin"
+ type="perspective:PerspectivePluginDescriptorType"
+ substitutionGroup="serverplugin:server-plugin">
+ <xs:annotation>
+ <xs:documentation>
+ Defines a Perspective plugin. A Perspective is deployed as a Server Plugin.
+ The Server Plugin
+ Container (SPC) handles simple lifecycle management for
+ the deployed plugins (e.g. start, stop). The plugin
+ is otherwise standalone
+ and can do everything it needs to do without additional help from the SPC.
+ </xs:documentation>
+ <xs:appinfo>
+ <jaxb:class
+ name="PerspectivePluginElement" />
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+
+ <xs:complexType
+ name="PerspectivePluginDescriptorType">
+ <xs:complexContent>
+ <xs:extension
+ base="serverplugin:ServerPluginDescriptorType">
+ <xs:sequence>
+ <xs:element
+ ref="perspective:globalTask"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ </xs:element>
+ <xs:element
+ ref="perspective:resourceTask"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ </xs:element>
+ <xs:element
+ ref="perspective:menuItem"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ </xs:element>
+ <xs:element
+ ref="perspective:resourceTab"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ </xs:element>
+ <xs:element
+ ref="perspective:resourceSubTab"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ </xs:element>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element
+ name="globalTask"
+ type="perspective:TaskType">
+ <xs:annotation>
+ <xs:appinfo>
+ <jaxb:class
+ name="PerspectiveGlobalTaskElement" />
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+
+ <xs:element
+ name="resourceTask"
+ type="perspective:TaskType">
+ <xs:annotation>
+ <xs:appinfo>
+ <jaxb:class
+ name="PerspectiveResourceTaskElement" />
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+
+ <xs:complexType
+ name="TaskType">
+ <xs:sequence>
+ <xs:element
+ name="NewElement"
+ type="xs:string">
+ </xs:element>
+ <xs:element
+ ref="perspective:extensionPoint"
+ minOccurs="1"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>A task pane extension point for which this task is presented.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element
+ ref="perspective:helpText"
+ minOccurs="0"
+ maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation>Optional additional help text for the task.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute
+ name="name"
+ type="perspective:NameType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation>
+ The task name. Unique within names defined by the perspective. Used for
+ display if
+ displayName not provided.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="displayName"
+ type="perspective:DisplayNameType"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ The name used for display, if provided.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="description"
+ type="perspective:DescriptionType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation>
+ The task description displayed for the task.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="url"
+ type="xs:anyURI"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ The request URL for the task. Typically kicks off a wizard or similar workflow.
</xs:documentation>
- <xs:appinfo>
- <jaxb:class name="PerspectivePluginElement" />
- </xs:appinfo>
- </xs:annotation>
- </xs:element>
- <xs:complexType name="PerspectivePluginDescriptorType">
- <xs:complexContent>
- <xs:extension base="serverplugin:ServerPluginDescriptorType">
- <xs:sequence>
- <!--...put specific perspective schema definitions here...-->
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="category"
+ type="xs:string"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ Optional task category. Tasks for the same category will be grouped together.
+ Categories
+ are not predefined.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+
+ <xs:element
+ name="extensionPoint"
+ type="perspective:ExtensionPointNameType">
+ </xs:element>
+
+ <xs:element
+ name="helpText"
+ type="perspective:HelpTextType">
+ </xs:element>
+
+ <xs:element
+ name="menuItem">
+ <xs:annotation>
+ <xs:documentation>
+ Add or Remove a menu item in an existing menu extension point. Additions can specify
+ positioning as
+ well as a recursive structure, defineing a tree of MenuItems.
+ </xs:documentation>
+ <xs:appinfo>
+ <jaxb:class
+ name="PerspectiveMenuItemElement" />
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element
+ ref="perspective:position"
+ minOccurs="0"
+ maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation>
+ Required for root menuItem additions. Position of children is implicit given the
+ XML
+ structure.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute
+ name="action"
+ type="perspective:ActionType"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ Add or remove the menu entry. For removal all but the name attribute are ignored.
+ Default is add.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="name"
+ type="perspective:NameType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation>
+ ExtensionPoint name used for reference by other defined extension points.
+ Unique within
+ perspective.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="displayName"
+ type="perspective:DisplayNameType"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ The displayed menu item name. Required for add actions. If empty an icon must be
+ defined.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="feature"
+ type="perspective:MenuItemFeatureType"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ Certain menu items utilize special built-in rendering features.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="url"
+ type="xs:anyURI"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ The request URL for the menu entry. If not provided the entry is just a placeholder for
+ MenuItems.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="iconUrl"
+ type="xs:anyURI"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ The request URL for the icon image for this menu item. If not provided then no image is
+ used.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="iconWidth"
+ type="xs:int"
+ use="optional">
+ </xs:attribute>
+ <xs:attribute
+ name="iconHeight"
+ type="xs:int"
+ use="optional">
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element
+ name="resourceTab">
+ <xs:annotation>
+ <xs:appinfo>
+ <jaxb:class
+ name="PerspectiveResourceTabElement" />
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element
+ ref="perspective:position"
+ minOccurs="0"
+ maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation>
+ Required for root menuItem additions. Position of children is implicit given the
+ XML
+ structure.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute
+ name="name"
+ type="perspective:NameType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation>
+ The menu entry name. Unique within menu items defined for the perspective. Displayed
+ on
+ screen.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="action"
+ type="perspective:ActionType"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ Add or remove the menu entry. Add is the default.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="url"
+ type="xs:anyURI"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ The request URL for the menu entry. If not provided the entry is just a placeholder for
+ MenuItems.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element
+ name="resourceSubTab">
+ <xs:annotation>
+ <xs:appinfo>
+ <jaxb:class
+ name="PerspectiveResourceSubTabElement" />
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element
+ ref="perspective:position"
+ minOccurs="0"
+ maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation>
+ Required for root menuItem additions. Position of children is implicit given the
+ XML
+ structure.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute
+ name="name"
+ type="perspective:NameType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation>
+ The menu entry name. Unique within menu items defined for the perspective. Displayed
+ on
+ screen.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="action"
+ type="perspective:ActionType"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ Add or remove the menu entry. Add is the default.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="url"
+ type="xs:anyURI"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ The request URL for the menu entry. If not provided the entry is just a placeholder for
+ MenuItems.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element
+ name="inventoryActivator">
+ <xs:annotation>
+ <xs:appinfo>
+ <jaxb:class
+ name="InventoryActivatorElement" />
+ </xs:appinfo>
+ <xs:documentation>
+ Activators must be satisfied for the extension point to be active.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element
+ ref="perspective:permissionActivator"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ </xs:element>
+ <xs:element
+ ref="perspective:traitActivator"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute
+ name="plugin"
+ type="xs:string"
+ use="required">
+ <xs:annotation>
+ <xs:documentation>
+ Plugin for the specified resource type.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="resourceType"
+ type="xs:string"
+ use="required">
+ <xs:annotation>
+ <xs:documentation>
+ Resource Type that must be in inventory to activate the extension point.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element
+ name="permissionActivator"
+ type="perspective:PermissionType">
+ <xs:annotation>
+ <xs:documentation>
+ Activators must be satisfied for the extension point to be active.
+ The specified permission
+ must be available to the current user session.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+
+ <xs:element
+ name="traitActivator"
+ type="perspective:TraitActivatorType">
+ <xs:annotation>
+ <xs:documentation>
+ Activators must be satisfied for the extension point to be active.
+ The specified permission
+ must be available to the current user session.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+
+ <xs:complexType
+ name="TraitActivatorType">
+ <xs:attribute
+ name="trait"
+ type="xs:string"
+ use="required">
+ <xs:annotation>
+ <xs:documentation>
+ The trait being tested for activation.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="value"
+ type="xs:string"
+ use="required">
+ <xs:annotation>
+ <xs:documentation>
+ The value of the trait. By default this is a 'contains' test. For equality, set strict to
+ true.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="isEquals"
+ type="xs:boolean"
+ use="optional"
+ default="false">
+ <xs:annotation>
+ <xs:documentation>
+ If true perform equality test. If false (default) perform a contains test.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="isCaseSensitive"
+ type="xs:boolean"
+ use="optional"
+ default="false">
+ <xs:annotation>
+ <xs:documentation>
+ If true perform a case sensitive test. If false (default) test is sase insensitive.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+
+ <xs:element
+ name="position"
+ type="perspective:PositionType">
+ <xs:annotation>
+ <xs:appinfo>
+ <jaxb:class
+ name="PerspectivePositionElement" />
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+
+ <xs:complexType
+ name="PositionType">
+ <xs:attribute
+ name="extensionPoint"
+ type="perspective:ExtensionPointNameType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation>
+ The extension point (a menu, resource tab bar, etc) where the insertion is occuring.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="name"
+ type="perspective:NameType"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ Position relatively against this name. Required for before/after positioning.
+ The name is
+ context specific, it could be a
+ menu entry name, a menu item name, tab name, subTab name, etc.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="placement"
+ type="perspective:PlacementType"
+ use="required">
+ </xs:attribute>
+ </xs:complexType>
+
+ <xs:simpleType
+ name="ActionType">
+ <xs:annotation>
+ <xs:documentation>
+ Add : Add new or Replaces existing
+ Remove : Removes existing
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction
+ base="xs:string">
+ <xs:enumeration
+ value="add"></xs:enumeration>
+ <xs:enumeration
+ value="remove"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType
+ name="DescriptionType">
+ <xs:restriction
+ base="xs:string">
+ <xs:minLength
+ value="1" />
+ <xs:maxLength
+ value="512" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType
+ name="DisplayNameType">
+ <xs:restriction
+ base="xs:string">
+ <xs:minLength
+ value="1" />
+ <xs:maxLength
+ value="128" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType
+ name="ExtensionPointNameType">
+ <xs:restriction
+ base="xs:string">
+ <xs:minLength
+ value="1" />
+ <xs:maxLength
+ value="128" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType
+ name="HelpTextType">
+ <xs:restriction
+ base="xs:string">
+ <xs:minLength
+ value="1" />
+ <xs:maxLength
+ value="1024" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType
+ name="MenuItemFeatureType">
+ <xs:restriction
+ base="xs:string">
+ <xs:enumeration
+ value="aboutBox"></xs:enumeration>
+ <xs:enumeration
+ value="groupFavorites"></xs:enumeration>
+ <xs:enumeration
+ value="groupRecentlyViewed"></xs:enumeration>
+ <xs:enumeration
+ value="groupSearch"></xs:enumeration>
+ <xs:enumeration
+ value="resourceFavorites"></xs:enumeration>
+ <xs:enumeration
+ value="resourceRecentlyViewed"></xs:enumeration>
+ <xs:enumeration
+ value="resourceSearch"></xs:enumeration>
+ <xs:enumeration
+ value="newWindow"></xs:enumeration>
+ <xs:enumeration
+ value="resourceSearch"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType
+ name="NameType">
+ <xs:restriction
+ base="xs:string">
+ <xs:minLength
+ value="1" />
+ <xs:maxLength
+ value="64" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType
+ name="PermissionType">
+ <xs:restriction
+ base="xs:string">
+ <xs:enumeration
+ value="MANAGE_INVENTORY"></xs:enumeration>
+ <xs:enumeration
+ value="MANAGE_SECURITY"></xs:enumeration>
+ <xs:enumeration
+ value="MANAGE_SETTINGS"></xs:enumeration>
+
+ <xs:enumeration
+ value="CONFIGURE"></xs:enumeration>
+ <xs:enumeration
+ value="CONTROL"></xs:enumeration>
+ <xs:enumeration
+ value="CREATE_CHILD_RESOURCE"></xs:enumeration>
+ <xs:enumeration
+ value="DELETE_RESOURCE"></xs:enumeration>
+ <xs:enumeration
+ value="MANAGE_ALERTS"></xs:enumeration>
+ <xs:enumeration
+ value="MANAGE_CONTENT"></xs:enumeration>
+ <xs:enumeration
+ value="MANAGE_MEASUREMENTS"></xs:enumeration>
+ <xs:enumeration
+ value="MODIFY_RESOURCE"></xs:enumeration>
+ <xs:enumeration
+ value="VIEW_RESOURCE"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType
+ name="PlacementType">
+ <xs:restriction
+ base="xs:string">
+ <xs:enumeration
+ value="before"></xs:enumeration>
+ <xs:enumeration
+ value="after"></xs:enumeration>
+ <xs:enumeration
+ value="start"></xs:enumeration>
+ <xs:enumeration
+ value="end"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+
</xs:schema>
diff --git a/modules/enterprise/server/xml-schemas/src/test/resources/test-serverplugin-perspective.xml b/modules/enterprise/server/xml-schemas/src/test/resources/test-serverplugin-perspective.xml
index f39a1b6..ac01d06 100644
--- a/modules/enterprise/server/xml-schemas/src/test/resources/test-serverplugin-perspective.xml
+++ b/modules/enterprise/server/xml-schemas/src/test/resources/test-serverplugin-perspective.xml
@@ -1,15 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
-<perspective-plugin
+<perspectivePlugin
apiVersion="1.0"
version="1.0"
description="A Sample Perspective Utilizing Every Extension Point and Filter"
displayName="Sample Perspective"
name="SamplePerspective"
package="org.rhq.perspective.sample"
- pluginLifecycleListener="perspectivePluginLifecycleListener"
xmlns="urn:xmlns:rhq-serverplugin.perspective"
xmlns:serverplugin="urn:xmlns:rhq-serverplugin"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-</perspective-plugin>
+</perspectivePlugin>
commit 246c743e9d836ca0bede72fb0adf09f8881a834c
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Nov 16 09:10:34 2009 -0500
Obsolete stuff from old perspctives investigation.
diff --git a/modules/enterprise/server/jar/src/main/resources/perspectives/admin.xml b/modules/enterprise/server/jar/src/main/resources/perspectives/admin.xml
deleted file mode 100644
index eb29b5a..0000000
--- a/modules/enterprise/server/jar/src/main/resources/perspectives/admin.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<perspective name="admin" path="/admin"
- description="platform administration tasks"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="urn:xmlns:rhq-perspective">
-</perspective>
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/resources/perspectives/content.xml b/modules/enterprise/server/jar/src/main/resources/perspectives/content.xml
deleted file mode 100644
index ec9d159..0000000
--- a/modules/enterprise/server/jar/src/main/resources/perspectives/content.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<perspective name="content" path="/pulp"
- description="advanced software content management"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="urn:xmlns:rhq-perspective">
- <task name="repo create" path="/pulp/repos/create"
- description="Create Repo">
- <pathmatches>/pulp/repos</pathmatches>
- <pathmatches>/pulp/repos/create</pathmatches>
- <pathmatches>/pulp/repos/create_confirm</pathmatches>
- <pathmatches>/pulp/repos/create*</pathmatches>
- </task>
- <task name="repo add package"
- path="/pulp/repos/add_package?cid={0}"
- description="Add Content to this Repo" context="repo">
- <pathmatches>/pulp/repos/details/*</pathmatches>
- </task>
- <task name="repo clone" path="/pulp/repos/clone"
- description="Clone A Repo">
- <pathmatches>/pulp/repos/*</pathmatches>
- </task>
- <task name="repo clone existing" path="/pulp/repos/clone?cid={0}"
- description="Clone this Repo" context="repo">
- <pathmatches>/pulp/repos/*</pathmatches>
- </task>
- <task name="repo delete" path="/pulp/repos/delete"
- description="Delete A repo">
- <pathmatches>/pulp/repos/*</pathmatches>
- </task>
-</perspective>
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/resources/perspectives/middleware.xml b/modules/enterprise/server/jar/src/main/resources/perspectives/middleware.xml
deleted file mode 100644
index 0d0c9e8..0000000
--- a/modules/enterprise/server/jar/src/main/resources/perspectives/middleware.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<perspective name="middleware" path="/middleware"
- description="manage middleware applications"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="urn:xmlns:rhq-perspective">
-</perspective>
diff --git a/modules/enterprise/server/jar/src/main/resources/perspectives/root.xml b/modules/enterprise/server/jar/src/main/resources/perspectives/root.xml
deleted file mode 100644
index e222b25..0000000
--- a/modules/enterprise/server/jar/src/main/resources/perspectives/root.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<perspective name="root" path="/"
- description="start here"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="urn:xmlns:rhq-perspective">
-</perspective>
\ No newline at end of file
14 years, 6 months
[rhq] Branch 'pc' - 2 commits - modules/enterprise
by jharris
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/plugin/InstalledPluginUIBean.java | 17 ++++++++
modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/plugin/plugin-details.xhtml | 20 +++++++---
2 files changed, 31 insertions(+), 6 deletions(-)
New commits:
commit 9af95de196ccc8b854a8f1c952af3a6cfa18e78d
Author: Justin Harris <jharris(a)redhat.com>
Date: Mon Nov 23 10:18:55 2009 -0500
Updating update plugin call to new naming scheme.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/plugin/InstalledPluginUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/plugin/InstalledPluginUIBean.java
index fac4661..b6db223 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/plugin/InstalledPluginUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/plugin/InstalledPluginUIBean.java
@@ -69,7 +69,7 @@ public class InstalledPluginUIBean {
ServerPluginsLocal serverPlugins = LookupUtil.getServerPlugins();
try {
- serverPlugins.updatePluginExceptContent(EnterpriseFacesContextUtility.getSubject(), plugin);
+ serverPlugins.updateServerPluginExceptContent(EnterpriseFacesContextUtility.getSubject(), plugin);
FacesContextUtility.addMessage(FacesMessage.SEVERITY_INFO,
"Configuration settings saved.");
@@ -78,6 +78,8 @@ public class InstalledPluginUIBean {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR,
"There was an error changing the configuration settings.", e);
}
+
+ lookupPlugin();
}
private void lookupPlugin() {
commit 556be90ec7e0285dc9205766805aaa91da2ef258
Author: Justin Harris <jharris(a)redhat.com>
Date: Fri Nov 20 18:34:52 2009 -0500
Adding save button to plugin details page.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/plugin/InstalledPluginUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/plugin/InstalledPluginUIBean.java
index f6eee0d..fac4661 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/plugin/InstalledPluginUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/plugin/InstalledPluginUIBean.java
@@ -65,6 +65,21 @@ public class InstalledPluginUIBean {
return this.scheduledJobsDefinition;
}
+ public void updatePlugin() {
+ ServerPluginsLocal serverPlugins = LookupUtil.getServerPlugins();
+
+ try {
+ serverPlugins.updatePluginExceptContent(EnterpriseFacesContextUtility.getSubject(), plugin);
+
+ FacesContextUtility.addMessage(FacesMessage.SEVERITY_INFO,
+ "Configuration settings saved.");
+ } catch (Exception e) {
+ log.error("Error updating the plugin configurations.", e);
+ FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR,
+ "There was an error changing the configuration settings.", e);
+ }
+ }
+
private void lookupPlugin() {
hasPermission();
String pluginName = FacesContextUtility.getRequiredRequestParameter("plugin", String.class);
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/plugin/plugin-details.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/plugin/plugin-details.xhtml
index 3921b8e..fa46dc8 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/plugin/plugin-details.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/plugin/plugin-details.xhtml
@@ -76,24 +76,32 @@
</rich:panel>
- <rich:panel>
+
+ <rich:panel rendered="#{InstalledPluginUIBean.plugin.pluginConfiguration != null}">
<f:facet name="header">
<h:outputText value="Plugin Configuration"/>
</f:facet>
<onc:config
configurationDefinition="#{InstalledPluginUIBean.pluginConfigurationDefinition}"
- configuration="#{InstalledPluginUIBean.plugin.pluginConfiguration}"
- readOnly="true" />
+ configuration="#{InstalledPluginUIBean.plugin.pluginConfiguration}" />
</rich:panel>
- <rich:panel>
+ <rich:panel rendered="#{InstalledPluginUIBean.plugin.scheduledJobsConfiguration != null}">
<f:facet name="header">
<h:outputText value="Scheduled Jobs"/>
</f:facet>
<onc:config
configurationDefinition="#{InstalledPluginUIBean.scheduledJobsDefinition}"
- configuration="#{InstalledPluginUIBean.plugin.scheduledJobsConfiguration}"
- readOnly="true" />
+ configuration="#{InstalledPluginUIBean.plugin.scheduledJobsConfiguration}" />
+ </rich:panel>
+
+ <input type="hidden" name="plugin" value="#{param.plugin}"/>
+ <input type="hidden" name="pluginType" value="#{param.pluginType}"/>
+
+ <rich:panel rendered="#{InstalledPluginUIBean.plugin.pluginConfiguration != null ||
+ InstalledPluginUIBean.plugin.scheduledJobsConfiguration != null}">
+ <h:commandButton value="OK" type="submit" action="#{InstalledPluginUIBean.updatePlugin}"
+ alt="Click to Save Plugin" styleClass="buttonmed" />
</rich:panel>
</rich:panel>
14 years, 6 months
[rhq] Changes to 'iptables'
by fdrabek
New branch 'iptables' available with the following commits:
commit 1b77fc11b501a7f548d07d2135d083173afc3e9f
Author: Filip Drabek <fdrabek(a)dhcp-lab-136.englab.brq.redhat.com>
Date: Mon Nov 23 14:01:49 2009 +0100
augeas support
14 years, 6 months
[rhq] Branch 'pc' - 2 commits - modules/enterprise
by mazz
modules/enterprise/gui/portal-war/src/main/webapp/admin/test/control.jsp | 794 +++++-----
1 file changed, 397 insertions(+), 397 deletions(-)
New commits:
commit e144f9a55590182e130ae768b9b494b13f03c2a6
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Sun Nov 22 22:42:30 2009 -0500
convert CRLF to LF
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/control.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/control.jsp
index a7c0cbc..2c47b0a 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/control.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/control.jsp
@@ -1,397 +1,397 @@
-<%@ page import="java.io.ByteArrayOutputStream" %>
-<%@ page import="java.io.PrintStream" %>
-
-<%@ page import="org.rhq.core.domain.auth.Subject" %>
-<%@ page import="org.rhq.core.domain.util.PersistenceUtility" %>
-
-<%@ page import="org.rhq.enterprise.gui.legacy.util.SessionUtils"%>
-<%@ page import="org.rhq.enterprise.gui.util.WebUtility"%>
-
-<%@ page import="org.rhq.enterprise.server.measurement.MeasurementPreferences" %>
-<%@ page import="org.rhq.enterprise.server.measurement.MeasurementPreferences.MetricRangePreferences" %>
-
-<%@ page import="org.rhq.enterprise.server.test.CoreTestLocal" %>
-<%@ page import="org.rhq.enterprise.server.test.DiscoveryTestLocal" %>
-<%@ page import="org.rhq.enterprise.server.test.MeasurementTestLocal" %>
-<%@ page import="org.rhq.enterprise.server.test.ResourceGroupTestBeanLocal" %>
-<%@ page import="org.rhq.enterprise.server.test.SubjectRoleTestBeanLocal" %>
-<%@ page import="org.rhq.enterprise.server.test.AlertTemplateTestLocal" %>
-<%@ page import="org.rhq.enterprise.server.cloud.instance.ServerManagerLocal" %>
-<%@ page import="org.rhq.enterprise.server.test.ResourceGroupTestBeanLocal" %>
-<%@ page import="org.rhq.enterprise.server.measurement.MeasurementBaselineManagerLocal" %>
-<%@ page import="org.rhq.enterprise.server.measurement.MeasurementScheduleManagerLocal" %>
-<%@ page import="org.rhq.enterprise.server.core.AgentManagerLocal" %>
-<%@ page import="org.rhq.enterprise.server.system.SystemManagerLocal" %>
-<%@ page import="org.rhq.enterprise.server.auth.SubjectManagerLocal" %>
-<%@ page import="org.rhq.enterprise.server.support.SupportManagerLocal" %>
-<%@page import="org.rhq.enterprise.server.plugin.ServerPluginsLocal"%><html>
-<%@ page import="org.rhq.enterprise.server.util.LookupUtil" %>
-<%@ page import="org.rhq.enterprise.server.scheduler.jobs.DataPurgeJob"%>
-
-<%@ page import="org.rhq.enterprise.server.resource.ResourceTypeManagerRemote"%>
-<%@ page import="org.rhq.core.domain.criteria.ResourceTypeCriteria"%>
-<%@ page import="org.rhq.core.domain.resource.ResourceType"%>
-
-<%@ page import="javax.naming.NamingException" %>
-
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
-<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
-
-<html>
-<head><title>RHQ Test Control Page</title></head>
-<body>
-
-<jsp:include page="/admin/include/adminTestLinks.html" flush="true" />
-
-<%
- CoreTestLocal coreTestBean;
- DiscoveryTestLocal discoveryTestBean;
- MeasurementTestLocal measurementTestBean;
- ResourceGroupTestBeanLocal resourceGroupTestBean;
- SubjectRoleTestBeanLocal subjectRoleTestBean;
- ServerManagerLocal serverManager;
- AlertTemplateTestLocal alertTemplateTestBean;
- MeasurementBaselineManagerLocal measurementBaselineManager;
- MeasurementScheduleManagerLocal measurementScheduleManager;
- AgentManagerLocal agentManager;
- SystemManagerLocal systemManager;
- SubjectManagerLocal subjectManager;
- SupportManagerLocal supportManager;
- ResourceTypeManagerRemote typeManager;
- ServerPluginsLocal serverPlugins;
-
- coreTestBean = LookupUtil.getCoreTest();
- discoveryTestBean = LookupUtil.getDiscoveryTest();
- measurementTestBean = LookupUtil.getMeasurementTest();
- resourceGroupTestBean = LookupUtil.getResourceGroupTestBean();
- subjectRoleTestBean = LookupUtil.getSubjectRoleTestBean();
- serverManager = LookupUtil.getServerManager();
- alertTemplateTestBean = LookupUtil.getAlertTemplateTestBean();
- measurementBaselineManager = LookupUtil.getMeasurementBaselineManager();
- measurementScheduleManager = LookupUtil.getMeasurementScheduleManager();
- agentManager = LookupUtil.getAgentManager();
- systemManager = LookupUtil.getSystemManager();
- subjectManager = LookupUtil.getSubjectManager();
- supportManager = LookupUtil.getSupportManager();
- typeManager = LookupUtil.getResourceTypeManagerRemote();
- serverPlugins = LookupUtil.getServerPlugins();
-
- String result = null;
- String mode = pageContext.getRequest().getParameter("mode");
- String failure = null;
- try
- {
- if ("registerTestAgent".equals(mode))
- {
- coreTestBean.registerTestAgent();
- }
- else if ("registerTestPluginAndTypeInfo".equals(mode))
- {
- discoveryTestBean.registerTestPluginAndTypeInfo();
- }
- else if ("removeTestPluginAndTypeInfo".equals(mode))
- {
- discoveryTestBean.removeTestPluginAndTypeInfo();
- }
- else if ("sendTestFullInventoryReport".equals(mode))
- {
- discoveryTestBean.sendTestFullInventoryReport();
- }
- else if ("sendTestRuntimeInventoryReport".equals(mode))
- {
- discoveryTestBean.sendTestRuntimeInventoryReport();
- }
- else if ("sendTestMeasurementReport".equals(mode))
- {
- measurementTestBean.sendTestMeasurementReport();
- }
- else if ("sendNewPlatform".equals(mode))
- {
- String address = request.getParameter("address");
- int servers = Integer.parseInt(request.getParameter("servers"));
- int servicesPerServer = Integer.parseInt(request.getParameter("servicesPerServer"));
- discoveryTestBean.sendNewPlatform(address, servers, servicesPerServer);
- }
- else if ("setupCompatibleGroups".equals(mode))
- {
- resourceGroupTestBean.setupCompatibleGroups();
- }
- else if ("setupUberMixedGroup".equals(mode))
- {
- resourceGroupTestBean.setupUberMixedGroup();
- }
- else if ("startStats".equals(mode))
- {
- coreTestBean.enableHibernateStatistics();
- }
- else if ("addProblemResource".equals(mode))
- {
- measurementTestBean.addProblemResource();
- }
- else if ("setAgentCurrentlyScheduledMetrics".equals(mode))
- {
- String value = pageContext.getRequest().getParameter("v");
- measurementTestBean.setAgentCurrentlyScheduledMetrics(Double.valueOf(value));
- }
- else if ("addSubjectsAndRoles".equals(mode))
- {
- String roleCount = pageContext.getRequest().getParameter("roleCount");
- String usersInRoleCount = pageContext.getRequest().getParameter("usersInRoleCount");
- subjectRoleTestBean.createRolesAndUsers(Integer.parseInt(roleCount), Integer.parseInt(usersInRoleCount));
- }
- else if ("clusterGetIdentity".equals(mode))
- {
- String serverName = serverManager.getIdentity();
- pageContext.setAttribute("serverName", "(serverName = " + serverName + ")");
- }
- else if ("cloneAlertTemplate".equals(mode))
- {
- String alertTemplateId = pageContext.getRequest().getParameter("alertTemplateId");
- String numberOfClones = pageContext.getRequest().getParameter("numberOfClones");
- alertTemplateTestBean.cloneAlertTemplate(Integer.parseInt(alertTemplateId), Integer.parseInt(numberOfClones));
- }
- else if ("calculateAutoBaselines".equals(mode))
- {
- // for now, baselines aren't calculated until we hit our day limit, we force it here
- java.util.Properties props = systemManager.getSystemConfiguration();
- props.put("CAM_BASELINE_LASTTIME", "0");
- systemManager.setSystemConfiguration(subjectManager.getOverlord(), props,true);
-
- measurementBaselineManager.calculateAutoBaselines();
- }
- else if ("calculateOOBs".equals(mode))
- {
- DataPurgeJob dpj = new DataPurgeJob();
- dpj.calculateOOBs();
- }
- else if ("checkForSuspectAgents".equals(mode))
- {
- agentManager.checkForSuspectAgents();
- }
- else if ("dataPurgeJob".equals(mode))
- {
- DataPurgeJob.purgeNow();
- }
- else if ("dbMaintenance".equals(mode))
- {
- systemManager.vacuum(subjectManager.getOverlord());
- systemManager.reindex(subjectManager.getOverlord());
- systemManager.analyze(subjectManager.getOverlord());
- }
- else if ("metricDisplayRange".equals(mode))
- {
- int lastHours = Integer.parseInt(pageContext.getRequest().getParameter("lastHours"));
- Subject subject = WebUtility.getSubject(request);
- MeasurementPreferences prefs = new MeasurementPreferences(subject);
- MetricRangePreferences rangePrefs = prefs.getMetricRangePreferences();
- rangePrefs.lastN = lastHours;
- prefs.setMetricRangePreferences(rangePrefs);
- }
- else if ("errorCorrectSchedules".equals("mode"))
- {
- measurementScheduleManager.errorCorrectSchedules();
- }
- else if ("generateSnapshotReport".equals(mode))
- {
- int resourceId = Integer.parseInt(request.getParameter("resourceId"));
- String name = request.getParameter("name");
- String description = request.getParameter("description");
- java.net.URL url = supportManager.getSnapshotReport(subjectManager.getOverlord(), resourceId, name, description);
- result = "Snapshot Report is located here: " + url.toString();
- }
- else if ("purgeServerPlugin".equals(mode))
- {
- String serverPluginName = request.getParameter("serverPluginName");
- serverPlugins.purgeServerPlugin(subjectManager.getOverlord(), serverPluginName);
- result = "OK - you can now try to re-register a plugin with the name [" + serverPluginName + "]";
- }
- else if ("typeManagerRemote".equals(mode))
- {
- int typeId = Integer.parseInt(request.getParameter("typeId"));
- ResourceTypeCriteria criteria = new ResourceTypeCriteria();
- criteria.addFilterId(typeId);
- criteria.fetchMetricDefinitions(true);
- java.util.List<ResourceType> types = typeManager.findResourceTypesByCriteria(subjectManager.getOverlord(), criteria);
- result = "";
- for (ResourceType type : types) {
- result += type.getName() + " has " + (type.getMetricDefinitions() != null ? type.getMetricDefinitions().size() : "empty") + " metric definitions";
- }
- }
- }
- catch (Exception e)
- {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- e.printStackTrace(new PrintStream(baos));
- failure = baos.toString();
- }
-
- pageContext.setAttribute("executed", mode);
- pageContext.setAttribute("result", result);
- pageContext.setAttribute("failure", failure);
- pageContext.setAttribute("testAgentReported", Boolean.valueOf(coreTestBean.isTestAgentReported()));
-
-%>
-
-<c:if test="${executed != null}">
- <b>Executed <c:out value="${executed}"/>: </b> <c:out value="${result}"/><br>
- <c:if test="${failure != null}">
- <pre style="background-color: yellow;"><c:out value="${failure}"/></pre>
- </c:if>
-</c:if>
-
-<h2>Administration</h2>
-
-<c:url var="url" value="/admin/test/control.jsp?mode=addSubjectsAndRoles"/>
-Add Lots of Users and Roles
-<form action="<c:out value="${url}"/>" method="get">
- <input type="hidden" name="mode" value="addSubjectsAndRoles"/>
- Number of Roles: <input type="text" name="roleCount" size="5"/><br/>
- Number of Users in each Role: <input type="text" name="usersInRoleCount" size="5"/><br/>
- <input type="submit" value="Send" name="Send"/>
-</form>
-
-
-<ul>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=addSubjectsAndRoles"/>
- <a href="<c:out value="${url}"/>">Report Test Agent</a> (done = <c:out value="${testAgentReported}"/>)</li>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=registerTestPluginAndTypeInfo"/>
- <a href="<c:out value="${url}"/>">Register test plugin metadata</a></li>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=removeTestPluginAndTypeInfo"/>
- <a href="<c:out value="${url}"/>">Remove test plugin metadata</a></li>
-</ul>
-
-<h2>Core</h2>
-
-<ul>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=registerTestAgent"/>
- <a href="<c:out value="${url}"/>">Report Test Agent</a> (done = <c:out value="${testAgentReported}"/>)</li>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=registerTestPluginAndTypeInfo"/>
- <a href="<c:out value="${url}"/>">Register test plugin metadata</a></li>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=removeTestPluginAndTypeInfo"/>
- <a href="<c:out value="${url}"/>">Remove test plugin metadata</a></li>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=dbMaintenance"/>
- <a href="<c:out value="${url}"/>">Perform All Database Maintenance Now</a></li>
-</ul>
-
-<h2>Cluster</h2>
-
-<ul>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=clusterGetIdentity"/>
- <a href="<c:out value="${url}"/>">Get Identity</a> <c:out value="${serverName}"/></li>
-</ul>
-
-<h2>Inventory</h2>
-
-<ul>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=sendTestFullInventoryReport"/>
- <a href="<c:out value="${url}"/>">Send Full Inventory Report</a></li>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=sendTestRuntimeInventoryReport"/>
- <a href="<c:out value="${url}"/>">Send Runtime Inventory Report</a></li>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=setupCompatibleGroups"/>
- <a href="<c:out value="${url}"/>">Setup Compatible Groups</a></li>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=setupUberMixedGroup"/>
- <a href="<c:out value="${url}"/>">Setup Uber Mixed Group</a></li>
-</ul>
-
-<c:url var="url" value="/admin/test/control.jsp?mode=sendNewPlatform"/>
-Send New Platform Inventory Report
-<form action="<c:out value="${url}"/>" method="get">
- <input type="hidden" name="mode" value="sendNewPlatform"/>
- Address: <input type="text" name="address" size="30"/><br/>
- Servers: <input type="text" name="servers" size="5"/><br/>
- Services Per Server: <input type="text" name="servicesPerServer" size="5"/><br/>
- <input type="submit" value="Send" name="Send"/>
-</form>
-
-
-<h2>Measurement</h2>
-
-<ul>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=calculateAutoBaselines"/>
- <a href="<c:out value="${url}"/>">Calculate Auto Baselines</a></li>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=sendTestMeasurementReport"/>
- <a href="<c:out value="${url}"/>">Send Measurement Report</a></li>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=addProblemResource"/>
- <a href="<c:out value="${url}"/>">Add problem Resource</a></li>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=setAgentCurrentlyScheduledMetrics&v=100"/>
- <a href="<c:out value="${url}"/>">Set RHQ Agent 'CurrentlyScheduleMetrics' to 100</a></li>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=setAgentCurrentlyScheduledMetrics&v=50"/>
- <a href="<c:out value="${url}"/>">Set RHQ Agent 'CurrentlyScheduleMetrics' to 50</a></li>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=checkForSuspectAgents"/>
- <a href="<c:out value="${url}"/>">Check For Suspect Agents</a></li>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=dataPurgeJob"/>
- <a href="<c:out value="${url}"/>">Force Data Purge Now</a></li>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=calculateOOBs"/>
- <a href="<c:out value="${url}"/>">Force calculation of OOBs</a></li>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=errorCorrectSchedules"/>
- <a href="<c:out value="${url}"/>">Error-Correct Measurement Schedules</a></li>
-</ul>
-
-<h2>Alerts</h2>
-
-<c:url var="url" value="/admin/test/control.jsp?mode=cloneAlertTemplate"/>
-Template Cloning
-<form action="<c:out value="${url}"/>" method="get">
- <input type="hidden" name="mode" value="cloneAlertTemplate"/>
- Alert Template ID: <input type="text" name="alertTemplateId" size="5"/><br/>
- Number of Clones: <input type="text" name="numberOfClones" size="5"/><br/>
- <input type="submit" value="Send" name="Send"/>
-</form>
-
-<h2>Utilities</h2>
-<ul>
- <li><c:url var="url" value="/admin/test/control.jsp?mode=startStats"/>
- <a href="<c:out value="${url}"/>">Start Hibernate Statistics Collection</a></li>
-</ul>
-
-
-<h2>User Preferences</h2>
-<%
- Subject subject = WebUtility.getSubject(request);
- MeasurementPreferences prefs = new MeasurementPreferences(subject);
- MetricRangePreferences rangePrefs = prefs.getMetricRangePreferences();
- pageContext.setAttribute("lastHours", String.valueOf(rangePrefs.lastN));
-%>
-<form action="<c:out value="${url}"/>" method="get">
- <input type="hidden" name="mode" value="metricDisplayRange"/>
- Last X hours: <input type="text" name="lastHours" size="5" value="<c:out value="${lastHours}"/>"/><br/>
- <input type="submit" value="Send" name="Send"/>
-</form>
-
-<h2>Snapshot Report</h2>
-
-<c:url var="url" value="/admin/test/control.jsp?mode=generateSnapshotReport"/>
-Generate Snapshot Report
-<form action="<c:out value="${url}"/>" method="get">
- <input type="hidden" name="mode" value="generateSnapshotReport"/>
- Resource ID: <input type="text" name="resourceId" size="10"/><br/>
- Name: <input type="text" name="name" size="30"/><br/>
- Description: <input type="text" name="description" size="100"/><br/>
- <input type="submit" value="Generate Snapshot" name="Generate Snapshot"/>
-</form>
-
-<h2>Server Plugins</h2>
-
-<c:url var="url" value="/admin/test/control.jsp?mode=purgeServerPlugin"/>
-Purge Server Plugin (allowing you to re-register it again later)
-<form action="<c:out value="${url}"/>" method="get">
- <input type="hidden" name="mode" value="purgeServerPlugin"/>
- ServerPluginName: <input type="text" name="serverPluginName" size="30"/><br/>
- <input type="submit" value="Purge Server Plugin" name="Purge Server Plugin"/>
-</form>
-
-<h2>Resource Type Criteria</h2>
-
-<c:url var="url" value="/admin/test/control.jsp?mode=typeManagerRemote"/>
-Query ResourceTypes by Criteria
-<form action="<c:out value="${url}"/>" method="get">
- <input type="hidden" name="mode" value="typeManagerRemote"/>
- ResourceType ID: <input type="text" name="typeId" size="10"/><br/>
- <input type="submit" value="Query by Criteria" name="Query by Criteria"/>
-</form>
-
-
-
-</body>
-</html>
+<%@ page import="java.io.ByteArrayOutputStream" %>
+<%@ page import="java.io.PrintStream" %>
+
+<%@ page import="org.rhq.core.domain.auth.Subject" %>
+<%@ page import="org.rhq.core.domain.util.PersistenceUtility" %>
+
+<%@ page import="org.rhq.enterprise.gui.legacy.util.SessionUtils"%>
+<%@ page import="org.rhq.enterprise.gui.util.WebUtility"%>
+
+<%@ page import="org.rhq.enterprise.server.measurement.MeasurementPreferences" %>
+<%@ page import="org.rhq.enterprise.server.measurement.MeasurementPreferences.MetricRangePreferences" %>
+
+<%@ page import="org.rhq.enterprise.server.test.CoreTestLocal" %>
+<%@ page import="org.rhq.enterprise.server.test.DiscoveryTestLocal" %>
+<%@ page import="org.rhq.enterprise.server.test.MeasurementTestLocal" %>
+<%@ page import="org.rhq.enterprise.server.test.ResourceGroupTestBeanLocal" %>
+<%@ page import="org.rhq.enterprise.server.test.SubjectRoleTestBeanLocal" %>
+<%@ page import="org.rhq.enterprise.server.test.AlertTemplateTestLocal" %>
+<%@ page import="org.rhq.enterprise.server.cloud.instance.ServerManagerLocal" %>
+<%@ page import="org.rhq.enterprise.server.test.ResourceGroupTestBeanLocal" %>
+<%@ page import="org.rhq.enterprise.server.measurement.MeasurementBaselineManagerLocal" %>
+<%@ page import="org.rhq.enterprise.server.measurement.MeasurementScheduleManagerLocal" %>
+<%@ page import="org.rhq.enterprise.server.core.AgentManagerLocal" %>
+<%@ page import="org.rhq.enterprise.server.system.SystemManagerLocal" %>
+<%@ page import="org.rhq.enterprise.server.auth.SubjectManagerLocal" %>
+<%@ page import="org.rhq.enterprise.server.support.SupportManagerLocal" %>
+<%@page import="org.rhq.enterprise.server.plugin.ServerPluginsLocal"%><html>
+<%@ page import="org.rhq.enterprise.server.util.LookupUtil" %>
+<%@ page import="org.rhq.enterprise.server.scheduler.jobs.DataPurgeJob"%>
+
+<%@ page import="org.rhq.enterprise.server.resource.ResourceTypeManagerRemote"%>
+<%@ page import="org.rhq.core.domain.criteria.ResourceTypeCriteria"%>
+<%@ page import="org.rhq.core.domain.resource.ResourceType"%>
+
+<%@ page import="javax.naming.NamingException" %>
+
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+
+<html>
+<head><title>RHQ Test Control Page</title></head>
+<body>
+
+<jsp:include page="/admin/include/adminTestLinks.html" flush="true" />
+
+<%
+ CoreTestLocal coreTestBean;
+ DiscoveryTestLocal discoveryTestBean;
+ MeasurementTestLocal measurementTestBean;
+ ResourceGroupTestBeanLocal resourceGroupTestBean;
+ SubjectRoleTestBeanLocal subjectRoleTestBean;
+ ServerManagerLocal serverManager;
+ AlertTemplateTestLocal alertTemplateTestBean;
+ MeasurementBaselineManagerLocal measurementBaselineManager;
+ MeasurementScheduleManagerLocal measurementScheduleManager;
+ AgentManagerLocal agentManager;
+ SystemManagerLocal systemManager;
+ SubjectManagerLocal subjectManager;
+ SupportManagerLocal supportManager;
+ ResourceTypeManagerRemote typeManager;
+ ServerPluginsLocal serverPlugins;
+
+ coreTestBean = LookupUtil.getCoreTest();
+ discoveryTestBean = LookupUtil.getDiscoveryTest();
+ measurementTestBean = LookupUtil.getMeasurementTest();
+ resourceGroupTestBean = LookupUtil.getResourceGroupTestBean();
+ subjectRoleTestBean = LookupUtil.getSubjectRoleTestBean();
+ serverManager = LookupUtil.getServerManager();
+ alertTemplateTestBean = LookupUtil.getAlertTemplateTestBean();
+ measurementBaselineManager = LookupUtil.getMeasurementBaselineManager();
+ measurementScheduleManager = LookupUtil.getMeasurementScheduleManager();
+ agentManager = LookupUtil.getAgentManager();
+ systemManager = LookupUtil.getSystemManager();
+ subjectManager = LookupUtil.getSubjectManager();
+ supportManager = LookupUtil.getSupportManager();
+ typeManager = LookupUtil.getResourceTypeManagerRemote();
+ serverPlugins = LookupUtil.getServerPlugins();
+
+ String result = null;
+ String mode = pageContext.getRequest().getParameter("mode");
+ String failure = null;
+ try
+ {
+ if ("registerTestAgent".equals(mode))
+ {
+ coreTestBean.registerTestAgent();
+ }
+ else if ("registerTestPluginAndTypeInfo".equals(mode))
+ {
+ discoveryTestBean.registerTestPluginAndTypeInfo();
+ }
+ else if ("removeTestPluginAndTypeInfo".equals(mode))
+ {
+ discoveryTestBean.removeTestPluginAndTypeInfo();
+ }
+ else if ("sendTestFullInventoryReport".equals(mode))
+ {
+ discoveryTestBean.sendTestFullInventoryReport();
+ }
+ else if ("sendTestRuntimeInventoryReport".equals(mode))
+ {
+ discoveryTestBean.sendTestRuntimeInventoryReport();
+ }
+ else if ("sendTestMeasurementReport".equals(mode))
+ {
+ measurementTestBean.sendTestMeasurementReport();
+ }
+ else if ("sendNewPlatform".equals(mode))
+ {
+ String address = request.getParameter("address");
+ int servers = Integer.parseInt(request.getParameter("servers"));
+ int servicesPerServer = Integer.parseInt(request.getParameter("servicesPerServer"));
+ discoveryTestBean.sendNewPlatform(address, servers, servicesPerServer);
+ }
+ else if ("setupCompatibleGroups".equals(mode))
+ {
+ resourceGroupTestBean.setupCompatibleGroups();
+ }
+ else if ("setupUberMixedGroup".equals(mode))
+ {
+ resourceGroupTestBean.setupUberMixedGroup();
+ }
+ else if ("startStats".equals(mode))
+ {
+ coreTestBean.enableHibernateStatistics();
+ }
+ else if ("addProblemResource".equals(mode))
+ {
+ measurementTestBean.addProblemResource();
+ }
+ else if ("setAgentCurrentlyScheduledMetrics".equals(mode))
+ {
+ String value = pageContext.getRequest().getParameter("v");
+ measurementTestBean.setAgentCurrentlyScheduledMetrics(Double.valueOf(value));
+ }
+ else if ("addSubjectsAndRoles".equals(mode))
+ {
+ String roleCount = pageContext.getRequest().getParameter("roleCount");
+ String usersInRoleCount = pageContext.getRequest().getParameter("usersInRoleCount");
+ subjectRoleTestBean.createRolesAndUsers(Integer.parseInt(roleCount), Integer.parseInt(usersInRoleCount));
+ }
+ else if ("clusterGetIdentity".equals(mode))
+ {
+ String serverName = serverManager.getIdentity();
+ pageContext.setAttribute("serverName", "(serverName = " + serverName + ")");
+ }
+ else if ("cloneAlertTemplate".equals(mode))
+ {
+ String alertTemplateId = pageContext.getRequest().getParameter("alertTemplateId");
+ String numberOfClones = pageContext.getRequest().getParameter("numberOfClones");
+ alertTemplateTestBean.cloneAlertTemplate(Integer.parseInt(alertTemplateId), Integer.parseInt(numberOfClones));
+ }
+ else if ("calculateAutoBaselines".equals(mode))
+ {
+ // for now, baselines aren't calculated until we hit our day limit, we force it here
+ java.util.Properties props = systemManager.getSystemConfiguration();
+ props.put("CAM_BASELINE_LASTTIME", "0");
+ systemManager.setSystemConfiguration(subjectManager.getOverlord(), props,true);
+
+ measurementBaselineManager.calculateAutoBaselines();
+ }
+ else if ("calculateOOBs".equals(mode))
+ {
+ DataPurgeJob dpj = new DataPurgeJob();
+ dpj.calculateOOBs();
+ }
+ else if ("checkForSuspectAgents".equals(mode))
+ {
+ agentManager.checkForSuspectAgents();
+ }
+ else if ("dataPurgeJob".equals(mode))
+ {
+ DataPurgeJob.purgeNow();
+ }
+ else if ("dbMaintenance".equals(mode))
+ {
+ systemManager.vacuum(subjectManager.getOverlord());
+ systemManager.reindex(subjectManager.getOverlord());
+ systemManager.analyze(subjectManager.getOverlord());
+ }
+ else if ("metricDisplayRange".equals(mode))
+ {
+ int lastHours = Integer.parseInt(pageContext.getRequest().getParameter("lastHours"));
+ Subject subject = WebUtility.getSubject(request);
+ MeasurementPreferences prefs = new MeasurementPreferences(subject);
+ MetricRangePreferences rangePrefs = prefs.getMetricRangePreferences();
+ rangePrefs.lastN = lastHours;
+ prefs.setMetricRangePreferences(rangePrefs);
+ }
+ else if ("errorCorrectSchedules".equals("mode"))
+ {
+ measurementScheduleManager.errorCorrectSchedules();
+ }
+ else if ("generateSnapshotReport".equals(mode))
+ {
+ int resourceId = Integer.parseInt(request.getParameter("resourceId"));
+ String name = request.getParameter("name");
+ String description = request.getParameter("description");
+ java.net.URL url = supportManager.getSnapshotReport(subjectManager.getOverlord(), resourceId, name, description);
+ result = "Snapshot Report is located here: " + url.toString();
+ }
+ else if ("purgeServerPlugin".equals(mode))
+ {
+ String serverPluginName = request.getParameter("serverPluginName");
+ serverPlugins.purgeServerPlugin(subjectManager.getOverlord(), serverPluginName);
+ result = "OK - you can now try to re-register a plugin with the name [" + serverPluginName + "]";
+ }
+ else if ("typeManagerRemote".equals(mode))
+ {
+ int typeId = Integer.parseInt(request.getParameter("typeId"));
+ ResourceTypeCriteria criteria = new ResourceTypeCriteria();
+ criteria.addFilterId(typeId);
+ criteria.fetchMetricDefinitions(true);
+ java.util.List<ResourceType> types = typeManager.findResourceTypesByCriteria(subjectManager.getOverlord(), criteria);
+ result = "";
+ for (ResourceType type : types) {
+ result += type.getName() + " has " + (type.getMetricDefinitions() != null ? type.getMetricDefinitions().size() : "empty") + " metric definitions";
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ e.printStackTrace(new PrintStream(baos));
+ failure = baos.toString();
+ }
+
+ pageContext.setAttribute("executed", mode);
+ pageContext.setAttribute("result", result);
+ pageContext.setAttribute("failure", failure);
+ pageContext.setAttribute("testAgentReported", Boolean.valueOf(coreTestBean.isTestAgentReported()));
+
+%>
+
+<c:if test="${executed != null}">
+ <b>Executed <c:out value="${executed}"/>: </b> <c:out value="${result}"/><br>
+ <c:if test="${failure != null}">
+ <pre style="background-color: yellow;"><c:out value="${failure}"/></pre>
+ </c:if>
+</c:if>
+
+<h2>Administration</h2>
+
+<c:url var="url" value="/admin/test/control.jsp?mode=addSubjectsAndRoles"/>
+Add Lots of Users and Roles
+<form action="<c:out value="${url}"/>" method="get">
+ <input type="hidden" name="mode" value="addSubjectsAndRoles"/>
+ Number of Roles: <input type="text" name="roleCount" size="5"/><br/>
+ Number of Users in each Role: <input type="text" name="usersInRoleCount" size="5"/><br/>
+ <input type="submit" value="Send" name="Send"/>
+</form>
+
+
+<ul>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=addSubjectsAndRoles"/>
+ <a href="<c:out value="${url}"/>">Report Test Agent</a> (done = <c:out value="${testAgentReported}"/>)</li>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=registerTestPluginAndTypeInfo"/>
+ <a href="<c:out value="${url}"/>">Register test plugin metadata</a></li>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=removeTestPluginAndTypeInfo"/>
+ <a href="<c:out value="${url}"/>">Remove test plugin metadata</a></li>
+</ul>
+
+<h2>Core</h2>
+
+<ul>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=registerTestAgent"/>
+ <a href="<c:out value="${url}"/>">Report Test Agent</a> (done = <c:out value="${testAgentReported}"/>)</li>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=registerTestPluginAndTypeInfo"/>
+ <a href="<c:out value="${url}"/>">Register test plugin metadata</a></li>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=removeTestPluginAndTypeInfo"/>
+ <a href="<c:out value="${url}"/>">Remove test plugin metadata</a></li>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=dbMaintenance"/>
+ <a href="<c:out value="${url}"/>">Perform All Database Maintenance Now</a></li>
+</ul>
+
+<h2>Cluster</h2>
+
+<ul>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=clusterGetIdentity"/>
+ <a href="<c:out value="${url}"/>">Get Identity</a> <c:out value="${serverName}"/></li>
+</ul>
+
+<h2>Inventory</h2>
+
+<ul>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=sendTestFullInventoryReport"/>
+ <a href="<c:out value="${url}"/>">Send Full Inventory Report</a></li>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=sendTestRuntimeInventoryReport"/>
+ <a href="<c:out value="${url}"/>">Send Runtime Inventory Report</a></li>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=setupCompatibleGroups"/>
+ <a href="<c:out value="${url}"/>">Setup Compatible Groups</a></li>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=setupUberMixedGroup"/>
+ <a href="<c:out value="${url}"/>">Setup Uber Mixed Group</a></li>
+</ul>
+
+<c:url var="url" value="/admin/test/control.jsp?mode=sendNewPlatform"/>
+Send New Platform Inventory Report
+<form action="<c:out value="${url}"/>" method="get">
+ <input type="hidden" name="mode" value="sendNewPlatform"/>
+ Address: <input type="text" name="address" size="30"/><br/>
+ Servers: <input type="text" name="servers" size="5"/><br/>
+ Services Per Server: <input type="text" name="servicesPerServer" size="5"/><br/>
+ <input type="submit" value="Send" name="Send"/>
+</form>
+
+
+<h2>Measurement</h2>
+
+<ul>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=calculateAutoBaselines"/>
+ <a href="<c:out value="${url}"/>">Calculate Auto Baselines</a></li>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=sendTestMeasurementReport"/>
+ <a href="<c:out value="${url}"/>">Send Measurement Report</a></li>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=addProblemResource"/>
+ <a href="<c:out value="${url}"/>">Add problem Resource</a></li>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=setAgentCurrentlyScheduledMetrics&v=100"/>
+ <a href="<c:out value="${url}"/>">Set RHQ Agent 'CurrentlyScheduleMetrics' to 100</a></li>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=setAgentCurrentlyScheduledMetrics&v=50"/>
+ <a href="<c:out value="${url}"/>">Set RHQ Agent 'CurrentlyScheduleMetrics' to 50</a></li>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=checkForSuspectAgents"/>
+ <a href="<c:out value="${url}"/>">Check For Suspect Agents</a></li>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=dataPurgeJob"/>
+ <a href="<c:out value="${url}"/>">Force Data Purge Now</a></li>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=calculateOOBs"/>
+ <a href="<c:out value="${url}"/>">Force calculation of OOBs</a></li>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=errorCorrectSchedules"/>
+ <a href="<c:out value="${url}"/>">Error-Correct Measurement Schedules</a></li>
+</ul>
+
+<h2>Alerts</h2>
+
+<c:url var="url" value="/admin/test/control.jsp?mode=cloneAlertTemplate"/>
+Template Cloning
+<form action="<c:out value="${url}"/>" method="get">
+ <input type="hidden" name="mode" value="cloneAlertTemplate"/>
+ Alert Template ID: <input type="text" name="alertTemplateId" size="5"/><br/>
+ Number of Clones: <input type="text" name="numberOfClones" size="5"/><br/>
+ <input type="submit" value="Send" name="Send"/>
+</form>
+
+<h2>Utilities</h2>
+<ul>
+ <li><c:url var="url" value="/admin/test/control.jsp?mode=startStats"/>
+ <a href="<c:out value="${url}"/>">Start Hibernate Statistics Collection</a></li>
+</ul>
+
+
+<h2>User Preferences</h2>
+<%
+ Subject subject = WebUtility.getSubject(request);
+ MeasurementPreferences prefs = new MeasurementPreferences(subject);
+ MetricRangePreferences rangePrefs = prefs.getMetricRangePreferences();
+ pageContext.setAttribute("lastHours", String.valueOf(rangePrefs.lastN));
+%>
+<form action="<c:out value="${url}"/>" method="get">
+ <input type="hidden" name="mode" value="metricDisplayRange"/>
+ Last X hours: <input type="text" name="lastHours" size="5" value="<c:out value="${lastHours}"/>"/><br/>
+ <input type="submit" value="Send" name="Send"/>
+</form>
+
+<h2>Snapshot Report</h2>
+
+<c:url var="url" value="/admin/test/control.jsp?mode=generateSnapshotReport"/>
+Generate Snapshot Report
+<form action="<c:out value="${url}"/>" method="get">
+ <input type="hidden" name="mode" value="generateSnapshotReport"/>
+ Resource ID: <input type="text" name="resourceId" size="10"/><br/>
+ Name: <input type="text" name="name" size="30"/><br/>
+ Description: <input type="text" name="description" size="100"/><br/>
+ <input type="submit" value="Generate Snapshot" name="Generate Snapshot"/>
+</form>
+
+<h2>Server Plugins</h2>
+
+<c:url var="url" value="/admin/test/control.jsp?mode=purgeServerPlugin"/>
+Purge Server Plugin (allowing you to re-register it again later)
+<form action="<c:out value="${url}"/>" method="get">
+ <input type="hidden" name="mode" value="purgeServerPlugin"/>
+ ServerPluginName: <input type="text" name="serverPluginName" size="30"/><br/>
+ <input type="submit" value="Purge Server Plugin" name="Purge Server Plugin"/>
+</form>
+
+<h2>Resource Type Criteria</h2>
+
+<c:url var="url" value="/admin/test/control.jsp?mode=typeManagerRemote"/>
+Query ResourceTypes by Criteria
+<form action="<c:out value="${url}"/>" method="get">
+ <input type="hidden" name="mode" value="typeManagerRemote"/>
+ ResourceType ID: <input type="text" name="typeId" size="10"/><br/>
+ <input type="submit" value="Query by Criteria" name="Query by Criteria"/>
+</form>
+
+
+
+</body>
+</html>
commit f04ef82719012571ecfa157eb270c6b0424ad0ac
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Sun Nov 22 22:39:34 2009 -0500
mistakenly deleted the html tag, put it back
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/control.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/control.jsp
index 4d5cfd5..a7c0cbc 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/control.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/control.jsp
@@ -38,7 +38,7 @@
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
-
+<html>
<head><title>RHQ Test Control Page</title></head>
<body>
14 years, 6 months
[rhq] Branch 'pc' - modules/enterprise
by mazz
modules/enterprise/gui/portal-war/src/main/webapp/admin/test/control.jsp | 21 +++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
New commits:
commit a5fcd064dc1d1eea47c2806754c3244e1c000235
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Sun Nov 22 01:59:12 2009 -0500
since there is no current way to "revive" a undeployed plugin from the real GUI, at least provide _some_ way to get back to a state that will let you re-register a plugin again using the test control.jsp page
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/control.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/control.jsp
index f3f0a35..4d5cfd5 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/control.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/control.jsp
@@ -24,6 +24,7 @@
<%@ page import="org.rhq.enterprise.server.system.SystemManagerLocal" %>
<%@ page import="org.rhq.enterprise.server.auth.SubjectManagerLocal" %>
<%@ page import="org.rhq.enterprise.server.support.SupportManagerLocal" %>
+<%@page import="org.rhq.enterprise.server.plugin.ServerPluginsLocal"%><html>
<%@ page import="org.rhq.enterprise.server.util.LookupUtil" %>
<%@ page import="org.rhq.enterprise.server.scheduler.jobs.DataPurgeJob"%>
@@ -37,7 +38,7 @@
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
-<html>
+
<head><title>RHQ Test Control Page</title></head>
<body>
@@ -58,6 +59,7 @@
SubjectManagerLocal subjectManager;
SupportManagerLocal supportManager;
ResourceTypeManagerRemote typeManager;
+ ServerPluginsLocal serverPlugins;
coreTestBean = LookupUtil.getCoreTest();
discoveryTestBean = LookupUtil.getDiscoveryTest();
@@ -73,6 +75,7 @@
subjectManager = LookupUtil.getSubjectManager();
supportManager = LookupUtil.getSupportManager();
typeManager = LookupUtil.getResourceTypeManagerRemote();
+ serverPlugins = LookupUtil.getServerPlugins();
String result = null;
String mode = pageContext.getRequest().getParameter("mode");
@@ -197,6 +200,12 @@
java.net.URL url = supportManager.getSnapshotReport(subjectManager.getOverlord(), resourceId, name, description);
result = "Snapshot Report is located here: " + url.toString();
}
+ else if ("purgeServerPlugin".equals(mode))
+ {
+ String serverPluginName = request.getParameter("serverPluginName");
+ serverPlugins.purgeServerPlugin(subjectManager.getOverlord(), serverPluginName);
+ result = "OK - you can now try to re-register a plugin with the name [" + serverPluginName + "]";
+ }
else if ("typeManagerRemote".equals(mode))
{
int typeId = Integer.parseInt(request.getParameter("typeId"));
@@ -362,6 +371,16 @@ Generate Snapshot Report
<input type="submit" value="Generate Snapshot" name="Generate Snapshot"/>
</form>
+<h2>Server Plugins</h2>
+
+<c:url var="url" value="/admin/test/control.jsp?mode=purgeServerPlugin"/>
+Purge Server Plugin (allowing you to re-register it again later)
+<form action="<c:out value="${url}"/>" method="get">
+ <input type="hidden" name="mode" value="purgeServerPlugin"/>
+ ServerPluginName: <input type="text" name="serverPluginName" size="30"/><br/>
+ <input type="submit" value="Purge Server Plugin" name="Purge Server Plugin"/>
+</form>
+
<h2>Resource Type Criteria</h2>
<c:url var="url" value="/admin/test/control.jsp?mode=typeManagerRemote"/>
14 years, 6 months
[rhq] modules/enterprise
by mazz
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/ServerPluginsBean.java | 5 ++-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/AbstractTypeServerPluginContainer.java | 16 +++++++++-
2 files changed, 19 insertions(+), 2 deletions(-)
New commits:
commit 5413dbb476c615effd97d698ae54b051bcfa02c5
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Sat Nov 21 16:17:38 2009 -0500
actually remove all jobs for the undeployed server plugin
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/ServerPluginsBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/ServerPluginsBean.java
index 8a4ab80..3697caa 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/ServerPluginsBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/ServerPluginsBean.java
@@ -235,6 +235,8 @@ public class ServerPluginsBean implements ServerPluginsLocal {
}
}
+ log.info("Server plugins " + doomedPlugins + " have been undeployed");
+
// only restart if the master was started to begin with; otherwise, leave it down
if (master != null) {
serverPluginService.restartMasterPluginContainer();
@@ -257,6 +259,7 @@ public class ServerPluginsBean implements ServerPluginsLocal {
throw new Exception("Failed to update [" + pluginIds.size() + "] plugins. Count was [" + count + "]");
}
+ log.info((enabled ? "Enabling" : "Disabling") + " server plugins with plugin IDs of " + pluginIds);
return;
}
@@ -324,7 +327,7 @@ public class ServerPluginsBean implements ServerPluginsLocal {
entityManager.flush();
streamPluginFileContentToDatabase(plugin.getId(), pluginFile);
}
- log.debug("Updated plugin entity [" + plugin + "]");
+ log.info("Server plugin [" + plugin.getName() + "] has been registered in the database");
}
return plugin;
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/AbstractTypeServerPluginContainer.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/AbstractTypeServerPluginContainer.java
index 3256bf5..e88e5fd 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/AbstractTypeServerPluginContainer.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/AbstractTypeServerPluginContainer.java
@@ -235,7 +235,21 @@ public abstract class AbstractTypeServerPluginContainer {
*/
public void unschedulePluginJobs(String pluginName) throws Exception {
SchedulerLocal scheduler = LookupUtil.getSchedulerBean();
- scheduler.resumeJobGroup(pluginName);
+
+ // note: all jobs for a plugin are placed in the same group, where the group name is the plugin name
+ String groupName = pluginName;
+
+ scheduler.pauseJobGroup(groupName);
+ String[] jobNames = scheduler.getJobNames(groupName);
+ if (jobNames != null) {
+ for (String jobName : jobNames) {
+ boolean deleted = scheduler.deleteJob(jobName, groupName);
+ if (!deleted) {
+ log.warn("Plugin [" + pluginName + "] failed to get its job [" + jobName + "] unscheduled!");
+ }
+ }
+ }
+
return;
}
14 years, 6 months