Ondřej Macháček has uploaded a new change for review.

Change subject: aaa: extensions test tool: logger
......................................................................

aaa: extensions test tool: logger

Change-Id: Ie06113c5d56a49e58d557c851f9ff00b9a9ca409
Signed-off-by: Ondra Machacek <omach...@redhat.com>
---
A 
backend/manager/extension-tool/backend/manager/extension-tool/src/main/modules/org/ovirt/engine/core/extension-tool/main/module.xml
A backend/manager/extension-tool/pom.xml
A 
backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ExtensionsToolArguments.java
A 
backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ExtensionsToolExecutor.java
A 
backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ExtensionsToolFactory.java
A 
backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ExtensionsToolLoader.java
A 
backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/Module.java
A 
backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ModuleService.java
A 
backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/logger/services/LoggerService.java
A 
backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/logger/services/LoggerServiceImpl.java
A 
backend/manager/extension-tool/src/main/resources/META-INF/services/org.ovirt.engine.exttool.logger.services.LoggerService
A 
backend/manager/extension-tool/src/main/resources/org/ovirt/engine/exttool/core/help.properties
A 
backend/manager/extension-tool/src/main/resources/org/ovirt/engine/exttool/logger/services/help.properties
M backend/manager/pom.xml
M ovirt-engine.spec.in
A packaging/bin/ovirt-engine-extensions-tool.sh
M pom.xml
17 files changed, 500 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/86/37886/1

diff --git 
a/backend/manager/extension-tool/backend/manager/extension-tool/src/main/modules/org/ovirt/engine/core/extension-tool/main/module.xml
 
b/backend/manager/extension-tool/backend/manager/extension-tool/src/main/modules/org/ovirt/engine/core/extension-tool/main/module.xml
new file mode 100644
index 0000000..97aae04
--- /dev/null
+++ 
b/backend/manager/extension-tool/backend/manager/extension-tool/src/main/modules/org/ovirt/engine/core/extension-tool/main/module.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<module xmlns="urn:jboss:module:1.1" 
name="org.ovirt.engine.core.extension-tool">
+
+  <resources>
+    <resource-root path="extension-tool.jar"/>
+  </resources>
+
+  <dependencies>
+    <module name="org.ovirt.engine.api.ovirt-engine-extensions-api"/>
+    <module name="org.ovirt.engine.core.extensions-manager"/>
+    <module name="org.ovirt.engine.core.uutils"/>
+  </dependencies>
+</module>
diff --git a/backend/manager/extension-tool/pom.xml 
b/backend/manager/extension-tool/pom.xml
new file mode 100644
index 0000000..5c34d9d
--- /dev/null
+++ b/backend/manager/extension-tool/pom.xml
@@ -0,0 +1,112 @@
+<?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.ovirt.engine.core</groupId>
+    <artifactId>manager</artifactId>
+    <version>3.6.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>extension-tool</artifactId>
+  <packaging>jar</packaging>
+  <name>oVirt Engine extensions tool</name>
+  <description>oVirt Engine extensions tools</description>
+
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>${junit.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${engine.groupId}</groupId>
+      <artifactId>extensions-manager</artifactId>
+      <version>${engine.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>${engine.groupId}</groupId>
+      <artifactId>uutils</artifactId>
+      <version>${engine.version}</version>
+    </dependency>
+     <dependency>
+        <groupId>commons-logging</groupId>
+        <artifactId>commons-logging</artifactId>
+        <version>${commons-logging.version}</version>
+        <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <additionalClasspathElements>
+            
<additionalClasspathElement>${basedir}/**/src/test/java</additionalClasspathElement>
+          </additionalClasspathElements>
+        </configuration>
+      </plugin>
+
+      <!-- Create the JBoss module: -->
+      <plugin>
+        <groupId>org.ovirt.engine</groupId>
+        <artifactId>jboss-modules-maven-plugin</artifactId>
+      </plugin>
+      <!--
+      <plugin>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+      </plugin>
+      -->
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+        <id>findbugs</id>
+        <activation>
+            <activeByDefault>true</activeByDefault>
+        </activation>
+        <build>
+            <plugins>
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>findbugs-maven-plugin</artifactId>
+                    <version>${findbugs.version}</version>
+                    <configuration>
+                        <xmlOutput>true</xmlOutput>
+                        <!-- Optional directory to put findbugs xdoc xml 
report -->
+                        <excludeFilterFile> 
${basedir}/exclude-filters.xml</excludeFilterFile>
+                        <xmlOutputDirectory>target/site</xmlOutputDirectory>
+                    </configuration>
+                </plugin>
+            </plugins>
+        </build>
+    </profile>
+
+    <profile>
+        <id>findbugs-general</id>
+        <build>
+            <plugins>
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>findbugs-maven-plugin</artifactId>
+                    <version>${findbugs.version}</version>
+                    <configuration>
+                        <xmlOutput>true</xmlOutput>
+                        <!-- Optional directory to put findbugs xdoc xml 
report -->
+                        <excludeFilterFile> ${basedir}/exclude-filters.xml, 
${basedir}/../../../exclude-filters-general.xml</excludeFilterFile>
+                        <xmlOutputDirectory>target/site</xmlOutputDirectory>
+                    </configuration>
+                </plugin>
+            </plugins>
+        </build>
+    </profile>
+  </profiles>
+</project>
diff --git 
a/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ExtensionsToolArguments.java
 
b/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ExtensionsToolArguments.java
new file mode 100644
index 0000000..3b1ee53
--- /dev/null
+++ 
b/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ExtensionsToolArguments.java
@@ -0,0 +1,165 @@
+package org.ovirt.engine.exttool.core;
+
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import com.sun.org.apache.xpath.internal.operations.Mod;
+import org.ovirt.engine.core.uutils.cli.ArgumentBuilder;
+import org.ovirt.engine.core.uutils.cli.ExtendedCliParser;
+
+public class ExtensionsToolArguments {
+
+    private static final String HELP_PROPERTIES = "help.properties";
+
+    private String module;
+    private String action;
+
+    // Common
+    public static final String ARG_LOG_LEVEL = "--log-level";
+    public static final String ARG_LOG_FILE = "--log-file";
+    public static final String ARG_EXT_CONFIG = "--extensions-config";
+
+    // Modules
+    public static final String MODULE_LOGGER = "logger";
+
+    // Logger actions
+    public static final String ACTION_LOG_RECORD = "log-record";
+    public static final String ARG_ACTION_NAME = "--logger-name";
+    public static final String ARG_ACTION_LEVEL = "--level";
+    public static final String ARG_ACTION_MSG = "--message";
+
+    public static final String ACTION_HELP = "--help";
+
+    private Map<String, String> argMap;
+
+    /**
+     * Returns set of required args for specified action
+     */
+    private Set<String> getRequiredArgs(String module, String action) {
+        Set<String> result = new LinkedHashSet<>();
+
+        if(module.equals(Module.LOGGER.toString())) {
+            if (ACTION_LOG_RECORD.equals(action)) {
+                result.add(ARG_ACTION_NAME);
+                result.add(ARG_ACTION_LEVEL);
+                result.add(ARG_ACTION_MSG);
+            }
+        }
+        return result;
+    }
+
+    public void parse(String[] args) {
+        if (args.length < 1 || ACTION_HELP.equals(args[0])) {
+            printHelp(this.getClass());
+            return;
+        }
+        module = args[0];
+
+        if(args.length == 1) {
+            action = ACTION_HELP;
+            return;
+        }
+
+        if (args.length > 1) {
+            int startFrom = 2;
+            action = args[1];
+
+            if(hasActionValue(action)) {
+                argMap.put(action, args[2]);
+                startFrom = 3;
+            }
+            ExtendedCliParser parser = initParser(action);
+            argMap = parser.parse(args, startFrom, args.length);
+
+            for (String arg : getRequiredArgs(module, action)) {
+                if (!argMap.containsKey(arg)) {
+                    action = ACTION_HELP;
+                }
+            }
+            if(argMap.containsKey(ACTION_HELP)) {
+                action = ACTION_HELP;
+            }
+        }
+    }
+
+    private boolean hasActionValue(String action) {
+        return true;  // FIXME: add here logic which return if action has 
value or not, currently always true
+    }
+
+    public String get(String key) {
+        return argMap.get(key);
+    }
+
+    public String get(String key, String defaultValue) {
+        return argMap.containsKey(key) ? argMap.get(key) : defaultValue;
+    }
+
+    public void printHelp(Class module) {
+        Properties helpProp = new Properties();
+        try (InputStream is = module.getResourceAsStream(HELP_PROPERTIES)) {
+            helpProp.load(is);
+        } catch (Exception ex) {
+            System.out.println("Error reading help content");
+        }
+        if (!helpProp.isEmpty()) {
+            System.out.println(helpProp.getProperty("help.usage"));
+        }
+    }
+
+    public boolean contains(String key) {
+        return argMap.containsKey(key);
+    }
+
+    private ExtendedCliParser initParser(String action) {
+        ExtendedCliParser parser = new ExtendedCliParser();
+
+        parser.addArg(new ArgumentBuilder()
+                .longName(ARG_EXT_CONFIG)
+                .valueRequired(true)
+                .build()
+        );
+
+        parser.addArg(new ArgumentBuilder()
+                .longName(ARG_LOG_LEVEL)
+                .valueRequired(false)
+                .build()
+        );
+
+        parser.addArg(new ArgumentBuilder()
+                .longName(ARG_LOG_FILE)
+                .valueRequired(false)
+                .build()
+        );
+
+        if ((ACTION_LOG_RECORD.equals(action))) {
+            parser.addArg(new ArgumentBuilder().
+                    longName(ARG_ACTION_NAME).
+                    valueRequired(true).
+                    build()
+            );
+            parser.addArg(new ArgumentBuilder().
+                    longName(ARG_ACTION_LEVEL).
+                    valueRequired(false).
+                    build()
+            );
+            parser.addArg(new ArgumentBuilder().
+                    longName(ARG_ACTION_MSG).
+                    valueRequired(false).
+                    build()
+            );
+        }
+        return parser;
+    }
+
+    public String getAction() {
+        return action;
+    }
+
+    public String getModule() {
+        return module;
+    }
+}
diff --git 
a/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ExtensionsToolExecutor.java
 
b/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ExtensionsToolExecutor.java
new file mode 100644
index 0000000..16d6692
--- /dev/null
+++ 
b/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ExtensionsToolExecutor.java
@@ -0,0 +1,19 @@
+package org.ovirt.engine.exttool.core;
+
+public class ExtensionsToolExecutor {
+
+    public static void main(String[] args) {
+        ExtensionsToolArguments toolArguments = new ExtensionsToolArguments();
+        try {
+            toolArguments.parse(args);
+            Class<ModuleService> service = 
ExtensionsToolFactory.getModule(toolArguments.getModule());
+            ModuleService moduleService = ExtensionsToolLoader.load(service);
+            if(moduleService != null) {
+                moduleService.runModule(toolArguments);
+            }
+        } catch (Throwable t) {
+            t.printStackTrace();
+            System.exit(1);
+        }
+    }
+}
diff --git 
a/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ExtensionsToolFactory.java
 
b/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ExtensionsToolFactory.java
new file mode 100644
index 0000000..e02ddec
--- /dev/null
+++ 
b/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ExtensionsToolFactory.java
@@ -0,0 +1,16 @@
+package org.ovirt.engine.exttool.core;
+
+import org.ovirt.engine.exttool.logger.services.LoggerService;
+
+public class ExtensionsToolFactory {
+
+    public static Class getModule(String module) {
+        if(module != null) {
+            if (module.equals(Module.LOGGER.toString())) {
+                return LoggerService.class;
+            }
+        }
+
+        return null;
+    }
+}
diff --git 
a/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ExtensionsToolLoader.java
 
b/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ExtensionsToolLoader.java
new file mode 100644
index 0000000..c98f26f
--- /dev/null
+++ 
b/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ExtensionsToolLoader.java
@@ -0,0 +1,16 @@
+package org.ovirt.engine.exttool.core;
+
+import java.util.ServiceLoader;
+
+public class ExtensionsToolLoader {
+
+    public static ModuleService load(Class cls) {
+        if(cls != null) {
+            ServiceLoader<ModuleService> loader = ServiceLoader.load(cls);
+            for (ModuleService module : loader) {
+                return module;
+            }
+        }
+        return null;
+    }
+}
diff --git 
a/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/Module.java
 
b/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/Module.java
new file mode 100644
index 0000000..4c1ec7c
--- /dev/null
+++ 
b/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/Module.java
@@ -0,0 +1,18 @@
+package org.ovirt.engine.exttool.core;
+
+public enum Module {
+
+    AAA("aaa"),
+    LOGGER("logger");
+
+    private final String module;
+
+    private Module(final String module) {
+        this.module = module;
+    }
+
+    @Override
+    public String toString() {
+        return this.module;
+    }
+}
diff --git 
a/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ModuleService.java
 
b/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ModuleService.java
new file mode 100644
index 0000000..55ed6d0
--- /dev/null
+++ 
b/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/core/ModuleService.java
@@ -0,0 +1,7 @@
+package org.ovirt.engine.exttool.core;
+
+public interface ModuleService {
+
+    public void runModule(ExtensionsToolArguments args) throws  Exception;
+
+}
diff --git 
a/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/logger/services/LoggerService.java
 
b/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/logger/services/LoggerService.java
new file mode 100644
index 0000000..f2703fc
--- /dev/null
+++ 
b/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/logger/services/LoggerService.java
@@ -0,0 +1,8 @@
+package org.ovirt.engine.exttool.logger.services;
+
+
+import org.ovirt.engine.exttool.core.ModuleService;
+
+public interface LoggerService extends ModuleService {
+
+}
\ No newline at end of file
diff --git 
a/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/logger/services/LoggerServiceImpl.java
 
b/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/logger/services/LoggerServiceImpl.java
new file mode 100644
index 0000000..86f78f1
--- /dev/null
+++ 
b/backend/manager/extension-tool/src/main/java/org/ovirt/engine/exttool/logger/services/LoggerServiceImpl.java
@@ -0,0 +1,66 @@
+package org.ovirt.engine.exttool.logger.services;
+
+import org.ovirt.engine.api.extensions.Base;
+import org.ovirt.engine.api.extensions.ExtMap;
+import org.ovirt.engine.api.extensions.ExtUUID;
+import org.ovirt.engine.api.extensions.logger.Logger;
+import org.ovirt.engine.core.extensions.mgr.ExtensionProxy;
+import org.ovirt.engine.core.extensions.mgr.ExtensionsManager;
+import org.ovirt.engine.exttool.core.ExtensionsToolArguments;
+
+import java.io.File;
+import java.util.logging.Level;
+import java.util.logging.LogRecord;
+
+public class LoggerServiceImpl implements LoggerService {
+
+    public LoggerServiceImpl() {
+    }
+
+    @Override
+    public void runModule(ExtensionsToolArguments args) throws Exception {
+        if(args.getAction().equals(args.ACTION_HELP)) {
+            args.printHelp(getClass());
+        }
+        // FIXME: need to search withing whole config dir, and use only logger 
name
+        File loggerConfig = new File(args.<String> 
get(ExtensionsToolArguments.ARG_EXT_CONFIG));
+        if (!loggerConfig.exists()) {
+            throw new Exception("Could not find logger extension configuration 
at the specified path");
+        }
+        ExtensionsManager extensionsManager = new ExtensionsManager();
+        ExtensionProxy extensionProxy = 
extensionsManager.initialize(extensionsManager.load(loggerConfig));
+        LogRecord logRecord = new LogRecord(
+                getLevel(args.get(args.ARG_ACTION_LEVEL)),
+                args.get(args.ARG_ACTION_MSG, "test")
+        );
+        ExtMap output = extensionProxy.invoke(
+            new ExtMap().mput(
+                Base.InvokeKeys.COMMAND,
+                getCommand(args.get(args.getAction()))
+            ).mput(
+                Logger.InvokeKeys.LOG_RECORD,
+                logRecord
+            )
+        );
+    }
+
+    private ExtUUID getCommand(String command) {
+        switch (command) {
+            case "FLUSH":
+                return Logger.InvokeCommands.FLUSH;
+            case "CLOSE":
+                return Logger.InvokeCommands.CLOSE;
+            default:
+                return Logger.InvokeCommands.PUBLISH;
+        }
+    }
+
+    private Level getLevel(String level) {
+        switch (level) {
+            case "FINEST":
+                return Level.FINEST;
+            default:
+                return Level.INFO;
+        }
+    }
+}
diff --git 
a/backend/manager/extension-tool/src/main/resources/META-INF/services/org.ovirt.engine.exttool.logger.services.LoggerService
 
b/backend/manager/extension-tool/src/main/resources/META-INF/services/org.ovirt.engine.exttool.logger.services.LoggerService
new file mode 100644
index 0000000..77b9566
--- /dev/null
+++ 
b/backend/manager/extension-tool/src/main/resources/META-INF/services/org.ovirt.engine.exttool.logger.services.LoggerService
@@ -0,0 +1 @@
+org.ovirt.engine.exttool.logger.services.LoggerServiceImpl
\ No newline at end of file
diff --git 
a/backend/manager/extension-tool/src/main/resources/org/ovirt/engine/exttool/core/help.properties
 
b/backend/manager/extension-tool/src/main/resources/org/ovirt/engine/exttool/core/help.properties
new file mode 100644
index 0000000..91d46cc
--- /dev/null
+++ 
b/backend/manager/extension-tool/src/main/resources/org/ovirt/engine/exttool/core/help.properties
@@ -0,0 +1,12 @@
+help.usage=ovirt-engine-extension-tool\
+\n\t--log-level=INFO\
+\n\t--log-file=\
+\n\t--extensions-config=<location of extensions configuration>\
+\n\tlogger\
+\n\t\tlog-record -- logs a record\
+\n\t\t\t\tLogger::PUBLISH\
+\n\t\t\t\tLogger::FLUSH\
+\n\t\t\t\tLogger::CLOSE\
+\n\t\t\t--logger-name="org.ovirt.engine"\
+\n\t\t\t--level=INFO\
+\n\t\t\t--message="test"
\ No newline at end of file
diff --git 
a/backend/manager/extension-tool/src/main/resources/org/ovirt/engine/exttool/logger/services/help.properties
 
b/backend/manager/extension-tool/src/main/resources/org/ovirt/engine/exttool/logger/services/help.properties
new file mode 100644
index 0000000..91d46cc
--- /dev/null
+++ 
b/backend/manager/extension-tool/src/main/resources/org/ovirt/engine/exttool/logger/services/help.properties
@@ -0,0 +1,12 @@
+help.usage=ovirt-engine-extension-tool\
+\n\t--log-level=INFO\
+\n\t--log-file=\
+\n\t--extensions-config=<location of extensions configuration>\
+\n\tlogger\
+\n\t\tlog-record -- logs a record\
+\n\t\t\t\tLogger::PUBLISH\
+\n\t\t\t\tLogger::FLUSH\
+\n\t\t\t\tLogger::CLOSE\
+\n\t\t\t--logger-name="org.ovirt.engine"\
+\n\t\t\t--level=INFO\
+\n\t\t\t--message="test"
\ No newline at end of file
diff --git a/backend/manager/pom.xml b/backend/manager/pom.xml
index de97eb8..90b235f 100644
--- a/backend/manager/pom.xml
+++ b/backend/manager/pom.xml
@@ -14,5 +14,6 @@
     <module>dependencies</module>
     <module>modules</module>
     <module>tools</module>
+    <module>extension-tool</module>
   </modules>
 </project>
diff --git a/ovirt-engine.spec.in b/ovirt-engine.spec.in
index 038c1e2..b695c47 100644
--- a/ovirt-engine.spec.in
+++ b/ovirt-engine.spec.in
@@ -656,6 +656,7 @@
 %{engine_jboss_modules}/common/org/ovirt/engine/core/compat/main/compat.jar
 %{engine_jboss_modules}/common/org/ovirt/engine/core/dal/main/dal.jar
 
%{engine_jboss_modules}/common/org/ovirt/engine/core/extensions-manager/main/extensions-manager.jar
+%{engine_jboss_modules}/org/ovirt/engine/core/extension-tool/main/extension-tool.jar
 
%{engine_jboss_modules}/common/org/ovirt/engine/core/searchbackend/main/searchbackend.jar
 %{engine_jboss_modules}/common/org/ovirt/engine/core/tools/main/tools.jar
 %{engine_jboss_modules}/common/org/ovirt/engine/core/utils/main/utils.jar
@@ -1118,6 +1119,7 @@
 %{_bindir}/engine-backup
 %{_bindir}/engine-config
 %{_bindir}/engine-manage-domains
+%{_bindir}/ovirt-engine-extensions-tool
 %{_mandir}/man8/engine-backup.*
 %{_mandir}/man8/engine-config.*
 %{_mandir}/man8/engine-manage-domains.*
@@ -1126,6 +1128,7 @@
 %{engine_data}/bin/engine-manage-domains.sh
 %{engine_data}/bin/engine-prolog.sh
 %{engine_data}/bin/ovirt-engine-role.sh
+%{engine_data}/bin/ovirt-engine-extensions-tool.sh
 %{engine_data}/conf/jaas.conf
 %{engine_data}/conf/notifier-logging.properties
 %{engine_data}/conf/tools-logging.properties
diff --git a/packaging/bin/ovirt-engine-extensions-tool.sh 
b/packaging/bin/ovirt-engine-extensions-tool.sh
new file mode 100755
index 0000000..43dcada
--- /dev/null
+++ b/packaging/bin/ovirt-engine-extensions-tool.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+#
+# This script is designed to run the manage domains utility.
+# The tool's configuration should be under the /etc directory.
+#
+
+# Load the prolog:
+. "$(dirname "$(readlink -f "$0")")"/engine-prolog.sh
+
+#
+# Add this option to the java command line to enable remote debugging in
+# all IP addresses and port 8787:
+#
+# -Xrunjdwp:transport=dt_socket,address=0.0.0.0:8787,server=y,suspend=y
+#
+# Note that the "suspend=y" options is needed to suspend the execution
+# of the JVM till you connect with the debugger, otherwise it is
+# not possible to debug the execution of the main method.
+#
+
+exec "${JAVA_HOME}/bin/java" \
+       -Djboss.modules.write-indexes=false \
+       -Djava.security.auth.login.config="${ENGINE_USR}/conf/jaas.conf" \
+       
-Djava.util.logging.config.file="${ENGINE_USR}/conf/extensions-tool/logging.conf"
 \
+       -jar "${JBOSS_HOME}/jboss-modules.jar" \
+       -dependencies org.ovirt.engine.core.extension-tool \
+       -cp 
"${CLASSPATH}:${ENGINE_USR}/conf/extensions-tool/commons-logging.properties" \
+       -class org.ovirt.engine.exttool.core.ExtensionsToolExecutor \
+       "$@"
diff --git a/pom.xml b/pom.xml
index aa593fb..4a53b6c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -46,6 +46,7 @@
     <junit.version>4.11</junit.version>
     <commons-codec.version>1.4</commons-codec.version>
     <commons-lang.version>2.6</commons-lang.version>
+    <commons-logging.version>1.2</commons-logging.version>
     <commons-compress.version>1.4.1</commons-compress.version>
     <quartz.version>2.1.2</quartz.version>
     <postgres.jdbc.version>9.1-901-1.jdbc4</postgres.jdbc.version>


-- 
To view, visit http://gerrit.ovirt.org/37886
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie06113c5d56a49e58d557c851f9ff00b9a9ca409
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ondřej Macháček <machacek.on...@gmail.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to