You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pl...@apache.org on 2018/02/05 07:43:54 UTC

directory-kerby git commit: DIRKRB-690 Add shell script to start and stop Web Server.

Repository: directory-kerby
Updated Branches:
  refs/heads/trunk 682362079 -> d94dad48b


DIRKRB-690 Add shell script to start and stop Web Server.


Project: http://git-wip-us.apache.org/repos/asf/directory-kerby/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerby/commit/d94dad48
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerby/tree/d94dad48
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerby/diff/d94dad48

Branch: refs/heads/trunk
Commit: d94dad48ba28b8c265a4b2583df61ee2bd95b863
Parents: 6823620
Author: plusplusjiajia <ji...@intel.com>
Authored: Mon Feb 5 15:40:31 2018 +0800
Committer: plusplusjiajia <ji...@intel.com>
Committed: Mon Feb 5 15:40:31 2018 +0800

----------------------------------------------------------------------
 .gitignore                                  |   1 +
 kerby-dist/has-dist/assembly.xml            |  43 +++++++++
 kerby-dist/has-dist/bin/start-has.sh        | 115 +++++++++++++++++++++++
 kerby-dist/has-dist/bin/stop-has.sh         |  75 +++++++++++++++
 kerby-dist/has-dist/conf/backend.conf       |  23 +++++
 kerby-dist/has-dist/conf/has-server.conf    |  24 +++++
 kerby-dist/has-dist/conf/kdc.conf           |  23 +++++
 kerby-dist/has-dist/log4j.properties        |  27 ++++++
 kerby-dist/has-dist/pom.xml                 |  64 +++++++++++++
 kerby-dist/has-dist/webapps/WEB-INF/web.xml |  17 ++++
 kerby-dist/has-dist/webapps/has/index.html  |  24 +++++
 kerby-dist/pom.xml                          |   1 +
 12 files changed, 437 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/d94dad48/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index c01efda..e0bf2cd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,3 +16,4 @@ dependency-reduced-pom.xml
 .checkstyle
 kerby-dist/kdc-dist/logs/
 kerby-dist/tool-dist/logs/
+kerby-dist/has-dist/logs/

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/d94dad48/kerby-dist/has-dist/assembly.xml
----------------------------------------------------------------------
diff --git a/kerby-dist/has-dist/assembly.xml b/kerby-dist/has-dist/assembly.xml
new file mode 100644
index 0000000..ab64630
--- /dev/null
+++ b/kerby-dist/has-dist/assembly.xml
@@ -0,0 +1,43 @@
+<assembly xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
+          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/assembly-1.0.0.xsd">
+  <!--
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License. See accompanying LICENSE file.
+-->
+  <id>package</id>
+  <formats>
+    <format>zip</format>
+    <format>tar</format>
+    <format>tar.gz</format>
+  </formats>
+  <fileSets>
+    <fileSet>
+      <directory>bin</directory>
+      <outputDirectory>bin</outputDirectory>
+    </fileSet>
+    <fileSet>
+      <directory>conf</directory>
+      <outputDirectory>conf</outputDirectory>
+    </fileSet>
+    <fileSet>
+      <directory>lib</directory>
+      <outputDirectory>lib</outputDirectory>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>/</outputDirectory>
+      <includes>
+        <include>log4j.properties</include>
+        <include>README.txt</include>
+      </includes>
+    </fileSet>
+  </fileSets>
+</assembly>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/d94dad48/kerby-dist/has-dist/bin/start-has.sh
----------------------------------------------------------------------
diff --git a/kerby-dist/has-dist/bin/start-has.sh b/kerby-dist/has-dist/bin/start-has.sh
new file mode 100644
index 0000000..c7e999f
--- /dev/null
+++ b/kerby-dist/has-dist/bin/start-has.sh
@@ -0,0 +1,115 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+usage()
+{
+  echo "Usage: sh bin/start-has.sh <conf_dir> <working_dir>"
+  echo "    Example:"
+  echo "        sh bin/start-has.sh conf work"
+  exit
+}
+
+CONF_DIR=$1
+WORK_DIR=$2
+pid=/tmp/has.pid # Pid file to save pid numbers
+APP_MAIN=org.apache.kerby.has.server.HasServer
+
+# Reset HAS_CONF_DIR and HAS_WORK_DIR if CONF_DIR or WORK_DIR not null
+if [ "$CONF_DIR" != "" ]; then
+  if [ ! -d "$CONF_DIR" ]; then
+    echo "[ERROR] ${CONF_DIR} is not a directory"
+    usage
+  fi
+else
+  if [ "$HAS_CONF_DIR" != "" ] && [ -d "$HAS_CONF_DIR" ]; then
+    CONF_DIR=${HAS_CONF_DIR}
+  else
+    echo "[ERROR] HAS_CONF_DIR is null or not a directory"
+    exit
+  fi
+fi
+
+# Load HAS environment variables
+if [ -f "${CONF_DIR}/has-env.sh" ]; then
+  . "${CONF_DIR}/has-env.sh"
+fi
+
+if [ "${WORK_DIR}" != "" ]; then
+  if [ ! -d "$WORK_DIR" ]; then
+    echo "[ERROR] ${WORK_DIR} is not a directory"
+    usage
+  fi
+else
+  if [ "$HAS_WORK_DIR" != "" ] && [ -d "$HAS_WORK_DIR" ]; then
+    WORK_DIR=${HAS_WORK_DIR}
+  else
+    echo "[ERROR] HAS_WORK_DIR is null or not a directory"
+    exit
+  fi
+fi
+
+# Get HAS_HOME directory
+bin=`dirname "$0"`
+HAS_HOME=`cd ${bin}/..; pwd`
+cd ${HAS_HOME}
+
+for var in $*; do
+  if [ X"$var" = X"-D" ]; then
+    DEBUG="-Xdebug -Xrunjdwp:transport=dt_socket,address=8010,server=y,suspend=n"
+  fi
+done
+args="$CONF_DIR $WORK_DIR"
+
+echo "[INFO] conf_dir=$CONF_DIR"
+echo "[INFO] work_dir=$WORK_DIR"
+
+HAS_OPTS="$HAS_JVM_OPTS -DHAS_LOGFILE=has"
+
+# Print a warning if has servers are already running
+if [ -f ${pid} ]; then
+  active=()
+  while IFS='' read -r p || [ -n "$p" ]; do
+    kill -0 ${p} >/dev/null 2>&1
+    if [ $? -eq 0 ]; then
+      active+=(${p})
+    fi
+  done < "$pid"
+
+  count="${#active[@]}"
+
+  if [ "$count" -gt 0 ]; then
+    echo "[WARN] ${count} instance(s) of HAS server are already running."
+  fi
+fi
+
+echo "Starting HAS server..."
+
+# Start HAS server
+java ${DEBUG} -classpath target/lib/*:. ${HAS_OPTS} ${APP_MAIN} -start ${args} > /dev/null 2>&1 &
+
+mypid=$!
+
+# Add mypid to pid file if start successfully
+sleep 3
+if [ "$mypid" -gt 0 ] && kill -0 "$mypid" > /dev/null 2>&1; then
+  echo ${mypid} >> ${pid}
+  echo "[SUCCESS] HAS server (pid: ${mypid}) has been started."
+else
+  echo "[ERROR] Failed to start HAS server."
+  exit 1
+fi

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/d94dad48/kerby-dist/has-dist/bin/stop-has.sh
----------------------------------------------------------------------
diff --git a/kerby-dist/has-dist/bin/stop-has.sh b/kerby-dist/has-dist/bin/stop-has.sh
new file mode 100644
index 0000000..6ca414d
--- /dev/null
+++ b/kerby-dist/has-dist/bin/stop-has.sh
@@ -0,0 +1,75 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+OPERATION=$1
+pid=/tmp/has.pid # Pid file
+
+stop()
+{
+  if kill -0 ${to_stop} > /dev/null 2>&1; then
+    echo "Stopping HAS server (pid: ${to_stop})..."
+    kill ${to_stop}
+    sleep 5
+    if kill -0 ${pid} > /dev/null 2>&1; then
+      echo "[WARN] HAS server still alive after 5 seconds, Trying to kill it by force."
+      kill -9 ${to_stop}
+    else
+      echo "[SUCCESS] HAS server has been stopped."
+    fi
+  else
+    echo "[INFO] Skipping HAS server (pid: ${to_stop}), because it is not running anymore."
+  fi
+}
+
+case ${OPERATION} in
+
+  (all)
+    if [ -f "$pid" ]; then
+      mv ${pid} ${pid}.tmp
+      cat ${pid}.tmp | while read to_stop; do
+        stop
+      done < ${pid}.tmp
+      rm ${pid}.tmp
+    else
+      echo "[INFO] No HAS server to stop."
+    fi
+  ;;
+
+  (*)
+    if [ -f "$pid" ]; then
+      # Get latest pid number in pid file
+      to_stop=$(tail -n 1 ${pid})
+
+      if [ -z "$to_stop" ]; then
+        rm ${pid} # If $to_stop is null, delete the pid file
+        echo "[INFO] No HAS server to stop."
+      else
+        sed \$d ${pid} > ${pid}.tmp
+        if [ $(wc -l < ${pid}.tmp) -eq 0 ]; then
+          rm ${pid}.tmp ${pid} # If all stopped, clean up pid files
+        else
+          mv ${pid}.tmp ${pid}
+        fi
+        stop
+      fi
+
+    else
+      echo "[INFO] No HAS server to stop."
+    fi
+  ;;
+esac

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/d94dad48/kerby-dist/has-dist/conf/backend.conf
----------------------------------------------------------------------
diff --git a/kerby-dist/has-dist/conf/backend.conf b/kerby-dist/has-dist/conf/backend.conf
new file mode 100644
index 0000000..99c9d0a
--- /dev/null
+++ b/kerby-dist/has-dist/conf/backend.conf
@@ -0,0 +1,23 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+kdc_identity_backend = org.apache.kerby.kerberos.kdc.identitybackend.JsonIdentityBackend
+backend.json.dir = /tmp/has/jsonbackend
+mysql_url = jdbc:mysql://127.0.0.1:3306/mysqlbackend
+mysql_user = root 
+mysql_password = passwd

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/d94dad48/kerby-dist/has-dist/conf/has-server.conf
----------------------------------------------------------------------
diff --git a/kerby-dist/has-dist/conf/has-server.conf b/kerby-dist/has-dist/conf/has-server.conf
new file mode 100644
index 0000000..57ef56e
--- /dev/null
+++ b/kerby-dist/has-dist/conf/has-server.conf
@@ -0,0 +1,24 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+[HAS]
+  https_host = localhost
+  https_port = 8092
+  filter_auth_type = kerberos
+  enable_conf = true
+

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/d94dad48/kerby-dist/has-dist/conf/kdc.conf
----------------------------------------------------------------------
diff --git a/kerby-dist/has-dist/conf/kdc.conf b/kerby-dist/has-dist/conf/kdc.conf
new file mode 100644
index 0000000..c9c7921
--- /dev/null
+++ b/kerby-dist/has-dist/conf/kdc.conf
@@ -0,0 +1,23 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+[kdcdefaults]
+  kdc_host = localhost
+  kdc_udp_port = 88
+  kdc_tcp_port = 88
+  kdc_realm = HADOOP.COM

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/d94dad48/kerby-dist/has-dist/log4j.properties
----------------------------------------------------------------------
diff --git a/kerby-dist/has-dist/log4j.properties b/kerby-dist/has-dist/log4j.properties
new file mode 100644
index 0000000..1b36fec
--- /dev/null
+++ b/kerby-dist/has-dist/log4j.properties
@@ -0,0 +1,27 @@
+#############################################################################
+#    Licensed to the Apache Software Foundation (ASF) under one or more
+#    contributor license agreements.  See the NOTICE file distributed with
+#    this work for additional information regarding copyright ownership.
+#    The ASF licenses this file to You under the Apache License, Version 2.0
+#    (the "License"); you may not use this file except in compliance with
+#    the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS,
+#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#    See the License for the specific language governing permissions and
+#    limitations under the License.
+#############################################################################
+log4j.rootLogger=INFO,R
+
+log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
+log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
+log4j.appender.STDOUT.layout.ConversionPattern=Logger-->%5p{%F:%L}-%m%n
+
+log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.R.File=logs/${HAS_LOGFILE}.log
+log4j.appender.R.layout=org.apache.log4j.PatternLayout
+log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p{%F:%L}-%m%n
+

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/d94dad48/kerby-dist/has-dist/pom.xml
----------------------------------------------------------------------
diff --git a/kerby-dist/has-dist/pom.xml b/kerby-dist/has-dist/pom.xml
new file mode 100644
index 0000000..d64c2a9
--- /dev/null
+++ b/kerby-dist/has-dist/pom.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+  <parent>
+    <artifactId>kerby-dist</artifactId>
+    <groupId>org.apache.kerby</groupId>
+    <version>1.1.1-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>has-dist</artifactId>
+  <description>HAS dist</description>
+  <name>HAS dist</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.kerby</groupId>
+      <artifactId>has-server</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+  </dependencies>
+
+   <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>copy</id>
+            <phase>package</phase>
+            <goals>
+              <goal>copy-dependencies</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/lib</outputDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <configuration>
+          <appendAssemblyId>false</appendAssemblyId>
+          <descriptors>
+            <descriptor>assembly.xml</descriptor>
+          </descriptors>
+        </configuration>
+        <executions>
+          <execution>
+            <id>make-assembly</id>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/d94dad48/kerby-dist/has-dist/webapps/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/kerby-dist/has-dist/webapps/WEB-INF/web.xml b/kerby-dist/has-dist/webapps/WEB-INF/web.xml
new file mode 100644
index 0000000..b13cb1f
--- /dev/null
+++ b/kerby-dist/has-dist/webapps/WEB-INF/web.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License. See accompanying LICENSE file.
+-->
+<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee">
+
+</web-app>

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/d94dad48/kerby-dist/has-dist/webapps/has/index.html
----------------------------------------------------------------------
diff --git a/kerby-dist/has-dist/webapps/has/index.html b/kerby-dist/has-dist/webapps/has/index.html
new file mode 100644
index 0000000..6f80950
--- /dev/null
+++ b/kerby-dist/has-dist/webapps/has/index.html
@@ -0,0 +1,24 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="REFRESH" charset="UTF-8" />
+<title>HAS Administration</title>
+</head>
+</html>

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/d94dad48/kerby-dist/pom.xml
----------------------------------------------------------------------
diff --git a/kerby-dist/pom.xml b/kerby-dist/pom.xml
index b2af472..be09104 100644
--- a/kerby-dist/pom.xml
+++ b/kerby-dist/pom.xml
@@ -29,6 +29,7 @@
   <modules>
     <module>kdc-dist</module>
     <module>tool-dist</module>
+    <module>has-dist</module>
   </modules>
 
   <build>