Mercurial > hg > thermostat-ng > agent
changeset 1761:13b1fba7d797
Remove remaining devel build vs. release build differences.
Reviewed-by: omajid
Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2015-June/014168.html
author | Severin Gehwolf <sgehwolf@redhat.com> |
---|---|
date | Mon, 22 Jun 2015 19:25:50 +0200 |
parents | b2196c1fa9a1 |
children | 36ac62292ea5 |
files | build-deps/pom.xml distribution/config/agent.auth distribution/config/examples/thermostat-roles-example.properties distribution/config/examples/thermostat-users-example.properties distribution/config/thermostat-roles.properties distribution/config/thermostat-users.properties distribution/pom.xml distribution/scripts/thermostat-devsetup integration-tests/itest-run/pom.xml integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/DevWebStorageTest.java integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/IntegrationTest.java integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/WebAppTest.java integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/WebStorageUsingIntegrationTest.java pom.xml |
diffstat | 14 files changed, 452 insertions(+), 530 deletions(-) [+] |
line wrap: on
line diff
--- a/build-deps/pom.xml Thu Jun 18 18:13:42 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,299 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - Copyright 2012-2015 Red Hat, Inc. - - This file is part of Thermostat. - - Thermostat is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 2, or (at your - option) any later version. - - Thermostat is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Thermostat; see the file COPYING. If not see - <http://www.gnu.org/licenses/>. - - Linking this code with other modules is making a combined work - based on this code. Thus, the terms and conditions of the GNU - General Public License cover the whole combination. - - As a special exception, the copyright holders of this code give - you permission to link this code with independent modules to - produce an executable, regardless of the license terms of these - independent modules, and to copy and distribute the resulting - executable under terms of your choice, provided that you also - meet, for each linked independent module, the terms and conditions - of the license of that module. An independent module is a module - which is not derived from or based on this code. If you modify - this code, you may extend this exception to your version of the - library, but you are not obligated to do so. If you do not wish - to do so, delete this exception statement from your version. - ---> -<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/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <artifactId>thermostat</artifactId> - <groupId>com.redhat.thermostat</groupId> - <version>1.99.2-SNAPSHOT</version> - </parent> - - <artifactId>thermostat-build-deps</artifactId> - <packaging>pom</packaging> - <name>Thermostat Build Artifact Dependencies</name> - - <!-- List all dependencies for release builds here. - Extra deps for development builds go into - ../distribution/pom.xml (dev-build profile) - directly. It is assumed that release-build artifacts - are a subset of devel-build artifacts --> - <dependencies> - <!-- thermostat core parts. Be sure to - also adjust ../distribution/assembly/core-assembly.xml --> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-main</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-launcher</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-client-swing</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-swing-components</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-client-command</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-client-cli</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-osgi-living-vm-filter-swing</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-agent-core</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-agent-cli</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-storage-cli</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-agent-command</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-agent-proxy-server</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-killvm-agent</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-killvm-client-swing</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-common-core</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-common-command</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-osgi-process-handler</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-keyring</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-laf-utils</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-web-client</artifactId> - <version>${project.version}</version> - </dependency> - <!-- depend on the web archive to be built in order - to be able to copy the exploded war into the - image directory --> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-web-war</artifactId> - <version>${project.version}</version> - <type>war</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-system-backend</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-storage-mongodb</artifactId> - <version>${project.version}</version> - </dependency> - - <!-- Plugins --> - - <!-- Be sure to add the distribution module of your plugin below - with type "zip", and also to ../distribution/assembly/all-plugin-assembly.xml --> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-host-cpu-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-validate-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-host-memory-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-host-overview-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-notes-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-numa-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-storage-profile-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-thread-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-vm-classstat-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-vm-cpu-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-vm-gc-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-vm-heap-analysis-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-vm-io-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-vm-jmx-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-vm-memory-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-vm-overview-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-vm-profiler-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-web-endpoint-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-killvm-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - </dependencies> -</project>
--- a/distribution/config/agent.auth Thu Jun 18 18:13:42 2015 +0200 +++ b/distribution/config/agent.auth Mon Jun 22 19:25:50 2015 +0200 @@ -6,4 +6,3 @@ # #username=thermostat #password=thermostat -${agent.auth.snippet}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/distribution/config/examples/thermostat-roles-example.properties Mon Jun 22 19:25:50 2015 +0200 @@ -0,0 +1,60 @@ +# This file is used if the PropertiesUsernameRolesLoginModule is used +# as a delegate in the JAAS configuration *and* the 'roles.properties' option +# has not been specified for the login module. +# +# If that is the case, this file does two things: +# 1. It maps user names to roles. +# 2. Defines an optional recursive set of roles. This is useful in order to +# define role sets. Users can then be members of such defined role sets. +# Note that every line which does not have a user name (as defined in the +# corresponding users.properties file) on the left hand side of the +# equals sign ('='), represents a role. +# +# A user is assigned multiple roles by separating them by a comma ','. Every +# entity in this file which isn't a user name, will be implicitly defined as a +# role. +# +############################################################################## +# The following makes user 'agent-tester' a user suitable for running +# "thermostat agent". +agent-tester=thermostat-agent, thermostat-grant-write-files-all-agent + +############################################################################## +# The following makes user 'client-tester' a user suitable for running the GUI and/or +# shell client. needs thermostat-purge role for clean-data command to work +client-tester=thermostat-grant-read-all-client, thermostat-cmdc, thermostat-purge + +# Agent recursive role +thermostat-agent = thermostat-cmdc-verify, \ + thermostat-login, \ + thermostat-prepare-statement, \ + thermostat-purge, \ + thermostat-register-category, \ + thermostat-realm, \ + thermostat-save-file, \ + thermostat-write +# Grant agent role so as to be able to write any file +thermostat-grant-write-files-all-agent = thermostat-files-grant-write-filename-ALL + +# Client recursive role (granting a client to read all data + all files) +thermostat-grant-read-all-client = thermostat-agents-grant-read-agentId-ALL, \ + thermostat-cmdc-generate, \ + thermostat-hosts-grant-read-hostname-ALL, \ + thermostat-load-file, \ + thermostat-login, \ + thermostat-prepare-statement, \ + thermostat-query, \ + thermostat-realm, \ + thermostat-register-category, \ + thermostat-vms-grant-read-username-ALL, \ + thermostat-vms-grant-read-vmId-ALL, \ + thermostat-files-grant-read-filename-ALL, \ + thermostat-write +# Grants all command channel operations +thermostat-cmdc = thermostat-cmdc-grant-garbage-collect, \ + thermostat-cmdc-grant-dump-heap, \ + thermostat-cmdc-grant-thread-harvester, \ + thermostat-cmdc-grant-killvm, \ + thermostat-cmdc-grant-profile-vm, \ + thermostat-cmdc-grant-ping, \ + thermostat-cmdc-grant-jmx-toggle-notifications
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/distribution/config/examples/thermostat-users-example.properties Mon Jun 22 19:25:50 2015 +0200 @@ -0,0 +1,14 @@ +# This file is used if the PropertiesUsernameRolesLoginModule is used +# as a delegate in the JAAS configuration *and* the 'users.properties' option +# has not been specified for the login module. +# +# If that is the case, this defines the database of users with corresponding +# passwords, the thermostat web storage servlet knows about. +# +# WARNING: Passwords of users are in plain text. This needs to be considered +# when using this module in production. The main goal of this login +# module is to provide a simple way to define thermostat users and +# their corresponding passwords. +# +agent-tester=tester +client-tester=tester
--- a/distribution/config/thermostat-roles.properties Thu Jun 18 18:13:42 2015 +0200 +++ b/distribution/config/thermostat-roles.properties Mon Jun 22 19:25:50 2015 +0200 @@ -75,4 +75,3 @@ # thermostat-cmdc-grant-profile-vm, \ # thermostat-cmdc-grant-ping, \ # thermostat-cmdc-grant-jmx-toggle-notifications -${dev.roles.snippet}
--- a/distribution/config/thermostat-users.properties Thu Jun 18 18:13:42 2015 +0200 +++ b/distribution/config/thermostat-users.properties Mon Jun 22 19:25:50 2015 +0200 @@ -17,4 +17,3 @@ # user2=password2 # ... # -${dev.users.snippet}
--- a/distribution/pom.xml Thu Jun 18 18:13:42 2015 +0200 +++ b/distribution/pom.xml Mon Jun 22 19:25:50 2015 +0200 @@ -179,6 +179,16 @@ </includes> </resource> <resource> + <directory>config/examples</directory> + <targetPath>image/etc/examples</targetPath> + <filtering>false</filtering> + <includes> + <!-- Example files with real users. agent-tester and client-tester --> + <include>thermostat-users-example.properties</include> + <include>thermostat-roles-example.properties</include> + </includes> + </resource> + <resource> <directory>config</directory> <targetPath>image/etc/plugins.d</targetPath> <filtering>true</filtering> @@ -276,80 +286,257 @@ </plugin> </plugins> </build> - <!-- Define two build profiles. One for development builds. Another for - release builds. All dependencies for release builds are specified in - build-deps/pom.xml. Any extra dependencies for a devel-build - go into the dev-build profile directly. - --> - <profiles> - <profile> <!-- dev-build --> - <id>dev-build</id> - <activation> - <property> - <name>environment.type</name> - <value>!release</value> - </property> - </activation> - <dependencies> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-build-deps</artifactId> - <version>${project.version}</version> - <type>pom</type> - </dependency> - <!-- This duplication needs to be here since copy-dependencies plugin - which prepares the exploded web archive would fail - otherwise --> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-web-war</artifactId> - <version>${project.version}</version> - <type>war</type> - </dependency> - - <!-- Plugins --> - - <!-- Be sure to add the distribution module of your plugin below - with type "zip", and also to distribution/assembly/all-plugin-assembly.xml --> + <dependencies> + <!-- thermostat core parts. Be sure to + also adjust ../distribution/assembly/core-assembly.xml --> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-main</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-launcher</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-client-swing</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-swing-components</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-client-command</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-client-cli</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-osgi-living-vm-filter-swing</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-agent-core</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-agent-cli</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-storage-cli</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-agent-command</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-agent-proxy-server</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-killvm-agent</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-killvm-client-swing</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-common-core</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-common-command</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-osgi-process-handler</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-keyring</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-laf-utils</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-web-client</artifactId> + <version>${project.version}</version> + </dependency> + <!-- depend on the web archive to be built in order + to be able to copy the exploded war into the + image directory --> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-web-war</artifactId> + <version>${project.version}</version> + <type>war</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-system-backend</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-storage-mongodb</artifactId> + <version>${project.version}</version> + </dependency> + + <!-- Plugins --> - <!-- build list-categories command for dev builds only --> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-schema-info-distribution</artifactId> - <version>${project.version}</version> - <type>zip</type> - </dependency> - </dependencies> - </profile> <!-- dev-build --> + <!-- Be sure to add the distribution module of your plugin below + with type "zip", and also to ../distribution/assembly/all-plugin-assembly.xml --> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-host-cpu-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-validate-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-host-memory-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-host-overview-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-notes-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-numa-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-storage-profile-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-thread-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-vm-classstat-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-vm-cpu-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-vm-gc-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-vm-heap-analysis-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-vm-io-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-vm-jmx-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-vm-memory-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-vm-overview-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-vm-profiler-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-web-endpoint-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-killvm-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> - <profile> <!-- release-build --> - <id>release-build</id> - <activation> - <property> - <name>environment.type</name> - <value>release</value> - </property> - </activation> - <dependencies> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-build-deps</artifactId> - <version>${project.version}</version> - <type>pom</type> - </dependency> - <!-- This duplication needs to be here since copy-dependencies plugin - which prepares the exploded web archive would fail - otherwise --> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-web-war</artifactId> - <version>${project.version}</version> - <type>war</type> - </dependency> - </dependencies> - </profile> <!-- release-build --> + <!-- list-categories command --> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-schema-info-distribution</artifactId> + <version>${project.version}</version> + <type>zip</type> + </dependency> + </dependencies> - </profiles> </project>
--- a/distribution/scripts/thermostat-devsetup Thu Jun 18 18:13:42 2015 +0200 +++ b/distribution/scripts/thermostat-devsetup Mon Jun 22 19:25:50 2015 +0200 @@ -61,5 +61,10 @@ exit $retval fi -# Copy the agent.auth file into USER_THERMOSTAT_HOME -cp -v $THERMOSTAT_HOME/etc/agent.auth $USER_THERMOSTAT_HOME/etc/agent.auth +# Use example users/roles files: +# thermostat-users-example.properties +# thermostat-roles-example.properties +cp -v $THERMOSTAT_HOME/etc/examples/thermostat-users-example.properties $THERMOSTAT_HOME/etc/thermostat-users.properties +cp -v $THERMOSTAT_HOME/etc/examples/thermostat-roles-example.properties $THERMOSTAT_HOME/etc/thermostat-roles.properties +# Use the agent-tester user as defined in thermostat-users-example.properties +echo -e 'username=agent-tester\npassword=tester' > $USER_THERMOSTAT_HOME/etc/agent.auth
--- a/integration-tests/itest-run/pom.xml Thu Jun 18 18:13:42 2015 +0200 +++ b/integration-tests/itest-run/pom.xml Mon Jun 22 19:25:50 2015 +0200 @@ -87,7 +87,6 @@ <configuration> <argLine> -Djava.security.auth.login.config=${thermostat.home}/etc/thermostat_jaas.conf - -Ddevel.build=${devel.build} ${coverageAgent} </argLine> <skip>true</skip>
--- a/integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/DevWebStorageTest.java Thu Jun 18 18:13:42 2015 +0200 +++ b/integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/DevWebStorageTest.java Mon Jun 22 19:25:50 2015 +0200 @@ -44,27 +44,35 @@ import java.nio.file.NoSuchFileException; import java.util.Map; -import org.junit.After; -import org.junit.Before; +import org.junit.AfterClass; +import org.junit.BeforeClass; import org.junit.Test; import expectj.Spawn; -public class DevWebStorageTest extends IntegrationTest { +public class DevWebStorageTest extends WebStorageUsingIntegrationTest { private static final String THERMOSTAT_DEV_SETUP_SCRIPT = "thermostat-devsetup"; - @Before - public void setUp() throws Exception { + @BeforeClass + public static void setUp() throws IOException { clearStorageDataDirectory(); + backupOriginalCredentialsFiles(); + try { + runThermostatDevSetup(); + } catch (Exception e) { + e.printStackTrace(); + restoreBackedUpCredentialsFiles(); + } } - @After - public void tearDown() throws IOException { + @AfterClass + public static void tearDown() throws IOException { removeSetupCompleteStampFiles(); removeAgentAuthFile(); + restoreBackedUpCredentialsFiles(); clearStorageDataDirectory(); } @@ -77,35 +85,17 @@ } } + /** + * Singleton sanity check test whether web-storage-service works OK. + * + * @throws Exception + */ @Test public void canRunWebStorageService() throws Exception { - if (isDevelopmentBuild()) { - // test setup - removeSetupCompleteStampFiles(); - - // run the test methods - runThermostatSetup(); - runWebStorageTest(); - } - // otherwise service is not build so don't run the - // test. - } - - private void runThermostatSetup() throws Exception { - Spawn setup = spawnScript(THERMOSTAT_DEV_SETUP_SCRIPT, new String[] {}); - setup.expectClose(); - String stdout = setup.getCurrentStandardOutContents(); - // cp -v of thermostat-devsetup should produce this - assertTrue("was agent.auth copied?", stdout.contains("distribution/target/user-home/etc/agent.auth")); - assertTrue(stdout.contains("Thermostat setup complete!")); - assertTrue(stdout.contains("mongodevuser")); - } - - private void runWebStorageTest() throws Exception { Map<String, String> testProperties = getVerboseModeProperties(); SpawnResult spawnResult = spawnThermostatWithPropertiesSetAndGetProcess(testProperties, "web-storage-service"); Spawn service = spawnResult.spawn; - + try { service.expect("Agent started."); } finally { @@ -119,7 +109,19 @@ // ignore if second try of stopping storage failed. } } - + service.expectClose(); } + + /* + * This overwrites stock thermostat-users/roles.properties files. Therefore + * we back them up before we run the test. + */ + private static void runThermostatDevSetup() throws Exception { + Spawn setup = spawnScript(THERMOSTAT_DEV_SETUP_SCRIPT, new String[] {}); + setup.expectClose(); + String stdout = setup.getCurrentStandardOutContents(); + assertTrue(stdout.contains("Thermostat setup complete!")); + assertTrue(stdout.contains("mongodevuser")); + } }
--- a/integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/IntegrationTest.java Thu Jun 18 18:13:42 2015 +0200 +++ b/integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/IntegrationTest.java Mon Jun 22 19:25:50 2015 +0200 @@ -395,11 +395,6 @@ } - protected static boolean isDevelopmentBuild() { - boolean isDevelBuild = Boolean.getBoolean("devel.build"); - return isDevelBuild; - } - /** * Kill the process and all its children, recursively. Sends SIGTERM. */
--- a/integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/WebAppTest.java Thu Jun 18 18:13:42 2015 +0200 +++ b/integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/WebAppTest.java Mon Jun 22 19:25:50 2015 +0200 @@ -51,8 +51,6 @@ import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.StandardCopyOption; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -65,7 +63,6 @@ import java.util.Set; import java.util.UUID; import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import org.eclipse.jetty.server.Server; @@ -118,7 +115,6 @@ import expectj.ExpectJ; import expectj.Spawn; -import expectj.TimeoutException; /** * This test class starts up a mongod instance and a web storage instance @@ -136,7 +132,7 @@ * Please don't introduce any more sporadic test failures to this * integration test!!! */ -public class WebAppTest extends IntegrationTest { +public class WebAppTest extends WebStorageUsingIntegrationTest { /* * Registry of descriptors this test needs to allow in order to avoid @@ -242,32 +238,20 @@ private static final String TEST_USER = "testuser"; private static final String TEST_PASSWORD = "testpassword"; private static final double EQUALS_DELTA = 0.00000000000001; - private static final String THERMOSTAT_USERS_FILE = getConfigurationDir() + "/thermostat-users.properties"; - private static final String THERMOSTAT_ROLES_FILE = getConfigurationDir() + "/thermostat-roles.properties"; - private static final String THERMOSTAT_WEB_AUTH_FILE = getConfigurationDir() + "/web.auth"; + private static final String VM_ID1 = "vmId1"; private static final String VM_ID2 = "vmId2"; private static final String VM_ID3 = "vmId3"; private static Server server; private static int port; - private static Path backupUsers; - private static Path backupRoles; - private static Path backupWebAuth; + @BeforeClass public static void setUpOnce() throws Exception { clearStorageDataDirectory(); - backupUsers = Files.createTempFile("itest-backup-thermostat-users", ""); - backupRoles = Files.createTempFile("itest-backup-thermostat-roles", ""); - backupWebAuth = Files.createTempFile("itest-backup-webapp-auth", ""); - backupRoles.toFile().deleteOnExit(); - backupUsers.toFile().deleteOnExit(); - backupWebAuth.toFile().deleteOnExit(); - Files.copy(new File(THERMOSTAT_USERS_FILE).toPath(), backupUsers, StandardCopyOption.REPLACE_EXISTING); - Files.copy(new File(THERMOSTAT_ROLES_FILE).toPath(), backupRoles, StandardCopyOption.REPLACE_EXISTING); - Files.copy(new File(THERMOSTAT_WEB_AUTH_FILE).toPath(), backupWebAuth, StandardCopyOption.REPLACE_EXISTING); + backupOriginalCredentialsFiles(); createFakeSetupCompleteFile(); createFakeUserSetupDoneFile(); @@ -325,9 +309,7 @@ throw e; } finally { removeSetupCompleteStampFiles(); - Files.copy(backupUsers, new File(THERMOSTAT_USERS_FILE).toPath(), StandardCopyOption.REPLACE_EXISTING); - Files.copy(backupRoles, new File(THERMOSTAT_ROLES_FILE).toPath(), StandardCopyOption.REPLACE_EXISTING); - Files.copy(backupWebAuth, new File(THERMOSTAT_WEB_AUTH_FILE).toPath(), StandardCopyOption.REPLACE_EXISTING); + restoreBackedUpCredentialsFiles(); System.out.println("RESTORED backed-up files!"); clearStorageDataDirectory(); }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/WebStorageUsingIntegrationTest.java Mon Jun 22 19:25:50 2015 +0200 @@ -0,0 +1,72 @@ +/* + * Copyright 2012-2015 Red Hat, Inc. + * + * This file is part of Thermostat. + * + * Thermostat is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2, or (at your + * option) any later version. + * + * Thermostat is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Thermostat; see the file COPYING. If not see + * <http://www.gnu.org/licenses/>. + * + * Linking this code with other modules is making a combined work + * based on this code. Thus, the terms and conditions of the GNU + * General Public License cover the whole combination. + * + * As a special exception, the copyright holders of this code give + * you permission to link this code with independent modules to + * produce an executable, regardless of the license terms of these + * independent modules, and to copy and distribute the resulting + * executable under terms of your choice, provided that you also + * meet, for each linked independent module, the terms and conditions + * of the license of that module. An independent module is a module + * which is not derived from or based on this code. If you modify + * this code, you may extend this exception to your version of the + * library, but you are not obligated to do so. If you do not wish + * to do so, delete this exception statement from your version. + */ + +package com.redhat.thermostat.itest; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; + +public class WebStorageUsingIntegrationTest extends IntegrationTest { + + protected static final String THERMOSTAT_USERS_FILE = getConfigurationDir() + "/thermostat-users.properties"; + protected static final String THERMOSTAT_ROLES_FILE = getConfigurationDir() + "/thermostat-roles.properties"; + protected static final String THERMOSTAT_WEB_AUTH_FILE = getConfigurationDir() + "/web.auth"; + + private static Path backupUsers; + private static Path backupRoles; + private static Path backupWebAuth; + + protected static void backupOriginalCredentialsFiles() throws IOException { + backupUsers = Files.createTempFile("itest-backup-thermostat-users", ""); + backupRoles = Files.createTempFile("itest-backup-thermostat-roles", ""); + backupWebAuth = Files.createTempFile("itest-backup-webapp-auth", ""); + backupRoles.toFile().deleteOnExit(); + backupUsers.toFile().deleteOnExit(); + backupWebAuth.toFile().deleteOnExit(); + Files.copy(new File(THERMOSTAT_USERS_FILE).toPath(), backupUsers, StandardCopyOption.REPLACE_EXISTING); + Files.copy(new File(THERMOSTAT_ROLES_FILE).toPath(), backupRoles, StandardCopyOption.REPLACE_EXISTING); + Files.copy(new File(THERMOSTAT_WEB_AUTH_FILE).toPath(), backupWebAuth, StandardCopyOption.REPLACE_EXISTING); + } + + protected static void restoreBackedUpCredentialsFiles() throws IOException { + Files.copy(backupUsers, new File(THERMOSTAT_USERS_FILE).toPath(), StandardCopyOption.REPLACE_EXISTING); + Files.copy(backupRoles, new File(THERMOSTAT_ROLES_FILE).toPath(), StandardCopyOption.REPLACE_EXISTING); + Files.copy(backupWebAuth, new File(THERMOSTAT_WEB_AUTH_FILE).toPath(), StandardCopyOption.REPLACE_EXISTING); + } +}
--- a/pom.xml Thu Jun 18 18:13:42 2015 +0200 +++ b/pom.xml Mon Jun 22 19:25:50 2015 +0200 @@ -113,88 +113,6 @@ </plugin> </plugins> </build> - - </profile> - <!-- Development settings for web.xml. Release builds should - have the "environment.type=release" property. --> - <profile> - <id>dev-build</id> - <activation> - <property> - <name>environment.type</name> - <value>!release</value> - </property> - </activation> - <properties> - <!-- - The devel.build property is used in the WebAppTest integration - test. For this test to work for devel builds, we need - to perform actual setup of the below mongodb credentials. - Why? Because the snippet for a devel build has the - storage username/password NOT commented out in the - web.xml of the web archive. That results in MongoConnection - of WebAppTest use non-null creds. If those are used mongodb - connections would fail with auth-fail if the creds are not - set up. - --> - <devel.build>true</devel.build> - <agent.dev.username> agent-tester </agent.dev.username> - <agent.dev.password> tester </agent.dev.password> - <mongodb.dev.username> mongodevuser </mongodb.dev.username> - <mongodb.dev.password> mongodevpassword </mongodb.dev.password> - <!-- - Used in thermostat-users.properties. We define two users. - One client user and one agent user. - --> - <dev.users.snippet> -${agent.dev.username}=${agent.dev.password} -client-tester=tester - </dev.users.snippet> - <dev.roles.snippet> -# Roles for our two dev users -${agent.dev.username}=thermostat-agent, thermostat-grant-write-files-all-agent -# client-tester needs thermostat-purge role for clean-data command to work -client-tester=thermostat-grant-read-all-client, thermostat-cmdc, thermostat-purge -# Agent recursive role -thermostat-agent = thermostat-cmdc-verify, \ - thermostat-login, \ - thermostat-prepare-statement, \ - thermostat-purge, \ - thermostat-register-category, \ - thermostat-realm, \ - thermostat-save-file, \ - thermostat-write -# Grant agent to write any file -thermostat-grant-write-files-all-agent = thermostat-files-grant-write-filename-ALL - -# Client recursive role (granting a client to read all data + all files) -thermostat-grant-read-all-client = thermostat-agents-grant-read-agentId-ALL, \ - thermostat-cmdc-generate, \ - thermostat-hosts-grant-read-hostname-ALL, \ - thermostat-load-file, \ - thermostat-login, \ - thermostat-prepare-statement, \ - thermostat-query, \ - thermostat-realm, \ - thermostat-register-category, \ - thermostat-vms-grant-read-username-ALL, \ - thermostat-vms-grant-read-vmId-ALL, \ - thermostat-files-grant-read-filename-ALL, \ - thermostat-write -# Grants all command channel operations -thermostat-cmdc = thermostat-cmdc-grant-garbage-collect, \ - thermostat-cmdc-grant-dump-heap, \ - thermostat-cmdc-grant-thread-harvester, \ - thermostat-cmdc-grant-killvm, \ - thermostat-cmdc-grant-profile-vm, \ - thermostat-cmdc-grant-ping, \ - thermostat-cmdc-grant-jmx-toggle-notifications - </dev.roles.snippet> - <agent.auth.snippet> -username=${agent.dev.username} -password=${agent.dev.password} - </agent.auth.snippet> - </properties> </profile> <profile> <id>skip-license-check-on-skip-tests</id> @@ -305,18 +223,11 @@ to change to a newer version, unless you abolutely have to. --> <javax.servlet.version>2.5</javax.servlet.version> - <!-- - Used in thermostat-users.properties and - thermostat-roles.properties respectively. We don't define - users or roles for release builds. Hence, those - empty property definitions. - --> - <dev.users.snippet /> <!-- intentionally empty --> - <dev.roles.snippet /> <!-- intentionally empty --> - <agent.auth.snippet /> <!-- intentionally empty --> <!-- see web/common/pom.xml for an example as to how this is used --> <surefire-perftests-exclusion>com.redhat.thermostat.testutils.PerformanceTest</surefire-perftests-exclusion> <surefire-argline /> <!-- intentionally empty --> + <mongodb.dev.username> mongodevuser </mongodb.dev.username> + <mongodb.dev.password> mongodevpassword </mongodb.dev.password> </properties> <modules> @@ -354,9 +265,6 @@ <module>thermostat-plugin-validator</module> <module>validate-command</module> <module>config</module> - <!-- pom-only artifact for reducing duplication - of deps across dev/release build profiles --> - <module>build-deps</module> <!-- development related modules --> <module>integration-tests</module> <module>dev</module>