[incubator-heron] branch master updated: Fix use of non-default base url value (#3535)

2020-06-02 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 4308eaf  Fix use of non-default base url value (#3535)
4308eaf is described below

commit 4308eaf210030056963b55c1f903138b45f22ff1
Author: Oliver Bristow 
AuthorDate: Wed Jun 3 02:33:28 2020 +0100

Fix use of non-default base url value (#3535)
---
 deploy/kubernetes/helm/templates/tools.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/deploy/kubernetes/helm/templates/tools.yaml 
b/deploy/kubernetes/helm/templates/tools.yaml
index 2d3b8d3..dfa63e5 100644
--- a/deploy/kubernetes/helm/templates/tools.yaml
+++ b/deploy/kubernetes/helm/templates/tools.yaml
@@ -116,7 +116,7 @@ spec:
 - >-
   heron-ui
   --port=8889
-  --base_url={{ $defaultUrl }}
+  --base_url={{ .Values.heron.url | default $defaultUrl }}
 - name: heron-apiserver
   image: {{ .Values.image }}
   imagePullPolicy: {{ .Values.imagePullPolicy }}



[incubator-heron] branch master updated: Workaround trailing slashes on website (#3531)

2020-05-28 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new e06dc8f  Workaround trailing slashes on website (#3531)
e06dc8f is described below

commit e06dc8ff67bae7ff81abe8a0693ca0a25e9266d6
Author: Oliver Bristow 
AuthorDate: Fri May 29 04:49:56 2020 +0100

Workaround trailing slashes on website (#3531)

This is as the website deployment 301s to add trailing slashes, and
Docusurus does not yet support that. Without one of the two yielding,
this workaround strips the trailing slash so the hrefs made still work.

Solution pinched from docusurus issue:
https://github.com/facebook/docusaurus/issues/2394
---
 website2/website/siteConfig.js | 3 ++-
 website2/website/static/js/fix-location.js | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/website2/website/siteConfig.js b/website2/website/siteConfig.js
index 9651231..e8fa9c9 100644
--- a/website2/website/siteConfig.js
+++ b/website2/website/siteConfig.js
@@ -110,7 +110,8 @@ const siteConfig = {
   // Add custom scripts here that would be placed in 

[incubator-heron] annotated tag 0.20.3-incubating-rc3 updated (40ae369 -> e9f14e0)

2020-05-27 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to annotated tag 0.20.3-incubating-rc3
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


*** WARNING: tag 0.20.3-incubating-rc3 was modified! ***

from 40ae369  (tag)
  to e9f14e0  (tag)
 tagging c713f438f25e71f95171ea0225543cb3ada8c586 (commit)
 replaces 0.20.3-incubating-rc3-test
  by Ning Wang
  on Wed May 27 01:32:27 2020 -0700

- Log -
Apache Heron release candidate 3: 0.20.3-incubating-rc3
---

from 7bfa0c7  Fix debian9 docker file and clean up centos8 and ubuntu18.04 
(#3518)
 add c7a5ab4  Adding Ubuntu 20.04 Dockerfiles (#3519)
 add cf08e71  Make Java optional in CLI and check JAVA_BIN (#3521)
 add a295942  Pin http_file and http_archive resources in WORKSPACE (#3520)
 add e065171  Fix centos7 docker build (#3523)
 add e0bb08a  Set Java SupportedSourceVersion to 11 (#3524)
 add 07b5d8c  Fix ubuntu16.04 docker file (#3525)
 add d05f6e9  Fix Heron Shell PID Extractor (#3528)
 add 89a1e50  Update osx documentation (3453) (#3530)
 add c713f43  Fix ubunt14.04 docker file (#3526)

No new revisions were added by this update.

Summary of changes:
 WORKSPACE  |  7 +++
 docker/compile/Dockerfile.ubuntu14.04  |  5 -
 docker/compile/Dockerfile.ubuntu16.04  |  9 +++-
 ...ckerfile.ubuntu18.04 => Dockerfile.ubuntu20.04} |  4 +++-
 docker/dist/Dockerfile.dist.centos7|  6 --
 docker/dist/Dockerfile.dist.ubuntu16.04|  8 ++--
 ...ist.ubuntu18.04 => Dockerfile.dist.ubuntu20.04} |  4 +++-
 .../classification/HeronAnnotationProcessor.java   |  4 ++--
 heron/shell/src/python/handlers/pidhandler.py  |  6 +-
 heron/tools/admin/src/python/main.py   |  2 --
 heron/tools/cli/src/python/execute.py  |  7 ++-
 heron/tools/cli/src/python/main.py |  3 ---
 heron/tools/common/src/python/utils/config.py  | 24 +++---
 website2/docs/compiling-osx.md |  2 +-
 14 files changed, 52 insertions(+), 39 deletions(-)
 copy docker/compile/{Dockerfile.ubuntu18.04 => Dockerfile.ubuntu20.04} (96%)
 copy docker/dist/{Dockerfile.dist.ubuntu18.04 => Dockerfile.dist.ubuntu20.04} 
(97%)



[incubator-heron] annotated tag 0.20.3-incubating-rc3-test3 updated (c713f43 -> b6d2cf7)

2020-05-26 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to annotated tag 0.20.3-incubating-rc3-test3
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


*** WARNING: tag 0.20.3-incubating-rc3-test3 was modified! ***

from c713f43  (commit)
  to b6d2cf7  (tag)
 tagging c713f438f25e71f95171ea0225543cb3ada8c586 (commit)
 replaces 0.20.3-incubating-rc3
  by Ning Wang
  on Tue May 26 11:10:00 2020 -0700

- Log -
Test tag for 0.20.3-incubating-rc3
---


No new revisions were added by this update.

Summary of changes:



[incubator-heron] branch master updated: Fix ubunt14.04 docker file (#3526)

2020-05-26 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new c713f43  Fix ubunt14.04 docker file (#3526)
c713f43 is described below

commit c713f438f25e71f95171ea0225543cb3ada8c586
Author: Ning Wang 
AuthorDate: Tue May 26 11:09:12 2020 -0700

Fix ubunt14.04 docker file (#3526)
---
 docker/compile/Dockerfile.ubuntu14.04 | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/docker/compile/Dockerfile.ubuntu14.04 
b/docker/compile/Dockerfile.ubuntu14.04
index 922cd89..521cce9 100644
--- a/docker/compile/Dockerfile.ubuntu14.04
+++ b/docker/compile/Dockerfile.ubuntu14.04
@@ -34,12 +34,15 @@ RUN apt-get update && apt-get -y install \
   git \
   libtool \
   python-dev \
+  pkg-config \
   libcppunit-dev \
   zip \
   unzip \
   wget \
   cmake \
-  tree \
+  tree
+
+RUN apt-get update && apt-get -y install \
   openjdk-11-jdk-headless
 
 ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64



[incubator-heron] 02/02: Fix ubuntu docker file

2020-05-17 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to tag 0.20.3-incubating-rc3-test2
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git

commit 6681dc33d759a89861cc456296d3fec96040eeb5
Author: Ning Wang 
AuthorDate: Sat May 16 23:09:05 2020 -0700

Fix ubuntu docker file
---
 docker/compile/apiVersion: v1   | 104 
 docker/dist/Dockerfile.dist.ubuntu16.04 |   8 ++-
 2 files changed, 110 insertions(+), 2 deletions(-)

diff --git a/docker/compile/apiVersion: v1 b/docker/compile/apiVersion: v1
new file mode 100644
index 000..676f4fb
--- /dev/null
+++ b/docker/compile/apiVersion: v1 
@@ -0,0 +1,104 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: drupal-mysql-pv
+  labels:
+type: local
+spec:
+  storageClassName: mysql-pv
+  capacity:
+storage: 5Gi
+  accessModes:
+- ReadWriteOnce
+  hostPath:
+path: "/drupal-mysql-data"
+
+
+
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: drupal-pv
+  labels:
+type: local
+spec:
+  storageClassName: pv
+  capacity:
+storage: 5Gi
+  accessModes:
+- ReadWriteOnce
+  hostPath:
+path: "/drupal-data"
+
+
+
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: drupal-mysql-pvc
+spec:
+  storageClassName: mysql-pv
+  accessModes:
+- ReadWriteOnce
+  resources:
+requests:
+  storage: 5Gi
+
+
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: drupal-pvc
+spec:
+  storageClassName: pv
+  accessModes:
+- ReadWriteOnce
+  resources:
+requests:
+  storage: 5Gi
+
+
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: drupal-mysql
+spec:
+  replicas: 1
+  selector:
+matchLabels:
+  app: drupal-mysql
+  template:
+metadata:
+  labels:
+app: drupal-mysql
+spec:
+  containers:
+- name: drupal-mysql-container
+  image: mysql:5.7
+  env:
+  - name: MYSQL_ROOT_PASSWORD
+valueFrom:
+  secretKeyRef:
+name: mysql-pass
+key: password
+  ports:
+  - containerPort: 3306
+name: mysql
+  volumeMounts:
+  - name: mysql-persistent-storage
+mountPath: /var/lib/mysql
+subPath: dbdata
+  volumes:
+- name: mysql-persistent-storage
+  persistentVolumeClaim:
+claimName: drupal-mysql-pvc
+
+
+
+
+$ kubectl get pvc
+Error from server (Forbidden): persistentvolumeclaims is forbidden: User 
"ning" cannot list resource "persistentvolumeclaims" in API group "" in the 
namespace "default"
+
+$ kubectl get pv
+Error from server (Forbidden): persistentvolumes is forbidden: User "ning" 
cannot list resource "persistentvolumes" in API group "" at the cluster scope
+
diff --git a/docker/dist/Dockerfile.dist.ubuntu16.04 
b/docker/dist/Dockerfile.dist.ubuntu16.04
index 0fe59f9..bcf6f37 100644
--- a/docker/dist/Dockerfile.dist.ubuntu16.04
+++ b/docker/dist/Dockerfile.dist.ubuntu16.04
@@ -17,7 +17,9 @@
 
 FROM ubuntu:16.04
 
-RUN apt-get update
+RUN apt-get update && apt-get install -y software-properties-common
+
+RUN add-apt-repository ppa:openjdk-r/ppa
 
 RUN apt-get -y install \
 python \
@@ -25,7 +27,9 @@ RUN apt-get -y install \
 unzip \
 software-properties-common \
 curl \
-supervisor \
+supervisor
+
+RUN apt-get update && apt-get -y install \
 openjdk-11-jdk-headless
 
 ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64



[incubator-heron] tag 0.20.3-incubating-rc3-test2 created (now 6681dc3)

2020-05-17 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to tag 0.20.3-incubating-rc3-test2
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


  at 6681dc3  (commit)
This tag includes the following new commits:

 new 8d800f5  fix ubuntu 16.04 docker file
 new 6681dc3  Fix ubuntu docker file

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




[incubator-heron] 01/02: fix ubuntu 16.04 docker file

2020-05-17 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to tag 0.20.3-incubating-rc3-test2
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git

commit 8d800f59625fa639e548b930afdef3ddf3acd86e
Author: Ning Wang 
AuthorDate: Sat May 16 22:58:48 2020 -0700

fix ubuntu 16.04 docker file
---
 docker/compile/Dockerfile.ubuntu16.04 | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/docker/compile/Dockerfile.ubuntu16.04 
b/docker/compile/Dockerfile.ubuntu16.04
index a3a2265..dbf7b70 100644
--- a/docker/compile/Dockerfile.ubuntu16.04
+++ b/docker/compile/Dockerfile.ubuntu16.04
@@ -21,6 +21,10 @@ FROM ubuntu:16.04
 ENV TARGET_PLATFORM ubuntu
 ENV bazelVersion 3.0.0
 
+RUN apt-get update && apt-get install -y software-properties-common
+
+RUN add-apt-repository ppa:openjdk-r/ppa
+
 RUN apt-get update && apt-get -y install \
   automake \
   build-essential \
@@ -31,12 +35,15 @@ RUN apt-get update && apt-get -y install \
   libtool-bin \
   libunwind8 \
   libunwind-setjmp0-dev \
+  pkg-config \
   python-dev \
   libcppunit-dev \
   tree \
   zip \
   unzip \
-  wget \
+  wget
+
+RUN apt-get update && apt-get -y install \
   openjdk-11-jdk-headless
 
 ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64



[incubator-heron] branch master updated: Set Java SupportedSourceVersion to 11 (#3524)

2020-05-13 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new e0bb08a  Set Java SupportedSourceVersion to 11 (#3524)
e0bb08a is described below

commit e0bb08aa4c75f43a14b9abf0c1891d154dabccd0
Author: Ning Wang 
AuthorDate: Wed May 13 21:34:56 2020 -0700

Set Java SupportedSourceVersion to 11 (#3524)
---
 .../org/apache/heron/classification/HeronAnnotationProcessor.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git 
a/heron/api/src/java/org/apache/heron/classification/HeronAnnotationProcessor.java
 
b/heron/api/src/java/org/apache/heron/classification/HeronAnnotationProcessor.java
index f600779..09bb91c 100644
--- 
a/heron/api/src/java/org/apache/heron/classification/HeronAnnotationProcessor.java
+++ 
b/heron/api/src/java/org/apache/heron/classification/HeronAnnotationProcessor.java
@@ -30,7 +30,7 @@ import javax.lang.model.element.Element;
 import javax.lang.model.element.TypeElement;
 import javax.tools.Diagnostic.Kind;
 
-import static javax.lang.model.SourceVersion.RELEASE_8;
+import static javax.lang.model.SourceVersion.RELEASE_11;
 
 /**
  * Class that processes usage of {@link InterfaceAudience} and {@link 
InterfaceStability} at compile
@@ -39,7 +39,7 @@ import static javax.lang.model.SourceVersion.RELEASE_8;
 
@SupportedAnnotationTypes({"org.apache.heron.classification.InterfaceStability.Unstable",

"org.apache.heron.classification.InterfaceAudience.Private",

"org.apache.heron.classification.InterfaceAudience.LimitedPrivate"})
-@SupportedSourceVersion(RELEASE_8)
+@SupportedSourceVersion(RELEASE_11)
 public class HeronAnnotationProcessor extends AbstractProcessor {
   private ProcessingEnvironment env;
 



[incubator-heron] branch master updated: Adding Ubuntu 20.04 Dockerfiles (#3519)

2020-04-30 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new c7a5ab4  Adding Ubuntu 20.04 Dockerfiles (#3519)
c7a5ab4 is described below

commit c7a5ab45e1974d86a19e3eab4a5832a1d8e94600
Author: Nicholas Nezis 
AuthorDate: Thu Apr 30 19:27:01 2020 -0400

Adding Ubuntu 20.04 Dockerfiles (#3519)
---
 docker/compile/Dockerfile.ubuntu20.04   | 52 ++
 docker/dist/Dockerfile.dist.ubuntu20.04 | 57 +
 2 files changed, 109 insertions(+)

diff --git a/docker/compile/Dockerfile.ubuntu20.04 
b/docker/compile/Dockerfile.ubuntu20.04
new file mode 100644
index 000..c963910
--- /dev/null
+++ b/docker/compile/Dockerfile.ubuntu20.04
@@ -0,0 +1,52 @@
+#  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.
+
+FROM ubuntu:20.04
+
+# This is passed to the heron build command via the --config flag
+ENV TARGET_PLATFORM ubuntu
+ENV bazelVersion 3.0.0
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get update && apt-get -y install \
+  g++ \
+  cmake \
+  automake \
+  libtool-bin \
+  libunwind8 \
+  libcppunit-dev \
+  patch \
+  python-dev \
+  pkg-config \
+  wget \
+  zip \
+  virtualenv \
+  unzip \
+  git \
+  curl \
+  tree \
+  openjdk-11-jdk-headless
+
+ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64
+
+RUN wget -O /tmp/bazel.sh 
https://github.com/bazelbuild/bazel/releases/download/$bazelVersion/bazel-$bazelVersion-installer-linux-x86_64.sh
 \
+  && chmod +x /tmp/bazel.sh \
+  && /tmp/bazel.sh
+
+ADD bazelrc /root/.bazelrc
+ADD scripts/compile-platform.sh /compile-platform.sh
diff --git a/docker/dist/Dockerfile.dist.ubuntu20.04 
b/docker/dist/Dockerfile.dist.ubuntu20.04
new file mode 100644
index 000..6e22845
--- /dev/null
+++ b/docker/dist/Dockerfile.dist.ubuntu20.04
@@ -0,0 +1,57 @@
+#  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.
+
+FROM ubuntu:20.04
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get update
+RUN apt-get -y install \
+unzip software-properties-common curl python python3 supervisor 
openjdk-11-jdk-headless
+
+ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64
+RUN update-ca-certificates -f
+
+ADD artifacts /heron
+
+WORKDIR /heron
+
+# run heron installers
+RUN /heron/heron-install.sh \
+&& rm -f /heron/heron-install.sh
+
+RUN ln -s /usr/local/heron/dist/heron-core /heron \
+&& mkdir -p /heron/heron-tools \
+&& ln -s /usr/local/heron/bin /heron/heron-tools \
+&& ln -s /usr/local/heron/conf /heron/heron-tools \
+&& ln -s /usr/local/heron/dist /heron/heron-tools \
+&& ln -s /usr/local/heron/lib /heron/heron-tools \
+&& ln -s /usr/local/heron/release.yaml /heron/heron-tools \
+&& ln -s /usr/local/heron/examples /heron \
+&& ln -s /usr/local/heron/release.yaml /heron
+
+ENV HERON_HOME /heron/heron-core/
+RUN export HERON_HOME
+
+# install zookeeper
+ARG ZK_DIST=zookeeper-3.4.14
+ADD dist/scripts /opt/heron-docker/scripts
+
+RUN sh /opt/heron-docker/scripts/install-zookeeper.sh $ZK_DIST
+
+ADD dist/conf/zookeeper.conf /opt/zookeeper/conf/zookeeper.conf
+ADD dist/conf/sandbox.conf /etc/supervisor/conf.d/



[incubator-heron] branch release/0.20.3_incubating_rc3 created (now 7bfa0c7)

2020-04-25 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to branch release/0.20.3_incubating_rc3
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


  at 7bfa0c7  Fix debian9 docker file and clean up centos8 and ubuntu18.04 
(#3518)

No new revisions were added by this update.



[incubator-heron] annotated tag 0.20.3-incubating-rc3 updated (0b510ff -> 40ae369)

2020-04-23 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to annotated tag 0.20.3-incubating-rc3
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


*** WARNING: tag 0.20.3-incubating-rc3 was modified! ***

from 0b510ff  (tag)
  to 40ae369  (tag)
 tagging 7bfa0c732d5c32439cfe1ec07d9fb6ea9994dc34 (commit)
 replaces 0.20.3-incubating-rc3-test
  by Ning Wang
  on Thu Apr 23 09:24:36 2020 -0700

- Log -
Version 0.20.3-incubating release candidate 3
---

from 923b8b9  Add cppunit-devel for Bazel 3 (#3513)
 add 78d7145  Adding missing pkg-config package to Debian 9 build (#3517)
 add ec7a87a  Update issue templates (#3379)
 add 7bfa0c7  Fix debian9 docker file and clean up centos8 and ubuntu18.04 
(#3518)

No new revisions were added by this update.

Summary of changes:
 .github/ISSUE_TEMPLATE/bug_report.md  | 31 +++
 .github/ISSUE_TEMPLATE/custom.md  | 10 ++
 .github/ISSUE_TEMPLATE/feature_request.md | 20 
 docker/base/Dockerfile.base.debian9   |  2 +-
 docker/compile/Dockerfile.debian9 |  1 +
 docker/test/Dockerfile.centos7|  3 ++-
 docker/test/Dockerfile.ubuntu18.04|  3 ++-
 7 files changed, 67 insertions(+), 3 deletions(-)
 create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md
 create mode 100644 .github/ISSUE_TEMPLATE/custom.md
 create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md



[incubator-heron] branch master updated: Fix debian9 docker file and clean up centos8 and ubuntu18.04 (#3518)

2020-04-23 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 7bfa0c7  Fix debian9 docker file and clean up centos8 and ubuntu18.04 
(#3518)
7bfa0c7 is described below

commit 7bfa0c732d5c32439cfe1ec07d9fb6ea9994dc34
Author: Ning Wang 
AuthorDate: Thu Apr 23 09:23:21 2020 -0700

Fix debian9 docker file and clean up centos8 and ubuntu18.04 (#3518)
---
 docker/base/Dockerfile.base.debian9 | 2 +-
 docker/test/Dockerfile.centos7  | 3 ++-
 docker/test/Dockerfile.ubuntu18.04  | 3 ++-
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/docker/base/Dockerfile.base.debian9 
b/docker/base/Dockerfile.base.debian9
index 27892fc..3a4ba7f 100644
--- a/docker/base/Dockerfile.base.debian9
+++ b/docker/base/Dockerfile.base.debian9
@@ -15,7 +15,7 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-FROM openjdk:8-jdk-slim
+FROM openjdk:11-jdk-slim-stretch
 
 RUN apt-get -y update && apt-get -y install \
 netcat-openbsd \
diff --git a/docker/test/Dockerfile.centos7 b/docker/test/Dockerfile.centos7
index 8122b73..3a36273 100644
--- a/docker/test/Dockerfile.centos7
+++ b/docker/test/Dockerfile.centos7
@@ -19,7 +19,7 @@ FROM centos:centos7
 
 # This is passed to the heron build command via the --config flag
 ENV TARGET_PLATFORM centos
-ENV bazelVersion 0.26.0
+ENV bazelVersion 3.0.0
 
 RUN yum -y upgrade
 RUN yum -y install \
@@ -33,6 +33,7 @@ RUN yum -y install \
   git \
   kernel-devel \
   libtool \
+  cppunit-devel \
   make \
   patch \
   python-devel \
diff --git a/docker/test/Dockerfile.ubuntu18.04 
b/docker/test/Dockerfile.ubuntu18.04
index e9c2e82..2586947 100644
--- a/docker/test/Dockerfile.ubuntu18.04
+++ b/docker/test/Dockerfile.ubuntu18.04
@@ -19,7 +19,7 @@ FROM ubuntu:18.04
 
 # This is passed to the heron build command via the --config flag
 ENV TARGET_PLATFORM ubuntu
-ENV bazelVersion 0.26.0
+ENV bazelVersion 3.0.0
 
 RUN apt-get update && apt-get -y install \
   g++ \
@@ -27,6 +27,7 @@ RUN apt-get update && apt-get -y install \
   automake \
   libtool-bin \
   libunwind8 \
+  libcppunit-dev \
   patch \
   python-dev \
   python3-dev \



[incubator-heron] annotated tag 0.20.3-incubating-rc3 updated (923b8b9 -> 0b510ff)

2020-04-21 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to annotated tag 0.20.3-incubating-rc3
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


*** WARNING: tag 0.20.3-incubating-rc3 was modified! ***

from 923b8b9  (commit)
  to 0b510ff  (tag)
 tagging 923b8b9ef22a31ed73fdc0ad2e004e0eeb407681 (commit)
 replaces 0.20.3-incubating-rc2
  by Ning Wang
  on Tue Apr 21 00:45:49 2020 -0700

- Log -
Apache Heron release 0.20.3-incubating release candidate 3
---


No new revisions were added by this update.

Summary of changes:



[incubator-heron] annotated tag 0.20.3-incubating-rc3-test updated (923b8b9 -> 97e17b3)

2020-04-20 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to annotated tag 0.20.3-incubating-rc3-test
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


*** WARNING: tag 0.20.3-incubating-rc3-test was modified! ***

from 923b8b9  (commit)
  to 97e17b3  (tag)
 tagging 923b8b9ef22a31ed73fdc0ad2e004e0eeb407681 (commit)
 replaces 0.20.3-incubating-rc2
  by Ning Wang
  on Mon Apr 20 19:02:52 2020 -0700

- Log -
Apache Heron 0.20.3-incubating release candidate 3
---


No new revisions were added by this update.

Summary of changes:



[incubator-heron] branch master updated: Add cppunit-devel for Bazel 3 (#3513)

2020-04-19 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 923b8b9  Add cppunit-devel for Bazel 3 (#3513)
923b8b9 is described below

commit 923b8b9ef22a31ed73fdc0ad2e004e0eeb407681
Author: choi se 
AuthorDate: Mon Apr 20 01:58:35 2020 +0900

Add cppunit-devel for Bazel 3 (#3513)

* Add cppunit-devel for centos Dockerfile

* Add cppunit-devel for Dockerfile
---
 docker/compile/Dockerfile.centos7 | 1 +
 docker/compile/Dockerfile.debian9 | 1 +
 docker/compile/Dockerfile.ubuntu14.04 | 1 +
 docker/compile/Dockerfile.ubuntu16.04 | 1 +
 4 files changed, 4 insertions(+)

diff --git a/docker/compile/Dockerfile.centos7 
b/docker/compile/Dockerfile.centos7
index 5e3bc49..c117ee9 100644
--- a/docker/compile/Dockerfile.centos7
+++ b/docker/compile/Dockerfile.centos7
@@ -36,6 +36,7 @@ RUN yum -y install \
   make \
   patch \
   python-devel \
+  cppunit-devel \
   zip \
   unzip \
   wget \
diff --git a/docker/compile/Dockerfile.debian9 
b/docker/compile/Dockerfile.debian9
index 9572652..fa2b2bc 100644
--- a/docker/compile/Dockerfile.debian9
+++ b/docker/compile/Dockerfile.debian9
@@ -30,6 +30,7 @@ RUN apt-get update && apt-get -y install \
   git \
   libtool \
   libtool-bin \
+  libcppunit-dev \
   python-dev \
   python3-dev \
   software-properties-common \
diff --git a/docker/compile/Dockerfile.ubuntu14.04 
b/docker/compile/Dockerfile.ubuntu14.04
index 8ba7bea..922cd89 100644
--- a/docker/compile/Dockerfile.ubuntu14.04
+++ b/docker/compile/Dockerfile.ubuntu14.04
@@ -34,6 +34,7 @@ RUN apt-get update && apt-get -y install \
   git \
   libtool \
   python-dev \
+  libcppunit-dev \
   zip \
   unzip \
   wget \
diff --git a/docker/compile/Dockerfile.ubuntu16.04 
b/docker/compile/Dockerfile.ubuntu16.04
index 0befaae..a3a2265 100644
--- a/docker/compile/Dockerfile.ubuntu16.04
+++ b/docker/compile/Dockerfile.ubuntu16.04
@@ -32,6 +32,7 @@ RUN apt-get update && apt-get -y install \
   libunwind8 \
   libunwind-setjmp0-dev \
   python-dev \
+  libcppunit-dev \
   tree \
   zip \
   unzip \



[incubator-heron] branch master updated: Fix style

2020-04-07 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 0f27ef4  Fix style
0f27ef4 is described below

commit 0f27ef46aa4fa0871c75b398892982261e90b8d7
Author: Ning Wang 
AuthorDate: Mon Apr 6 23:53:59 2020 -0700

Fix style
---
 .../src/java/org/apache/heron/apiserver/utils/ConfigUtils.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 
a/heron/tools/apiserver/src/java/org/apache/heron/apiserver/utils/ConfigUtils.java
 
b/heron/tools/apiserver/src/java/org/apache/heron/apiserver/utils/ConfigUtils.java
index e6aa022..c3de5e9 100644
--- 
a/heron/tools/apiserver/src/java/org/apache/heron/apiserver/utils/ConfigUtils.java
+++ 
b/heron/tools/apiserver/src/java/org/apache/heron/apiserver/utils/ConfigUtils.java
@@ -139,7 +139,8 @@ public final class ConfigUtils {
 ) {
   stateManagerReader = Files.newBufferedReader(stateManagerPath);
 
-  final Map overrides = (Map) new Yaml(new 
SafeConstructor()).load(overrideReader);
+  final Map overrides =
+  (Map) new Yaml(new 
SafeConstructor()).load(overrideReader);
   final Map stateMangerConfig =
   (Map) new Yaml(new 
SafeConstructor()).load(stateManagerReader);
   // update the state manager config with the overrides



[incubator-heron] branch master updated: Use safe constructor in yaml deserialization

2020-04-06 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 9d77767  Use safe constructor in yaml deserialization
9d77767 is described below

commit 9d7776702750743f536300dd0a2fa7555ac16bf3
Author: Ning Wang 
AuthorDate: Sun Apr 5 17:21:31 2020 -0700

Use safe constructor in yaml deserialization
---
 .../java/org/apache/heron/common/config/ConfigReader.java |  5 +++--
 .../org/apache/heron/metricsmgr/MetricsSinksConfig.java   |  3 ++-
 .../org/apache/heron/apiserver/utils/ConfigUtils.java |  7 ---
 .../apache/heron/apiserver/utils/ConfigUtilsTests.java| 15 ---
 4 files changed, 17 insertions(+), 13 deletions(-)

diff --git 
a/heron/common/src/java/org/apache/heron/common/config/ConfigReader.java 
b/heron/common/src/java/org/apache/heron/common/config/ConfigReader.java
index cb0a3ca..a17c72f 100644
--- a/heron/common/src/java/org/apache/heron/common/config/ConfigReader.java
+++ b/heron/common/src/java/org/apache/heron/common/config/ConfigReader.java
@@ -32,6 +32,7 @@ import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.constructor.SafeConstructor;
 
 /**
  * Loads config file in Yaml file format.
@@ -79,7 +80,7 @@ public final class ConfigReader {
   try {
 FileInputStream fin = new FileInputStream(new File(fileName));
 try {
-  Yaml yaml = new Yaml();
+  Yaml yaml = new Yaml(new SafeConstructor());
   propsYaml = (Map) yaml.load(fin);
   LOG.log(Level.FINE, "Successfully read config file {0}", fileName);
 } finally {
@@ -104,7 +105,7 @@ public final class ConfigReader {
   public static Map loadStream(InputStream inputStream) {
 LOG.fine("Reading config stream");
 
-Yaml yaml = new Yaml();
+Yaml yaml = new Yaml(new SafeConstructor());
 Map propsYaml = (Map) 
yaml.load(inputStream);
 LOG.fine("Successfully read config");
 
diff --git 
a/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/MetricsSinksConfig.java 
b/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/MetricsSinksConfig.java
index ff989cd..f0655bb 100644
--- 
a/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/MetricsSinksConfig.java
+++ 
b/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/MetricsSinksConfig.java
@@ -29,6 +29,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.constructor.SafeConstructor;
 
 import org.apache.heron.common.basics.TypeUtils;
 
@@ -62,7 +63,7 @@ public class MetricsSinksConfig {
   return Collections.emptyMap();
 }
 
-Yaml yaml = new Yaml();
+Yaml yaml = new Yaml(new SafeConstructor());
 try (InputStream inputStream = new FileInputStream(configFile)) {
   return (Map) yaml.load(inputStream);
 }
diff --git 
a/heron/tools/apiserver/src/java/org/apache/heron/apiserver/utils/ConfigUtils.java
 
b/heron/tools/apiserver/src/java/org/apache/heron/apiserver/utils/ConfigUtils.java
index 8a8269b..e6aa022 100644
--- 
a/heron/tools/apiserver/src/java/org/apache/heron/apiserver/utils/ConfigUtils.java
+++ 
b/heron/tools/apiserver/src/java/org/apache/heron/apiserver/utils/ConfigUtils.java
@@ -30,6 +30,7 @@ import java.util.Properties;
 
 import org.yaml.snakeyaml.DumperOptions;
 import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.constructor.SafeConstructor;
 
 import org.apache.heron.api.exception.InvalidTopologyException;
 import org.apache.heron.api.generated.TopologyAPI;
@@ -110,7 +111,7 @@ public final class ConfigUtils {
 try (Writer writer = Files.newBufferedWriter(tempOverridesPath)) {
   overrideReader = Files.newBufferedReader(overridesPath);
   final Map currentOverrides =
-  (Map) new Yaml().load(overrideReader);
+  (Map) new Yaml(new 
SafeConstructor()).load(overrideReader);
   currentOverrides.putAll(overrides);
 
   // write updated overrides
@@ -138,9 +139,9 @@ public final class ConfigUtils {
 ) {
   stateManagerReader = Files.newBufferedReader(stateManagerPath);
 
-  final Map overrides = (Map) new 
Yaml().load(overrideReader);
+  final Map overrides = (Map) new Yaml(new 
SafeConstructor()).load(overrideReader);
   final Map stateMangerConfig =
-  (Map) new Yaml().load(stateManagerReader);
+  (Map) new Yaml(new 
SafeConstructor()).load(stateManagerReader);
   // update the state manager config with the overrides
   for (Map.Entry entry : overrides.entrySet()) {
 // does this key have an override?
diff --git 
a/heron/tools/apiserver/tests/java/org/apache/heron/apiserver/utils/ConfigUtilsTests.java
 
b/heron/tools/apiserver/tests/java/org/apache/heron/apiserver/utils/ConfigUtilsTests.java
index 7fd110c..2fb

[incubator-heron] branch master updated: Support custom metrics rules for PrometheusSink (#3493)

2020-04-01 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new b069e45  Support custom metrics rules for PrometheusSink (#3493)
b069e45 is described below

commit b069e450a78c2f77ba5427c3f1aceda1e881e9f2
Author: choi se 
AuthorDate: Thu Apr 2 14:14:28 2020 +0900

Support custom metrics rules for PrometheusSink (#3493)

* Support Java 11

* config travis to use oracle jdk 11

* Java 11 support (#3399)

* Support Java 11

* config travis to use oracle jdk 11

* Add check jdk version

* Fix command arguments.

Change insert gc_options

Update list

Fix gc-logging

* Add missing parameter

* typo

* Add pause time

* wip

* Support jmx_exporter format configuration.

* Fix checkstyle

* Remove unused

* Java 11 support (#3399)

* Support Java 11

* config travis to use oracle jdk 11

* Add check jdk version

* Fix command arguments.

Change insert gc_options

Update list

Fix gc-logging

* wip

* Support jmx_exporter format configuration.

* Fix checkstyle

* Remove unused

* Update kafkaOffset metrics

* Add Rules

* Make log/sink/consume Streamlet component support setName and 
setNumPartitions (#3459)

* Patch to fix cppcheck with newer glibc (#3471)

* Add documents for setting up a docker based development environment 
(#3475)

* Improve concurrency for needed parts. (#3107)

* Change concurrent Map

* Change concurrent Map

* HashMap changes for unneeded parts.

* HashMap changes for unneeded parts.

* Review changes

* Changes HashMap for unneeded parts.

* Improve concurrency for needed parts.

* Remove unused imports.

* Remove unused imports.

* Remove unused imports.

* Fix NPE

(cherry picked from commit 545d3814b315c29d3e396309a2ededaad193ec32)

* Fix WhitespaceAround

* Add dummy Object

* Fix ConstantName

(cherry picked from commit 8d6d5067072e92d6e276f93e18297ddedc647c6c)

* Update kafkaOffset metrics

* Add Rules

* Update line is longer than 100 characters

* Update line is longer than 100 characters

* Add attrNameSnakeCase or other metrics fix

* fix checkstyle

Co-authored-by: Ning Wang 
Co-authored-by: Ning Wang 
Co-authored-by: Nicholas Nezis 
---
 .../heron/metricsmgr/sink/PrometheusSink.java  | 236 ++---
 .../heron/metricsmgr/sink/PrometheusSinkTests.java | 124 ++-
 2 files changed, 324 insertions(+), 36 deletions(-)

diff --git 
a/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/sink/PrometheusSink.java
 
b/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/sink/PrometheusSink.java
index 0db442a..56a244b 100644
--- 
a/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/sink/PrometheusSink.java
+++ 
b/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/sink/PrometheusSink.java
@@ -20,10 +20,17 @@
 package org.apache.heron.metricsmgr.sink;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
 import java.util.logging.Level;
 import java.util.logging.Logger;
+import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import com.google.common.cache.Cache;
@@ -33,6 +40,9 @@ import org.apache.heron.spi.metricsmgr.metrics.MetricsInfo;
 import org.apache.heron.spi.metricsmgr.metrics.MetricsRecord;
 import org.apache.heron.spi.metricsmgr.sink.SinkContext;
 
+import static java.lang.String.format;
+import static 
org.apache.heron.metricsmgr.sink.PrometheusSink.Prometheus.sanitizeMetricName;
+
 /**
  * A web sink that exposes and endpoint that Prometheus can scrape
  *
@@ -57,6 +67,7 @@ public class PrometheusSink extends AbstractWebSink {
 
   // This is the cache that is used to serve the metrics
   private Cache> metricsCache;
+  private List rules = new ArrayList();
 
   private String cluster;
   private String role;
@@ -66,6 +77,26 @@ public class PrometheusSink extends AbstractWebSink {
 super();
   }
 
+  private enum Type {
+COUNTER,
+GAUGE,
+SUMMARY,
+HISTOGRAM,
+UNTYPED,
+  }
+
+  private static class Rule {
+public Pattern pattern;
+public String name;
+public String value;
+public Double valueFactor = 1.0;
+public String help;
+public boolean attrNameSnakeCase;
+public Type t

[incubator-heron] branch master updated: Update Debian docker build with JDK11 and correct debian version (#3487)

2020-03-11 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 43c7c74  Update Debian docker build with JDK11 and correct debian 
version (#3487)
43c7c74 is described below

commit 43c7c748967e4fd15d0aeabd63e97ab48ad89f8d
Author: Windham Wong 
AuthorDate: Thu Mar 12 09:15:59 2020 +0800

Update Debian docker build with JDK11 and correct debian version (#3487)

* Debian9 docker build fix

* Fix Debian docker build with JDK11

Co-authored-by: tahlia 
---
 docker/compile/Dockerfile.debian10  | 2 +-
 docker/compile/Dockerfile.debian9   | 7 ++-
 docker/dist/Dockerfile.dist.debian9 | 7 +++
 3 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/docker/compile/Dockerfile.debian10 
b/docker/compile/Dockerfile.debian10
index c240b98..70e15d0 100644
--- a/docker/compile/Dockerfile.debian10
+++ b/docker/compile/Dockerfile.debian10
@@ -31,7 +31,7 @@ RUN apt-get update && apt-get -y install \
   libtool \
   libtool-bin \
   python \
-  python2.7-dev \
+  python-dev \
   software-properties-common \
   python-setuptools \
   tree \
diff --git a/docker/compile/Dockerfile.debian9 
b/docker/compile/Dockerfile.debian9
index 0af0330..223c4eb 100644
--- a/docker/compile/Dockerfile.debian9
+++ b/docker/compile/Dockerfile.debian9
@@ -15,7 +15,7 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-FROM openjdk:8-jdk-slim
+FROM openjdk:11-jdk-slim-stretch
 
 # This is passed to the heron build command via the --config flag
 ENV TARGET_PLATFORM debian
@@ -37,10 +37,7 @@ RUN apt-get update && apt-get -y install \
   tree \
   zip \
   unzip \
-  wget \
-  openjdk-11-jdk-headless
-
-ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64
+  wget
 
 RUN wget -O /tmp/bazel.sh 
https://github.com/bazelbuild/bazel/releases/download/$bazelVersion/bazel-$bazelVersion-installer-linux-x86_64.sh
 \
   && chmod +x /tmp/bazel.sh \
diff --git a/docker/dist/Dockerfile.dist.debian9 
b/docker/dist/Dockerfile.dist.debian9
index 7ba3645..5d56c1e 100644
--- a/docker/dist/Dockerfile.dist.debian9
+++ b/docker/dist/Dockerfile.dist.debian9
@@ -15,17 +15,16 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-FROM openjdk:8-jdk-slim
+FROM openjdk:11-jdk-slim-stretch
 
 RUN apt-get -y update && apt-get -y install \
 netcat-openbsd \
 python \
-python3 \
+python-dev \
 unzip \
 curl \
 vim \
-supervisor \
-openjdk-11-jdk-headless && \
+supervisor && \
 apt-get clean all && \
 rm -rf /var/lib/apt/lists/*
 



[incubator-heron] branch master updated: Patch to fix cppcheck with newer glibc (#3471)

2020-02-29 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new a6ec96e  Patch to fix cppcheck with newer glibc (#3471)
a6ec96e is described below

commit a6ec96e8102693c417f44bf69c7805615f06b917
Author: Nicholas Nezis 
AuthorDate: Sat Feb 29 05:49:20 2020 -0500

Patch to fix cppcheck with newer glibc (#3471)
---
 WORKSPACE   |  8 +---
 third_party/cppcheck/cppcheck-readdir-fix.patch | 12 
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/WORKSPACE b/WORKSPACE
index ac4393f..065d85b 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -930,10 +930,12 @@ http_archive(
 
 http_archive(
 name = "com_github_danmar_cppcheck",
-urls = ["https://github.com/danmar/cppcheck/archive/1.87.zip;],
-strip_prefix = "cppcheck-1.87",
 build_file = "@//:third_party/cppcheck/cppcheck.BUILD",
-sha256 = 
"b3de7fbdc1a23d7341b55f7f88877e106a76847bd5a07fa721c07310b625318b",
+patch_args = ["-p2"],
+patches = ["//third_party/cppcheck:cppcheck-readdir-fix.patch"],
+sha256 = 
"cb0e66cbe2d6b655fce430cfaaa74b83ad11c91f221e3926f1ca3211bb7c906b",
+strip_prefix = "cppcheck-1.90",
+urls = ["https://github.com/danmar/cppcheck/archive/1.90.zip;],
 )
 
 http_archive(
diff --git a/third_party/cppcheck/cppcheck-readdir-fix.patch 
b/third_party/cppcheck/cppcheck-readdir-fix.patch
new file mode 100644
index 000..bde961a
--- /dev/null
+++ b/third_party/cppcheck/cppcheck-readdir-fix.patch
@@ -0,0 +1,12 @@
+diff -Naur cppcheck/cppcheck-1.90/cli/filelister.cpp 
cppcheck-fixed/cppcheck-1.90/cli/filelister.cpp
+--- cppcheck/cppcheck-1.90/cli/filelister.cpp  2020-02-20 22:42:28.0 
-0500
 cppcheck-fixed/cppcheck-1.90/cli/filelister.cpp2020-02-20 
22:44:48.0 -0500
+@@ -194,7 +194,7 @@
+ std::string new_path;
+ new_path.reserve(path.length() + 100);// prealloc some memory to 
avoid constant new/deletes in loop
+ 
+-while ((readdir_r(dir, , _result) == 0) && (dir_result 
!= nullptr)) {
++while ((dir_result = readdir(dir)) != NULL) {
+ 
+ if ((std::strcmp(dir_result->d_name, ".") == 0) ||
+ (std::strcmp(dir_result->d_name, "..") == 0))



[incubator-heron] branch master updated (1c59862 -> f0b6e1b)

2020-02-21 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


from 1c59862  Update README for Java 11 (#3464)
 add f0b6e1b  Make log/sink/consume Streamlet component support setName and 
setNumPartitions (#3459)

No new revisions were added by this update.

Summary of changes:
 .../examples/streamlet/StreamletCloneTopology.java |   6 +-
 .../scala/ScalaClassicalMusicTopology.scala|   1 +
 .../scala/ScalaIntegerProcessingTopology.scala |   2 +
 .../java/org/apache/heron/streamlet/Streamlet.java |   8 +-
 .../org/apache/heron/streamlet/StreamletBase.java  |  60 ++
 .../apache/heron/streamlet/impl/BuilderImpl.java   |   2 +-
 .../heron/streamlet/impl/StreamletBaseImpl.java| 224 +
 .../apache/heron/streamlet/impl/StreamletImpl.java | 162 ++-
 .../heron/streamlet/impl/StreamletShadow.java  |   6 +-
 .../impl/streamlets/ConsumerStreamlet.java |   3 +-
 .../streamlet/impl/streamlets/LogStreamlet.java|   3 +-
 .../streamlet/impl/streamlets/SinkStreamlet.java   |   3 +-
 .../apache/heron/streamlet/scala/Streamlet.scala   |  22 +-
 .../heron/streamlet/scala/StreamletBase.scala  |  58 ++
 .../streamlet/scala/impl/StreamletBaseImpl.scala   |  71 +++
 .../heron/streamlet/scala/impl/StreamletImpl.scala |  40 ++--
 .../heron/streamlet/impl/StreamletImplTest.java|  10 +-
 17 files changed, 472 insertions(+), 209 deletions(-)
 create mode 100644 
heron/api/src/java/org/apache/heron/streamlet/StreamletBase.java
 create mode 100644 
heron/api/src/java/org/apache/heron/streamlet/impl/StreamletBaseImpl.java
 create mode 100644 
heron/api/src/scala/org/apache/heron/streamlet/scala/StreamletBase.scala
 create mode 100644 
heron/api/src/scala/org/apache/heron/streamlet/scala/impl/StreamletBaseImpl.scala



[incubator-heron] branch master updated: Update website for java 11 (#3462)

2020-02-19 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 4379fe1  Update website for java 11 (#3462)
4379fe1 is described below

commit 4379fe1a30241140a771fe1ad6b2708eea994cdd
Author: Ning Wang 
AuthorDate: Wed Feb 19 22:52:40 2020 -0800

Update website for java 11 (#3462)
---
 website2/docs/compiling-code-organization.md|  5 ++-
 website2/docs/compiling-docker.md   |  9 +++--
 website2/docs/compiling-linux.md| 48 ++---
 website2/docs/compiling-overview.md |  4 +--
 website2/docs/heron-streamlet-concepts.md   |  2 +-
 website2/website/scripts/Dockerfile.ubuntu18.04 |  4 +--
 6 files changed, 21 insertions(+), 51 deletions(-)

diff --git a/website2/docs/compiling-code-organization.md 
b/website2/docs/compiling-code-organization.md
index bba8ac4..053bc48 100644
--- a/website2/docs/compiling-code-organization.md
+++ b/website2/docs/compiling-code-organization.md
@@ -35,12 +35,11 @@ The primary programming languages for Heron are C++, Java, 
and Python.
 [Topology Master](heron-architecture#topology-master), and
 [Stream Manager](heron-architecture#stream-manager).
 
-* **Java 8** is used primarily for Heron's [topology
+* **Java 11** is used primarily for Heron's [topology
 API](heron-topology-concepts), and [Heron 
Instance](heron-architecture#heron-instance).
 It is currently the only language in which topologies can be written. 
Instructions can be found
 in [Building Topologies](../../developers/java/topologies), while 
documentation for the Java
-API can be found 
[here](/api/org/apache/heron/api/topology/package-summary.html). Please note 
that Heron topologies do not
-require Java 8 and can be written in Java 7 or later.
+API can be found 
[here](/api/org/apache/heron/api/topology/package-summary.html). Please note 
that Heron topologies do not require Java 11 and can be written in Java 7 or 
later.
 
 * **Python 2** (specifically 2.7) is used primarily for Heron's [CLI 
interface](user-manuals-heron-cli) and UI components such as [Heron 
UI](user-manuals-heron-ui) and the [Heron 
Tracker](user-manuals-heron-tracker-runbook).
 
diff --git a/website2/docs/compiling-docker.md 
b/website2/docs/compiling-docker.md
index 7050102..c33bacd 100644
--- a/website2/docs/compiling-docker.md
+++ b/website2/docs/compiling-docker.md
@@ -169,7 +169,7 @@ RUN apt-get update && apt-get -y install \
  wget
 ```
 
-### Step 4 --- An installation script for Java 8 and a `JAVA_HOME` environment 
variable
+### Step 4 --- An installation script for Java 11 and a `JAVA_HOME` 
environment variable
 
 Here's an example:
 
@@ -178,11 +178,10 @@ RUN \
  echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select 
true | debconf-set-selections && \
  add-apt-repository -y ppa:webupd8team/java && \
  apt-get update && \
- apt-get install -y oracle-java8-installer && \
- rm -rf /var/lib/apt/lists/* && \
- rm -rf /var/cache/oracle-jdk8-installer
+ apt-get install -y openjdk-11-jdk-headless && \
+ rm -rf /var/lib/apt/lists/*
 
-ENV JAVA_HOME /usr/lib/jvm/java-8-oracle
+ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64
 ```
 
  Step 5 - An installation script for [Bazel](http://bazel.io/) version {{% 
bazelVersion %}} or above.
diff --git a/website2/docs/compiling-linux.md b/website2/docs/compiling-linux.md
index 0be85f9..e40cb03 100644
--- a/website2/docs/compiling-linux.md
+++ b/website2/docs/compiling-linux.md
@@ -22,12 +22,12 @@ sidebar_label: Compiling on Linux
 
 Heron can currently be built on the following Linux platforms:
 
-* [Ubuntu 14.04](#building-on-ubuntu-14.04)
+* [Ubuntu 14.04](#building-on-ubuntu-18.04)
 * [CentOS 7](#building-on-centos-7)
 
 ## Building on Ubuntu 14.04
 
-To build Heron on a fresh Ubuntu 14.04 installation:
+To build Heron on a fresh Ubuntu 18.04 installation:
 
 ### Step 1 --- Update Ubuntu
 
@@ -50,19 +50,19 @@ export CC=/usr/bin/gcc
 export CCX=/usr/bin/g++
 ```
 
-### Step 4 --- Install JDK 8 and set JAVA_HOME
+### Step 4 --- Install JDK 11 and set JAVA_HOME
 
 ```bash
 $ sudo add-apt-repository ppa:webupd8team/java
 $ sudo apt-get update -y
-$ sudo apt-get install oracle-java8-installer -y
-$ export JAVA_HOME="/usr/lib/jvm/java-8-oracle"
+$ sudo apt-get install openjdk-11-jdk-headless -y
+$ export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
 ```
 
  Step 5 - Install Bazel {{% bazelVersion %}}
 
 ```bash
-wget -O /tmp/bazel.sh 
https://github.com/bazelbuild/bazel/releases/download/0.23.2/bazel-0.23.2-installer-linux-x86_64.sh
+wget -O /tmp/bazel.sh 
https://github.com/bazelbuild/bazel/releases/download/0.26.0/bazel-0.26.0-installer-linux-x86_64.sh
 chmod +x /tmp/bazel.sh
 /tmp/bazel.sh --user

[incubator-heron] branch master updated: Java 11 support (#3454)

2020-02-19 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 1476076  Java 11 support (#3454)
1476076 is described below

commit 14760762b052ed9a6c8aea2988beb5108ae9fc79
Author: se choi 
AuthorDate: Thu Feb 20 01:17:29 2020 +0900

Java 11 support (#3454)

* Support Java 11

* config travis to use oracle jdk 11

* Java 11 support (#3399)

* Support Java 11

* config travis to use oracle jdk 11

* Add check jdk version

* Fix command arguments.

Change insert gc_options

Update list

Fix gc-logging

* Add missing parameter

* typo

* Add pause time

* Add python3 for docker files

* Revert "config travis to use oracle jdk 11"

This reverts commit edaa84f4a6665a1bbd4a93feb67eb67f62476d9a.

* Update unitest

* Update unittest

* Add JDK11 UnitTest

* Add Unittest using Docker.

* Add full test

* Change JDK11

* Ignore PowerMock used for testing is not compatible with Java 11.

* Change JDK11 for travis.yml

* Update python

* Update library requests, pylint

* Revert "Update library requests, pylint"

This reverts commit 7706d34a7b108846b1d4ada8c74e7f6ce65911c0.

* Add ignore

* Refactoring ReflectionUtils

Co-authored-by: Ning Wang 
---
 .travis.yml|   2 +-
 WORKSPACE  |  13 +-
 docker/compile/Dockerfile.centos7  |  10 +-
 docker/compile/Dockerfile.debian9  |  11 +-
 docker/compile/Dockerfile.ubuntu14.04  |  12 +-
 docker/compile/Dockerfile.ubuntu16.04  |  15 +-
 docker/compile/Dockerfile.ubuntu18.04  |   5 +-
 docker/dist/Dockerfile.dist.centos7|   6 +-
 docker/dist/Dockerfile.dist.debian9|   4 +-
 docker/dist/Dockerfile.dist.ubuntu14.04|   5 +-
 docker/dist/Dockerfile.dist.ubuntu16.04|   5 +-
 docker/dist/Dockerfile.dist.ubuntu18.04|   4 +-
 docker/scripts/test-docker.sh  |  64 +++
 docker/scripts/test-platform.sh|  76 
 docker/scripts/test-unittest.sh| 175 ++
 docker/{compile => test}/Dockerfile.centos7|  11 +-
 docker/{compile => test}/Dockerfile.ubuntu18.04|   7 +-
 .../apache/heron/eco/submit/EcoSubmitterTest.java  |   2 +
 heron/api/src/java/BUILD   |   3 +-
 .../org/apache/heron/api/HeronSubmitterTest.java   |   2 +
 heron/common/src/java/BUILD|   1 +
 .../apache/heron/common/basics/FileUtilsTest.java  |   2 +
 .../apache/heron/downloader/DLDownloaderTest.java  |   2 +
 heron/executor/src/python/heron_executor.py| 129 ++
 .../tests/python/heron_executor_unittest.py| 196 -
 heron/scheduler-core/src/java/BUILD|   1 +
 .../apache/heron/scheduler/LaunchRunnerTest.java   |   2 +
 .../heron/scheduler/RuntimeManagerMainTest.java|   2 +
 .../heron/scheduler/RuntimeManagerRunnerTest.java  |   2 +
 .../apache/heron/scheduler/SchedulerMainTest.java  |   2 +
 .../apache/heron/scheduler/SubmitterMainTest.java  |   2 +
 .../heron/scheduler/UpdateTopologyManagerTest.java |   2 +
 .../client/HttpServiceSchedulerClientTest.java |   2 +
 .../client/SchedulerClientFactoryTest.java |   2 +
 .../scheduler/dryrun/SubmitDryRunRenderTest.java   |   2 +
 .../scheduler/dryrun/UpdateDryRunRenderTest.java   |   2 +
 .../heron/scheduler/utils/LauncherUtilsTest.java   |   2 +
 .../heron/scheduler/utils/SchedulerUtilsTest.java  |   2 +
 .../heron/scheduler/aurora/AuroraLauncherTest.java |   2 +
 .../scheduler/aurora/AuroraSchedulerTest.java  |   2 +
 .../kubernetes/KubernetesLauncherTest.java |   2 +
 .../heron/scheduler/local/LocalLauncherTest.java   |   2 +
 .../scheduler/marathon/MarathonControllerTest.java |   2 +
 .../scheduler/marathon/MarathonLauncherTest.java   |   2 +
 .../heron/scheduler/nomad/NomadSchedulerTest.java  |   2 +-
 .../heron/scheduler/slurm/SlurmControllerTest.java |   2 +
 .../heron/scheduler/slurm/SlurmLauncherTest.java   |   2 +
 .../heron/scheduler/slurm/SlurmSchedulerTest.java  |   2 +
 .../scheduler/yarn/HeronExecutorTaskTest.java  |   2 +-
 .../scheduler/yarn/HeronMasterDriverTest.java  |   2 +
 heron/simulator/src/java/BUILD |   1 +
 .../apache/heron/spi/utils/ReflectionUtils.java|   6 +-
 .../apache/heron/spi/common/ConfigLoaderTest.java  |   2 +
 .../org/apache/heron/spi/common/ConfigTest.java|   3 +-
 .../apache/heron/spi/utils/Net

[incubator-heron] branch master updated: Use netcat-bsd in Debian (#3447)

2020-02-09 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new d43f6bd  Use netcat-bsd in Debian (#3447)
d43f6bd is described below

commit d43f6bd0266d8d20a1883a087f922a7925730c0c
Author: Ning Wang 
AuthorDate: Sun Feb 9 12:18:43 2020 -0800

Use netcat-bsd in Debian (#3447)
---
 docker/base/Dockerfile.base.debian9 | 2 +-
 docker/dist/Dockerfile.dist.debian9 | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/docker/base/Dockerfile.base.debian9 
b/docker/base/Dockerfile.base.debian9
index ebbccf4..27892fc 100644
--- a/docker/base/Dockerfile.base.debian9
+++ b/docker/base/Dockerfile.base.debian9
@@ -18,7 +18,7 @@
 FROM openjdk:8-jdk-slim
 
 RUN apt-get -y update && apt-get -y install \
-netcat \
+netcat-openbsd \
 python \
 unzip \
 curl \
diff --git a/docker/dist/Dockerfile.dist.debian9 
b/docker/dist/Dockerfile.dist.debian9
index 27fba8a..97953d9 100644
--- a/docker/dist/Dockerfile.dist.debian9
+++ b/docker/dist/Dockerfile.dist.debian9
@@ -18,7 +18,7 @@
 FROM openjdk:8-jdk-slim
 
 RUN apt-get -y update && apt-get -y install \
-netcat \
+netcat-openbsd \
 python \
 unzip \
 curl \



[incubator-heron] branch master updated: Improve docker dev env script (#3441)

2020-02-02 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 3b66e97  Improve docker dev env script (#3441)
3b66e97 is described below

commit 3b66e971c811b4258b3bd375ef5b0066857a373b
Author: Ning Wang 
AuthorDate: Sun Feb 2 22:48:42 2020 -0800

Improve docker dev env script (#3441)
---
 docker/scripts/{dev-env.sh => dev-env-create.sh} | 40 +++---
 docker/scripts/dev-env-run.sh| 42 
 2 files changed, 62 insertions(+), 20 deletions(-)

diff --git a/docker/scripts/dev-env.sh b/docker/scripts/dev-env-create.sh
old mode 100755
new mode 100644
similarity index 74%
rename from docker/scripts/dev-env.sh
rename to docker/scripts/dev-env-create.sh
index 63eec60..0926cfa
--- a/docker/scripts/dev-env.sh
+++ b/docker/scripts/dev-env-create.sh
@@ -16,39 +16,38 @@
 # specific language governing permissions and limitations
 # under the License.
 
-# This is a script to start a docker container that has all
-# tools needed to compire Heron. Developer should be able to
-# compile Heron in the container without any setup works.
-# usage:
+# This is a script to create/start a docker container that has all
+# tools needed to build Heron. Developer should be able to
+# build Heron in the container without any other setup works.
+#
+# Usage:
 # To create a clean development environment with docker and run it,
 # execute the following scripts in the source directory of Heron:
-#   sh docker/scripts/dev-env.sh
+#   sh docker/scripts/dev-env-create.sh CONTAINER_NAME [OS]
 #
-# After the container is started, build Heron with bazel
+# After the container is started, you can build Heron with bazel
 # (ubuntu config is used in the example):
 #   ./bazel_configure.py
 #   bazel build --config=ubuntu heron/...
-#
-# To enter an existing container with a new shell, find the container
-# ID with this command first:
-#   docker ps -a
-# The image name looks like: "heron-dev:ubuntu18.04".=
-# After the container is found, execute the following commands to start
-# the container in case it is not started yet, and then start a new
-# terminal in the container:
-#   docker container start CONTAINER_ID
-#   docker exec -it CONTAINER_ID bash
-#
+#   bazel build --config=ubuntu scripts/packages:binpkgs
 
 set -o nounset
 set -o errexit
 
+case $# in
+  0)
+echo "Missing arguments."
+echo "Usage: $0  [OS]"
+exit 1
+;;
+esac
+
 # Default platform is ubuntu18.04. Other available platforms
 # include centos7, debian9
-TARGET_PLATFORM=${1:-"ubuntu18.04"}
-SCRATCH_DIR=${2:-"$HOME/.heron-docker"}
+TARGET_PLATFORM=${2:-"ubuntu18.04"}
+SCRATCH_DIR="$HOME/.heron-docker"
 REPOSITORY="heron-dev"
-
+CONTAINER_NAME=$1
 
 realpath() {
   echo "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")"
@@ -83,6 +82,7 @@ docker build -t $REPOSITORY:$TARGET_PLATFORM -f $DOCKER_FILE 
$SCRATCH_DIR
 
 echo "Creating and starting container and mapping the current dir to /heron"
 docker container run -it \
+--name $CONTAINER_NAME --rm \
 -e TARGET_PLATFORM=$TARGET_PLATFORM \
 -e SCRATCH_DIR="/scratch" \
 -v $PROJECT_DIR:/heron \
diff --git a/docker/scripts/dev-env-run.sh b/docker/scripts/dev-env-run.sh
new file mode 100755
index 000..669d2d7
--- /dev/null
+++ b/docker/scripts/dev-env-run.sh
@@ -0,0 +1,42 @@
+#!/bin/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.
+
+# This is a script to start a new session of the docker container
+# created with the dev-env-create.sh script.
+# Usage:
+#   sh docker/scripts/dev-env-run.sh CONTAINER_NAME
+#
+# In case you forgot the container name, you can use this command
+# to list all the existing containers (name is the last column).
+#   docker container ls -a
+
+set -o nounset
+set -o errexit
+
+case $# in
+  0)
+echo "Missing argument."
+echo "Usage: $0 "
+exit 1
+;;
+esac
+
+CONTAINER_NAME=$1
+
+docker container start $CONTAINER_NAME
+docker exec -it $CONTAINER_NAME bash
\ No newline at end of file



[incubator-heron] branch master updated (0599224 -> b964cf4)

2020-02-02 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


from 0599224  Update license files for JSXTransformer.js (#3437)
 add b964cf4  explicitly making the site indexable (#3442)

No new revisions were added by this update.

Summary of changes:
 .gitmodules|  4 
 website/public |  1 -
 website2/package-lock.json |  3 +++
 website2/website/siteConfig.js | 51 +-
 4 files changed, 8 insertions(+), 51 deletions(-)
 delete mode 16 website/public
 create mode 100644 website2/package-lock.json



[incubator-heron] branch master updated: Updated rules_scala to fix https issue (#3436)

2020-01-16 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new b16973a  Updated rules_scala to fix https issue (#3436)
b16973a is described below

commit b16973a7741ac2780202e888b5ada994d5230552
Author: Nicholas Nezis 
AuthorDate: Thu Jan 16 03:04:53 2020 -0500

Updated rules_scala to fix https issue (#3436)
---
 WORKSPACE | 7 +++
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/WORKSPACE b/WORKSPACE
index e29118d..b8d7bc6 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -998,14 +998,13 @@ http_archive(
 )
 
 # scala integration
-rules_scala_version = "300b4369a0a56d9e590d9fea8a73c3913d758e12"  # May 27 - 
update this as needed
+rules_scala_version = "358ab829626c6c2d34ec27f856485d3121e299c7"  # Jan 15 
2020 - update this as needed
 
 http_archive(
 name = "io_bazel_rules_scala",
-urls = ["https://github.com/bazelbuild/rules_scala/archive/%s.zip; % 
rules_scala_version],
-type = "zip",
 strip_prefix = "rules_scala-%s" % rules_scala_version,
-sha256 = 
"7f35ee7d96b22f6139b81da3a8ba5fb816e1803ed097f7295b85b7a56e4401c7",
+type = "zip",
+url = "https://github.com/bazelbuild/rules_scala/archive/%s.zip; % 
rules_scala_version,
 )
 
 load("@io_bazel_rules_scala//scala:scala.bzl", "scala_repositories")



[incubator-heron] branch master updated: update readme (#3429)

2020-01-08 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 2f0c1db  update readme (#3429)
2f0c1db is described below

commit 2f0c1dbc457eb76fde678916db4310ad07927454
Author: Josh Fischer 
AuthorDate: Wed Jan 8 02:31:26 2020 -0600

update readme (#3429)

* update readme

* fix typo
---
 README.md | 23 ---
 1 file changed, 4 insertions(+), 19 deletions(-)

diff --git a/README.md b/README.md
index 09a6aa1..85a7b61 100644
--- a/README.md
+++ b/README.md
@@ -24,16 +24,14 @@ Heron is realtime analytics platform developed by Twitter.  
It has a wide array
 
 [Heron in Apache Incubation](http://incubator.apache.org/projects/heron.html)
 
-[Heron Website](https://apache.github.io/incubator-heron)
-
 ### Documentation
 
-[https://apache.github.io/incubator-heron](https://apache.github.io/incubator-heron)
+[https://heron.incubator.apache.org/](https://heron.incubator.apache.org/)
 
  Heron Requirements:
  * Java JDK 1.8
  * Python 2.7
- * Bazel latest
+ * Bazel 0.26.0
 
 ## Contact
 
@@ -52,27 +50,14 @@ Heron is realtime analytics platform developed by Twitter.  
It has a wide array
 
 [Bay Area Heron Meetup](https://www.meetup.com/Apache-Heron-Bay-Area), *We 
meet on Third Monday of Every Month in Palo Alto.*
 
- Twitter
-Heron on Twitter: [@heronstreaming](https://twitter.com/heronstreaming)
-
 ## For more information:
 
-* Official Heron documentation located at 
[https://apache.github.io/incubator-heron](https://apache.github.io/incubator-heron)
+* Official Heron documentation located at 
[https://heron.incubator.apache.org/](https://heron.incubator.apache.org/)
 * Official Heron resources, including Conference & Journal Papers, Videos, 
Blog Posts and selected Press located at [Heron 
Resources](https://apache.github.io/incubator-heron/docs/resources/)
 * [Twitter Heron: Stream Processing at 
Scale](http://dl.acm.org/citation.cfm?id=2742788) (academic paper)
 * [Twitter Heron: Stream Processing at 
Scale](https://www.youtube.com/watch?v=pUaFOuGgmco) (YouTube video)
 * [Flying Faster with Twitter 
Heron](https://blog.twitter.com/2015/flying-faster-with-twitter-heron) (blog 
post)
 
-
-## Update
-
-We recently merged updates to run Heron natively using 
[Mesos](http://mesos.apache.org/) in [AWS](https://aws.amazon.com/), 
Mesos/[Aurora](http://aurora.apache.org/) in AWS, and locally on a laptop.  
-
-We also added beta testing for [Apache 
YARN](https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html)
 support using [Apache REEF](http://reef.apache.org/), in addition to the 
Simple Linux Utility for Resource Management 
[(SLURM)](http://slurm.schedmd.com/). 
-
-We are working to add support for [Mesosphere DC/OS](https://dcos.io/) and 
[Kubernetes](http://kubernetes.io/).  We will continue to post updates as we 
progress.
-
-
 ## License
 
-Licensed under the Apache License, Version 2.0: 
http://www.apache.org/licenses/LICENSE-2.0
+Licensed under the Apache License, Version 2.0: 
http://www.apache.org/licenses/LICENSE-2.0
\ No newline at end of file



[incubator-heron] branch master updated: Updates to make Zookeeper work (#3424)

2019-12-20 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new a745e3e  Updates to make Zookeeper work (#3424)
a745e3e is described below

commit a745e3ef9d6668cdd4d5efb3e2a257d5679c8597
Author: Nicholas Nezis 
AuthorDate: Sat Dec 21 02:38:44 2019 -0500

Updates to make Zookeeper work (#3424)

Netcat was not included in the centos image.
Also the zookeeper scripts were not executable.
---
 docker/dist/Dockerfile.dist.centos7  | 1 +
 docker/dist/scripts/generate-zookeeper-config.sh | 0
 docker/dist/scripts/install-zookeeper.sh | 0
 docker/dist/scripts/start-zookeeper.sh   | 0
 docker/dist/scripts/wait-for-zookeeper.sh| 0
 5 files changed, 1 insertion(+)

diff --git a/docker/dist/Dockerfile.dist.centos7 
b/docker/dist/Dockerfile.dist.centos7
index 88b856c..d19acc7 100644
--- a/docker/dist/Dockerfile.dist.centos7
+++ b/docker/dist/Dockerfile.dist.centos7
@@ -22,6 +22,7 @@ RUN yum -y install python; yum clean all
 RUN yum -y install unzip; yum clean all
 RUN yum -y install which; yum clean all
 RUN yum -y install curl; yum clean all
+RUN yum -y install nmap-ncat; yum clean all
 RUN yum -y install python-setuptools; yum clean all
 RUN easy_install supervisor
 RUN echo_supervisord_conf > /etc/supervisord.conf
diff --git a/docker/dist/scripts/generate-zookeeper-config.sh 
b/docker/dist/scripts/generate-zookeeper-config.sh
old mode 100644
new mode 100755
diff --git a/docker/dist/scripts/install-zookeeper.sh 
b/docker/dist/scripts/install-zookeeper.sh
old mode 100644
new mode 100755
diff --git a/docker/dist/scripts/start-zookeeper.sh 
b/docker/dist/scripts/start-zookeeper.sh
old mode 100644
new mode 100755
diff --git a/docker/dist/scripts/wait-for-zookeeper.sh 
b/docker/dist/scripts/wait-for-zookeeper.sh
old mode 100644
new mode 100755



[incubator-heron] branch master updated (367b44a -> cb8212f)

2019-12-14 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


from 367b44a  Removing old com.twitter namespace references (#3415)
 add cb8212f  update bazel_config for Mac OS 10.14 (#3420)

No new revisions were added by this update.

Summary of changes:



[incubator-heron] branch master updated (73f2487 -> 367b44a)

2019-12-14 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


from 73f2487  Joshfischer/site build mods (#3422)
 add 367b44a  Removing old com.twitter namespace references (#3415)

No new revisions were added by this update.

Summary of changes:
 deploy/kubernetes/helm/templates/tools.yaml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)



[incubator-heron] branch master updated (a565a6b -> 73f2487)

2019-12-14 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


from a565a6b  Updated compile docker images to include `tree` package 
(#3423)
 add 73f2487  Joshfischer/site build mods (#3422)

No new revisions were added by this update.

Summary of changes:
 .asf.yaml| 6 ++
 website2/website/scripts/publish_site.sh | 3 +++
 2 files changed, 9 insertions(+)



[incubator-heron] branch master updated (7ef2e15 -> a565a6b)

2019-12-14 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


from 7ef2e15  Fix Helm values.yml typo (#3421)
 add a565a6b  Updated compile docker images to include `tree` package 
(#3423)

No new revisions were added by this update.

Summary of changes:
 docker/compile/Dockerfile.centos7 | 1 +
 docker/compile/Dockerfile.debian9 | 1 +
 docker/compile/Dockerfile.ubuntu14.04 | 1 +
 docker/compile/Dockerfile.ubuntu16.04 | 1 +
 docker/compile/Dockerfile.ubuntu18.04 | 1 +
 5 files changed, 5 insertions(+)



[incubator-heron] branch master updated: Update zk version to 3.4.14 in dist and install zk in ubuntu 16/18 di… (#3411)

2019-12-09 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 340e654  Update zk version to 3.4.14 in dist and install zk in ubuntu 
16/18 di… (#3411)
340e654 is described below

commit 340e6546f5dd3c7eb557ffc850736112ec782cf3
Author: Ning Wang 
AuthorDate: Mon Dec 9 23:55:38 2019 -0800

Update zk version to 3.4.14 in dist and install zk in ubuntu 16/18 di… 
(#3411)

* Update zk version to 3.4.14 in dist and install zk in ubuntu 16/18 dist 
docker image

* fix path

* Add back docker ARG
---
 docker/base/Dockerfile.base.debian9  | 32 ++---
 docker/base/scripts/install-zookeeper.sh | 60 
 docker/dist/Dockerfile.dist.centos7  |  9 +
 docker/dist/Dockerfile.dist.debian9  | 33 +++---
 docker/dist/Dockerfile.dist.ubuntu14.04  | 36 +++
 docker/dist/Dockerfile.dist.ubuntu16.04  | 11 +-
 docker/dist/Dockerfile.dist.ubuntu18.04  |  9 +
 docker/dist/scripts/install-zookeeper.sh | 60 
 8 files changed, 159 insertions(+), 91 deletions(-)

diff --git a/docker/base/Dockerfile.base.debian9 
b/docker/base/Dockerfile.base.debian9
index d45d592..ebbccf4 100644
--- a/docker/base/Dockerfile.base.debian9
+++ b/docker/base/Dockerfile.base.debian9
@@ -27,36 +27,10 @@ RUN apt-get -y update && apt-get -y install \
 rm -rf /var/lib/apt/lists/*
 
 # install zookeeper
-ARG ZK_DIST=zookeeper-3.4.10
+ARG ZK_DIST=zookeeper-3.4.14
+ADD base/scripts /opt/heron-docker/scripts
 
-RUN curl -O 
"https://archive.apache.org/dist/zookeeper/$ZK_DIST/$ZK_DIST.tar.gz; \
-&& tar -xzf $ZK_DIST.tar.gz -C /opt \
-&& rm -r $ZK_DIST.tar.gz \
-&& mv /opt/$ZK_DIST /opt/zookeeper \
-&& rm -rf /opt/zookeeper/CHANGES.txt \
-/opt/zookeeper/README.txt \
-/opt/zookeeper/NOTICE.txt \
-/opt/zookeeper/CHANGES.txt \
-/opt/zookeeper/README_packaging.txt \
-/opt/zookeeper/build.xml \
-/opt/zookeeper/config \
-/opt/zookeeper/contrib \
-/opt/zookeeper/dist-maven \
-/opt/zookeeper/docs \
-/opt/zookeeper/ivy.xml \
-/opt/zookeeper/ivysettings.xml \
-/opt/zookeeper/recipes \
-/opt/zookeeper/src \
-/opt/zookeeper/$ZK_DIST.jar.asc \
-/opt/zookeeper/$ZK_DIST.jar.md5 \
-/opt/zookeeper/$ZK_DIST.jar.sha1
+RUN sh /opt/heron-docker/scripts/install-zookeeper.sh $ZK_DIST
 
 ADD base/conf/zookeeper.conf /opt/zookeeper/conf/zookeeper.conf
 ADD base/conf/sandbox.conf /etc/supervisor/conf.d/
-
-RUN mkdir -p /opt/zookeeper/scripts
-ADD base/scripts /opt/zookeeper/scripts
-RUN chmod +x /opt/zookeeper/scripts/generate-zookeeper-config.sh && \
-chmod +x /opt/zookeeper/scripts/zookeeper-ruok.sh && \
-chmod +x /opt/zookeeper/scripts/start-zookeeper.sh && \
-chmod +x /opt/zookeeper/scripts/wait-for-zookeeper.sh
diff --git a/docker/base/scripts/install-zookeeper.sh 
b/docker/base/scripts/install-zookeeper.sh
new file mode 100644
index 000..8c7be96
--- /dev/null
+++ b/docker/base/scripts/install-zookeeper.sh
@@ -0,0 +1,60 @@
+#!/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.
+
+if [ "$#" -ne 1 ]; then
+  echo "Usage: $0 zookeeper-"
+  echo "Example:"
+  echo "$ $0 zookeeper-3.4.14"
+  exit 1
+fi
+
+ZK_DIST=$1
+
+curl -O "https://archive.apache.org/dist/zookeeper/$ZK_DIST/$ZK_DIST.tar.gz;
+tar -xzf ./$ZK_DIST.tar.gz -C /opt
+rm ./$ZK_DIST.tar.gz
+
+mv /opt/$ZK_DIST /opt/zookeeper
+rm -rf /opt/zookeeper/CHANGES.txt \
+/opt/zookeeper/README.txt \
+/opt/zookeeper/NOTICE.txt \
+/opt/zookeeper/CHANGES.txt \
+/opt/zookeeper/README_packaging.txt \
+/opt/zookeeper/build.xml \
+/opt/zookeeper/config \
+/opt/zookeeper/contrib \
+/opt/zookeeper/dist-maven \
+/opt/zookeeper/docs \
+/opt/zookeeper/ivy.xml \
+/opt/zookeeper/ivysettings.xml \
+/opt/zookeeper/recipes \
+/opt/zookeeper/src \
+/opt/zookeeper/$ZK_DIST.jar.as

[incubator-heron] branch master updated: Fix jQuery license and add missing license files (#3407)

2019-11-29 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new d8d811a  Fix jQuery license and add missing license files (#3407)
d8d811a is described below

commit d8d811a910992f9a4f38535597b51fa7b1bc22c8
Author: Ning Wang 
AuthorDate: Fri Nov 29 23:55:19 2019 -0800

Fix jQuery license and add missing license files (#3407)
---
 LICENSE   |   6 +-
 licenses/LICENSE-Modernizr.txt|   5 ++
 licenses/LICENSE-autogen.sh.txt   |  30 +++
 LICENSE => licenses/LICENSE-bazel_authors.txt | 124 +-
 4 files changed, 40 insertions(+), 125 deletions(-)

diff --git a/LICENSE b/LICENSE
index 3c18e55..5714bc7 100644
--- a/LICENSE
+++ b/LICENSE
@@ -222,9 +222,6 @@ See project link for details.
   -> heron/tools/ui/resources/static/js/bootstrap.js
 Bootstrap(v3.0.0, https://github.com/twbs/bootstrap/blob/v3.0.0/LICENSE)
   -> heron/tools/ui/resources/static/css/bootstrap.css
-JQuery(https://jquery.org/license/)
-  -> heron/shell/assets/jquery.js
-  -> heron/tools/ui/resources/static/js/jquery.min.js
 JSXTransformer(v0.10.0)
   -> heron/tools/ui/resources/static/js/JSXTransformer.0.10.0.js
 React (v0.10.0, https://github.com/facebook/react/blob/0.10-stable/LICENSE)
@@ -270,6 +267,9 @@ The following components are provided under the MIT 
License. See project link fo
   -> heron/tools/ui/resources/static/js/d3-tip.min.0.6.3.js
 html5shiv(v3.6.2pre, 
https://github.com/aFarkas/html5shiv/blob/master/MIT%20and%20GPL2%20licenses.md)
   -> heron/tools/ui/resources/static/js/html5-trunk.js
+JQuery(v1.7.2, v1.8.3 https://jquery.org/license/)
+  -> heron/shell/assets/jquery.js
+  -> heron/tools/ui/resources/static/js/jquery.min.js
 jQuery UI(v1.8.23, 
https://github.com/jquery/jquery-ui/blob/master/LICENSE.txt)
   -> heron/tools/ui/resources/static/js/jquery-ui-1.8.23.custom.min.js
 list.js(v1.1.1, https://github.com/javve/list.js/blob/master/LICENSE)
diff --git a/licenses/LICENSE-Modernizr.txt b/licenses/LICENSE-Modernizr.txt
new file mode 100644
index 000..e662c78
--- /dev/null
+++ b/licenses/LICENSE-Modernizr.txt
@@ -0,0 +1,5 @@
+Permission is hereby granted, free of charge, to any person obtaining a copy 
of this software and associated documentation files (the "Software"), to deal 
in the Software without restriction, including without limitation the rights to 
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 
of the Software, and to permit persons to whom the Software is furnished to do 
so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all 
copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.
\ No newline at end of file
diff --git a/licenses/LICENSE-autogen.sh.txt b/licenses/LICENSE-autogen.sh.txt
new file mode 100644
index 000..f869f6c
--- /dev/null
+++ b/licenses/LICENSE-autogen.sh.txt
@@ -0,0 +1,30 @@
+Copyright (c) 2005-2009 United States Government as represented by
+the U.S. Army Research Laboratory.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following
+disclaimer in the documentation and/or other materials provided
+with the distribution.
+
+3. The name of the author may not be used to endorse or promote
+products derived from this software without specific prior written
+permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHET

[incubator-heron] branch master updated: BUG: bookie statefulset helm template specifies incorrect service name (#3410)

2019-11-27 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 4bca2e5  BUG: bookie statefulset helm template specifies incorrect 
service name (#3410)
4bca2e5 is described below

commit 4bca2e55995b4a1a5c4550c854a4a09ceffd02fa
Author: Scott <47566431+the-scott-h...@users.noreply.github.com>
AuthorDate: Thu Nov 28 02:49:11 2019 -0500

BUG: bookie statefulset helm template specifies incorrect service name 
(#3410)

* Update bookie template to use correct service name

* helm add bookie toleration for unready endpoints
---
 deploy/kubernetes/helm/templates/bookie.yaml | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/deploy/kubernetes/helm/templates/bookie.yaml 
b/deploy/kubernetes/helm/templates/bookie.yaml
index acb359e..7a76c56 100644
--- a/deploy/kubernetes/helm/templates/bookie.yaml
+++ b/deploy/kubernetes/helm/templates/bookie.yaml
@@ -71,7 +71,7 @@ metadata:
 component: {{ .Release.Name }}-bookie
 spec:
 {{- if or (eq .Values.platform "gke") (eq .Values.platform "minikube") }}
-  serviceName: {{ .Release.Name }}-bookkeeper
+  serviceName: {{ .Release.Name }}-bookie
   replicas: {{ $bookieReplicas }}
 {{- end }}
 
@@ -200,6 +200,10 @@ spec:
 apiVersion: v1
 kind: Service
 metadata:
+  {{- if or (eq .Values.platform "gke") (eq .Values.platform "minikube") }}
+  annotations:
+service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
+  {{- end }}
   name: {{ .Release.Name }}-bookie
   labels:
 app: {{ .Release.Name }}-bookkeeper



[incubator-heron] branch master updated: Add parallelism calculator in Heron UI (#3401)

2019-11-15 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new d8db1c5  Add parallelism calculator in Heron UI (#3401)
d8db1c5 is described below

commit d8db1c50b499c823e319fd16a4476a02f525a367
Author: Ning Wang 
AuthorDate: Fri Nov 15 00:05:26 2019 -0800

Add parallelism calculator in Heron UI (#3401)
---
 heron/tools/ui/resources/static/css/main.css |  8 +++-
 heron/tools/ui/resources/static/js/topologies.js | 51 +---
 heron/tools/ui/resources/templates/topology.html | 59 
 3 files changed, 110 insertions(+), 8 deletions(-)

diff --git a/heron/tools/ui/resources/static/css/main.css 
b/heron/tools/ui/resources/static/css/main.css
index 0ae4425..f13666d 100644
--- a/heron/tools/ui/resources/static/css/main.css
+++ b/heron/tools/ui/resources/static/css/main.css
@@ -2291,4 +2291,10 @@ div#topologydetails.display-stats 
div.display-info.display-stats,
 div#topologydetails.display-counters div.display-info.display-counters,
 div#topologydetails.display-config div.display-info.display-config {
   display: block;
-}
\ No newline at end of file
+}
+
+/* Backdrop in bootstrap 3 seems to have solid color and we would like it to 
be half transparent */
+div.modal-backdrop.fade.in {
+  opacity: 0.5;
+  filter: alpha(opacity=50);
+}
diff --git a/heron/tools/ui/resources/static/js/topologies.js 
b/heron/tools/ui/resources/static/js/topologies.js
index 764e0aa..ff8dbbe 100644
--- a/heron/tools/ui/resources/static/js/topologies.js
+++ b/heron/tools/ui/resources/static/js/topologies.js
@@ -1067,8 +1067,34 @@ var BoltRunningInfo = React.createClass({
 });
 var setState = this.setState.bind(this);
 
-const headings = ["Bolt", "Parallelism", "Execute Count", "Failure Count",
-  "Capacity Utilization(min)", "Capacity 
Utilization(max)"];
+const headings = [
+  { name: "Bolt", sortable: true },
+  { name: "Parallelism", sortable: true },
+  { name: "Execute Count", sortable: true },
+  { name: "Failure Count", sortable: true },
+  { name: "Capacity Utilization(min)", sortable: true },
+  { name: "Capacity Utilization(max)", sortable: true },
+  { name: "Parallelism Calculator", sortable: false }
+];
+
+var openParallelismCalculator = function (e, index) {
+  var row = rows[index];
+
+  var calculator = $("#parallelism-calculator-modal");
+  calculator.find('#modal-component').text(row[0]);
+  calculator.attr('data-execute-count', row[2]);
+  calculator.find('#modal-execute-count').text(row[2]);
+  calculator.find('#target-execute-count').val(row[2]);
+  calculator.attr('data-max-utilization', row[5].replace("%", ""));
+  calculator.find('#modal-max-utilization').text(row[5]);
+  calculator.find('#target-max-utilization').val(row[5].replace("%", ""));
+  calculator.attr('data-parallelism', row[1]);
+  calculator.find('#modal-parallelism').text(row[1]);
+  calculator.find('#target-parallelism').val(row[1]);
+
+  calculator.modal({keyboard: true});
+};
+
 return (
   
 
@@ -1100,16 +1126,27 @@ var BoltRunningInfo = React.createClass({
 reverse: i === sortKey ? (!reverse) : true
   });
 }
-return {heading};
+
+if (heading.sortable) {
+  return {heading.name};
+} else {
+  return {heading.name};
+}
   })}
 
   
   
-{rows.map(function (row) {
+{rows.map(function (row, index) {
   return {
-row.map(function (value, i) {
-  return {value};
-})};
+  row.map(function (value, i) {
+return {value};
+  })}
+  
+ openParallelismCalculator(e, 
index)}>
+  Calculator
+
+  ;
 })}
   
 
diff --git a/heron/tools/ui/resources/templates/topology.html 
b/heron/tools/ui/resources/templates/topology.html
index f743c78..c109625 100644
--- a/heron/tools/ui/resources/templates/topology.html
+++ b/heron/tools/ui/resources/templates/topology.html
@@ -182,7 +182,49 @@ under the License.
   
 
   
+  
+  
+
+  
+
+  Parallelism 
Calculator: 
+
+
+  
+
+
+  
+Target execute count (current

[incubator-heron] branch master updated: Make topology details section scrollable in Heron UI (#3400)

2019-11-11 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new ae2d1f7  Make topology details section scrollable in Heron UI (#3400)
ae2d1f7 is described below

commit ae2d1f7487d9b27d9d29a90dd16c31609418732f
Author: Ning Wang 
AuthorDate: Mon Nov 11 14:40:04 2019 -0800

Make topology details section scrollable in Heron UI (#3400)
---
 heron/tools/ui/resources/static/css/main.css |  5 +++--
 heron/tools/ui/resources/templates/topology.html | 16 ++--
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/heron/tools/ui/resources/static/css/main.css 
b/heron/tools/ui/resources/static/css/main.css
index 5cde820..0ae4425 100644
--- a/heron/tools/ui/resources/static/css/main.css
+++ b/heron/tools/ui/resources/static/css/main.css
@@ -583,8 +583,7 @@ header {
   left: 0; }
 
 .dashboard-wrapper {
-  /*padding: 30px;*/
-  padding: 0px 30px 30px 10px;
+  padding: 0px 10px 20px 10px;
   position: relative;
   margin: 0px 0px 10px 10px;
   background: white;
@@ -2269,6 +2268,7 @@ div#display-navigator {
   padding-bottom: 5px;
   background-color: transparent;
   border-width: 0px;
+  outline: none;  /* disable outline after clicked on */
 }
 
 #display-navigator .navbar-default button.active {
@@ -2280,6 +2280,7 @@ div#topologydetails {
   border-style: solid;
   border-width: 1px;
   border-color: #dd;
+  overflow-y: scroll;
 }
 
 div#topologydetails div.display-info {
diff --git a/heron/tools/ui/resources/templates/topology.html 
b/heron/tools/ui/resources/templates/topology.html
index 49961a7..f743c78 100644
--- a/heron/tools/ui/resources/templates/topology.html
+++ b/heron/tools/ui/resources/templates/topology.html
@@ -103,7 +103,7 @@ under the License.
   
   
 
-
+
   
 
   
@@ -281,12 +281,23 @@ under the License.
   }
 );
 
+function resizeDetailsSection() {
+  const minSectionHeight = 350;  // Minimal height in pixel.
+  var windowH = $(window).height();
+  var planH = $(".plans").height();
+  var detailsH = Math.max(minSectionHeight, windowH - planH - 222);  // 
Leave 222 pixels for topology info.
+
+  d3.selectAll("div#topologydetails").style('height', detailsH + 'px');
+}
+
 function render(planController) {
   drawLogicalPlan(planController, logicalPlan, "#logical-plan", 
$("#logical-plan").width(), 400, "{{baseUrl}}",
   "{{cluster}}", "{{environ}}", "{{topology}}");
-  planController.planResized();
   drawPhysicalPlan(planController, physicalPlan, packingPlan, 
"#physical-plan", $("#physical-plan").width(), 400, "{{baseUrl}}", 
"{{cluster}}",
   "{{environ}}", "{{topology}}");
+
+  resizeDetailsSection();
+
   planController.planResized();
 }
 
@@ -297,6 +308,7 @@ under the License.
   }, 100));
   render(planController);
   drawStatsTable(planController, "{{baseUrl}}", "{{cluster}}", 
"{{environ}}", "{{topology}}", physicalPlan, logicalPlan);
+
   planController.planDrawn();
 }
   };



[incubator-heron] branch master updated: Support Catalina for Mac (#3398)

2019-11-10 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 909c7a0  Support Catalina for Mac (#3398)
909c7a0 is described below

commit 909c7a005f43ca826e9e1209ecb3fa0ae88bf1a8
Author: se choi 
AuthorDate: Mon Nov 11 15:59:40 2019 +0900

Support Catalina for Mac (#3398)
---
 bazel_configure.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/bazel_configure.py b/bazel_configure.py
index ec254e5..02e67f1 100755
--- a/bazel_configure.py
+++ b/bazel_configure.py
@@ -191,7 +191,8 @@ def discover_version(path):
 
   # on mac, /usr/bin/cpp --version returns this:
   #   Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
-  mac_line = re.search('^(Apple LLVM version\s+[\d\.]+)\s+\(clang.*', 
first_line)
+  #   Apple clang version 11.0.0 (clang-1100.0.33.12)
+  mac_line = re.search('^(Apple (LLVM|clang) version\s+[\d\.]+)\s+\(clang.*', 
first_line)
   if mac_line:
 version = get_trailing_version(mac_line.group(1))
 if version:



[incubator-heron] branch java_11_support updated: Java 11 support (#3399)

2019-11-10 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch java_11_support
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/java_11_support by this push:
 new 1294a04  Java 11 support (#3399)
1294a04 is described below

commit 1294a04ee3aafe26fcfe109e5d20537b417213b3
Author: se choi 
AuthorDate: Mon Nov 11 15:57:57 2019 +0900

Java 11 support (#3399)

* Support Java 11

* config travis to use oracle jdk 11

* Add check jdk version
---
 heron/executor/src/python/heron_executor.py | 117 ++--
 1 file changed, 40 insertions(+), 77 deletions(-)

diff --git a/heron/executor/src/python/heron_executor.py 
b/heron/executor/src/python/heron_executor.py
index 01f59a9..aac24c2 100755
--- a/heron/executor/src/python/heron_executor.py
+++ b/heron/executor/src/python/heron_executor.py
@@ -432,21 +432,7 @@ class HeronExecutor(object):
   # for instance, the default -Xmx in Twitter mesos 
machine is around 18GB
   '-Xmx1024M',
   '-XX:+PrintCommandLineFlags',
-  '-verbosegc',
-  '-XX:+PrintGCDetails',
-  '-XX:+PrintGCTimeStamps',
-  '-XX:+PrintGCDateStamps',
-  '-XX:+PrintGCCause',
-  '-XX:+UseGCLogFileRotation',
-  '-XX:NumberOfGCLogFiles=5',
-  '-XX:GCLogFileSize=100M',
-  '-XX:+PrintPromotionFailure',
-  '-XX:+PrintTenuringDistribution',
-  '-XX:+PrintHeapAtGC',
-  '-XX:+HeapDumpOnOutOfMemoryError',
-  '-XX:+UseConcMarkSweepGC',
-  '-XX:+PrintCommandLineFlags',
-  '-Xloggc:log-files/gc.' + metricsManagerId + '.log',
+  self._get_java_gc_instance_cmd(metricsManagerId),
   '-Djava.net.preferIPv4Stack=true',
   '-cp',
   self.metrics_manager_classpath,
@@ -473,21 +459,7 @@ class HeronExecutor(object):
# for instance, the default -Xmx in Twitter mesos 
machine is around 18GB
'-Xmx1024M',
'-XX:+PrintCommandLineFlags',
-   '-verbosegc',
-   '-XX:+PrintGCDetails',
-   '-XX:+PrintGCTimeStamps',
-   '-XX:+PrintGCDateStamps',
-   '-XX:+PrintGCCause',
-   '-XX:+UseGCLogFileRotation',
-   '-XX:NumberOfGCLogFiles=5',
-   '-XX:GCLogFileSize=100M',
-   '-XX:+PrintPromotionFailure',
-   '-XX:+PrintTenuringDistribution',
-   '-XX:+PrintHeapAtGC',
-   '-XX:+HeapDumpOnOutOfMemoryError',
-   '-XX:+UseConcMarkSweepGC',
-   '-XX:+PrintCommandLineFlags',
-   '-Xloggc:log-files/gc.metricscache.log',
+   self._get_java_gc_instance_cmd('metricscache'),
'-Djava.net.preferIPv4Stack=true',
'-cp',
self.metricscache_manager_classpath,
@@ -515,21 +487,7 @@ class HeronExecutor(object):
  # for instance, the default -Xmx in Twitter mesos machine 
is around 18GB
  '-Xmx1024M',
  '-XX:+PrintCommandLineFlags',
- '-verbosegc',
- '-XX:+PrintGCDetails',
- '-XX:+PrintGCTimeStamps',
- '-XX:+PrintGCDateStamps',
- '-XX:+PrintGCCause',
- '-XX:+UseGCLogFileRotation',
- '-XX:NumberOfGCLogFiles=5',
- '-XX:GCLogFileSize=100M',
- '-XX:+PrintPromotionFailure',
- '-XX:+PrintTenuringDistribution',
- '-XX:+PrintHeapAtGC',
- '-XX:+HeapDumpOnOutOfMemoryError',
- '-XX:+UseConcMarkSweepGC',
- '-XX:+PrintCommandLineFlags',
- '-Xloggc:log-files/gc.healthmgr.log',
+ self._get_java_gc_instance_cmd('healthmgr'),
  '-Djava.net.preferIPv4Stack=true',
  '-cp', self.health_manager_classpath,
  healthmgr_main_class,
@@ -619,6 +577,41 @@ class HeronExecutor(object):
   def _get_jvm_instance_cmd(self):
 return Command(os.path.join(self.heron_java_home, 'bin/java'), 
self.shell_env)
 
+  def _get_java_major_version(self):
+return int(self._get_jvm_version().split(".")[0])
+
+  def _get_java_gc_in

[incubator-heron] branch java_11_support updated (4ca4810 -> 0236e4b)

2019-11-10 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to branch java_11_support
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


omit 4ca4810  config travis to use oracle jdk 11
omit b52d478  Support Java 11
 add 073e4d4  updating the NOTICE (#3374)
 add 31b6667  Fix license in health handler py (#3376)
 add a383bc8  Clean up license for healthHandler and jarjar help.txt (#3377)
 add 066dd8e  Add instance resource usage in container (#3375)
 add 7987f4a  Avoid duplicated metrics requests in Heron UI (#3378)
 add c27d2c0  Fix max capacity timeline in Heron UI (#3383)
 add c51faf8  makemetricstriggerperiodic (#3384)
 add a65d330  fix base url and counters flag; combine metrics requests 
(#3385)
 add 1dbf1ce  Refactor counters sections in Heron UI topology page (#3392)
 add 8045a30  Docker site (#3393)
 add 135fb76  Helm chart Bookkeeper fix (#3381)
 add 1f5f23d  Add tables for component running info (#3394)
 add bd06dc8  Update the instruction for using the docker based development 
environment (#3395)
 add 06a55e9  Re-organize UI elements in Heorn UI topology page (#3397)
 add 88a3ccd  Support Java 11
 add 0236e4b  config travis to use oracle jdk 11

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (4ca4810)
\
 N -- N -- N   refs/heads/java_11_support (0236e4b)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 LICENSE|   5 +-
 NOTICE |   2 +-
 deploy/kubernetes/helm/templates/bookie.yaml   |   3 +
 docker/scripts/dev-env.sh  |   9 +-
 .../heron/healthmgr/HealthManagerMetrics.java  |  11 +-
 heron/shell/src/python/handlers/healthhandler.py   |  23 +-
 heron/tools/common/src/python/access/heron_api.py  |   9 +-
 heron/tools/ui/resources/static/css/main.css   |  38 +
 heron/tools/ui/resources/static/js/config.js   |   2 +-
 .../tools/ui/resources/static/js/physical-plan.js  |  47 +-
 .../ui/resources/static/js/plan-controller.js  |   1 +
 heron/tools/ui/resources/static/js/topologies.js   | 790 +
 .../static/js/{colors.js => topology-details.js}   |  29 +-
 heron/tools/ui/resources/templates/topology.html   | 252 ---
 ...azel_rules_pex-0.3.0.txt => LICENSE-jarjar.txt} |   2 +-
 website2/website/package-lock.json |   7 +-
 website2/website/package.json  |   4 +-
 .../website/scripts}/Dockerfile.ubuntu18.04|  16 +-
 website2/website/scripts/build-site.sh |  13 +-
 .../website}/scripts/compile-docker.sh |  39 +-
 website2/website/scripts/python-doc-gen.sh |  16 +-
 21 files changed, 964 insertions(+), 354 deletions(-)
 copy heron/tools/ui/resources/static/js/{colors.js => topology-details.js} 
(53%)
 copy licenses/{LICENSE-bazel_rules_pex-0.3.0.txt => LICENSE-jarjar.txt} (99%)
 copy {docker/compile => website2/website/scripts}/Dockerfile.ubuntu18.04 (83%)
 copy {docker => website2/website}/scripts/compile-docker.sh (61%)



[incubator-heron] branch nwangtw-patch-1 updated (13a59bc -> 09fd23e)

2019-11-09 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to branch nwangtw-patch-1
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


from 13a59bc  Update issue templates
 add 09fd23e  Update bug_report.md

No new revisions were added by this update.

Summary of changes:
 .github/ISSUE_TEMPLATE/bug_report.md | 9 +
 1 file changed, 1 insertion(+), 8 deletions(-)



[incubator-heron] branch master updated: Re-organize UI elements in Heorn UI topology page (#3397)

2019-11-09 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 06a55e9  Re-organize UI elements in Heorn UI topology page (#3397)
06a55e9 is described below

commit 06a55e9de1b3524df406f8994e5e3b7f4b5f85d8
Author: Ning Wang 
AuthorDate: Sat Nov 9 19:36:14 2019 -0800

Re-organize UI elements in Heorn UI topology page (#3397)
---
 heron/tools/ui/resources/static/css/main.css   |  38 
 heron/tools/ui/resources/static/js/config.js   |   2 +-
 heron/tools/ui/resources/static/js/topologies.js   |   2 +-
 .../ui/resources/static/js/topology-details.js |  41 
 heron/tools/ui/resources/templates/topology.html   | 252 -
 5 files changed, 223 insertions(+), 112 deletions(-)

diff --git a/heron/tools/ui/resources/static/css/main.css 
b/heron/tools/ui/resources/static/css/main.css
index d8c6570..5cde820 100644
--- a/heron/tools/ui/resources/static/css/main.css
+++ b/heron/tools/ui/resources/static/css/main.css
@@ -2253,3 +2253,41 @@ nav {
 .navbar-custom .navbar-link:hover {
   color: #ffecb3;
 }
+
+/* Topology details */
+div#display-navigator {
+  border-style: solid;
+  border-width: 1px;
+  border-color: #dd;
+  border-bottom-width: 0px;
+}
+
+#display-navigator .navbar-default button {
+  padding-left: 15px;
+  padding-right: 15px;
+  padding-top: 5px;
+  padding-bottom: 5px;
+  background-color: transparent;
+  border-width: 0px;
+}
+
+#display-navigator .navbar-default button.active {
+  background-color: lightskyblue;
+}
+
+/* Select the right topology details to show */
+div#topologydetails {
+  border-style: solid;
+  border-width: 1px;
+  border-color: #dd;
+}
+
+div#topologydetails div.display-info {
+  display: none;
+}
+
+div#topologydetails.display-stats div.display-info.display-stats,
+div#topologydetails.display-counters div.display-info.display-counters,
+div#topologydetails.display-config div.display-info.display-config {
+  display: block;
+}
\ No newline at end of file
diff --git a/heron/tools/ui/resources/static/js/config.js 
b/heron/tools/ui/resources/static/js/config.js
index 762fe2b..4e23f2d 100644
--- a/heron/tools/ui/resources/static/js/config.js
+++ b/heron/tools/ui/resources/static/js/config.js
@@ -166,7 +166,7 @@ var ConfigTable = React.createClass({
   tableLayout: 'inherit'
 };
 return (
-  
+  
 
   
 {title}
diff --git a/heron/tools/ui/resources/static/js/topologies.js 
b/heron/tools/ui/resources/static/js/topologies.js
index 1d1a0f9..764e0aa 100644
--- a/heron/tools/ui/resources/static/js/topologies.js
+++ b/heron/tools/ui/resources/static/js/topologies.js
@@ -598,7 +598,7 @@ var AllMetrics = React.createClass({
   instance: this.props.instance,
 };
 return (
-  
+  
 
 
 
diff --git a/heron/tools/ui/resources/static/js/topology-details.js 
b/heron/tools/ui/resources/static/js/topology-details.js
new file mode 100644
index 000..8add7da
--- /dev/null
+++ b/heron/tools/ui/resources/static/js/topology-details.js
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+
+/**
+ * Navigator of the topology details section in the topology page.
+ * When a tab is clicked, the corresponding "display-" class
+ * is set to the "topologydetails" element. Then CSS shows/hides
+ * the information.
+ */
+(function () {
+  var selected = "stats";  // Show stats tab at beginning.
+
+  function navigate () {
+this.parentElement.selected=this.id;
+for (var i = 0; i < this.parentElement.children.length; ++i) {
+  this.parentElement.children[i].className = '';  // Hide all
+}
+this.className = 'active';  // Show "this" element.
+
+// Show the right div by setting the class of the outter div.
+d3.selectAll('div#topologydetails').attr('class', 'display-' + this.id);
+  }
+
+  d3.selectAll('.navigator button').on('click', navigate);
+}());
diff --git a/heron/tools/ui/resources/templates/topology.html 
b

[incubator-heron] branch master updated: Update the instruction for using the docker based development environment (#3395)

2019-11-07 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new bd06dc8  Update the instruction for using the docker based development 
environment (#3395)
bd06dc8 is described below

commit bd06dc8ad65b9f2bc5a1a9c1d4fca844a03ba941
Author: Ning Wang 
AuthorDate: Thu Nov 7 18:07:43 2019 -0800

Update the instruction for using the docker based development environment 
(#3395)
---
 docker/scripts/dev-env.sh | 9 +++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/docker/scripts/dev-env.sh b/docker/scripts/dev-env.sh
index 17e37ed..63eec60 100755
--- a/docker/scripts/dev-env.sh
+++ b/docker/scripts/dev-env.sh
@@ -30,10 +30,15 @@
 #   bazel build --config=ubuntu heron/...
 #
 # To enter an existing container with a new shell, find the container
-# id with this command:
+# ID with this command first:
 #   docker ps -a
-# And then :
+# The image name looks like: "heron-dev:ubuntu18.04".=
+# After the container is found, execute the following commands to start
+# the container in case it is not started yet, and then start a new
+# terminal in the container:
+#   docker container start CONTAINER_ID
 #   docker exec -it CONTAINER_ID bash
+#
 
 set -o nounset
 set -o errexit



[incubator-heron] branch master updated: Add tables for component running info (#3394)

2019-11-07 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 1f5f23d  Add tables for component running info (#3394)
1f5f23d is described below

commit 1f5f23d6fc1cada9d6c48211061d8af1ef302cb2
Author: Ning Wang 
AuthorDate: Thu Nov 7 11:06:26 2019 -0800

Add tables for component running info (#3394)

* Add tables for component running info

* format capacity utilization
---
 heron/tools/ui/resources/static/js/topologies.js | 436 ++-
 1 file changed, 426 insertions(+), 10 deletions(-)

diff --git a/heron/tools/ui/resources/static/js/topologies.js 
b/heron/tools/ui/resources/static/js/topologies.js
index 9a423e9..1d1a0f9 100644
--- a/heron/tools/ui/resources/static/js/topologies.js
+++ b/heron/tools/ui/resources/static/js/topologies.js
@@ -29,6 +29,8 @@ setInterval(function() {
   countersUrlFlags = {};
 }, 6);
 
+const ParallelismConfig = "topology.component.parallelism";
+
 var AllExceptions = React.createClass({
   getInitialState: function() {
 return {}
@@ -269,7 +271,7 @@ var AllMetrics = React.createClass({
 
   fetchLplan: function () {
 if (this.state.lplan === undefined) {
-  var fetch_url = this.props.baseUrl +
+  const fetch_url = this.props.baseUrl +
"/topologies/" +
 this.props.cluster + "/" +
 this.props.environ + "/" +
@@ -392,7 +394,7 @@ var AllMetrics = React.createClass({
 
   fetchCounters: function() {
 if (this.props.hasOwnProperty("comp_name")) {
-  var fetch_url = this.props.baseUrl + "/topologies/metrics?" +
+  const fetch_url = this.props.baseUrl + "/topologies/metrics?" +
 "cluster=" + this.props.cluster + "&" +
 "environ=" + this.props.environ + "&" +
 "topology=" + this.props.topology + "&" +
@@ -450,16 +452,19 @@ var AllMetrics = React.createClass({
   // Fetch all metrics for all the spouts.
   // Must have pplan and metricnames to continue.
   if (this.state.pplan && this.state.lplan) {
+const fetch_url = this.props.baseUrl + "/topologies/metrics?" +
+  "cluster=" + this.props.cluster + "&" +
+  "environ=" + this.props.environ + "&" +
+  "topology=" + this.props.topology;
+
 var spoutNames = [];
 for (var name in this.state.lplan.spouts) {
   if (this.state.lplan.spouts.hasOwnProperty(name)) {
 spoutNames.push(name);
   }
 }
-var fetch_url = this.props.baseUrl + "/topologies/metrics?" +
-  "cluster=" + this.props.cluster + "&" +
-  "environ=" + this.props.environ + "&" +
-  "topology=" + this.props.topology;
+
+// Load metrics for spouts.
 for (var i = 0; i < spoutNames.length; i++) {
   var spout = spoutNames[i];
   for (var j = 0; j < this.state.lplan.spouts[spout].outputs.length; 
j++) {
@@ -481,6 +486,35 @@ var AllMetrics = React.createClass({
 }
   }
 }
+// Load metrics for bolts.
+var boltNames = [];
+for (var name in this.state.lplan.bolts) {
+  if (this.state.lplan.bolts.hasOwnProperty(name)) {
+boltNames.push(name);
+  }
+}
+
+for (var i = 0; i < boltNames.length; i++) {
+  var bolt = boltNames[i];
+  for (var j = 0; j < this.state.lplan.bolts[bolt].outputs.length; 
j++) {
+var streamName = 
this.state.lplan.bolts[bolt].outputs[j].stream_name;
+for (var timeRange in this.timeRanges) {
+  metricnameargs = "";
+  for (var boltMetric in this.boltMetricsInput) {
+if (this.boltMetricsInput.hasOwnProperty(boltMetric)) {
+  metricnameargs += "=" + boltMetric + streamName;
+}
+  }
+  if (this.timeRanges.hasOwnProperty(timeRange) && metricnameargs 
!= "") {
+var url = fetch_url + metricnameargs +
+  "=" + bolt +
+  "=" + this.timeRanges[timeRange];
+
+this.fetchCountersURL(url, timeRange);
+  }
+}
+  }
+}
   }
 }
   },
@@ -566,6 +600,8 @@ var AllMetrics = React.createClass({
 return (
   
 
+
+
 
 
   
@@ -573,6 +609,7 @@ var AllMetrics = React.createClass({
   }
 });
 
+
 var TopologyCounters = React.createClass({
   capitalize: function(astr) {
 if (astr) {
@@ -5

[incubator-heron] branch master updated: Helm chart Bookkeeper fix (#3381)

2019-11-07 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 135fb76  Helm chart Bookkeeper fix (#3381)
135fb76 is described below

commit 135fb760b00739dbb0f655fb91937a4edd0cb8a0
Author: Nicholas Nezis 
AuthorDate: Thu Nov 7 03:11:16 2019 -0500

Helm chart Bookkeeper fix (#3381)

* Kubernetes Statefulset bug fix

* Update bookie.yaml

Updated to only use hostname with Statefulset
---
 deploy/kubernetes/helm/templates/bookie.yaml | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/deploy/kubernetes/helm/templates/bookie.yaml 
b/deploy/kubernetes/helm/templates/bookie.yaml
index fecc7f1..acb359e 100644
--- a/deploy/kubernetes/helm/templates/bookie.yaml
+++ b/deploy/kubernetes/helm/templates/bookie.yaml
@@ -41,6 +41,9 @@ data:
   BK_indexDirectories: "/bookkeeper/data/ledgers" 
   BK_zkServers: {{ .Release.Name }}-zookeeper:{{ .Values.zookeeper.clientPort 
}}
   BK_autoRecoveryDaemonEnabled: "true"
+  {{- if or (eq .Values.platform "gke") (eq .Values.platform "minikube") }}
+  BK_useHostNameAsBookieID: "true"
+  {{- end }}
   # TODO: Issue 458: https://github.com/apache/bookkeeper/issues/458
   {{- if eq .Values.bookkeeper.prometheus.enabled true }}
   BK_enableStatistics: "true"



[incubator-heron] branch java_11_support created (now 4ca4810)

2019-11-01 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to branch java_11_support
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


  at 4ca4810  config travis to use oracle jdk 11

No new revisions were added by this update.



[incubator-heron] branch master updated: Refactor counters sections in Heron UI topology page (#3392)

2019-10-31 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 1dbf1ce  Refactor counters sections in Heron UI topology page (#3392)
1dbf1ce is described below

commit 1dbf1ce1860725827004c7047bf714b87c9df6d7
Author: Ning Wang 
AuthorDate: Thu Oct 31 09:07:56 2019 -0700

Refactor counters sections in Heron UI topology page (#3392)
---
 heron/tools/ui/resources/static/js/topologies.js | 220 +++
 1 file changed, 142 insertions(+), 78 deletions(-)

diff --git a/heron/tools/ui/resources/static/js/topologies.js 
b/heron/tools/ui/resources/static/js/topologies.js
index 0f25192..9a423e9 100644
--- a/heron/tools/ui/resources/static/js/topologies.js
+++ b/heron/tools/ui/resources/static/js/topologies.js
@@ -565,6 +565,7 @@ var AllMetrics = React.createClass({
 };
 return (
   
+
 
 
   
@@ -572,7 +573,7 @@ var AllMetrics = React.createClass({
   }
 });
 
-var ComponentCounters = React.createClass({
+var TopologyCounters = React.createClass({
   capitalize: function(astr) {
 if (astr) {
 return astr.charAt(0).toUpperCase() + astr.slice(1);
@@ -581,73 +582,7 @@ var ComponentCounters = React.createClass({
   },
 
   getTitle: function () {
-if (this.props.info.comp_name) {
-  var comp_type = this.capitalize(this.props.info.comp_type);
-  var title = " " + comp_type + " Counters - " + this.props.info.comp_name;
-  if (this.props.info.comp_spout_type !== undefined
-  && this.props.info.comp_spout_type !== "default") {
-title += " - " + this.props.info.comp_spout_type + "/" + 
this.props.info.comp_spout_source;
-  }
-  return title;
-}
-return " Topology Counters";
-  },
-
-  getComponentMetricsRows: function () {
-var metrics = {};
-if (this.props.info.metrics.hasOwnProperty(this.props.info.comp_name)) {
-  metrics = this.props.info.metrics[this.props.info.comp_name];
-}
-var aggregatedMetrics = {};
-var timeRanges = ["10 mins", "1 hr", "3 hrs", "All Time"];
-
-for (var time in metrics) {
-  if (metrics.hasOwnProperty(time)) {
-for (var metricname in metrics[time]) {
-  if (metrics[time].hasOwnProperty(metricname) &&
-  metricname !== "__interval" &&
-  metricname !== "Uptime (ddd:hh:mm:ss)") {
-for (var stream in metrics[time][metricname]) {
-  if (metrics[time][metricname].hasOwnProperty(stream)) {
-displayName = metricname + " (" + stream + ")";
-var value = 0;
-var allMetrics = metrics[time][metricname][stream].metrics;
-var aggregationType = 
metrics[time][metricname][stream].aggregationType;
-var count = 0;
-for (var m in allMetrics) {
-  if (allMetrics.hasOwnProperty(m)) {
-value += Number(allMetrics[m]);
-count++;
-  }
-}
-if (aggregationType === AVG && count > 0) {
-  value /= count;
-}
-if (!aggregatedMetrics.hasOwnProperty(displayName)) {
-  aggregatedMetrics[displayName] = {};
-}
-value /= (metrics[time][metricname][stream].scaleDevisor || 1);
-aggregatedMetrics[displayName][time] = value;
-  }
-}
-  }
-}
-  }
-}
-
-var rows = [];
-for (var name in aggregatedMetrics) {
-  if (aggregatedMetrics.hasOwnProperty(name)) {
-var row = [];
-row.push(name);
-for (var i = 0; i < timeRanges.length; i++) {
-  var time = timeRanges[i];
-  row.push(Number(Number(aggregatedMetrics[name][time] || 
0).toFixed(2)));
-}
-rows.push(row);
-  }
-}
-return rows;
+return "Topology Counters";
   },
 
   getTopologyMetricsRows: function () {
@@ -718,26 +653,154 @@ var ComponentCounters = React.createClass({
   },
 
   render: function () {
+if (this.props.info.comp_name) {
+  // A component is selected, return empty div.
+  return ()
+}
 var title = this.getTitle();
+var rows = this.getTopologyMetricsRows();
 
 var timeRanges = ["10 mins", "1 hr", "3 hrs", "All Time"];
 var headings = ["Metrics"];
 headings.push.apply(headings, timeRanges);
 
-var rows = [];
-var extraLinks = [];
+return (
+  
+
+  
+{title}
+
+
+  
+
+ 

[incubator-heron] branch master updated: fix base url and counters flag; combine metrics requests (#3385)

2019-10-30 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new a65d330  fix base url and counters flag; combine metrics requests 
(#3385)
a65d330 is described below

commit a65d3309b30f0468ef47e3a73f4ad334cee73e86
Author: Ning Wang 
AuthorDate: Wed Oct 30 16:02:39 2019 -0700

fix base url and counters flag; combine metrics requests (#3385)
---
 .../ui/resources/static/js/plan-controller.js  |  1 +
 heron/tools/ui/resources/static/js/topologies.js   | 50 --
 2 files changed, 28 insertions(+), 23 deletions(-)

diff --git a/heron/tools/ui/resources/static/js/plan-controller.js 
b/heron/tools/ui/resources/static/js/plan-controller.js
index 5482e43..cbb7e13 100644
--- a/heron/tools/ui/resources/static/js/plan-controller.js
+++ b/heron/tools/ui/resources/static/js/plan-controller.js
@@ -110,6 +110,7 @@ function PlanController(baseUrl, cluster, environ, 
toponame, physicalPlan, logic
   function clearFocus() {
 React.renderComponent(
   AllMetrics({
+baseUrl: baseUrl,
 cluster: cluster,
 environ: environ,
 topology: toponame
diff --git a/heron/tools/ui/resources/static/js/topologies.js 
b/heron/tools/ui/resources/static/js/topologies.js
index 73860d1..0f25192 100644
--- a/heron/tools/ui/resources/static/js/topologies.js
+++ b/heron/tools/ui/resources/static/js/topologies.js
@@ -24,6 +24,10 @@ var SUM = 0,
 LAST = 2;
 
 var countersUrlFlags = {};
+setInterval(function() {
+  // Reset fetch flags every minute so that new fetches can go through
+  countersUrlFlags = {};
+}, 6);
 
 var AllExceptions = React.createClass({
   getInitialState: function() {
@@ -387,9 +391,8 @@ var AllMetrics = React.createClass({
   },
 
   fetchCounters: function() {
-var fetch_url = "";
 if (this.props.hasOwnProperty("comp_name")) {
-  fetch_url = this.props.baseUrl + "/topologies/metrics?" +
+  var fetch_url = this.props.baseUrl + "/topologies/metrics?" +
 "cluster=" + this.props.cluster + "&" +
 "environ=" + this.props.environ + "&" +
 "topology=" + this.props.topology + "&" +
@@ -432,14 +435,15 @@ var AllMetrics = React.createClass({
   }
 }
   }
-  for (var i = 0; i < metricnames.length; i++) {
-for (var timeRange in this.timeRanges) {
-  if (this.timeRanges.hasOwnProperty(timeRange)) {
-var url = fetch_url +
-  "=" + metricnames[i] +
-  "=" + this.timeRanges[timeRange];
-this.fetchCountersURL(url, timeRange);
-  }
+  for (var timeRange in this.timeRanges) {
+metricnameargs = "";
+for (var i = 0; i < metricnames.length; i++) {
+  metricnameargs += "=" + metricnames[i];
+}
+if (this.timeRanges.hasOwnProperty(timeRange) && metricnameargs != "") 
{
+  var url = fetch_url + metricnameargs +
+"=" + this.timeRanges[timeRange];
+  this.fetchCountersURL(url, timeRange);
 }
   }
 } else if (!this.props.hasOwnProperty("comp_name")) {
@@ -452,28 +456,28 @@ var AllMetrics = React.createClass({
 spoutNames.push(name);
   }
 }
-fetch_url = this.props.baseUrl + "/topologies/metrics?" +
+var fetch_url = this.props.baseUrl + "/topologies/metrics?" +
   "cluster=" + this.props.cluster + "&" +
   "environ=" + this.props.environ + "&" +
   "topology=" + this.props.topology;
 for (var i = 0; i < spoutNames.length; i++) {
   var spout = spoutNames[i];
-  var url = fetch_url + "=" + spout;
   for (var j = 0; j < this.state.lplan.spouts[spout].outputs.length; 
j++) {
 var streamName = 
this.state.lplan.spouts[spout].outputs[j].stream_name;
-for (var spoutMetric in this.spoutMetrics) {
-  if (this.spoutMetrics.hasOwnProperty(spoutMetric)) {
-var metricname = spoutMetric + streamName;
-for (var timeRange in this.timeRanges) {
-  if (this.timeRanges.hasOwnProperty(timeRange)) {
-var url = fetch_url +
-  "=" + spout +
-  "=" + metricname +
-  "=" + this.timeRanges[timeRange];
-this.fetchCountersURL(url, timeRange);
-  }
+for (var timeRange in this.timeRanges) {
+  metricnameargs = "";
+  for (var spoutM

[incubator-heron] branch master updated: Fix max capacity timeline in Heron UI (#3383)

2019-10-29 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new c27d2c0  Fix max capacity timeline in Heron UI (#3383)
c27d2c0 is described below

commit c27d2c0046996bb2f260f83952ad6483b52f60b8
Author: Ning Wang 
AuthorDate: Mon Oct 28 23:53:12 2019 -0700

Fix max capacity timeline in Heron UI (#3383)
---
 heron/tools/common/src/python/access/heron_api.py | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/heron/tools/common/src/python/access/heron_api.py 
b/heron/tools/common/src/python/access/heron_api.py
index 709acb4..ebf908d 100644
--- a/heron/tools/common/src/python/access/heron_api.py
+++ b/heron/tools/common/src/python/access/heron_api.py
@@ -867,9 +867,12 @@ class HeronQueryHandler(QueryHandler):
 :param multi_ts:
 :return:
 '''
-if len(multi_ts) > 0 and len(multi_ts[0]["timeline"]) > 0:
-  keys = multi_ts[0]["timeline"][0]["data"].keys()
-  timelines = ([res["timeline"][0]["data"][key] for key in keys] for res 
in multi_ts)
+# Some components don't have specific metrics such as capacity hence the
+# key set is empty. These components are filtered out first.
+filtered_ts = [ts for ts in multi_ts if len(ts["timeline"][0]["data"]) > 0]
+if len(filtered_ts) > 0 and len(filtered_ts[0]["timeline"]) > 0:
+  keys = filtered_ts[0]["timeline"][0]["data"].keys()
+  timelines = ([res["timeline"][0]["data"][key] for key in keys] for res 
in filtered_ts)
   values = (max(v) for v in zip(*timelines))
   return dict(zip(keys, values))
 return {}



[incubator-heron] branch master updated: Avoid duplicated metrics requests in Heron UI (#3378)

2019-10-24 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 7987f4a  Avoid duplicated metrics requests in Heron UI (#3378)
7987f4a is described below

commit 7987f4a218fe0f89a7fc83023bbc56691ec192a4
Author: Ning Wang 
AuthorDate: Thu Oct 24 21:22:52 2019 -0700

Avoid duplicated metrics requests in Heron UI (#3378)

Same request might be sent three times which gives heron UI pressure and
makes UI slow.
---
 heron/tools/ui/resources/static/js/topologies.js | 90 +---
 1 file changed, 50 insertions(+), 40 deletions(-)

diff --git a/heron/tools/ui/resources/static/js/topologies.js 
b/heron/tools/ui/resources/static/js/topologies.js
index 9fa9f23..73860d1 100644
--- a/heron/tools/ui/resources/static/js/topologies.js
+++ b/heron/tools/ui/resources/static/js/topologies.js
@@ -23,6 +23,8 @@ var SUM = 0,
 AVG = 1,
 LAST = 2;
 
+var countersUrlFlags = {};
+
 var AllExceptions = React.createClass({
   getInitialState: function() {
 return {}
@@ -480,50 +482,58 @@ var AllMetrics = React.createClass({
   },
 
   fetchCountersURL: function(url, timeRange) {
-$.ajax({
-  url:   url,
-  dataType:  'json',
-  success: function(response) {
-if (response.hasOwnProperty("metrics")) {
-  var component = response.component;
-  var metrics = this.metrics;
-  if (!metrics.hasOwnProperty(component)) {
-metrics[response.component] = {};
-  }
-  if (!metrics[component].hasOwnProperty(timeRange)) {
-metrics[component][timeRange] = {};
-  }
-  for (var name in response.metrics) {
-if (response.metrics.hasOwnProperty(name)) {
-  var metricname = name;
-  // Handle __jvm-uptime-secs as a special case.
-  if (name !== "__jvm-uptime-secs") {
-metricname = name.split("/")[0] + "/";
-  }
-  var displayName = this.supportedMetricNames[metricname].name;
-  if (!metrics[component][timeRange].hasOwnProperty(displayName)) {
-metrics[component][timeRange][displayName] = {};
-  }
-  var tmpMetrics = {
-metrics: response.metrics[name],
-scaleDevisor: 
this.supportedMetricNames[metricname].scaleDevisor,
-aggregationType: 
this.supportedMetricNames[metricname].aggregationType
-  };
-  if (name === "__jvm-uptime-secs") {
-metrics[component][timeRange][displayName][""] = tmpMetrics;
-  } else {
-metrics[component][timeRange][displayName][name.split("/")[1]] 
= tmpMetrics;
+// This function might be called multiple times with the same url. Note
+// that the timeRange value is inlcuded in the url so it can be ignored in
+// the check. We check if the request has been made before first and
+// skip if this is a duplicated request.
+if (!countersUrlFlags[url]) {
+  countersUrlFlags[url] = true;  // Set the flag
+
+  $.ajax({
+url:   url,
+dataType:  'json',
+success: function(response) {
+  if (response.hasOwnProperty("metrics")) {
+var component = response.component;
+var metrics = this.metrics;
+if (!metrics.hasOwnProperty(component)) {
+  metrics[response.component] = {};
+}
+if (!metrics[component].hasOwnProperty(timeRange)) {
+  metrics[component][timeRange] = {};
+}
+for (var name in response.metrics) {
+  if (response.metrics.hasOwnProperty(name)) {
+var metricname = name;
+// Handle __jvm-uptime-secs as a special case.
+if (name !== "__jvm-uptime-secs") {
+  metricname = name.split("/")[0] + "/";
+}
+var displayName = this.supportedMetricNames[metricname].name;
+if 
(!metrics[component][timeRange].hasOwnProperty(displayName)) {
+  metrics[component][timeRange][displayName] = {};
+}
+var tmpMetrics = {
+  metrics: response.metrics[name],
+  scaleDevisor: 
this.supportedMetricNames[metricname].scaleDevisor,
+  aggregationType: 
this.supportedMetricNames[metricname].aggregationType
+};
+if (name === "__jvm-uptime-secs") {
+  metrics[component][timeRange][displayName][""] = tmpMetrics;
+} else {
+  
metrics[component][timeRange][displayName][name.spli

[incubator-heron] branch nwangtw-patch-1 updated (066dd8e -> 13a59bc)

2019-10-24 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to branch nwangtw-patch-1
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


from 066dd8e  Add instance resource usage in container (#3375)
 add 13a59bc  Update issue templates

No new revisions were added by this update.

Summary of changes:
 .github/ISSUE_TEMPLATE/bug_report.md  | 38 +++
 .github/ISSUE_TEMPLATE/custom.md  | 10 
 .github/ISSUE_TEMPLATE/feature_request.md | 20 
 3 files changed, 68 insertions(+)
 create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md
 create mode 100644 .github/ISSUE_TEMPLATE/custom.md
 create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md



[incubator-heron] branch nwangtw-patch-1 created (now 066dd8e)

2019-10-24 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to branch nwangtw-patch-1
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


  at 066dd8e  Add instance resource usage in container (#3375)

No new revisions were added by this update.



[incubator-heron] branch master updated: Add instance resource usage in container (#3375)

2019-10-24 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 066dd8e  Add instance resource usage in container (#3375)
066dd8e is described below

commit 066dd8e66367e154604d7d939aad8d1cf19591ee
Author: Ning Wang 
AuthorDate: Thu Oct 24 17:34:46 2019 -0700

Add instance resource usage in container (#3375)

* Add instance resource usage in container

* update comment and trigger build
---
 .../tools/ui/resources/static/js/physical-plan.js  | 47 +-
 1 file changed, 38 insertions(+), 9 deletions(-)

diff --git a/heron/tools/ui/resources/static/js/physical-plan.js 
b/heron/tools/ui/resources/static/js/physical-plan.js
index 49fe75f..cf43232 100644
--- a/heron/tools/ui/resources/static/js/physical-plan.js
+++ b/heron/tools/ui/resources/static/js/physical-plan.js
@@ -63,16 +63,23 @@
   container.children = _.sortBy(container.children, 'name');
   // Parse index
   container.index = parseInt(container.id.split('-')[1]);
-  // Search for resource config in packing plan
+  // Search for container and instance resource config in packing plan
   container.required_resources = {
-'cpu': 0,
-'disk': 0,
-'ram': 0
+'cpu': 'unknown',
+'disk': 'unknown',
+'ram': 'unknown'
   };
   for (var i in containerPlan) {
 var packing = containerPlan[i];
 if (packing.id === container.index) {
   container.required_resources = packing.required_resources;
+  // Get instance resources
+  var instance_resources = {};
+  for (var j in packing.instances) {
+var inst = packing.instances[j];
+instance_resources[inst.component_name + '_' + inst.task_id] = 
inst.instance_resources;
+  }
+  container.instance_resources = instance_resources;
 }
   }
 });
@@ -86,6 +93,18 @@
   return d.children.length;
 });
 
+function formatByteSize(byteSize) {
+  if (byteSize > 1024 * 1024 * 1024 / 2) {
+return (byteSize / (1024 * 1024 * 1024)).toFixed(2) + 'GB';
+  } else if (byteSize > 1024 * 1024 / 2) {
+return (byteSize / (1024 * 1024)).toFixed(2) + 'MB';
+  } else if (byteSize > 1024 / 2) {
+return (byteSize / 1024).toFixed(2) + 'KB';
+  } else {
+return byteSize + 'B';
+  }
+}
+
 /**
  * Config paramaters for container/heron instance layout
  */
@@ -159,15 +178,25 @@
 });
 
 var container_tip = d3.tip()
-.attr('class', 'd3-tip main text-center container')
+.attr('class', 'd3-tip main container')
 .offset([8, 0])
 .direction('s')
 .html(function (container) {
+  var instance_cpu = '';
+  var instance_ram = '';
+  var instance_disk = '';
+  if (container.instance_resources) {
+for (var inst in container.instance_resources) {
+  instance_cpu += '   - ' + inst + ': ' + 
container.instance_resources[inst].cpu + '';
+  instance_ram += '   - ' + inst + ': ' + 
formatByteSize(container.instance_resources[inst].ram) + '';
+  instance_disk += '   - ' + inst + ': ' + 
formatByteSize(container.instance_resources[inst].disk) + '';
+}
+  }
   return '' +
-  'cpu required: ' + container.required_resources.cpu + '' +
-  'ram required: ' + (container.required_resources.ram / 
1048576).toFixed(2) + 'MB' +
-  'disk required: ' + (container.required_resources.disk / 
1048576).toFixed(2) + 'MB' +
-  '';
+  'cpu required: ' + container.required_resources.cpu + 
'' + instance_cpu +
+  'ram required: ' + 
formatByteSize(container.required_resources.ram) + '' + 
instance_ram +
+  'disk required: ' + 
formatByteSize(container.required_resources.disk) + '' + 
instance_disk +
+  '';
 });
 
 var containerGs = svg.selectAll('.physical-plan')



[incubator-heron] branch master updated: Clean up license for healthHandler and jarjar help.txt (#3377)

2019-10-24 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new a383bc8  Clean up license for healthHandler and jarjar help.txt (#3377)
a383bc8 is described below

commit a383bc894e052eea7a1473dc5577471155572056
Author: Ning Wang 
AuthorDate: Thu Oct 24 17:29:56 2019 -0700

Clean up license for healthHandler and jarjar help.txt (#3377)
---
 LICENSE|   3 +-
 LICENSE => licenses/LICENSE-jarjar.txt | 123 +
 2 files changed, 2 insertions(+), 124 deletions(-)

diff --git a/LICENSE b/LICENSE
index 0498e42..3c18e55 100644
--- a/LICENSE
+++ b/LICENSE
@@ -248,10 +248,9 @@ See project link for details.
   -> scripts/packages/tests_template_bin.sh
   -> scripts/packages/bin_common.sh
   -> third_party/java/bazel/extra_actions_base.proto
-Google
+jarjar(https://github.com/google/jarjar/blob/master/LICENSE)
   -> 
third_party/java/jarjar/src/main/resources/com/tonicsystems/jarjar/help.txt
 
-
 
 Third party MIT licenses
 
diff --git a/LICENSE b/licenses/LICENSE-jarjar.txt
similarity index 64%
copy from LICENSE
copy to licenses/LICENSE-jarjar.txt
index 0498e42..d645695 100644
--- a/LICENSE
+++ b/licenses/LICENSE-jarjar.txt
@@ -1,3 +1,4 @@
+
  Apache License
Version 2.0, January 2004
 http://www.apache.org/licenses/
@@ -199,125 +200,3 @@
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.
-
-
-
-   APACHE HERON SUBCOMPONENTS:
-
-   The Apache Heron project contains subcomponents with separate copyright
-   notices and license terms. Your use of the source code for the these
-   subcomponents is subject to the terms and conditions of the following
-   licenses.
-
-
-Third party Apache 2.0 licenses
-
-
-The following components are provided under the Apache 2.0 License.
-See project link for details.
-
-Bootstrap(v2.0.3, https://github.com/twbs/bootstrap/blob/v2.0.3/LICENSE)
-  -> heron/shell/assets/bootstrap.css
-Bootstrap(v2.2.2, https://github.com/twbs/bootstrap/blob/v2.2.2/LICENSE)
-  -> heron/tools/ui/resources/static/js/bootstrap.js
-Bootstrap(v3.0.0, https://github.com/twbs/bootstrap/blob/v3.0.0/LICENSE)
-  -> heron/tools/ui/resources/static/css/bootstrap.css
-JQuery(https://jquery.org/license/)
-  -> heron/shell/assets/jquery.js
-  -> heron/tools/ui/resources/static/js/jquery.min.js
-JSXTransformer(v0.10.0)
-  -> heron/tools/ui/resources/static/js/JSXTransformer.0.10.0.js
-React (v0.10.0, https://github.com/facebook/react/blob/0.10-stable/LICENSE)
-  -> heron/tools/ui/resources/static/js/react.0.10.0.js
-
bazel_jar_jar(https://github.com/johnynek/bazel_jar_jar/blob/master/LICENSE)
-  -> tools/rules/jarjar_rules.bzl
-gerrit(https://gerrit.googlesource.com/gerrit/+/master/COPYING)
-  -> tools/rules/javadoc.bzl
-
k8s-zookeeper-docker(https://github.com/muxinc/k8s-zookeeper-docker/blob/master/LICENSE)
-  -> docker/base/scripts/generate-zookeeper-config.sh
-
bazel_rules_pex(v0.3.0,https://github.com/benley/bazel_rules_pex/blob/master/LICENSE.txt)
-  -> tools/rules/pex/pex_rules.bzl
-  -> tools/rules/pex/wrapper/pex_wrapper.py
-bazel_authors(https://github.com/bazelbuild/bazel/blob/master/LICENSE)
-  -> scripts/setup-eclipse.sh
-  -> scripts/detect_os_type.sh
-  -> scripts/get_all_heron_paths.sh
-  -> scripts/packages/template_bin.sh
-  -> scripts/packages/self_extract_binary.bzl
-  -> scripts/packages/package_info_generator.sh
-  -> scripts/packages/tests_template_bin.sh
-  -> scripts/packages/bin_common.sh
-  -> third_party/java/bazel/extra_actions_base.proto
-Google
-  -> 
third_party/java/jarjar/src/main/resources/com/tonicsystems/jarjar/help.txt
-
-
-
-Third party MIT licenses
-
-
-The following components are provided under the MIT License. See project link 
for details.
-
-Bootstrap(v3.1.1, https://github.com/twbs/bootstrap/blob/v3.1.1/LICENSE)
-  -> heron/tools/ui/resources/static/js/bootstrap.min

[incubator-heron] branch master updated: Fix license in health handler py (#3376)

2019-10-23 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 31b6667  Fix license in health handler py (#3376)
31b6667 is described below

commit 31b66674df8425cfd2812b70d33aa7018d6f6b95
Author: Ning Wang 
AuthorDate: Wed Oct 23 08:58:56 2019 -0700

Fix license in health handler py (#3376)
---
 LICENSE  |  2 --
 heron/shell/src/python/handlers/healthhandler.py | 23 +--
 2 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/LICENSE b/LICENSE
index 360aa7f..0498e42 100644
--- a/LICENSE
+++ b/LICENSE
@@ -248,8 +248,6 @@ See project link for details.
   -> scripts/packages/tests_template_bin.sh
   -> scripts/packages/bin_common.sh
   -> third_party/java/bazel/extra_actions_base.proto
-Twitter
-  -> heron/shell/src/python/handlers/healthhandler.py
 Google
   -> 
third_party/java/jarjar/src/main/resources/com/tonicsystems/jarjar/help.txt
 
diff --git a/heron/shell/src/python/handlers/healthhandler.py 
b/heron/shell/src/python/handlers/healthhandler.py
index 26bd667..2455ad5 100644
--- a/heron/shell/src/python/handlers/healthhandler.py
+++ b/heron/shell/src/python/handlers/healthhandler.py
@@ -1,19 +1,22 @@
 #!/usr/bin/env python
 # -*- encoding: utf-8 -*-
 
-# Copyright 2016 Twitter. All rights reserved.
-#
-# 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
+#  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.
+#  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.
 
 """ healthhandler.py """
 import tornado.web



[incubator-heron] branch master updated: adding missing licenses. Updating NOTICE (#3370)

2019-10-21 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 4a600ee  adding missing licenses.  Updating NOTICE (#3370)
4a600ee is described below

commit 4a600ee756e791a4ea8368b4a7189a81071e81d9
Author: Josh Fischer 
AuthorDate: Mon Oct 21 17:00:53 2019 -0500

adding missing licenses.  Updating NOTICE (#3370)
---
 NOTICE |   2 +-
 licenses/LICENSE-Docusaurus-1.13.0.txt |  21 +++
 licenses/LICENSE-bazel_rules_pex-0.3.0.txt | 202 +
 3 files changed, 224 insertions(+), 1 deletion(-)

diff --git a/NOTICE b/NOTICE
index 8212508..e16c305 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,5 +1,5 @@
 Apache Heron
-Copyright 2019 The Apache Software Foundation
+Copyright 2018-2019 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/licenses/LICENSE-Docusaurus-1.13.0.txt 
b/licenses/LICENSE-Docusaurus-1.13.0.txt
new file mode 100644
index 000..4f5f321
--- /dev/null
+++ b/licenses/LICENSE-Docusaurus-1.13.0.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017-present, Facebook, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/licenses/LICENSE-bazel_rules_pex-0.3.0.txt 
b/licenses/LICENSE-bazel_rules_pex-0.3.0.txt
new file mode 100644
index 000..7a4a3ea
--- /dev/null
+++ b/licenses/LICENSE-bazel_rules_pex-0.3.0.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+   Version 2.0, January 2004
+http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+  "License" shall mean the terms and conditions for use, reproduction,
+  and distribution as defined by Sections 1 through 9 of this document.
+
+  "Licensor" shall mean the copyright owner or entity authorized by
+  the copyright owner that is granting the License.
+
+  "Legal Entity" shall mean the union of the acting entity and all
+  other entities that control, are controlled by, or are under common
+  control with that entity. For the purposes of this definition,
+  "control" means (i) the power, direct or indirect, to cause the
+  direction or management of such entity, whether by contract or
+  otherwise, or (ii) ownership of fifty percent (50%) or more of the
+  outstanding shares, or (iii) beneficial ownership of such entity.
+
+  "You" (or "Your") shall mean an individual or Legal Entity
+  exercising permissions granted by this License.
+
+  "Source" form shall mean the preferred form for making modifications,
+  including but not limited to software source code, documentation
+  source, and configuration files.
+
+  "Object" form shall mean any form resulting from mechanical
+  transformation or translation of a Source form, including but
+  not limited to compiled object code, generated documentation,
+  and conversions to other media types.
+
+  "Work" shall mean the work of authorship, whether in Source or
+  Object form, made available under the License, as indicated by a
+  copyright notice that is included in or attached to the work
+  (an example is provided in the Appendix below).
+
+  "Derivative Works" shall mean any work, whether in Source or Object
+  form, that is based on (or derived from) the Work and for which the
+  editorial revisions, annotations, elaborations, or other modifications
+  represent, as a whole, an original work of authorship. For the purposes
+  of this License, Deriva

[incubator-heron] branch master updated: Show an arrow head in logical plan (#3367)

2019-10-21 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new a25b087  Show an arrow head in logical plan (#3367)
a25b087 is described below

commit a25b087773d5348ecc9e42e7d69403056f61b45f
Author: Ning Wang 
AuthorDate: Mon Oct 21 10:44:36 2019 -0700

Show an arrow head in logical plan (#3367)
---
 heron/tools/ui/resources/static/js/logical-plan.js | 36 --
 1 file changed, 33 insertions(+), 3 deletions(-)

diff --git a/heron/tools/ui/resources/static/js/logical-plan.js 
b/heron/tools/ui/resources/static/js/logical-plan.js
index ac300c9..d74651a 100644
--- a/heron/tools/ui/resources/static/js/logical-plan.js
+++ b/heron/tools/ui/resources/static/js/logical-plan.js
@@ -250,6 +250,24 @@
 var svg = outerSvg.append("g")
 .attr("tranform", "translate(" + padding.left + "," + 
padding.top + ")");
 
+var defs = svg.append("defs")
+
+// Arrow head
+defs.append("marker")
+.attr({
+  "id": "arrow",
+  "viewBox": "0 -5 10 10",
+  "refX": 5,
+  "refY": 0,
+  "markerWidth": 2,
+  "markerHeight": 2,
+  "orient": "auto"
+})
+.append("path")
+  .attr("d", "M0,-5L10,0L0,5")
+  .attr("class","arrowHead")
+  .style("fill", linestyle.color);
+
 spoutsArr = [];
 boltsArr = [];
 
@@ -363,6 +381,8 @@
   .attr("class", "topnode")
   .style("fill", "black");
 
+var compCircleRadius = 17;
+
 // Links
 node.each(function (n) {
   d3.select(this)
@@ -371,6 +391,7 @@
 .enter()
 .append("path")
 .attr('class', 'link')
+.attr("marker-end", "url(#arrow)")
 .attr("stroke-width", linestyle.boldwidth)
 .attr("stroke", linestyle.color)
 .attr("fill", "none")
@@ -378,7 +399,16 @@
   var p0 = edge.source;
   var p3 = edge.target;
   var m = (p0.x + p3.x) / 2;
-  var p = [p0, {x: m, y: p0.y}, {x: m, y: p3.y}, p3];
+  var p0x = p0.x + compCircleRadius;
+  var p0y = p0.y;
+  var p3x = p3.x - compCircleRadius;
+  var p3y = p3.y;
+  var p = [
+{x: p0x, y: p0y},
+{x: m, y: p0y},
+{x: m, y: p3y},
+{x: p3x, y: p3.y}
+  ];
   return "M" + p[0].x + " " + p[0].y +
  "C" + p[1].x + " " + p[1].y +
  " " + p[2].x + " " + p[2].y +
@@ -400,7 +430,7 @@
 .attr('class', 'background')
 .attr("r", function (d) {
   if (d.isReal) {
-return d.r = 17;
+return d.r = compCircleRadius;
   }
   return d.r = 0;
 })
@@ -410,7 +440,7 @@
 .attr("class", "node")
 .attr("r", function (d) {
   if (d.isReal) {
-return d.r = 15;
+return d.r = compCircleRadius - 2;
   }
   return d.r = 0;
 })



[incubator-heron] branch master updated: Change urls in WORKSPACE file from http to https (#3369)

2019-10-21 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 7dbe872  Change urls in WORKSPACE file from http to https (#3369)
7dbe872 is described below

commit 7dbe87238bc3e6f3a8248c53a38d875c2a0ea70f
Author: Ning Wang 
AuthorDate: Sun Oct 20 23:34:36 2019 -0700

Change urls in WORKSPACE file from http to https (#3369)
---
 WORKSPACE | 19 +--
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/WORKSPACE b/WORKSPACE
index bfb17d3..5853ef5 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -37,7 +37,12 @@ hk2_api = "2.5.0-b32"
 
 maven_server(
   name = "default",
-  url = "http://central.maven.org/maven2/;,
+  url = "https://repo1.maven.org/maven2/;,
+)
+
+maven_server(
+  name = "maven_twttr_com",
+  url = "https://maven.twttr.com;,
 )
 
 maven_jar(
@@ -45,11 +50,6 @@ maven_jar(
   artifact = "org.apache.avro:avro:1.7.4"
 )
 
-maven_server(
-  name = "maven_twttr_com",
-  url = "http://maven.twttr.com;,
-)
-
 maven_jar(
   name = "antlr_antlr",
   artifact = "antlr:antlr:2.7.7",
@@ -177,7 +177,7 @@ maven_jar(
 
 http_jar(
   name = "org_apache_httpcomponents_http_client_test",
-  url = 
"http://central.maven.org/maven2/org/apache/httpcomponents/httpclient/; +
+  url = "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/; 
+
   http_client_version + "/httpclient-" + http_client_version + "-tests.jar"
 )
 
@@ -769,7 +769,6 @@ maven_jar(
 maven_jar(
   name = "commons_codec_commons_codec",
   artifact = "commons-codec:commons-codec:1.9",
-  repository = "http://central.maven.org/maven2/;,
   sha1 = "9ce04e34240f674bc72680f8b843b1457383161a",
   )
 
@@ -864,7 +863,7 @@ http_archive(
 
 http_archive(
 name = "org_nongnu_libunwind",
-urls = 
["http://download.savannah.nongnu.org/releases/libunwind/libunwind-1.1.tar.gz;],
+urls = 
["https://download.savannah.nongnu.org/releases/libunwind/libunwind-1.1.tar.gz;],
 strip_prefix = "libunwind-1.1",
 build_file = "@//:third_party/libunwind/libunwind.BUILD",
 sha256 = 
"9dfe0fcae2a866de9d3942c66995e4b460230446887dbdab302d41a8aee8d09a",
@@ -872,7 +871,7 @@ http_archive(
 
 http_archive(
 name = "org_apache_zookeeper",
-urls = 
["http://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz;],
+urls = 
["https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz;],
 strip_prefix = "zookeeper-3.4.14",
 build_file = "@//:third_party/zookeeper/zookeeper.BUILD",
 sha256 = 
"b14f7a0fece8bd34c7fffa46039e563ac5367607c612517aa7bd37306afbd1cd",



[incubator-heron] branch master updated: License work (#3368)

2019-10-20 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new de2fb39  License work (#3368)
de2fb39 is described below

commit de2fb3939728ca4cc4e37ca5b76460203de9d875
Author: Josh Fischer 
AuthorDate: Sun Oct 20 18:53:34 2019 -0500

License work (#3368)

* update correct year in notice

* update LICENSE file
---
 LICENSE | 41 +
 NOTICE  |  2 +-
 2 files changed, 42 insertions(+), 1 deletion(-)

diff --git a/LICENSE b/LICENSE
index 02e56a2..7129002 100644
--- a/LICENSE
+++ b/LICENSE
@@ -235,6 +235,24 @@ See project link for details.
   -> tools/rules/javadoc.bzl
 
k8s-zookeeper-docker(https://github.com/muxinc/k8s-zookeeper-docker/blob/master/LICENSE)
   -> docker/base/scripts/generate-zookeeper-config.sh
+
bazel_rules_pex(v0.3.0,https://github.com/benley/bazel_rules_pex/blob/master/LICENSE.txt)
+  -> tools/rules/pex/pex_rules.bzl
+  -> tools/rules/pex/wrapper/pex_wrapper.py
+bazel_authors(https://github.com/bazelbuild/bazel/blob/master/LICENSE)
+  -> scripts/setup-eclipse.sh
+  -> scripts/detect_os_type.sh
+  -> scripts/get_all_heron_paths.sh
+  -> scripts/packages/template_bin.sh
+  -> scripts/packages/self_extract_binary.bzl
+  -> scripts/packages/package_info_generator.sh
+  -> scripts/packages/tests_template_bin.sh
+  -> scripts/packages/bin_common.sh
+  -> third_party/java/bazel/extra_actions_base.proto
+Twitter
+  -> heron/shell/src/python/handlers/healthhandler.py
+Google
+  -> 
third_party/java/jarjar/src/main/resources/com/tonicsystems/jarjar/help.txt
+
 
 
 Third party MIT licenses
@@ -264,6 +282,17 @@ The following components are provided under the MIT 
License. See project link fo
 normalize.css(v2.1.0, v3.0.1, 
https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
   -> heron/tools/ui/resources/static/css/bootstrap.css
   -> heron/tools/ui/resources/static/css/bootstrap.min.css
+Docusaurus(v1.13.0, 
https://github.com/facebook/docusaurus/blob/master/LICENSE)
+  -> website2/website/core/Footer.js
+  -> website2/website/siteConfig.js
+  -> website2/website/pages/en/users.js
+  -> website2/website/pages/en/index.js
+  -> website2/website/pages/en/help.js
+  -> website2/website/pages/en/versions.js
+Sizzle(https://github.com/jquery/sizzle/blob/master/LICENSE.txt)
+  -> heron/shell/assets/jquery.js
+Modernizr(http://www.modernizr.com)
+  -> heron/tools/ui/resources/static/js/bootstrap.js
 
 
 Third party BSD 3-Clause licenses
@@ -282,6 +311,8 @@ See project link for details.
   -> third_party/python/cpplint/cpplint.py
 d3(v3.4.11, https://github.com/d3/d3/blob/master/LICENSE)
   -> heron/tools/ui/resources/static/js/d3.min.3.4.11.js
+Sizzle(https://github.com/jquery/sizzle/blob/master/LICENSE.txt)
+  -> heron/shell/assets/jquery.js
 
 
 Third party Boost Software License, Version 1.0 licenses
@@ -292,3 +323,13 @@ See project link for details.
 
 
kashmir(https://github.com/Corvusoft/kashmir-dependency/blob/master/LICENSE_1_0.txt)
   -> third_party/kashmir/*
+
+
+Third party GNU General Public License, Version 3.0 licenses
+
+
+The following components are provided under the GNU General Public License, 
Version 3.0.
+See project link for details.
+
+Sizzle(https://github.com/jquery/sizzle/blob/master/LICENSE.txt)
+  -> heron/shell/assets/jquery.js
diff --git a/NOTICE b/NOTICE
index 0ef7a26..8212508 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,5 +1,5 @@
 Apache Heron
-Copyright 2018 The Apache Software Foundation
+Copyright 2019 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).



[incubator-heron] branch master updated: Add a script to start docker container with development environment (#3366)

2019-10-19 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new d950db5  Add a script to start docker container with development 
environment (#3366)
d950db5 is described below

commit d950db583b8097443bd0de29338d8b0d25ed63f4
Author: Ning Wang 
AuthorDate: Fri Oct 18 23:05:48 2019 -0700

Add a script to start docker container with development environment (#3366)

* Add a script to start docker container with development environment

* update

* update comments for starting a new shell

* map ports  and 8889
---
 docker/compile/Dockerfile.centos7 |  6 +--
 docker/compile/Dockerfile.ubuntu18.04 |  8 ++--
 docker/scripts/dev-env.sh | 87 +++
 3 files changed, 95 insertions(+), 6 deletions(-)

diff --git a/docker/compile/Dockerfile.centos7 
b/docker/compile/Dockerfile.centos7
index 3865b5b..3eda6c4 100644
--- a/docker/compile/Dockerfile.centos7
+++ b/docker/compile/Dockerfile.centos7
@@ -41,9 +41,9 @@ RUN yum -y install \
   zip \
   unzip \
   wget \
-  which
-
-RUN yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
+  which \
+  java-1.8.0-openjdk \
+  java-1.8.0-openjdk-devel
 
 ENV JAVA_HOME /usr/lib/jvm/java-1.8.0
 
diff --git a/docker/compile/Dockerfile.ubuntu18.04 
b/docker/compile/Dockerfile.ubuntu18.04
index 28b8f23..48a62ef 100644
--- a/docker/compile/Dockerfile.ubuntu18.04
+++ b/docker/compile/Dockerfile.ubuntu18.04
@@ -31,9 +31,11 @@ RUN apt-get update && apt-get -y install \
   python-dev \
   wget \
   zip \
-  unzip
-
-RUN apt-get -y install openjdk-8-jdk-headless
+  virtualenv \
+  unzip \
+  git \
+  curl \
+  openjdk-8-jdk-headless
 
 ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64
 
diff --git a/docker/scripts/dev-env.sh b/docker/scripts/dev-env.sh
new file mode 100755
index 000..17e37ed
--- /dev/null
+++ b/docker/scripts/dev-env.sh
@@ -0,0 +1,87 @@
+#!/bin/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.
+
+# This is a script to start a docker container that has all
+# tools needed to compire Heron. Developer should be able to
+# compile Heron in the container without any setup works.
+# usage:
+# To create a clean development environment with docker and run it,
+# execute the following scripts in the source directory of Heron:
+#   sh docker/scripts/dev-env.sh
+#
+# After the container is started, build Heron with bazel
+# (ubuntu config is used in the example):
+#   ./bazel_configure.py
+#   bazel build --config=ubuntu heron/...
+#
+# To enter an existing container with a new shell, find the container
+# id with this command:
+#   docker ps -a
+# And then :
+#   docker exec -it CONTAINER_ID bash
+
+set -o nounset
+set -o errexit
+
+# Default platform is ubuntu18.04. Other available platforms
+# include centos7, debian9
+TARGET_PLATFORM=${1:-"ubuntu18.04"}
+SCRATCH_DIR=${2:-"$HOME/.heron-docker"}
+REPOSITORY="heron-dev"
+
+
+realpath() {
+  echo "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")"
+}
+
+DOCKER_DIR=$(dirname $(dirname $(realpath $0)))
+PROJECT_DIR=$(dirname $DOCKER_DIR)
+
+verify_dockerfile_exists() {
+  if [ ! -f $1 ]; then
+echo "The Dockerfiler $1 does not exist"
+exit 1
+  fi
+}
+
+dockerfile_path_for_platform() {
+  echo "$DOCKER_DIR/compile/Dockerfile.$1"
+}
+
+copy_extra_files() {
+  mkdir -p $SCRATCH_DIR/scripts
+  cp $PROJECT_DIR/tools/docker/bazel.rc $SCRATCH_DIR/bazelrc
+  cp $DOCKER_DIR/scripts/compile-docker.sh 
$SCRATCH_DIR/scripts/compile-platform.sh
+}
+
+DOCKER_FILE=$(dockerfile_path_for_platform $TARGET_PLATFORM)
+verify_dockerfile_exists $DOCKER_FILE
+copy_extra_files
+
+echo "Building docker image for Heron development environment on 
$TARGET_PLATFORM"
+docker build -t $REPOSITORY:$TARGET_PLATFORM -f $DOCKER_FILE $SCRATCH_DIR
+
+echo "Creating and starting container and mapping the current dir to /heron"
+docker con

[incubator-heron] branch master updated: publish site script (#3365)

2019-10-18 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new bf4fce8  publish site script (#3365)
bf4fce8 is described below

commit bf4fce897607f4217b7243acd0233db99d7a4849
Author: Josh Fischer 
AuthorDate: Fri Oct 18 10:52:16 2019 -0500

publish site script (#3365)

* update htacces and create new publish site script

* adding publish_site script to makefile.

* adding fully qualified path
---
 .htaccess|  2 +-
 website2/website/Makefile|  3 +++
 website2/website/scripts/publish_site.sh | 36 
 3 files changed, 40 insertions(+), 1 deletion(-)

diff --git a/.htaccess b/.htaccess
index 6ff83b2..bdcbac5 100644
--- a/.htaccess
+++ b/.htaccess
@@ -1 +1 @@
-Redirect   /index.html https://apache.github.io/incubator-heron/
+Redirect   /index.html https://heron.incubator.apache.org
diff --git a/website2/website/Makefile b/website2/website/Makefile
index 1465eb0..7c25991 100644
--- a/website2/website/Makefile
+++ b/website2/website/Makefile
@@ -11,3 +11,6 @@ buildsite:
@scripts/javadocs.sh
@scripts/python-doc-gen.sh 0.0.0
@scripts/build-site.sh
+
+publish:
+   @scripts/publish_site.sh
diff --git a/website2/website/scripts/publish_site.sh 
b/website2/website/scripts/publish_site.sh
new file mode 100755
index 000..575b399
--- /dev/null
+++ b/website2/website/scripts/publish_site.sh
@@ -0,0 +1,36 @@
+#!/bin/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.
+
+ROOT_DIR=$(git rev-parse --show-toplevel)
+WORK_DIR=${ROOT_DIR}/generated-site/content
+ME=`basename $0`
+
+# push all of the results to asf-site branch
+git checkout asf-site
+git clean -f -d
+git pull origin asf-site
+
+rm -rf ${ROOT_DIR}/content
+mkdir ${ROOT_DIR}/content
+
+cp -a $WORK_DIR/* ${ROOT_DIR}/content
+cp -a ${ROOT_DIR}/.htaccess ${ROOT_DIR}/content
+
+git add ${ROOT_DIR}/content
+git commit -m "git-site-role commit from $ME"
+git push origin asf-site



[incubator-heron] branch master updated: Refine site build (#3363)

2019-10-15 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 03199a9  Refine site build (#3363)
03199a9 is described below

commit 03199a939a69b3d46285d1afe45a816f8824837c
Author: Josh Fischer 
AuthorDate: Tue Oct 15 23:21:19 2019 -0500

Refine site build (#3363)

* clean up broken links in MD file.  Update gitignore for committing static 
docs.  tweaking static site build scripts

* update script

* adding page to link to java and py docs.  updated build site script to 
appropriately place static assets.

* adding  versioned docs for latest release

* update versioned docs

* comment out blog header link.  remove broken links in python docs

* fixing heron version references.  recreateing versioned docs.

* clean up in gitignore.  Adding missing ticks in python docs.

* clean up
---
 .gitignore |   3 +-
 website2/docs/client-api-docs-overview.md  |  25 +++
 .../getting-started-migrate-storm-topologies.md|   4 +-
 website2/docs/guides-python-topologies.md  |  40 ++--
 .../docs/topology-development-streamlet-api.md |   2 -
 .../docs/topology-development-topology-api-java.md |   2 +-
 .../topology-development-topology-api-python.md|   2 +-
 website2/website/Makefile  |   2 +
 website2/website/scripts/build-site.sh |  11 +-
 website2/website/scripts/python-doc-gen.sh |  12 +-
 website2/website/sidebars.json |   1 +
 website2/website/siteConfig.js |   4 +-
 .../client-api-docs-overview.md|  26 +++
 .../cluster-config-instance.md |   2 +-
 .../cluster-config-metrics.md  |   2 +-
 .../cluster-config-overview.md |   2 +-
 .../cluster-config-stream.md   |   2 +-
 .../cluster-config-system-level.md |   2 +-
 .../cluster-config-tmaster.md  |   2 +-
 .../compiling-code-organization.md |   2 +-
 .../compiling-docker.md|   2 +-
 .../compiling-linux.md |   2 +-
 .../compiling-osx.md   |   2 +-
 .../compiling-overview.md  |   2 +-
 .../compiling-running-tests.md |   2 +-
 .../deployment-api-server.md   |   2 +-
 .../deployment-configuration.md|   2 +-
 .../deployment-overview.md |   2 +-
 .../extending-heron-metric-sink.md |   2 +-
 .../extending-heron-scheduler.md   |   2 +-
 .../getting-started-local-single-node.md   |   5 +-
 .../getting-started-migrate-storm-topologies.md|   6 +-
 .../getting-started-troubleshooting-guide.md   |   2 +-
 .../guides-data-model.md   |   2 +-
 .../guides-effectively-once-java-topologies.md |   2 +-
 .../guides-packing-algorithms.md   |   2 +-
 .../guides-python-topologies.md|  42 ++---
 .../guides-simulator-mode.md   |   2 +-
 .../guides-topology-tuning.md  |   2 +-
 .../guides-troubeshooting-guide.md |   2 +-
 .../guides-tuple-serialization.md  |   2 +-
 .../guides-ui-guide.md |   2 +-
 .../heron-architecture.md  |   2 +-
 .../heron-delivery-semantics.md|   2 +-
 .../heron-design-goals.md  |   2 +-
 .../heron-resources-resources.md   |   2 +-
 .../heron-streamlet-concepts.md|   2 +-
 .../heron-topology-concepts.md |   2 +-
 .../observability-graphite.md  |   2 +-
 .../observability-prometheus.md|   2 +-
 .../observability-scribe.md|   2 +-
 .../schedulers-aurora-cluster.md   |   2 +-
 .../schedulers-aurora-local.md |   2 +-
 .../schedulers-k8s-by-hand.md  |   2 +-
 .../schedulers-k8s-with-helm.md|   2 +-
 .../schedulers-local.md|   2 +-
 .../schedulers-mesos-local-mac.md  |   2 +-
 .../schedulers-nomad.md|   2 +-
 .../schedulers-slurm.md|   2 +-
 .../schedulers-standalone.md   |   2 +-
 .../schedulers-yarn.md |   2 +-
 .../state-managers-local-fs.md |   2 +-
 .../state-managers-zookeeper.md|   2 +-
 .../topology-development-eco-api.md|   2 +-
 .../topology

[incubator-heron] branch master updated: Add metrics for tracking bp caused by local instances and remote stmgrs (#3362)

2019-10-09 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 08a3631  Add metrics for tracking bp caused by local instances and 
remote stmgrs (#3362)
08a3631 is described below

commit 08a3631913e36df92aa45f4e637ac64d4162382a
Author: Ning Wang 
AuthorDate: Wed Oct 9 11:46:27 2019 -0700

Add metrics for tracking bp caused by local instances and remote stmgrs 
(#3362)
---
 heron/stmgr/src/cpp/manager/instance-server.cpp | 19 +--
 heron/stmgr/src/cpp/manager/instance-server.h   |  5 +++--
 heron/stmgr/src/cpp/manager/stmgr-server.cpp| 22 ++
 heron/stmgr/src/cpp/manager/stmgr-server.h  |  4 +++-
 4 files changed, 41 insertions(+), 9 deletions(-)

diff --git a/heron/stmgr/src/cpp/manager/instance-server.cpp 
b/heron/stmgr/src/cpp/manager/instance-server.cpp
index 9a752de..047c634 100644
--- a/heron/stmgr/src/cpp/manager/instance-server.cpp
+++ b/heron/stmgr/src/cpp/manager/instance-server.cpp
@@ -67,13 +67,16 @@ const sp_string METRIC_FAIL_TUPLES_TO_INSTANCES_LOST = 
"__fail_tuples_to_workers
 // Num bytes lost since instances is not connected
 const sp_string METRIC_BYTES_TO_INSTANCES_LOST = "__bytes_to_workers_lost";
 
+// Time spent in back pressure caused by instances managed by this stmgr.
+const sp_string METRIC_TIME_SPENT_BACK_PRESSURE_CAUSED_BY_LOCAL_INSTANCE =
+"__time_spent_back_pressure_by_local_instance";
 // Time spent in back pressure aggregated - back pressure initiated by us +
 // others
 const sp_string METRIC_TIME_SPENT_BACK_PRESSURE_AGGR = 
"__server/__time_spent_back_pressure_aggr";
 // Time spent in back pressure because of a component id. The comp id will be
-// appended
-// to the string below
+// appended to the string below
 const sp_string METRIC_TIME_SPENT_BACK_PRESSURE_COMPID = 
"__time_spent_back_pressure_by_compid/";
+
 // Prefix for connection buffer's metrics
 const sp_string CONNECTION_BUFFER_BY_INSTANCEID = 
"__connection_buffer_by_instanceid/";
 // Prefix for connection buffer's length metrics. This is different
@@ -117,6 +120,9 @@ InstanceServer::InstanceServer(
   metrics_manager_client_->register_metric("__server", 
instance_server_metrics_);
   
metrics_manager_client_->register_metric(METRIC_TIME_SPENT_BACK_PRESSURE_AGGR,
back_pressure_metric_aggr_);
+  back_pressure_metric_caused_by_local_instances_ = 
make_shared();
+  
metrics_manager_client_->register_metric(METRIC_TIME_SPENT_BACK_PRESSURE_CAUSED_BY_LOCAL_INSTANCE,
+   
back_pressure_metric_caused_by_local_instances_);
   spouts_under_back_pressure_ = false;
 
   // Update queue related metrics every 10 seconds
@@ -180,6 +186,8 @@ InstanceServer::~InstanceServer() {
 
   metrics_manager_client_->unregister_metric("__server");
   
metrics_manager_client_->unregister_metric(METRIC_TIME_SPENT_BACK_PRESSURE_AGGR);
+  metrics_manager_client_->unregister_metric(
+  METRIC_TIME_SPENT_BACK_PRESSURE_CAUSED_BY_LOCAL_INSTANCE);
 
   // cleanup the instance info
   for (auto iter = instance_info_.begin(); iter != instance_info_.end(); 
++iter) {
@@ -549,6 +557,8 @@ sp_string InstanceServer::GetInstanceName(Connection* 
_connection) {
   return "";
 }
 
+// This function is called when the buffer in the connection is full (the 
instance is not consuming
+// tuples fast enough).
 void InstanceServer::StartBackPressureConnectionCb(Connection* _connection) {
   // The connection will notify us when we can stop the back pressure
   _connection->setCausedBackPressure();
@@ -568,6 +578,8 @@ void 
InstanceServer::StartBackPressureConnectionCb(Connection* _connection) {
 
   if (!stmgr_->DidAnnounceBackPressure()) {
 stmgr_->SendStartBackPressureToOtherStMgrs();
+// Start backpressure from local instances metric
+back_pressure_metric_caused_by_local_instances_->Start();
   }
 
   // Indicate which instance component had back pressure
@@ -578,6 +590,7 @@ void 
InstanceServer::StartBackPressureConnectionCb(Connection* _connection) {
   StartBackPressureOnSpouts();
 }
 
+// This function is called when the buffer in the connection is empty (the 
tuples are drained).
 void InstanceServer::StopBackPressureConnectionCb(Connection* _connection) {
   _connection->unsetCausedBackPressure();
 
@@ -605,6 +618,8 @@ void 
InstanceServer::StopBackPressureConnectionCb(Connection* _connection) {
 
   if (!stmgr_->DidAnnounceBackPressure()) {
 stmgr_->SendStopBackPressureToOtherStMgrs();
+// Stop backpressure from local instances metric
+back_pressure_metric_caused_by_local_instances_->Stop();
   }
   AttemptStopBackPressureFromSpouts();
 }
diff --git a/heron/stmgr/src/cpp

[incubator-heron] branch master updated: udpated yaml and updated tools (#3360)

2019-10-09 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new b707c7b  udpated yaml and updated tools (#3360)
b707c7b is described below

commit b707c7b09e56e2de10abd07929713a4049d9e5cb
Author: Jim Mantheiy, Jr 
AuthorDate: Wed Oct 9 02:40:51 2019 -0400

udpated yaml and updated tools (#3360)

* udpated yaml and updated tools

* Update values.yaml.template

fixed based on feedback

* Update values.yaml.template

dropped the configs down to 5/15 based on feedback
---
 deploy/kubernetes/helm/templates/tools.yaml |  2 +-
 deploy/kubernetes/helm/values.yaml.template | 15 ---
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/deploy/kubernetes/helm/templates/tools.yaml 
b/deploy/kubernetes/helm/templates/tools.yaml
index 91f4f06..72f92dd 100644
--- a/deploy/kubernetes/helm/templates/tools.yaml
+++ b/deploy/kubernetes/helm/templates/tools.yaml
@@ -111,7 +111,7 @@ spec:
 - >-
   heron-ui
   --port=8889
-  --base_url=/api/v1/namespaces/{{ .Release.Namespace 
}}/services/{{ .Release.Name }}-ui:8889/proxy
+  --base_url={{ .Values.heron.url }}
 - name: heron-apiserver
   image: {{ .Values.image }}
   imagePullPolicy: {{ .Values.imagePullPolicy }}
diff --git a/deploy/kubernetes/helm/values.yaml.template 
b/deploy/kubernetes/helm/values.yaml.template
index e934867..37269e6 100644
--- a/deploy/kubernetes/helm/values.yaml.template
+++ b/deploy/kubernetes/helm/values.yaml.template
@@ -39,7 +39,8 @@ jobReplicas: 1
 
 # amount of memory to provide for API server
 apiServerMemory: 512M
-
+heron:
+  url:/api/v1/namespaces/{{ .Release.Namespace }}/services/{{ .Release.Name 
}}-ui:8889/proxy
 # Topologies uploader
 uploader:
   class: dlog # s3
@@ -53,18 +54,18 @@ uploader:
 packing: RoundRobin # ResourceCompliantRR, FirstFitDecreasing
 
 # Number of replicas for storage bookies, memory and storage requirements
-bookieReplicas: 1
+bookieReplicas: 3
 bookieCpuMin: 100m
 bookieCpuMax: 250m
-bookieHeapMemory: 256M
-bookieDirectMemory: 128M
+bookieHeapMemory: 512M
+bookieDirectMemory: 256M
 bookieReadCacheSize: 32
 bookieWriteCacheSize: 32
-bookieJournalCapacity: 1G
-bookieStorageCapacity: 3G
+bookieJournalCapacity: 5G
+bookieStorageCapacity: 15G
 
 # Number of replicas for zookeeper
-zkReplicas: 1
+zkReplicas: 3
 
 bookkeeper:
   image: apache/bookkeeper:4.7.3



[incubator-heron] branch master updated: Hook up a packing plan endpoint in Heron UI (#3359)

2019-10-08 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new b697f83  Hook up a packing plan endpoint in Heron UI (#3359)
b697f83 is described below

commit b697f838e74843c81d757531aa19d7c4526211a6
Author: Ning Wang 
AuthorDate: Tue Oct 8 09:01:44 2019 -0700

Hook up a packing plan endpoint in Heron UI (#3359)

* Hook up a packing plan endpoint in Heron UI

* add unit test
---
 heron/tools/common/src/python/access/heron_api.py  | 20 +
 heron/tools/tracker/src/python/tracker.py  |  2 +-
 .../tools/tracker/tests/python/tracker_unittest.py | 19 
 heron/tools/ui/src/python/handlers/api/__init__.py |  1 +
 heron/tools/ui/src/python/handlers/api/topology.py | 26 ++
 heron/tools/ui/src/python/main.py  |  2 ++
 6 files changed, 69 insertions(+), 1 deletion(-)

diff --git a/heron/tools/common/src/python/access/heron_api.py 
b/heron/tools/common/src/python/access/heron_api.py
index 1ab571c..709acb4 100644
--- a/heron/tools/common/src/python/access/heron_api.py
+++ b/heron/tools/common/src/python/access/heron_api.py
@@ -35,6 +35,7 @@ TOPOLOGIES_STATS_URL_FMT= "%s/states" % 
TOPOLOGIES_URL_FMT
 EXECUTION_STATE_URL_FMT = "%s/executionstate" % TOPOLOGIES_URL_FMT
 LOGICALPLAN_URL_FMT = "%s/logicalplan"% TOPOLOGIES_URL_FMT
 PHYSICALPLAN_URL_FMT= "%s/physicalplan"   % TOPOLOGIES_URL_FMT
+PACKINGPLAN_URL_FMT = "%s/packingplan"% TOPOLOGIES_URL_FMT
 SCHEDULER_LOCATION_URL_FMT  = "%s/schedulerlocation"  % TOPOLOGIES_URL_FMT
 
 METRICS_URL_FMT = "%s/metrics"% TOPOLOGIES_URL_FMT
@@ -268,6 +269,25 @@ def get_instances(cluster, environ, topology, role=None):
 
 

 @tornado.gen.coroutine
+def get_packing_plan(cluster, environ, topology, role=None):
+  '''
+  Get the packing plan state of a topology in a cluster from tracker
+  :param cluster:
+  :param environ:
+  :param topology:
+  :param role:
+  :return:
+  '''
+  params = dict(cluster=cluster, environ=environ, topology=topology)
+  if role is not None:
+params['role'] = role
+  request_url = tornado.httputil.url_concat(
+  create_url(PACKINGPLAN_URL_FMT), params)
+  raise tornado.gen.Return((yield fetch_url_as_json(request_url)))
+
+
+
+@tornado.gen.coroutine
 def get_physical_plan(cluster, environ, topology, role=None):
   '''
   Get the physical plan state of a topology in a cluster from tracker
diff --git a/heron/tools/tracker/src/python/tracker.py 
b/heron/tools/tracker/src/python/tracker.py
index 3ce814d..15df468 100644
--- a/heron/tools/tracker/src/python/tracker.py
+++ b/heron/tools/tracker/src/python/tracker.py
@@ -598,7 +598,7 @@ class Tracker(object):
 
 packingPlan["id"] = topology.packing_plan.id
 packingPlan["container_plans"] = containers
-return json.dumps(packingPlan)
+return packingPlan
 
   def setTopologyInfo(self, topology):
 """
diff --git a/heron/tools/tracker/tests/python/tracker_unittest.py 
b/heron/tools/tracker/tests/python/tracker_unittest.py
index 82afd64..136f5d6 100644
--- a/heron/tools/tracker/tests/python/tracker_unittest.py
+++ b/heron/tools/tracker/tests/python/tracker_unittest.py
@@ -250,3 +250,22 @@ class TrackerTest(unittest.TestCase):
  {'topology.component.parallelism': '1'})
 self.assertEqual(pplan['instances'], {})
 self.assertEqual(pplan['stmgrs'], {})
+
+  def test_extract_packing_plan(self):
+# Create topology
+pb_pplan = MockProto().create_mock_simple_packing_plan()
+topology = Topology('topology_name', 'ExclamationTopology')
+topology.set_packing_plan(pb_pplan)
+# Extract packing plan
+packing_plan = self.tracker.extract_packing_plan(topology)
+self.assertEqual(packing_plan['id'], 'ExclamationTopology')
+self.assertEqual(packing_plan['container_plans'][0]['id'], 1)
+self.assertEqual(packing_plan['container_plans'][0]['required_resources'],
+ {'disk': 2048L, 'ram': 1024L, 'cpu': 1.0})
+self.assertEqual(packing_plan['container_plans'][0]['instances'][0],
+ {
+   'component_index': 1,
+'component_name': u'word',
+'instance_resources': {'cpu': 1.0, 'disk': 2048L, 
'ram': 1024L},
+'task_id': 1
+ })
diff --git a/heron/tools/ui/src/python/handlers/api/__init__.py 
b/heron/tools/ui/src/python/handlers/api/__init__.py
index c9e17e0..e36109d 100644
--- a/he

[incubator-heron] branch master updated: Add a delay for showing tooltip, format visstyle css file (#3358)

2019-10-05 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 28dc357  Add a delay for showing tooltip, format visstyle css file 
(#3358)
28dc357 is described below

commit 28dc357f3dc17884f820b1dfaf53d92f7e5fdc7b
Author: Ning Wang 
AuthorDate: Fri Oct 4 23:06:03 2019 -0700

Add a delay for showing tooltip, format visstyle css file (#3358)
---
 heron/tools/ui/resources/static/css/visstyle.css | 105 ---
 1 file changed, 53 insertions(+), 52 deletions(-)

diff --git a/heron/tools/ui/resources/static/css/visstyle.css 
b/heron/tools/ui/resources/static/css/visstyle.css
index 3d48880..34bee52 100644
--- a/heron/tools/ui/resources/static/css/visstyle.css
+++ b/heron/tools/ui/resources/static/css/visstyle.css
@@ -139,6 +139,7 @@ a:active, a:focus {
 
 .d3-tip {
   max-width: 400px;
+  transition-delay: 0.25s;
 }
 
 path.regular, rect.regular {
@@ -241,19 +242,19 @@ tr.highlighted {
 }
 
 .topotable>thead>tr>th, .topotable>tbody>tr>th, .topotable>tfoot>tr>th, 
.topotable>thead>tr>td, .topotable>tbody>tr>td, .topotable>tfoot>tr>td {
-font-size: 14px;
-padding: 8px;
-line-height: 1.42857143;
-vertical-align: top;
-border-top: 1px solid #dd;
+  font-size: 14px;
+  padding: 8px;
+  line-height: 1.42857143;
+  vertical-align: top;
+  border-top: 1px solid #dd;
 }
 
 .break-all {
-word-break: break-all;
+  word-break: break-all;
 }
 
 .no-break {
-white-space: nowrap
+  white-space: nowrap
 }
 
 .strong {
@@ -261,16 +262,16 @@ white-space: nowrap
 }
 
 .topotable .topobutton {
-padding: 2px;
+  padding: 2px;
 }
 
 .topotable .topobutton a {
-margin-left: 8px;
-visibility: hidden;
+  margin-left: 8px;
+  visibility: hidden;
 }
 
 .topotable tr:hover .topobutton a {
-visibility: visible;
+  visibility: visible;
 }
 .vcenter {
 display: inline-block;
@@ -279,76 +280,76 @@ visibility: visible;
 }
 
 .action-button-group {
-position: absolute;
-right: 10px;
-top: 2px;
+  position: absolute;
+  right: 10px;
+  top: 2px;
 }
 
 .sort.asc {
-background-color: lightgrey;
+  background-color: lightgrey;
 }
 
 .sort.desc {
-background-color: lightgrey;
+  background-color: lightgrey;
 }
 
 /* Sort arrows */
 .sort:after {
-width: 0;
-height: 0;
-border-left: 5px solid transparent;
-border-right: 5px solid transparent;
-border-bottom: 5px solid transparent;
-border-top: 5px solid transparent;
-content:"";
-position: relative;
-top:-10px;
-right:-5px;
+  width: 0;
+  height: 0;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-bottom: 5px solid transparent;
+  border-top: 5px solid transparent;
+  content:"";
+  position: relative;
+  top:-10px;
+  right:-5px;
 }
 
 .sort.asc:after {
-width: 0;
-height: 0;
-border-left: 5px solid transparent;
-border-right: 5px solid transparent;
-border-bottom: 5px solid transparent;
-border-top: 5px solid black;
-content:"";
-position: relative;
-top:10px;
-right:-5px;
+  width: 0;
+  height: 0;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-bottom: 5px solid transparent;
+  border-top: 5px solid black;
+  content:"";
+  position: relative;
+  top:10px;
+  right:-5px;
 }
 
 .sort.desc:after {
-width: 0;
-height: 0;
-border-left: 5px solid transparent;
-border-right: 5px solid transparent;
-border-bottom: 5px solid black;
-border-top: 5px solid transparent;
-content:"";
-position: relative;
-top:-10px;
-right:-5px;
+  width: 0;
+  height: 0;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-bottom: 5px solid black;
+  border-top: 5px solid transparent;
+  content:"";
+  position: relative;
+  top:-10px;
+  right:-5px;
 }
 
 .search-result {
-color: grey;
-font-size: 14px;
-line-height: 30px;
+  color: grey;
+  font-size: 14px;
+  line-height: 30px;
 }
 
 /* When the topology is dead */
 .dead {
-color: red;
+  color: red;
 }
 
 /* When the topology is weird state */
 .weird {
-color: orange;
+  color: orange;
 }
 
 /* When the topology is starting */
 .starting {
-color: green;
+  color: green;
 }



[incubator-heron] branch master updated: Remove website2 and CONTRIBUTING.md from release archive files (#3357)

2019-10-05 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new b71572d  Remove website2 and CONTRIBUTING.md from release archive 
files (#3357)
b71572d is described below

commit b71572dc0c8b1f3785299bd02e5d160bf43d8d8a
Author: Ning Wang 
AuthorDate: Fri Oct 4 23:04:06 2019 -0700

Remove website2 and CONTRIBUTING.md from release archive files (#3357)
---
 .gitattributes | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.gitattributes b/.gitattributes
index 65d1ff7..157f783 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,4 +1,6 @@
 # Files and directories with the attribute export-ignore won’t be added to
 # archive files. See http://git-scm.com/docs/gitattributes for details.
 /.gitattributes   export-ignore
+/CONTRIBUTING.md  export-ignore
 /website/ export-ignore
+/website2/export-ignore



[incubator-heron] branch master updated: Add a cap to metrics communicator in TMasterSink and MetricsCacheSink (#3355)

2019-10-04 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 5a3dee5  Add a cap to metrics communicator in TMasterSink and 
MetricsCacheSink (#3355)
5a3dee5 is described below

commit 5a3dee54adf60b706a8af1a800c7ec75d1042ea0
Author: Ning Wang 
AuthorDate: Fri Oct 4 15:44:20 2019 -0700

Add a cap to metrics communicator in TMasterSink and MetricsCacheSink 
(#3355)

* Add a cap to metrics communicator in TMasterSink and MetricsCacheSink

* refactor while loop
---
 .../sink/metricscache/MetricsCacheClient.java  | 13 +--
 .../sink/metricscache/MetricsCacheSink.java| 19 +++
 .../metricsmgr/sink/tmaster/TMasterClient.java | 12 --
 .../heron/metricsmgr/sink/tmaster/TMasterSink.java | 17 ++
 .../sink/metricscache/MetricsCacheSinkTest.java| 27 ++
 .../metricsmgr/sink/tmaster/TMasterSinkTest.java   | 27 ++
 6 files changed, 111 insertions(+), 4 deletions(-)

diff --git 
a/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/sink/metricscache/MetricsCacheClient.java
 
b/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/sink/metricscache/MetricsCacheClient.java
index b95ef2e..5e0a3e9 100644
--- 
a/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/sink/metricscache/MetricsCacheClient.java
+++ 
b/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/sink/metricscache/MetricsCacheClient.java
@@ -93,12 +93,21 @@ public class MetricsCacheClient extends HeronClient 
implements Runnable {
 Runnable task = new Runnable() {
   @Override
   public void run() {
-while (!publishMetricsCommunicator.isEmpty()) {
-  TopologyMaster.PublishMetrics publishMetrics = 
publishMetricsCommunicator.poll();
+TopologyMaster.PublishMetrics publishMetrics;
+while (true) {
+  synchronized (publishMetricsCommunicator) {
+publishMetrics = publishMetricsCommunicator.poll();
+  }
+  if (publishMetrics == null) {
+break;  // No metrics left
+  }
+
   LOG.info(String.format("%d Metrics, %d Exceptions to send to 
MetricsCache",
   publishMetrics.getMetricsCount(), 
publishMetrics.getExceptionsCount()));
   LOG.fine("Publish Metrics sending to MetricsCache: " + 
publishMetrics.toString());
+
   sendMessage(publishMetrics);
+
 }
   }
 };
diff --git 
a/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/sink/metricscache/MetricsCacheSink.java
 
b/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/sink/metricscache/MetricsCacheSink.java
index 4d2357f..0f049d1 100644
--- 
a/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/sink/metricscache/MetricsCacheSink.java
+++ 
b/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/sink/metricscache/MetricsCacheSink.java
@@ -83,6 +83,8 @@ import org.apache.heron.spi.metricsmgr.sink.SinkContext;
 public class MetricsCacheSink implements IMetricsSink {
   private static final Logger LOG = 
Logger.getLogger(MetricsCacheSink.class.getName());
 
+  private static final int MAX_COMMUNICATOR_SIZE = 128;
+
   // These configs would be read from metrics-sink-configs.yaml
   private static final String KEY_TMASTER_LOCATION_CHECK_INTERVAL_SEC =
   "metricscache-location-check-interval-sec";
@@ -232,10 +234,27 @@ public class MetricsCacheSink implements IMetricsSink {
 
 metricsCommunicator.offer(publishMetrics.build());
 
+
+
 // Update metrics
 sinkContext.exportCountMetric(RECORD_PROCESS_COUNT, 1);
 sinkContext.exportCountMetric(METRICS_COUNT, 
publishMetrics.getMetricsCount());
 sinkContext.exportCountMetric(EXCEPTIONS_COUNT, 
publishMetrics.getExceptionsCount());
+
+checkCommunicator(metricsCommunicator, MAX_COMMUNICATOR_SIZE);
+  }
+
+  // Check if the communicator is full/overflow. Poll and drop extra elements 
that
+  // are over the queue limit from the head.
+  public static void 
checkCommunicator(Communicator communicator,
+int maxSize) {
+synchronized (communicator) {
+  int size = communicator.size();
+
+  for (int i = 0; i < size - maxSize; ++i) {
+communicator.poll();
+  }
+}
   }
 
   @Override
diff --git 
a/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/sink/tmaster/TMasterClient.java
 
b/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/sink/tmaster/TMasterClient.java
index 7c7354f..48e0a32 100644
--- 
a/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/sink/tmaster/TMasterClient.java
+++ 
b/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/sink/tmaster/TMasterClient.java
@@ -88,11 +88,19 @@ public class TMasterClient extends HeronClient implements 
Runnable {
 Runnable task = 

[incubator-heron] branch master updated: Separate gc log files for metrics manage and checkpoint manager by id (#3354)

2019-10-03 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 9c7cd21  Separate gc log files for metrics manage and checkpoint 
manager by id (#3354)
9c7cd21 is described below

commit 9c7cd219770d648513cc11c776ef02e55a0b2b8c
Author: Ning Wang 
AuthorDate: Thu Oct 3 12:23:14 2019 -0700

Separate gc log files for metrics manage and checkpoint manager by id 
(#3354)

* Separate gc log files for metrics manage and checkpoint manager by id

* Fix unit tests
---
 heron/executor/src/python/heron_executor.py| 7 ---
 heron/executor/tests/python/heron_executor_unittest.py | 4 ++--
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/heron/executor/src/python/heron_executor.py 
b/heron/executor/src/python/heron_executor.py
index 25bec6f..01f59a9 100755
--- a/heron/executor/src/python/heron_executor.py
+++ b/heron/executor/src/python/heron_executor.py
@@ -446,7 +446,7 @@ class HeronExecutor(object):
   '-XX:+HeapDumpOnOutOfMemoryError',
   '-XX:+UseConcMarkSweepGC',
   '-XX:+PrintCommandLineFlags',
-  '-Xloggc:log-files/gc.metricsmgr.log',
+  '-Xloggc:log-files/gc.' + metricsManagerId + '.log',
   '-Djava.net.preferIPv4Stack=true',
   '-cp',
   self.metrics_manager_classpath,
@@ -845,6 +845,7 @@ class HeronExecutor(object):
 ckptmgr_main_class = 'org.apache.heron.ckptmgr.CheckpointManager'
 
 ckptmgr_ram_mb = self.checkpoint_manager_ram / (1024 * 1024)
+ckptmgr_id = self.ckptmgr_ids[self.shard]
 ckptmgr_cmd = [os.path.join(self.heron_java_home, "bin/java"),
'-Xms%dM' % ckptmgr_ram_mb,
'-Xmx%dM' % ckptmgr_ram_mb,
@@ -863,14 +864,14 @@ class HeronExecutor(object):
'-XX:+HeapDumpOnOutOfMemoryError',
'-XX:+UseConcMarkSweepGC',
'-XX:+UseConcMarkSweepGC',
-   '-Xloggc:log-files/gc.ckptmgr.log',
+   '-Xloggc:log-files/gc.' + ckptmgr_id + '.log',
'-Djava.net.preferIPv4Stack=true',
'-cp',
self.checkpoint_manager_classpath,
ckptmgr_main_class,
'-t' + self.topology_name,
'-i' + self.topology_id,
-   '-c' + self.ckptmgr_ids[self.shard],
+   '-c' + ckptmgr_id,
'-p' + self.checkpoint_manager_port,
'-f' + self.stateful_config_file,
'-o' + self.override_config_file,
diff --git a/heron/executor/tests/python/heron_executor_unittest.py 
b/heron/executor/tests/python/heron_executor_unittest.py
index d1debb0..7fbd800 100644
--- a/heron/executor/tests/python/heron_executor_unittest.py
+++ b/heron/executor/tests/python/heron_executor_unittest.py
@@ -109,12 +109,12 @@ class HeronExecutorTest(unittest.TestCase):
"-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 
-XX:GCLogFileSize=100M " \
"-XX:+PrintPromotionFailure -XX:+PrintTenuringDistribution 
-XX:+PrintHeapAtGC " \
"-XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC 
-XX:+PrintCommandLineFlags " \
-   "-Xloggc:log-files/gc.metricsmgr.log 
-Djava.net.preferIPv4Stack=true " \
+   "-Xloggc:log-files/gc.metricsmgr-%d.log 
-Djava.net.preferIPv4Stack=true " \
"-cp metricsmgr_classpath 
org.apache.heron.metricsmgr.MetricsManager " \
"--id=metricsmgr-%d --port=metricsmgr_port " \
"--topology=topname --cluster=cluster --role=role 
--environment=environ --topology-id=topid " \
"--system-config-file=%s --override-config-file=%s 
--sink-config-file=metrics_sinks_config_file" %\
-   (container_id, INTERNAL_CONF_PATH, OVERRIDE_PATH)
+   (container_id, container_id, INTERNAL_CONF_PATH, OVERRIDE_PATH)
 
   def get_expected_metricscachemgr_command():
   return "heron_java_home/bin/java -Xmx1024M -XX:+PrintCommandLineFlags 
-verbosegc " \



[incubator-heron] branch master updated: Make unknown arguments a warning instead of an error in heron executor (#3353)

2019-10-02 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 0876b56  Make unknown arguments a warning instead of an error in heron 
executor (#3353)
0876b56 is described below

commit 0876b56d49f06e587bd14e41c54ef730b35221eb
Author: Ning Wang 
AuthorDate: Wed Oct 2 16:55:27 2019 -0700

Make unknown arguments a warning instead of an error in heron executor 
(#3353)
---
 heron/executor/src/python/heron_executor.py | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/heron/executor/src/python/heron_executor.py 
b/heron/executor/src/python/heron_executor.py
index 9380ef5..25bec6f 100755
--- a/heron/executor/src/python/heron_executor.py
+++ b/heron/executor/src/python/heron_executor.py
@@ -376,9 +376,8 @@ class HeronExecutor(object):
 parsed_args, unknown_args = parser.parse_known_args(args[1:])
 
 if unknown_args:
-  Log.error('Unknown argument: %s' % unknown_args[0])
-  parser.print_help()
-  sys.exit(1)
+  Log.warn('Unknown arguments found!!! They are: %s' % unknown_args)
+  Log.warn(parser.format_help())
 
 return parsed_args
 



[incubator-heron] branch master updated: add parallelism in component, fix stream tooltip offset (#3352)

2019-10-01 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 2d2d7cf  add parallelism in component, fix stream tooltip offset 
(#3352)
2d2d7cf is described below

commit 2d2d7cfd336d0b94788fb3d91270c052d46c89ef
Author: Ning Wang 
AuthorDate: Tue Oct 1 17:55:27 2019 -0700

add parallelism in component, fix stream tooltip offset (#3352)
---
 heron/tools/ui/resources/static/css/visstyle.css   | 13 --
 heron/tools/ui/resources/static/js/logical-plan.js | 50 ++
 2 files changed, 41 insertions(+), 22 deletions(-)

diff --git a/heron/tools/ui/resources/static/css/visstyle.css 
b/heron/tools/ui/resources/static/css/visstyle.css
index 6ad85ad..3d48880 100644
--- a/heron/tools/ui/resources/static/css/visstyle.css
+++ b/heron/tools/ui/resources/static/css/visstyle.css
@@ -142,19 +142,19 @@ a:active, a:focus {
 }
 
 path.regular, rect.regular {
-opacity: 1;
+  opacity: 1;
 }
 
 path.fade, rect.fade {
-opacity: 0.2;
+  opacity: 0.2;
 }
 
 circle.regular {
-opacity: 1;
+  opacity: 1;
 }
 
 circle.fade {
-opacity: 0.3;
+  opacity: 0.3;
 }
 
 text.regular {
@@ -165,6 +165,11 @@ text.fade {
   display: none;
 }
 
+text.fade.fade-half {
+  display: block;
+  opacity: 0.5;
+}
+
 circle.background {
   opacity: 1;
 }
diff --git a/heron/tools/ui/resources/static/js/logical-plan.js 
b/heron/tools/ui/resources/static/js/logical-plan.js
index aa68ff2..ac300c9 100644
--- a/heron/tools/ui/resources/static/js/logical-plan.js
+++ b/heron/tools/ui/resources/static/js/logical-plan.js
@@ -256,7 +256,8 @@
 // create the spout array
 for (var i in topology.spouts) {
   spoutsArr.push({
-"name": i
+"name": i,
+"parallelism": 
topology.spouts[i]["config"]["topology.component.parallelism"]
   });
 }
 
@@ -264,6 +265,7 @@
 for (var i in topology.bolts) {
   boltsArr.push({
   "name": i,
+  "parallelism": 
topology.bolts[i]["config"]["topology.component.parallelism"],
   "inputComponents": topology.bolts[i]["inputComponents"],
   "inputStreams": topology.bolts[i]["inputs"]
   });
@@ -346,10 +348,12 @@
 
 var connection_tip = d3.tip()
 .attr('class', 'd3-tip main text-center connection')
-.offset([10, 0])
+.offset(function () {
+  return [10 - this.getBBox().height / 2, 0];
+})
 .direction('s')
-.html(function (d) {
-  return d.streams;
+.html(function (edge) {
+  return edge.streams;
 });
 
 var node = svg.selectAll(".topnode")
@@ -385,10 +389,15 @@
 });
 
 // Component
-node.append("circle")
+var g = node.append("g")
+.attr("transform", function(d){return "translate("+d.x+","+d.y+")"})
+.on("click", planController.logicalComponentClicked)
+.on("dblclick", planController.logicalComponentClicked)
+.on("mouseover", planController.logicalComponentHoverOver)
+.on("mouseout", planController.logicalComponentHoverOut);
+
+g.append("circle")
 .attr('class', 'background')
-.attr("cx", function (d) { return d.x; })
-.attr("cy", function (d) { return d.y; })
 .attr("r", function (d) {
   if (d.isReal) {
 return d.r = 17;
@@ -397,10 +406,8 @@
 })
 .style('fill', 'white');
 
-node.append("circle")
+g.append("circle")
 .attr("class", "node")
-.attr("cx", function (d) { return d.cx = d.x; })
-.attr("cy", function (d) { return d.cy = d.y; })
 .attr("r", function (d) {
   if (d.isReal) {
 return d.r = 15;
@@ -413,17 +420,24 @@
   d.defaultColor = color(d.name);
   d.color = d.color || d.defaultColor;
   return d.color;
-})
-.on("click", planController.logicalComponentClicked)
-.on("dblclick", planController.logicalComponentClicked)
-.on("mouseover", planController.logicalComponentHoverOver)
-.on("mouseout", planController.logicalComponentHoverOut);
+});
+
+// Component parallelism, always visible
+g.append("text")
+.attr("id", function(d) { return "parallelism+" + d.name; })
+.attr("y", function (d) { return 4; })
+.attr("class", "fade fade-half")
+.style("text-anchor", "middle")
+

[incubator-heron] branch master updated: Add metrics for communicator size in metrics manager (#3351)

2019-10-01 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 98e35ae  Add metrics for communicator size in metrics manager (#3351)
98e35ae is described below

commit 98e35ae59a71910c6baa9f28a99db8e3d4386796
Author: Ning Wang 
AuthorDate: Tue Oct 1 11:40:20 2019 -0700

Add metrics for communicator size in metrics manager (#3351)
---
 .../apache/heron/metricsmgr/MetricsManager.java| 11 +++---
 .../heron/metricsmgr/MetricsManagerServer.java | 42 --
 .../heron/metricsmgr/MetricsManagerServerTest.java | 13 ---
 3 files changed, 44 insertions(+), 22 deletions(-)

diff --git 
a/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/MetricsManager.java 
b/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/MetricsManager.java
index 8d4ab5e..076a504 100644
--- a/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/MetricsManager.java
+++ b/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/MetricsManager.java
@@ -199,7 +199,7 @@ public class MetricsManager {
   : TypeUtils.getInteger(restartAttempts));
 
   // Update the list of Communicator in Metrics Manager Server
-  metricsManagerServer.addSinkCommunicator(sinkExecutor.getCommunicator());
+  metricsManagerServer.addSinkCommunicator(sinkId, 
sinkExecutor.getCommunicator());
 }
   }
 
@@ -537,12 +537,11 @@ public class MetricsManager {
   // If the thread name is a key of SinkExecutors, then it is a thread 
running IMetricsSink
   if (sinkExecutors.containsKey(thread.getName())) {
 sinkId = thread.getName();
-// Remove the old sink executor
-SinkExecutor oldSinkExecutor = sinkExecutors.remove(sinkId);
 // Remove the unneeded Communicator bind with Metrics Manager Server
-
metricsManagerServer.removeSinkCommunicator(oldSinkExecutor.getCommunicator());
+metricsManagerServer.removeSinkCommunicator(sinkId);
 
-// Close the sink
+// Remove the old sink executor and close the sink
+SinkExecutor oldSinkExecutor = sinkExecutors.remove(sinkId);
 SysUtils.closeIgnoringExceptions(oldSinkExecutor);
 
 thisSinkRetryAttempts = sinksRetryAttempts.remove(sinkId);
@@ -565,7 +564,7 @@ public class MetricsManager {
 sinksRetryAttempts.put(sinkId, thisSinkRetryAttempts);
 
 // Update the list of Communicator in Metrics Manager Server
-
metricsManagerServer.addSinkCommunicator(newSinkExecutor.getCommunicator());
+metricsManagerServer.addSinkCommunicator(sinkId, 
newSinkExecutor.getCommunicator());
 
 // Restart it
 executors.execute(newSinkExecutor);
diff --git 
a/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/MetricsManagerServer.java
 
b/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/MetricsManagerServer.java
index a9ff54f..8b9e6ab 100644
--- 
a/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/MetricsManagerServer.java
+++ 
b/heron/metricsmgr/src/java/org/apache/heron/metricsmgr/MetricsManagerServer.java
@@ -22,10 +22,11 @@ package org.apache.heron.metricsmgr;
 import java.net.SocketAddress;
 import java.nio.channels.SocketChannel;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -61,8 +62,10 @@ public class MetricsManagerServer extends HeronServer {
   private static final String SERVER_EXCEPTIONS_RECEIVED = 
"exceptions-received";
   private static final String SERVER_NEW_TMASTER_LOCATION = 
"new-tmaster-location";
   private static final String SERVER_TMASTER_LOCATION_RECEIVED = 
"tmaster-location-received";
+  private static final String SERVER_COMMUNICATOR_OFFER = "communicator-offer";
+  private static final String SERVER_COMMUNICATOR_SIZE = "communicator-size";
 
-  private final List> metricsSinkCommunicators;
+  private final Map> 
metricsSinkCommunicators;
 
   // A map from MetricPublisher's immutable SocketAddress to the 
MetricPublisher
   // We would fetch SocketAddress by using 
SocketChannel.socket().getRemoteSocketAddress,
@@ -96,7 +99,7 @@ public class MetricsManagerServer extends HeronServer {
 // Since we might mutate the list while iterating it
 // Consider that the iteration vastly outnumbers mutation,
 // it would barely hurt any performance
-this.metricsSinkCommunicators = new 
CopyOnWriteArrayList>();
+this.metricsSinkCommunicators = Collections.synchronizedMap(new 
HashMap<>());
 
 this.publisherMap = new HashMap();
 
@@ -119,14 +122,24 @@ public class MetricsManagerServer extends HeronServer {
 regist

[incubator-heron] branch master updated: Clean up rate limit config and add an example topology (#3350)

2019-10-01 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 381076b  Clean up rate limit config and add an example topology (#3350)
381076b is described below

commit 381076b9df0756ee976a808bed7a97be0764082a
Author: Ning Wang 
AuthorDate: Tue Oct 1 09:10:51 2019 -0700

Clean up rate limit config and add an example topology (#3350)
---
 .../examples/api/ComponentConfigTopology.java  | 120 +
 .../api/src/java/org/apache/heron/api/Config.java  |  30 +-
 2 files changed, 145 insertions(+), 5 deletions(-)

diff --git 
a/examples/src/java/org/apache/heron/examples/api/ComponentConfigTopology.java 
b/examples/src/java/org/apache/heron/examples/api/ComponentConfigTopology.java
new file mode 100644
index 000..132dc8f
--- /dev/null
+++ 
b/examples/src/java/org/apache/heron/examples/api/ComponentConfigTopology.java
@@ -0,0 +1,120 @@
+/**
+ * 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.
+ */
+
+
+package org.apache.heron.examples.api;
+
+import java.util.Map;
+
+import org.apache.heron.api.Config;
+import org.apache.heron.api.HeronSubmitter;
+import org.apache.heron.api.bolt.BaseRichBolt;
+import org.apache.heron.api.bolt.OutputCollector;
+import org.apache.heron.api.metric.GlobalMetrics;
+import org.apache.heron.api.topology.OutputFieldsDeclarer;
+import org.apache.heron.api.topology.TopologyBuilder;
+import org.apache.heron.api.topology.TopologyContext;
+import org.apache.heron.api.tuple.Tuple;
+import org.apache.heron.api.utils.Utils;
+import org.apache.heron.common.basics.ByteAmount;
+import org.apache.heron.examples.api.spout.TestWordSpout;
+import org.apache.heron.simulator.Simulator;
+
+
+/**
+ * This is a basic example of a Storm topology.
+ */
+public final class ComponentConfigTopology {
+
+  private ComponentConfigTopology() {
+  }
+
+  public static void main(String[] args) throws Exception {
+TopologyBuilder builder = new TopologyBuilder();
+
+builder.setSpout("word", new TestWordSpout(), 2)
+// Set rate limit to 1000 bytes per second (since parallelism is set 
to 2,
+// each instance is rate limited as 500 bps).
+.addConfiguration(Config.TOPOLOGY_COMPONENT_OUTPUT_BPS, 1000);
+builder.setBolt("exclaim1", new ExclamationBolt(), 2)
+.shuffleGrouping("word");
+
+Config conf = new Config();
+conf.setDebug(true);
+conf.setMaxSpoutPending(10);
+
+// component resource configuration
+conf.setComponentCpu("word", 0.5);
+conf.setComponentRam("word", ByteAmount.fromMegabytes(512));
+conf.setComponentDisk("word", ByteAmount.fromMegabytes(512));
+conf.setComponentCpu("exclaim1", 0.5);
+conf.setComponentRam("exclaim1", ByteAmount.fromMegabytes(512));
+conf.setComponentDisk("exclaim1", ByteAmount.fromMegabytes(512));
+
+// container resource configuration
+conf.setContainerDiskRequested(ByteAmount.fromGigabytes(2));
+conf.setContainerRamRequested(ByteAmount.fromGigabytes(3));
+conf.setContainerCpuRequested(2);
+
+// Specify the size of RAM padding to per container.
+// Notice, this config will be considered as a hint,
+// and it's up to the packing algorithm to determine whether to apply this 
hint
+conf.setContainerRamPadding(ByteAmount.fromGigabytes(2));
+
+if (args != null && args.length > 0) {
+  conf.setNumStmgrs(2);
+  HeronSubmitter.submitTopology(args[0], conf, builder.createTopology());
+} else {
+  Simulator simulator = new Simulator();
+  simulator.submitTopology("test", conf, builder.createTopology());
+  Utils.sleep(1);
+  simulator.killTopology("test");
+  simulator.shutdown();
+}
+  }
+
+  public static class ExclamationBolt extends BaseRichBolt {
+private static final long serialVersionUID = 2165326630789117557L;
+private long nItems;
+private long startTime;
+
+@Override
+@SuppressWarnings("

[incubator-heron] branch master updated: Build kafka bolt maven artifacts (#3341)

2019-09-28 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 7c04f04  Build kafka bolt maven artifacts (#3341)
7c04f04 is described below

commit 7c04f04f2fa6970f29ddfa2a28f326a0c152a375
Author: SiMing Weng 
AuthorDate: Sat Sep 28 23:05:35 2019 -0400

Build kafka bolt maven artifacts (#3341)

* update KafkaSpout

* Revert "update KafkaSpout"

This reverts commit dc64e9ad

* build kafka bolt maven artifacts
---
 ...eron-kafka-spout.template.pom => heron-kafka.template.pom} |  0
 release/maven/maven-pom-version.sh| 11 +--
 scripts/ci/build_maven_artifacts.sh   |  8 
 3 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/release/maven/heron-kafka-spout.template.pom 
b/release/maven/heron-kafka.template.pom
similarity index 100%
rename from release/maven/heron-kafka-spout.template.pom
rename to release/maven/heron-kafka.template.pom
diff --git a/release/maven/maven-pom-version.sh 
b/release/maven/maven-pom-version.sh
index a096dfc..b9e8901 100755
--- a/release/maven/maven-pom-version.sh
+++ b/release/maven/maven-pom-version.sh
@@ -51,9 +51,16 @@ cat ./maven/heron-with-kryo.template.pom | \
 sed "s/DESCRIPTION/Heron Simulator/g" \
 >> ./heron-simulator-$1.pom
 
-cat ./maven/heron-kafka-spout.template.pom | \
+cat ./maven/heron-kafka.template.pom | \
 sed "s/VERSION/$1/g" | \
 sed "s/ARTIFACT_ID/heron-kafka-spout/g" | \
 sed "s/NAME/heron-kafka-spout/g" | \
 sed "s/DESCRIPTION/Heron Kafka Spout/g" \
->> ./heron-kafka-spout-$1.pom
\ No newline at end of file
+>> ./heron-kafka-spout-$1.pom
+
+cat ./maven/heron-kafka.template.pom | \
+sed "s/VERSION/$1/g" | \
+sed "s/ARTIFACT_ID/heron-kafka-bolt/g" | \
+sed "s/NAME/heron-kafka-bolt/g" | \
+sed "s/DESCRIPTION/Heron Kafka Bolt/g" \
+>> ./heron-kafka-bolt-$1.pom
diff --git a/scripts/ci/build_maven_artifacts.sh 
b/scripts/ci/build_maven_artifacts.sh
index 7a3441a..01b8b9d 100644
--- a/scripts/ci/build_maven_artifacts.sh
+++ b/scripts/ci/build_maven_artifacts.sh
@@ -44,6 +44,7 @@ $HOME/bin/bazel build heron/spi/src/java:all
 $HOME/bin/bazel build heron/simulator/src/java:all
 $HOME/bin/bazel build storm-compatibility/src/java:all
 $HOME/bin/bazel build contrib/spouts/kafka/src/java:all
+$HOME/bin/bazel build contrib/bolts/kafka/src/java:all
 
 echo "Found Version Tag $VERSION_TAG"
 mkdir -p artifacts/$VERSION_TAG
@@ -64,6 +65,7 @@ mkdir -p $OUTPUT_DIR/$VERSION_TAG/heron-spi
 mkdir -p $OUTPUT_DIR/$VERSION_TAG/heron-simulator
 mkdir -p $OUTPUT_DIR/$VERSION_TAG/heron-storm
 mkdir -p $OUTPUT_DIR/$VERSION_TAG/heron-kafka-spout
+mkdir -p $OUTPUT_DIR/$VERSION_TAG/heron-kafka-bolt
 
 echo "Copy heron-api artifacts ... "
 cp ./release/heron-api-$VERSION_TAG.pom $OUTPUT_DIR/$VERSION_TAG/heron-api/
@@ -95,6 +97,12 @@ cp 
./bazel-bin/contrib/spouts/kafka/src/java/libheron-kafka-spout-java.jar ./$OU
 cp ./bazel-bin/contrib/spouts/kafka/src/java/heron-kafka-spout-javadoc.zip 
./$OUTPUT_DIR/$VERSION_TAG/heron-kafka-spout/heron-kafka-spout-$VERSION_TAG-javadoc.jar
 cp ./bazel-bin/contrib/spouts/kafka/src/java/libheron-kafka-spout-java-src.jar 
./$OUTPUT_DIR/$VERSION_TAG/heron-kafka-spout/heron-kafka-spout-$VERSION_TAG-sources.jar
 
+echo "Copy heron-kafka-spout artifacts ... "
+cp ./release/heron-kafka-bolt-$VERSION_TAG.pom 
./$OUTPUT_DIR/$VERSION_TAG/heron-kafka-bolt/
+cp ./bazel-bin/contrib/bolts/kafka/src/java/libheron-kafka-bolt-java.jar 
./$OUTPUT_DIR/$VERSION_TAG/heron-kafka-bolt/heron-kafka-bolt-$VERSION_TAG.jar
+cp ./bazel-bin/contrib/bolts/kafka/src/java/heron-kafka-bolt-javadoc.zip 
./$OUTPUT_DIR/$VERSION_TAG/heron-kafka-bolt/heron-kafka-bolt-$VERSION_TAG-javadoc.jar
+cp ./bazel-bin/contrib/bolts/kafka/src/java/libheron-kafka-bolt-java-src.jar 
./$OUTPUT_DIR/$VERSION_TAG/heron-kafka-bolt/heron-kafka-bolt-$VERSION_TAG-sources.jar
+
 echo "Compress all artifacts into a bundle file ..."
 tar -czf "heron-artifacts-${VERSION_TAG}.tar.gz" $OUTPUT_DIR
 mv "heron-artifacts-${VERSION_TAG}.tar.gz" $OUTPUT_DIR



[incubator-heron] branch master updated: Upgrade zookeeper libraries to 3.4.14 (#3339)

2019-09-18 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new dd6da67  Upgrade zookeeper libraries to 3.4.14 (#3339)
dd6da67 is described below

commit dd6da67da7972791639746dd9190fd919ba6986c
Author: Ning Wang 
AuthorDate: Wed Sep 18 00:00:25 2019 -0700

Upgrade zookeeper libraries to 3.4.14 (#3339)
---
 WORKSPACE | 8 
 third_party/zookeeper/zookeeper.BUILD | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/WORKSPACE b/WORKSPACE
index 872c975..bfb17d3 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -429,7 +429,7 @@ maven_jar(
 
 maven_jar(
   name = "org_apache_zookeeper_zookeeper",
-  artifact = "org.apache.zookeeper:zookeeper:3.4.6",
+  artifact = "org.apache.zookeeper:zookeeper:3.4.14",
 )
 
 maven_jar(
@@ -872,10 +872,10 @@ http_archive(
 
 http_archive(
 name = "org_apache_zookeeper",
-urls = 
["http://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz;],
-strip_prefix = "zookeeper-3.4.10",
+urls = 
["http://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz;],
+strip_prefix = "zookeeper-3.4.14",
 build_file = "@//:third_party/zookeeper/zookeeper.BUILD",
-sha256 = 
"7f7f5414e044ac11fee2a1e0bc225469f51fb0cdf821e67df762a43098223f27",
+sha256 = 
"b14f7a0fece8bd34c7fffa46039e563ac5367607c612517aa7bd37306afbd1cd",
 )
 
 http_archive(
diff --git a/third_party/zookeeper/zookeeper.BUILD 
b/third_party/zookeeper/zookeeper.BUILD
index bf287c5..b59fdb1 100644
--- a/third_party/zookeeper/zookeeper.BUILD
+++ b/third_party/zookeeper/zookeeper.BUILD
@@ -26,7 +26,7 @@ genrule(
 "export TMP_DIR=$$(mktemp -d -t zookeeper.X)",
 "mkdir -p $$TMP_DIR",
 "cp -R $$(pwd)/external/org_apache_zookeeper/* $$TMP_DIR",
-"cd $$TMP_DIR/src/c",
+"cd $$TMP_DIR/zookeeper-client/zookeeper-client-c",
 "./configure --prefix=$$INSTALL_DIR --enable-shared=no",
 "make install",
 "rm -rf $$TMP_DIR",



[incubator-heron] branch master updated: Add SimulatorRunner for Streamlet API in Simulator package (#3336)

2019-09-04 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new eec8be6  Add SimulatorRunner for Streamlet API in Simulator package 
(#3336)
eec8be6 is described below

commit eec8be6eaf20c85ed9b1a1801fc02a7ffaeb413b
Author: Ning Wang 
AuthorDate: Wed Sep 4 00:53:59 2019 -0700

Add SimulatorRunner for Streamlet API in Simulator package (#3336)

* Add SimulatorRunner in Streamlet API

* remove unused imports
---
 heron/simulator/src/java/BUILD |  2 +-
 .../apache/heron/simulator/SimulatorRunner.java| 49 ++
 2 files changed, 50 insertions(+), 1 deletion(-)

diff --git a/heron/simulator/src/java/BUILD b/heron/simulator/src/java/BUILD
index 232e170..84569b3 100644
--- a/heron/simulator/src/java/BUILD
+++ b/heron/simulator/src/java/BUILD
@@ -14,7 +14,7 @@ java_doc(
 
 simulator_deps_files = \
 heron_java_proto_files() + [
-"//heron/api/src/java:api-java-low-level",
+"//heron/api/src/java:api-java-low-level-functional",
 "//heron/common/src/java:basics-java",
 "//heron/common/src/java:config-java",
 "//heron/common/src/java:utils-java",
diff --git 
a/heron/simulator/src/java/org/apache/heron/simulator/SimulatorRunner.java 
b/heron/simulator/src/java/org/apache/heron/simulator/SimulatorRunner.java
new file mode 100644
index 000..cfffa9f
--- /dev/null
+++ b/heron/simulator/src/java/org/apache/heron/simulator/SimulatorRunner.java
@@ -0,0 +1,49 @@
+/**
+ * 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.
+ */
+
+
+package org.apache.heron.simulator;
+
+import org.apache.heron.api.topology.TopologyBuilder;
+import org.apache.heron.streamlet.Builder;
+import org.apache.heron.streamlet.Config;
+import org.apache.heron.streamlet.impl.BuilderImpl;
+
+/**
+ * SimulatorRunner is used to run a topology with Heron simulator.
+ */
+public final class SimulatorRunner {
+  public SimulatorRunner() { }
+
+  /**
+   * Runs the computation
+   * @param name The name of the topology
+   * @param config Any config that is passed to the topology
+   * @param builder The builder used to keep track of the sources.
+   */
+  public void run(String name, Config config, Builder builder) {
+BuilderImpl bldr = (BuilderImpl) builder;
+TopologyBuilder topologyBuilder = bldr.build();
+
+Simulator simulator = new Simulator();
+simulator.submitTopology(name,
+ config.getHeronConfig(),
+ topologyBuilder.createTopology());
+  }
+}



[incubator-heron] branch master updated: Update output message of restart command to include container id (#3335)

2019-08-29 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new f133e73  Update output message of restart command to include container 
id (#3335)
f133e73 is described below

commit f133e73434c8b3cc6ddab0de43afbf30ecca2124
Author: Ning Wang 
AuthorDate: Thu Aug 29 14:21:23 2019 -0700

Update output message of restart command to include container id (#3335)
---
 heron/tools/cli/src/python/restart.py | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/heron/tools/cli/src/python/restart.py 
b/heron/tools/cli/src/python/restart.py
index 010c6f8..9b731fa 100644
--- a/heron/tools/cli/src/python/restart.py
+++ b/heron/tools/cli/src/python/restart.py
@@ -66,9 +66,13 @@ def run(command, parser, cl_args, unknown_args):
   Log.debug("Restart Args: %s", cl_args)
   container_id = cl_args['container-id']
 
+  message = "restart topology"
+  if container_id >= 0:
+message = "restart container " + str(container_id) + " of topology"
+
   if cl_args['deploy_mode'] == config.SERVER_MODE:
 dict_extra_args = {"container_id": str(container_id)}
-return cli_helper.run_server(command, cl_args, "restart topology", 
extra_args=dict_extra_args)
+return cli_helper.run_server(command, cl_args, message, 
extra_args=dict_extra_args)
   else:
 list_extra_args = ["--container_id", str(container_id)]
-return cli_helper.run_direct(command, cl_args, "restart topology", 
extra_args=list_extra_args)
+return cli_helper.run_direct(command, cl_args, message, 
extra_args=list_extra_args)



[incubator-heron] branch master updated: Add license files (#3331)

2019-08-24 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 12515ff  Add license files (#3331)
12515ff is described below

commit 12515ff65f0414dbd363d1913df357338bbf27e7
Author: Ning Wang 
AuthorDate: Sat Aug 24 00:02:56 2019 -0700

Add license files (#3331)

Except:
JSXTransformer (from react)
---
 LICENSE   |   8 -
 licenses/LICENSE-Underscore.js-1.6.0.txt  |  23 ++
 LICENSE => licenses/LICENSE-bazel_jar_jar.txt | 129 +
 licenses/LICENSE-cloudpickle.txt  |  32 +++
 licenses/LICENSE-cpplint.txt  |  27 ++
 licenses/LICENSE-d3-3.4.11.txt|  27 ++
 licenses/LICENSE-d3-tip-0.6.3.txt |   8 +
 LICENSE => licenses/LICENSE-gerrit.txt| 136 +-
 licenses/LICENSE-html5shiv-3.6.2pre.md| 372 ++
 licenses/LICENSE-jQuery-UI-1.8.23.txt |  43 +++
 licenses/LICENSE-k8s-zookeeper-docker.txt |  13 +
 licenses/LICENSE-kashmir.txt  |  23 ++
 licenses/LICENSE-list.js-1.1.1.txt|  21 ++
 licenses/LICENSE-moment-2.8.3.txt |  22 ++
 licenses/LICENSE-normalize.css.md |  21 ++
 15 files changed, 636 insertions(+), 269 deletions(-)

diff --git a/LICENSE b/LICENSE
index cb67dd0..02e56a2 100644
--- a/LICENSE
+++ b/LICENSE
@@ -233,14 +233,6 @@ See project link for details.
   -> tools/rules/jarjar_rules.bzl
 gerrit(https://gerrit.googlesource.com/gerrit/+/master/COPYING)
   -> tools/rules/javadoc.bzl
-heronpy(Copyright - Parsely, Inc.)
-  -> heronpy/api/bolt/base_bolt.py
-  -> heronpy/api/bolt/bolt.py
-  -> heronpy/api/bolt/base_component.py
-  -> heronpy/api/bolt/base_spout.py
-  -> heronpy/api/bolt/stream.py
-  -> heronpy/api/bolt/generator.py
-  -> heronpy/api/bolt/transformoperator.py
 
k8s-zookeeper-docker(https://github.com/muxinc/k8s-zookeeper-docker/blob/master/LICENSE)
   -> docker/base/scripts/generate-zookeeper-config.sh
 
diff --git a/licenses/LICENSE-Underscore.js-1.6.0.txt 
b/licenses/LICENSE-Underscore.js-1.6.0.txt
new file mode 100644
index 000..48404b5
--- /dev/null
+++ b/licenses/LICENSE-Underscore.js-1.6.0.txt
@@ -0,0 +1,23 @@
+Copyright (c) 2009-2018 Jeremy Ashkenas, DocumentCloud and Investigative
+Reporters & Editors
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/LICENSE b/licenses/LICENSE-bazel_jar_jar.txt
similarity index 61%
copy from LICENSE
copy to licenses/LICENSE-bazel_jar_jar.txt
index cb67dd0..4947287 100644
--- a/LICENSE
+++ b/licenses/LICENSE-bazel_jar_jar.txt
@@ -1,3 +1,4 @@
+
  Apache License
Version 2.0, January 2004
 http://www.apache.org/licenses/
@@ -173,130 +174,4 @@
   incurred by, or claims asserted against, such Contributor by reason
   of your accepting any such warranty or additional liability.
 
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-  To apply the Apache License to your work, attach the following
-  boilerplate notice, with the fields enclosed by brackets "[]"
-  replaced with your own identifying information. (Don't include
-  the brackets!)  The text should be enclosed in the appropriate
-  comment syntax for the file format. We also recommend that a
-  file or class name and description of purpose be included on the
-  same "printed page" as the copyright notice for easier
-  identification within third-party archives.
-
-   Copyright [] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "Li

[incubator-heron] annotated tag snapshot_2019_08_21 updated (0e0c86b -> 0825fa2)

2019-08-21 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to annotated tag snapshot_2019_08_21
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


*** WARNING: tag snapshot_2019_08_21 was modified! ***

from 0e0c86b  (commit)
  to 0825fa2  (tag)
 tagging 0e0c86be72607e0bbf5cf90feb1aa81252072142 (commit)
 replaces 0.20.1-incubating
  by Ning Wang
  on Wed Aug 21 09:00:56 2019 -0700

- Log -
snapshot on 2019/08/21
---


No new revisions were added by this update.

Summary of changes:



[incubator-heron] branch master updated: increase the process restart retry to 150 (#3326)

2019-08-16 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 6df60ab  increase the process restart retry to 150 (#3326)
6df60ab is described below

commit 6df60ab60533362bc55b196752f8ae5599ee3820
Author: Neng Lu 
AuthorDate: Thu Aug 15 23:17:47 2019 -0700

increase the process restart retry to 150 (#3326)
---
 heron/executor/src/python/heron_executor.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/heron/executor/src/python/heron_executor.py 
b/heron/executor/src/python/heron_executor.py
index 6f5790a..9380ef5 100755
--- a/heron/executor/src/python/heron_executor.py
+++ b/heron/executor/src/python/heron_executor.py
@@ -297,7 +297,7 @@ class HeronExecutor(object):
 self.init_from_parsed_args(parsed_args)
 
 self.shell_env = shell_env
-self.max_runs = 100
+self.max_runs = 150
 self.interval_between_runs = 10
 
 # Read the heron_internals.yaml for logging dir



[incubator-heron] branch master updated: Nwang/improve curator connection error message (#3327)

2019-08-15 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 6154c12  Nwang/improve curator connection error message (#3327)
6154c12 is described below

commit 6154c12d21557a5c92ccdf42357b2a728b67fefa
Author: Ning Wang 
AuthorDate: Thu Aug 15 17:43:48 2019 -0700

Nwang/improve curator connection error message (#3327)

* Improve the error messages for blockUntilConnected(). The current 
messages sound like client construction issue

* update two more error messages
---
 .../heron/statemgr/zookeeper/curator/CuratorStateManager.java| 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git 
a/heron/statemgrs/src/java/org/apache/heron/statemgr/zookeeper/curator/CuratorStateManager.java
 
b/heron/statemgrs/src/java/org/apache/heron/statemgr/zookeeper/curator/CuratorStateManager.java
index 78129cc..3e0e63f 100644
--- 
a/heron/statemgrs/src/java/org/apache/heron/statemgr/zookeeper/curator/CuratorStateManager.java
+++ 
b/heron/statemgrs/src/java/org/apache/heron/statemgr/zookeeper/curator/CuratorStateManager.java
@@ -118,10 +118,10 @@ public class CuratorStateManager extends 
FileSystemStateManager {
 try {
   if (!client.blockUntilConnected(ZkContext.connectionTimeoutMs(newConfig),
   TimeUnit.MILLISECONDS)) {
-throw new RuntimeException("Failed to initialize CuratorClient");
+throw new RuntimeException("Failed to connect to " + connectionString);
   }
 } catch (InterruptedException e) {
-  throw new RuntimeException("Failed to initialize CuratorClient", e);
+  throw new RuntimeException("Interrupted from blockUntilConnected(): " + 
connectionString, e);
 }
 
 if (ZkContext.isInitializeTree(newConfig)) {
@@ -335,7 +335,8 @@ public class CuratorStateManager extends 
FileSystemStateManager {
   // Suppress it since forPath() throws Exception
   // SUPPRESS CHECKSTYLE IllegalCatch
 } catch (Exception e) {
-  safeSetException(future, new RuntimeException("Could not getNodeData", 
e));
+  safeSetException(future, new RuntimeException(
+  "Could not getNodeData using watcher for path: " + path, e));
 }
 
 return future;
@@ -448,7 +449,7 @@ public class CuratorStateManager extends 
FileSystemStateManager {
   public static void main(String[] args) throws ExecutionException, 
InterruptedException,
   IllegalAccessException, ClassNotFoundException, InstantiationException {
 if (args.length < 2) {
-  throw new RuntimeException("Expects arguments:  
");
+  throw new RuntimeException("Expects 2 arguments:  
");
 }
 
 String zookeeperHostname = args[1];



[incubator-heron] branch master updated: Kafka bolt (#3324)

2019-08-08 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 6a28a52  Kafka bolt (#3324)
6a28a52 is described below

commit 6a28a52aff4bb573ee8a11e9f108f4e3ede2
Author: SiMing Weng 
AuthorDate: Thu Aug 8 13:15:12 2019 -0400

Kafka bolt (#3324)

* update KafkaSpout

* Revert "update KafkaSpout"

This reverts commit dc64e9ad

* implement a Kafka Bolt

* add unit tests for Effective Once and At Most Once mode
---
 contrib/bolts/kafka/src/java/BUILD |  29 +
 .../bolts/kafka/DefaultKafkaProducerFactory.java   |  38 ++
 .../org/apache/heron/bolts/kafka/KafkaBolt.java| 106 
 .../heron/bolts/kafka/KafkaProducerFactory.java|  26 
 .../apache/heron/bolts/kafka/TupleTransformer.java |  43 +++
 contrib/bolts/kafka/test/java/BUILD|  23 
 .../kafka/DefaultKafkaProducerFactoryTest.java |  41 ++
 .../apache/heron/bolts/kafka/KafkaBoltTest.java| 137 +
 8 files changed, 443 insertions(+)

diff --git a/contrib/bolts/kafka/src/java/BUILD 
b/contrib/bolts/kafka/src/java/BUILD
new file mode 100644
index 000..1df060c
--- /dev/null
+++ b/contrib/bolts/kafka/src/java/BUILD
@@ -0,0 +1,29 @@
+licenses(["notice"])
+
+package(default_visibility = ["//visibility:public"])
+
+load("//tools/rules:build_defs.bzl", "DOCLINT_HTML_AND_SYNTAX")
+load("//tools/rules:javadoc.bzl", "java_doc")
+
+java_doc(
+name = "heron-kafka-bolt-javadoc",
+libs = [":heron-kafka-bolt-java"],
+pkgs = ["org/apache/heron/bolts/kafka"],
+title = "Kafka Bolt Documentation",
+)
+
+kafka_bolt_deps = [
+"//storm-compatibility/src/java:storm-compatibility-java-neverlink",
+"//heron/api/src/java:api-java-low-level",
+"//heron/common/src/java:basics-java",
+"//heron/common/src/java:config-java",
+"//third_party/java:logging",
+"@org_apache_kafka_kafka_clients//jar",
+]
+
+java_library(
+name = "heron-kafka-bolt-java",
+srcs = glob(["org/apache/heron/bolts/kafka/**/*.java"]),
+javacopts = DOCLINT_HTML_AND_SYNTAX,
+deps = kafka_bolt_deps,
+)
\ No newline at end of file
diff --git 
a/contrib/bolts/kafka/src/java/org/apache/heron/bolts/kafka/DefaultKafkaProducerFactory.java
 
b/contrib/bolts/kafka/src/java/org/apache/heron/bolts/kafka/DefaultKafkaProducerFactory.java
new file mode 100644
index 000..3fdd223
--- /dev/null
+++ 
b/contrib/bolts/kafka/src/java/org/apache/heron/bolts/kafka/DefaultKafkaProducerFactory.java
@@ -0,0 +1,38 @@
+/**
+ * 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.
+ */
+package org.apache.heron.bolts.kafka;
+
+import java.util.Map;
+
+import org.apache.kafka.clients.producer.KafkaProducer;
+import org.apache.kafka.clients.producer.Producer;
+
+@SuppressWarnings("unused")
+public class DefaultKafkaProducerFactory implements 
KafkaProducerFactory {
+  private static final long serialVersionUID = -2184222924531815883L;
+  private Map configs;
+
+  public DefaultKafkaProducerFactory(Map configs) {
+this.configs = configs;
+  }
+
+  @Override
+  public Producer create() {
+return new KafkaProducer<>(configs);
+  }
+}
diff --git 
a/contrib/bolts/kafka/src/java/org/apache/heron/bolts/kafka/KafkaBolt.java 
b/contrib/bolts/kafka/src/java/org/apache/heron/bolts/kafka/KafkaBolt.java
new file mode 100644
index 000..95ce3f8
--- /dev/null
+++ b/contrib/bolts/kafka/src/java/org/apache/heron/bolts/kafka/KafkaBolt.java
@@ -0,0 +1,106 @@
+/**
+ * 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"); yo

[incubator-heron] branch master updated: Optimize hot spots in Stream Manager (#3322)

2019-08-07 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 12f641b  Optimize hot spots in Stream Manager (#3322)
12f641b is described below

commit 12f641b442743dfe4ed3fbadea27e47cd6167263
Author: Dmitry Rusakov 
AuthorDate: Wed Aug 7 11:47:04 2019 -0700

Optimize hot spots in Stream Manager (#3322)

* Replace std::unordered_map with tsl::hopscotch_map in tuple-cache.h

* Replaced std::hash with a faster xxhash implementation to speedup the 
topology if it uses fields-grouping strategy

* Enabled O3 optimization level be default to guarantee all smart pointers 
are inlined

* xxhash migration has been rollbacked since its performance effect is 
negligible

* RETRY_ATTEMPTS bumped to 50 since Travis is slow
---
 WORKSPACE|  8 
 heron/stmgr/src/cpp/BUILD|  1 +
 heron/stmgr/src/cpp/util/tuple-cache.h   |  3 ++-
 integration_test/src/python/topology_test_runner/main.py |  2 +-
 third_party/hopscotch-hashmap/hopscotch.BUILD| 12 
 tools/bazel.rc   |  9 -
 tools/travis/toolchain/CROSSTOOL |  2 +-
 7 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/WORKSPACE b/WORKSPACE
index 07ebcab..872c975 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -925,6 +925,14 @@ http_archive(
 build_file = "@//:third_party/cppcheck/cppcheck.BUILD",
 sha256 = 
"b3de7fbdc1a23d7341b55f7f88877e106a76847bd5a07fa721c07310b625318b",
 )
+
+http_archive(
+name = "com_github_hopscotch_hashmap",
+build_file = "@//:third_party/hopscotch-hashmap/hopscotch.BUILD",
+sha256 = 
"73e301925e1418c5ed930ef37ebdcab2c395a6d1bdaf5a012034bb75307d33f1",
+strip_prefix = "hopscotch-map-2.2.1",
+urls = ["https://github.com/Tessil/hopscotch-map/archive/v2.2.1.tar.gz;],
+)
 # end 3rdparty C++ dependencies
 
 # for helm
diff --git a/heron/stmgr/src/cpp/BUILD b/heron/stmgr/src/cpp/BUILD
index ebd14f8..c056023 100644
--- a/heron/stmgr/src/cpp/BUILD
+++ b/heron/stmgr/src/cpp/BUILD
@@ -61,6 +61,7 @@ cc_library(
 "//heron/proto:proto-cxx",
 "//heron/common/src/cpp/network:network-cxx",
 "//heron/common/src/cpp/config:config-cxx",
+"@com_github_hopscotch_hashmap//:hopscotch-hashmap",
 ],
 linkstatic = 1,
 )
diff --git a/heron/stmgr/src/cpp/util/tuple-cache.h 
b/heron/stmgr/src/cpp/util/tuple-cache.h
index a0e23eb..d25ae9c 100644
--- a/heron/stmgr/src/cpp/util/tuple-cache.h
+++ b/heron/stmgr/src/cpp/util/tuple-cache.h
@@ -20,6 +20,7 @@
 #ifndef SRC_CPP_SVCS_STMGR_SRC_UTIL_TUPLE_CACHE_H_
 #define SRC_CPP_SVCS_STMGR_SRC_UTIL_TUPLE_CACHE_H_
 
+#include 
 #include 
 #include 
 #include 
@@ -114,7 +115,7 @@ class TupleCache {
   TupleList* get(sp_int32 _task_id);
 
   // map from task_id to the TupleList
-  std::unordered_map cache_;
+  tsl::hopscotch_map cache_;
   std::shared_ptr eventLoop_;
   std::function tuple_drainer_;
   std::function
diff --git a/integration_test/src/python/topology_test_runner/main.py 
b/integration_test/src/python/topology_test_runner/main.py
index 741bade..08fefea 100644
--- a/integration_test/src/python/topology_test_runner/main.py
+++ b/integration_test/src/python/topology_test_runner/main.py
@@ -37,7 +37,7 @@ from heron.statemgrs.src.python.filestatemanager import 
FileStateManager
 DEFAULT_TEST_CONF_FILE = 
"integration_test/src/python/topology_test_runner/resources/test.json"
 
 #seconds
-RETRY_ATTEMPTS = 25
+RETRY_ATTEMPTS = 50
 RETRY_INTERVAL = 10
 WAIT_FOR_DEACTIVATION = 5
 
diff --git a/third_party/hopscotch-hashmap/hopscotch.BUILD 
b/third_party/hopscotch-hashmap/hopscotch.BUILD
new file mode 100644
index 000..8ef7618
--- /dev/null
+++ b/third_party/hopscotch-hashmap/hopscotch.BUILD
@@ -0,0 +1,12 @@
+licenses(["notice"])
+
+package(default_visibility = ["//visibility:public"])
+
+cc_library(
+name = "hopscotch-hashmap",
+hdrs = glob([
+"include/tsl/*.h",
+]),
+includes = ["include"],
+linkstatic = 1,
+)
diff --git a/tools/bazel.rc b/tools/bazel.rc
index 2346ca4..0e35097 100644
--- a/tools/bazel.rc
+++ b/tools/bazel.rc
@@ -34,6 +34,7 @@ build:centos --linkopt -lpthread
 build:centos --linkopt -lrt
 build:centos --spawn_strategy=standalone
 build:centos --workspace_status_command scripts/release/status.sh
+build:centos --copt=-O3
 
 # For debian
 # To use it: bazel build --config=debian
@@ -47,6 +48,7 @@ build:debian --linkopt -lpthread
 build:debian --linkopt -lrt
 build:debian --spawn_strategy=standalone
 build:debian --workspace_statu

[incubator-heron] annotated tag nwang.test.05.23 deleted (was 4756ba8)

2019-08-02 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to annotated tag nwang.test.05.23
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


*** WARNING: tag nwang.test.05.23 was deleted! ***

   tag was  4756ba8

The revisions that were on this annotated tag are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[incubator-heron] annotated tag nwang.test.06.11 deleted (was 4f1e3ea)

2019-08-02 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to annotated tag nwang.test.06.11
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


*** WARNING: tag nwang.test.06.11 was deleted! ***

   tag was  4f1e3ea

The revisions that were on this annotated tag are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[incubator-heron] annotated tag 0.20.0.3 deleted (was 22f758b)

2019-08-02 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to annotated tag 0.20.0.3
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


*** WARNING: tag 0.20.0.3 was deleted! ***

   tag was  22f758b

The revisions that were on this annotated tag are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[incubator-heron] annotated tag 0.20.0.1 deleted (was a581d10)

2019-08-02 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to annotated tag 0.20.0.1
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


*** WARNING: tag 0.20.0.1 was deleted! ***

   tag was  a581d10

The revisions that were on this annotated tag are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[incubator-heron] annotated tag 0.20.0.2 deleted (was 5bd6973)

2019-08-02 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to annotated tag 0.20.0.2
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


*** WARNING: tag 0.20.0.2 was deleted! ***

   tag was  5bd6973

The revisions that were on this annotated tag are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[incubator-heron] branch 0.20.1-incubating created (now 40ccec6)

2019-08-02 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a change to branch 0.20.1-incubating
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git.


  at 40ccec6  Joshfischer/refine docs (#3300)

No new revisions were added by this update.



[incubator-heron] branch master updated: adding wait for zookeeper script (#3313)

2019-08-02 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new a130d5e  adding wait for zookeeper script (#3313)
a130d5e is described below

commit a130d5e54cd8642d7e26584ed2e2f9d2285570be
Author: Josh Fischer 
AuthorDate: Fri Aug 2 01:04:48 2019 -0500

adding wait for zookeeper script (#3313)
---
 docker/dist/Dockerfile.dist.debian9   |  3 ++-
 docker/dist/Dockerfile.dist.ubuntu14.04   |  3 ++-
 docker/dist/scripts/wait-for-zookeeper.sh | 36 +++
 3 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/docker/dist/Dockerfile.dist.debian9 
b/docker/dist/Dockerfile.dist.debian9
index f183129..94fdaa2 100644
--- a/docker/dist/Dockerfile.dist.debian9
+++ b/docker/dist/Dockerfile.dist.debian9
@@ -82,4 +82,5 @@ RUN mkdir -p /opt/zookeeper/scripts
 ADD dist/scripts /opt/zookeeper/scripts
 RUN chmod +x /opt/zookeeper/scripts/generate-zookeeper-config.sh \
 && chmod +x /opt/zookeeper/scripts/zookeeper-ruok.sh \
-&& chmod +x /opt/zookeeper/scripts/start-zookeeper.sh
+&& chmod +x /opt/zookeeper/scripts/start-zookeeper.sh \
+&& chmod +x /opt/zookeeper/scripts/wait-for-zookeeper.sh
diff --git a/docker/dist/Dockerfile.dist.ubuntu14.04 
b/docker/dist/Dockerfile.dist.ubuntu14.04
index 04f2602..17930e0 100644
--- a/docker/dist/Dockerfile.dist.ubuntu14.04
+++ b/docker/dist/Dockerfile.dist.ubuntu14.04
@@ -82,6 +82,7 @@ RUN mkdir -p /opt/zookeeper/scripts
 ADD dist/scripts /opt/zookeeper/scripts
 RUN chmod +x /opt/zookeeper/scripts/generate-zookeeper-config.sh \
 && chmod +x /opt/zookeeper/scripts/zookeeper-ruok.sh \
-&& chmod +x /opt/zookeeper/scripts/start-zookeeper.sh
+&& chmod +x /opt/zookeeper/scripts/start-zookeeper.sh \
+&& chmod +x /opt/zookeeper/scripts/wait-for-zookeeper.sh
 
 CMD ["supervisord", "-n"]
diff --git a/docker/dist/scripts/wait-for-zookeeper.sh 
b/docker/dist/scripts/wait-for-zookeeper.sh
new file mode 100644
index 000..bd6b353
--- /dev/null
+++ b/docker/dist/scripts/wait-for-zookeeper.sh
@@ -0,0 +1,36 @@
+#!/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.
+
+if [ "$#" -ne 2 ]; then
+  echo "Usage: $0  "
+  exit 1
+fi
+
+WAIT_ZK_HOST=$1
+WAIT_ZK_PORT=$2
+
+while true; do
+  status=$(echo ruok | nc $WAIT_ZK_HOST $WAIT_ZK_PORT);
+  writestatus=$(echo isro | nc $WAIT_ZK_HOST $WAIT_ZK_PORT)
+  if [ "$status" = "imok" ] && [ "$writestatus" == "rw" ]; then
+echo "Zookeeper $WAIT_ZK_HOST:$WAIT_ZK_PORT is ready";
+exit 0
+  fi;
+  echo "Zookeeper $WAIT_ZK_HOST:$WAIT_ZK_PORT not ready";
+  sleep 4;
+done



[incubator-heron] branch master updated: When create a smart pointer we now allocate the most hot/frequent messages in the memory pool instead of the heap (#3316)

2019-07-22 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new a01930e  When create a smart pointer we now allocate the most 
hot/frequent messages in the memory pool instead of the heap (#3316)
a01930e is described below

commit a01930e86e3709958db14025716a8598dbd105c2
Author: Dmitry Rusakov 
AuthorDate: Mon Jul 22 22:28:51 2019 -0700

When create a smart pointer we now allocate the most hot/frequent messages 
in the memory pool instead of the heap (#3316)
---
 heron/common/src/cpp/basics/basics.h | 19 +++
 heron/common/src/cpp/metrics/metricsmgr-client.cpp   |  2 +-
 heron/common/src/cpp/metrics/metricsmgr-client.h |  4 ++--
 heron/common/src/cpp/network/client.h| 14 +++---
 heron/common/src/cpp/network/server.h| 12 ++--
 heron/common/tests/cpp/network/client_unittest.cpp   |  2 +-
 heron/common/tests/cpp/network/client_unittest.h |  2 +-
 heron/common/tests/cpp/network/oclient_unittest.cpp  |  2 +-
 heron/common/tests/cpp/network/oclient_unittest.h|  2 +-
 heron/common/tests/cpp/network/oserver_unittest.cpp  |  4 ++--
 heron/common/tests/cpp/network/oserver_unittest.h|  5 +++--
 heron/common/tests/cpp/network/server_unittest.cpp   |  4 ++--
 heron/common/tests/cpp/network/server_unittest.h |  5 +++--
 heron/instance/src/cpp/boltimpl/bolt-instance.cpp|  4 ++--
 heron/instance/src/cpp/boltimpl/bolt-instance.h  |  6 +++---
 heron/instance/src/cpp/gateway/gateway.cpp   |  4 ++--
 heron/instance/src/cpp/gateway/gateway.h | 13 +++--
 heron/instance/src/cpp/gateway/stmgr-client.cpp  | 16 +---
 heron/instance/src/cpp/gateway/stmgr-client.h| 15 ---
 heron/instance/src/cpp/instance-main.cpp |  2 +-
 heron/instance/src/cpp/slave/instance-base.h |  2 +-
 heron/instance/src/cpp/slave/slave.cpp   | 16 
 heron/instance/src/cpp/slave/slave.h | 15 ---
 heron/instance/src/cpp/spoutimpl/spout-instance.cpp  |  2 +-
 heron/instance/src/cpp/spoutimpl/spout-instance.h|  2 +-
 heron/stmgr/src/cpp/manager/checkpoint-gateway.cpp   | 14 +++---
 heron/stmgr/src/cpp/manager/checkpoint-gateway.h |  8 
 heron/stmgr/src/cpp/manager/ckptmgr-client.cpp   | 10 +-
 heron/stmgr/src/cpp/manager/ckptmgr-client.h |  6 +++---
 heron/stmgr/src/cpp/manager/instance-server.cpp  | 12 ++--
 heron/stmgr/src/cpp/manager/instance-server.h| 13 +++--
 heron/stmgr/src/cpp/manager/stmgr-client.cpp |  9 +
 heron/stmgr/src/cpp/manager/stmgr-client.h   |  4 ++--
 heron/stmgr/src/cpp/manager/stmgr-server.cpp | 10 +-
 heron/stmgr/src/cpp/manager/stmgr-server.h   | 10 +-
 heron/stmgr/src/cpp/manager/stmgr.cpp|  4 ++--
 heron/stmgr/src/cpp/manager/stmgr.h  |  4 ++--
 heron/stmgr/src/cpp/manager/tmaster-client.cpp   | 20 ++--
 heron/stmgr/src/cpp/manager/tmaster-client.h | 14 --
 .../tests/cpp/server/checkpoint-gateway_unittest.cpp |  2 +-
 heron/stmgr/tests/cpp/server/dummy_instance.cpp  | 18 +-
 heron/stmgr/tests/cpp/server/dummy_instance.h| 16 
 heron/stmgr/tests/cpp/server/dummy_metricsmgr.cpp|  6 +++---
 heron/stmgr/tests/cpp/server/dummy_metricsmgr.h  |  7 ---
 heron/stmgr/tests/cpp/server/dummy_stmgr.cpp | 10 ++
 heron/stmgr/tests/cpp/server/dummy_stmgr.h   | 12 ++--
 heron/tmaster/src/cpp/manager/ckptmgr-client.cpp | 12 ++--
 heron/tmaster/src/cpp/manager/ckptmgr-client.h   | 12 ++--
 heron/tmaster/src/cpp/manager/tmasterserver.cpp  | 12 ++--
 heron/tmaster/src/cpp/manager/tmasterserver.h| 12 ++--
 .../src/cpp/processor/stmgr-heartbeat-processor.cpp  |  4 ++--
 .../src/cpp/processor/stmgr-heartbeat-processor.h|  2 +-
 .../src/cpp/processor/stmgr-register-processor.cpp   |  4 ++--
 .../src/cpp/processor/stmgr-register-processor.h |  2 +-
 .../tmaster/src/cpp/processor/tmaster-processor.cpp  |  2 +-
 heron/tmaster/src/cpp/processor/tmaster-processor.h  |  4 ++--
 heron/tmaster/tests/cpp/server/dummystmgr.cpp| 18 +-
 heron/tmaster/tests/cpp/server/dummystmgr.h  | 12 +++-
 heron/tmaster/tests/cpp/server/dummytmaster.cpp  |  2 +-
 heron/tmaster/tests/cpp/server/dummytmaster.h|  2 +-
 60 files changed, 259 insertions(+), 224 deletions(-)

diff --git a/heron/common/src/cpp/basics/basics.h 
b/heron/common/src/cpp/basics/basics.h
index 766a64f..dc5be56 100644
--- a/heron/common/src/cpp/basics/basics.h
+++ b/heron/common/src/cpp

[incubator-heron] branch master updated: Flip buffers using helper method (#3311)

2019-07-10 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new bfe58d1  Flip buffers using helper method (#3311)
bfe58d1 is described below

commit bfe58d1e05cb3f5fb5db2f51d13592d9a65ac477
Author: Rohan Agarwal 
AuthorDate: Wed Jul 10 16:45:24 2019 -0700

Flip buffers using helper method (#3311)

* flip buffer using helper method

* make constructor private

* make class final

* move constructor to top of class

* no-op

* empty commit to re-trigger CI

* final try for flaky integration tests
---
 .../apache/heron/common/network/BufferHelper.java  | 48 ++
 .../heron/common/network/IncomingPacket.java   |  4 +-
 .../heron/common/network/OutgoingPacket.java   |  2 +-
 3 files changed, 51 insertions(+), 3 deletions(-)

diff --git 
a/heron/common/src/java/org/apache/heron/common/network/BufferHelper.java 
b/heron/common/src/java/org/apache/heron/common/network/BufferHelper.java
new file mode 100644
index 000..2849923
--- /dev/null
+++ b/heron/common/src/java/org/apache/heron/common/network/BufferHelper.java
@@ -0,0 +1,48 @@
+/**
+ * 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.
+ */
+
+package org.apache.heron.common.network;
+
+import java.nio.Buffer;
+import java.nio.ByteBuffer;
+
+/**
+ * Helper methods for working with {@link Buffer} objects.
+ */
+final class BufferHelper {
+
+  private BufferHelper() {
+  }
+
+  /**
+   * Flip the provided buffer.
+   * 
+   * This wrapper around {@link Buffer#flip()} is required because of
+   * incompatible ABI changes between Java 8 and 11. In Java 8, {@link 
ByteBuffer#flip()} returns
+   * a {@link Buffer}, whereas in Java 11, this method returns a {@link 
ByteBuffer}.
+   * 
+   * If this function is used, any object of {@link Buffer} (and subclasses) 
are first cast to
+   * {@link Buffer} objects, then flipped, thus avoiding the binary 
incompatibility.
+   *
+   * @param buffer The buffer to flip
+   */
+  static void flip(Buffer buffer) {
+buffer.flip();
+  }
+}
diff --git 
a/heron/common/src/java/org/apache/heron/common/network/IncomingPacket.java 
b/heron/common/src/java/org/apache/heron/common/network/IncomingPacket.java
index 045602e..b1bf26c 100644
--- a/heron/common/src/java/org/apache/heron/common/network/IncomingPacket.java
+++ b/heron/common/src/java/org/apache/heron/common/network/IncomingPacket.java
@@ -76,7 +76,7 @@ public class IncomingPacket {
   }
   // We read the header fully
   headerRead = true;
-  header.flip();
+  BufferHelper.flip(header);
   int size = header.getInt();
   if (size > limit) {
 LOG.log(Level.SEVERE, "packet size " + size + " exceeds limit " + 
limit);
@@ -86,7 +86,7 @@ public class IncomingPacket {
 }
 int retval = readFromChannel(channel, data);
 if (retval == 0) {
-  data.flip();
+  BufferHelper.flip(data);
 }
 return retval;
   }
diff --git 
a/heron/common/src/java/org/apache/heron/common/network/OutgoingPacket.java 
b/heron/common/src/java/org/apache/heron/common/network/OutgoingPacket.java
index 2b91077..63983db 100644
--- a/heron/common/src/java/org/apache/heron/common/network/OutgoingPacket.java
+++ b/heron/common/src/java/org/apache/heron/common/network/OutgoingPacket.java
@@ -82,7 +82,7 @@ public class OutgoingPacket {
 buffer.put(message.toByteArray());
 
 // Make the buffer ready for writing out
-buffer.flip();
+BufferHelper.flip(buffer);
   }
 
   public static int sizeRequiredToPackString(String str) {



[incubator-heron] branch master updated: Allow interpolate more spout config parameters in extra links (#3310)

2019-07-10 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 912d84b  Allow interpolate more spout config parameters in extra links 
(#3310)
912d84b is described below

commit 912d84bd4a0fc1fd095d2493a2af2745a3f93223
Author: Xiaoyao Qian 
AuthorDate: Wed Jul 10 11:52:47 2019 -0700

Allow interpolate more spout config parameters in extra links (#3310)

* Allow interpolate more spout config parameters in extra links

* new interpolate design
---
 .../config/src/yaml/tracker/heron_tracker.yaml | 14 ---
 heron/tools/tracker/src/python/config.py   | 37 +--
 heron/tools/tracker/src/python/tracker.py  | 43 +-
 3 files changed, 27 insertions(+), 67 deletions(-)

diff --git a/heron/tools/config/src/yaml/tracker/heron_tracker.yaml 
b/heron/tools/config/src/yaml/tracker/heron_tracker.yaml
index 15f87c8..1d8cf5d 100644
--- a/heron/tools/config/src/yaml/tracker/heron_tracker.yaml
+++ b/heron/tools/config/src/yaml/tracker/heron_tracker.yaml
@@ -69,17 +69,3 @@ statemgrs:
 #   formatter: "http://127.0.0.1/viz/${ENVIRON}-${CLUSTER}-${TOPOLOGY};
 # - name: "Alerts"
 #   formatter: "http://127.0.0.1/alerts/${ENVIRON}-${CLUSTER}-${TOPOLOGY};
-#
-# spout.extra.links:
-# - spout.type: "kafka"
-#   extra.links:
-#   - name: "Viz"
-# formatter: 
"http://127.0.0.1/kafka/viz/${ENVIRON}-${CLUSTER}-${TOPOLOGY}-${SPOUT_NAME}-${SPOUT_SOURCE};
-#   - name: "Alerts"
-# formatter: 
"http://127.0.0.1/kafka/alerts/${ENVIRON}-${CLUSTER}-${TOPOLOGY}-${SPOUT_NAME}-${SPOUT_SOURCE};
-# - spout.type: "default"
-#   extra.links:
-#   - name: "Viz"
-# formatter: 
"http://127.0.0.1/default/viz/${ENVIRON}-${CLUSTER}-${TOPOLOGY}-${SPOUT_NAME}-${SPOUT_SOURCE};
-#   - name: "Alerts"
-# formatter: 
"http://127.0.0.1/default/alerts/${ENVIRON}-${CLUSTER}-${TOPOLOGY}-${SPOUT_NAME}-${SPOUT_SOURCE};
diff --git a/heron/tools/tracker/src/python/config.py 
b/heron/tools/tracker/src/python/config.py
index 6dbfc3d..08887b8 100644
--- a/heron/tools/tracker/src/python/config.py
+++ b/heron/tools/tracker/src/python/config.py
@@ -27,8 +27,6 @@ EXTRA_LINKS_KEY = "extra.links"
 EXTRA_LINK_NAME_KEY = "name"
 EXTRA_LINK_FORMATTER_KEY = "formatter"
 EXTRA_LINK_URL_KEY = "url"
-SPOUT_EXTRA_LINKS_KEY = "spout.extra.links"
-SPOUT_TYPE_KEY = "spout.type"
 
 class Config(object):
   """
@@ -40,11 +38,9 @@ class Config(object):
 self.configs = configs
 self.statemgr_config = StateMgrConfig()
 self.extra_links = []
-self.spout_extra_links = {}
 
 self.load_configs()
 
-  # pylint: disable=line-too-long
   def load_configs(self):
 """load config files"""
 self.statemgr_config.set_state_locations(self.configs[STATEMGRS_KEY])
@@ -52,10 +48,6 @@ class Config(object):
   for extra_link in self.configs[EXTRA_LINKS_KEY]:
 self.extra_links.append(self.validate_extra_link(extra_link))
 
-if SPOUT_EXTRA_LINKS_KEY in self.configs:
-  for extra_link in self.configs[SPOUT_EXTRA_LINKS_KEY]:
-self.spout_extra_links[extra_link[SPOUT_TYPE_KEY]] = 
[self.validate_extra_link(link) for link in extra_link[EXTRA_LINKS_KEY]]
-
   def validate_extra_link(self, extra_link):
 """validate extra link"""
 if EXTRA_LINK_NAME_KEY not in extra_link or EXTRA_LINK_FORMATTER_KEY not 
in extra_link:
@@ -77,8 +69,6 @@ class Config(object):
 "${TOPOLOGY}": "topology",
 "${ROLE}": "role",
 "${USER}": "user",
-"${SPOUT_NAME}": "spout_name",
-"${SPOUT_SOURCE}": "spout_source",
 }
 dummy_formatted_url = url_format
 for key, value in valid_parameters.items():
@@ -91,34 +81,25 @@ class Config(object):
 # No error is thrown, so the format is valid.
 return url_format
 
-  def get_formatted_url(self, formatter, execution_state, **additional):
+  def get_formatted_url(self, formatter, execution_state):
 """
+@param formatter: The template string to interpolate
 @param execution_state: The python dict representing JSON execution_state
-@param additional: additional kwargs to interpolate
 @return Formatted viz url
 """
 
 # Create the parameters based on execution state
-valid_parameters = {
-"${CLUSTER}": execution_state.get("cluster",
-  additional.get("cluster", 
"${CLUSTER}")),
-"${ENVIRON}": execution_state.get("

[incubator-heron] branch master updated: Add cluster to cmdline options (#3312)

2019-07-10 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new bffedbf  Add cluster to cmdline options (#3312)
bffedbf is described below

commit bffedbf178ca66487083a5f6d9b22308e722f177
Author: Ning Wang 
AuthorDate: Wed Jul 10 11:52:16 2019 -0700

Add cluster to cmdline options (#3312)
---
 heron/tools/cli/src/python/submit.py | 4 
 1 file changed, 4 insertions(+)

diff --git a/heron/tools/cli/src/python/submit.py 
b/heron/tools/cli/src/python/submit.py
index ca7d5e6..f147619 100644
--- a/heron/tools/cli/src/python/submit.py
+++ b/heron/tools/cli/src/python/submit.py
@@ -463,6 +463,10 @@ def run(command, parser, cl_args, unknown_args):
   opts.set_config('cmdline.topology.initial.state', initial_state)
   opts.set_config('cmdline.topology.role', cl_args['role'])
   opts.set_config('cmdline.topology.environment', cl_args['environ'])
+  opts.set_config('cmdline.topology.cluster', cl_args['cluster'])
+  opts.set_config('cmdline.topology.file_name', cl_args['topology-file-name'])
+  opts.set_config('cmdline.topology.class_name', 
cl_args['topology-class-name'])
+  opts.set_config('cmdline.topology.submit_user', cl_args['submit_user'])
 
   # Use CLI release yaml file if the release_yaml_file config is empty
   if not cl_args['release_yaml_file']:



[incubator-heron] branch master updated: Annotate 3rd party and UI libraries in rat excludes with licenses (#3309)

2019-07-08 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 18d6660  Annotate 3rd party and UI libraries in rat excludes with 
licenses (#3309)
18d6660 is described below

commit 18d6660abca88392ea9d880e68b0a1cf34c008b3
Author: Ning Wang 
AuthorDate: Mon Jul 8 16:55:35 2019 -0700

Annotate 3rd party and UI libraries in rat excludes with licenses (#3309)

* Annotate 3rd party and UI libraries in rat excludes with licenses

* Annotate website/website2
---
 .rat-excludes | 30 +-
 1 file changed, 21 insertions(+), 9 deletions(-)

diff --git a/.rat-excludes b/.rat-excludes
index bcdac11..f1d77ec 100644
--- a/.rat-excludes
+++ b/.rat-excludes
@@ -13,28 +13,40 @@ autogen\.sh
 description
 heron\.iml
 
+# Directories
+bazel-.*
+m4
+META-INF
+# website and website2 are not part of the release
+website
+
 # UI resources
+# Apache 2.0 licenses & MIT Licenses
 jquery.*\.js
+# Apache 2.0 licenses & MIT Licenses
 bootstrap\.min\.css
-glyphicons-halflings-regular\.svg
 bootstrap\.min\.js
+# MIT licenses
+glyphicons-halflings-regular\.svg
+# MIT licenses & BSD 3-Clause licenses
 d3.*\.js
+# MIT licenses
 html5-trunk\.js
+# MIT licenses
 list\.min.*.js
+# MIT licenses
 moment\.min.*\.js
+# MIT licenses
 underscore-min.*\.js
 underscore-min.*\.map
 
-# Directories
-bazel-.*
-m4
-website
-META-INF
 
 # Thirdparty
+# 3-Clause BSD License
 cpplint\.py
+# BSD 3-Clause licenses
+cloudpickle.py
+# Boost Software License, Version 1.0
 kashmir
+# BSD License
 semver
-
-# Unrecognizable license
-cloudpickle.py



[incubator-heron] branch master updated: Feature/helm (#3296)

2019-07-05 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 882ec8c  Feature/helm (#3296)
882ec8c is described below

commit 882ec8c087785e0b89a5daa09ea522d223d40619
Author: Scott <47566431+the-scott-h...@users.noreply.github.com>
AuthorDate: Fri Jul 5 18:10:16 2019 -0400

Feature/helm (#3296)

* fix inconsistent volume names and init container

* package names and spacing fix

* fix string comparison init container

could have also used double brackets

* fix prometheus stats provider class name

* add prometheus, kubectlImage and storageClassName

* add template for kubectl image:version

* add prometheus and storageClassName template logic

* add storageClassName template logic to zookeeper

* fix typo in zookeeper.yaml storageClass logic

* remove quotes from prometheus bool comparison
---
 deploy/kubernetes/helm/templates/bookie.yaml| 16 +---
 deploy/kubernetes/helm/templates/tools.yaml |  2 +-
 deploy/kubernetes/helm/templates/zookeeper.yaml |  3 +++
 deploy/kubernetes/helm/values.yaml.template |  8 
 4 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/deploy/kubernetes/helm/templates/bookie.yaml 
b/deploy/kubernetes/helm/templates/bookie.yaml
index 15294e6..fecc7f1 100644
--- a/deploy/kubernetes/helm/templates/bookie.yaml
+++ b/deploy/kubernetes/helm/templates/bookie.yaml
@@ -42,7 +42,11 @@ data:
   BK_zkServers: {{ .Release.Name }}-zookeeper:{{ .Values.zookeeper.clientPort 
}}
   BK_autoRecoveryDaemonEnabled: "true"
   # TODO: Issue 458: https://github.com/apache/bookkeeper/issues/458
-  #BK_statsProviderClass: 
org.apache.bookkeeper.stats.prometheus.PrometheusMetricsProvider
+  {{- if eq .Values.bookkeeper.prometheus.enabled true }}
+  BK_enableStatistics: "true"
+  BK_enableTaskExecutionStats: "true"
+  BK_statsProviderClass: 
org.apache.bookkeeper.stats.prometheus.PrometheusMetricsProvider
+  {{- end }}
 ---
 
 ## BookKeeper servers need to access the local disks and the pods
@@ -107,8 +111,8 @@ spec:
 - -c
 - >-
   while true; do
-status=$(echo ruok | nc {{ .Release.Name }}-zookeeper {{ 
.Values.zookeeper.clientPort }});
-writestatus=$(echo isro | nc {{ .Release.Name }}-zookeeper {{ 
.Values.zookeeper.clientPort }})
+status=$(echo ruok | nc -w 3 {{ .Release.Name }}-zookeeper {{ 
.Values.zookeeper.clientPort }});
+writestatus=$(echo isro | nc -w 3 {{ .Release.Name 
}}-zookeeper {{ .Values.zookeeper.clientPort }})
 if [ "$status" = "imok" ] && [ "$writestatus" = "rw" ]; then
   break;
 fi;
@@ -162,6 +166,9 @@ spec:
   component: {{ .Release.Name }}-bookkeeper
   spec:
 accessModes: [ "ReadWriteOnce" ]
+{{- if ne .Values.bookkeeper.storageClassName "none" }}
+storageClassName: {{ .Values.bookkeeper.storageClassName }}
+{{- end }}
 resources:
   requests:
 storage: {{ $bookieJournalCapacity }}
@@ -173,6 +180,9 @@ spec:
   component: {{ .Release.Name }}-bookkeeper
   spec:
 accessModes: [ "ReadWriteOnce" ]
+{{- if ne .Values.bookkeeper.storageClassName "none" }}
+storageClassName: {{ .Values.bookkeeper.storageClassName }}
+{{- end }}
 resources:
   requests:
 storage: {{ $bookieStorageCapacity }}
diff --git a/deploy/kubernetes/helm/templates/tools.yaml 
b/deploy/kubernetes/helm/templates/tools.yaml
index cc2dbeb..91f4f06 100644
--- a/deploy/kubernetes/helm/templates/tools.yaml
+++ b/deploy/kubernetes/helm/templates/tools.yaml
@@ -158,7 +158,7 @@ spec:
 - configMapRef:
 name: {{ .Release.Name }}-tools-config
 - name: kubectl-proxy
-  image: heron/kubectl:latest
+  image: {{ .Values.kubectlImage }}
   command: ["sh", "-c"]
   args:
 - >
diff --git a/deploy/kubernetes/helm/templates/zookeeper.yaml 
b/deploy/kubernetes/helm/templates/zookeeper.yaml
index 3a0d842..4e4f5b2 100644
--- a/deploy/kubernetes/helm/templates/zookeeper.yaml
+++ b/deploy/kubernetes/helm/templates/zookeeper.yaml
@@ -146,6 +146,9 @@ spec:
   name: datadir
 spec:
   accessModes: [ "ReadWriteOnce" ]
+  {{- if ne .Values.zookeeper.storageClassName "none" }}
+  storageClassName: {{ .Values.zookeeper.storageClassName }}
+  {{- end }}
   resources:
 requests:
   storage: {{ .Values.zookeeper.storage }}
diff --git a/deploy/kubern

[incubator-heron] branch master updated: Spout source extra links (#3306)

2019-07-03 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new cbbcd27  Spout source extra links (#3306)
cbbcd27 is described below

commit cbbcd27f5f78c0c70c78c7da7ba049cd950131cf
Author: Xiaoyao Qian 
AuthorDate: Wed Jul 3 19:32:25 2019 -0700

Spout source extra links (#3306)

* tracker changes

* UI change

* more condition check

* fix style
---
 .../config/src/yaml/tracker/heron_tracker.yaml | 14 
 heron/tools/tracker/src/python/config.py   | 34 ++
 .../src/python/handlers/logicalplanhandler.py  |  1 +
 heron/tools/tracker/src/python/tracker.py  | 40 ++
 heron/tools/ui/resources/static/js/topologies.js   | 32 ++---
 5 files changed, 103 insertions(+), 18 deletions(-)

diff --git a/heron/tools/config/src/yaml/tracker/heron_tracker.yaml 
b/heron/tools/config/src/yaml/tracker/heron_tracker.yaml
index 1d8cf5d..15f87c8 100644
--- a/heron/tools/config/src/yaml/tracker/heron_tracker.yaml
+++ b/heron/tools/config/src/yaml/tracker/heron_tracker.yaml
@@ -69,3 +69,17 @@ statemgrs:
 #   formatter: "http://127.0.0.1/viz/${ENVIRON}-${CLUSTER}-${TOPOLOGY};
 # - name: "Alerts"
 #   formatter: "http://127.0.0.1/alerts/${ENVIRON}-${CLUSTER}-${TOPOLOGY};
+#
+# spout.extra.links:
+# - spout.type: "kafka"
+#   extra.links:
+#   - name: "Viz"
+# formatter: 
"http://127.0.0.1/kafka/viz/${ENVIRON}-${CLUSTER}-${TOPOLOGY}-${SPOUT_NAME}-${SPOUT_SOURCE};
+#   - name: "Alerts"
+# formatter: 
"http://127.0.0.1/kafka/alerts/${ENVIRON}-${CLUSTER}-${TOPOLOGY}-${SPOUT_NAME}-${SPOUT_SOURCE};
+# - spout.type: "default"
+#   extra.links:
+#   - name: "Viz"
+# formatter: 
"http://127.0.0.1/default/viz/${ENVIRON}-${CLUSTER}-${TOPOLOGY}-${SPOUT_NAME}-${SPOUT_SOURCE};
+#   - name: "Alerts"
+# formatter: 
"http://127.0.0.1/default/alerts/${ENVIRON}-${CLUSTER}-${TOPOLOGY}-${SPOUT_NAME}-${SPOUT_SOURCE};
diff --git a/heron/tools/tracker/src/python/config.py 
b/heron/tools/tracker/src/python/config.py
index 8da884f..6dbfc3d 100644
--- a/heron/tools/tracker/src/python/config.py
+++ b/heron/tools/tracker/src/python/config.py
@@ -26,7 +26,9 @@ STATEMGRS_KEY = "statemgrs"
 EXTRA_LINKS_KEY = "extra.links"
 EXTRA_LINK_NAME_KEY = "name"
 EXTRA_LINK_FORMATTER_KEY = "formatter"
-
+EXTRA_LINK_URL_KEY = "url"
+SPOUT_EXTRA_LINKS_KEY = "spout.extra.links"
+SPOUT_TYPE_KEY = "spout.type"
 
 class Config(object):
   """
@@ -38,9 +40,11 @@ class Config(object):
 self.configs = configs
 self.statemgr_config = StateMgrConfig()
 self.extra_links = []
+self.spout_extra_links = {}
 
 self.load_configs()
 
+  # pylint: disable=line-too-long
   def load_configs(self):
 """load config files"""
 self.statemgr_config.set_state_locations(self.configs[STATEMGRS_KEY])
@@ -48,6 +52,10 @@ class Config(object):
   for extra_link in self.configs[EXTRA_LINKS_KEY]:
 self.extra_links.append(self.validate_extra_link(extra_link))
 
+if SPOUT_EXTRA_LINKS_KEY in self.configs:
+  for extra_link in self.configs[SPOUT_EXTRA_LINKS_KEY]:
+self.spout_extra_links[extra_link[SPOUT_TYPE_KEY]] = 
[self.validate_extra_link(link) for link in extra_link[EXTRA_LINKS_KEY]]
+
   def validate_extra_link(self, extra_link):
 """validate extra link"""
 if EXTRA_LINK_NAME_KEY not in extra_link or EXTRA_LINK_FORMATTER_KEY not 
in extra_link:
@@ -69,6 +77,8 @@ class Config(object):
 "${TOPOLOGY}": "topology",
 "${ROLE}": "role",
 "${USER}": "user",
+"${SPOUT_NAME}": "spout_name",
+"${SPOUT_SOURCE}": "spout_source",
 }
 dummy_formatted_url = url_format
 for key, value in valid_parameters.items():
@@ -81,19 +91,29 @@ class Config(object):
 # No error is thrown, so the format is valid.
 return url_format
 
-  def get_formatted_url(self, execution_state, formatter):
+  def get_formatted_url(self, formatter, execution_state, **additional):
 """
 @param execution_state: The python dict representing JSON execution_state
+@param additional: additional kwargs to interpolate
 @return Formatted viz url
 """
 
 # Create the parameters based on execution state
 valid_parameters = {
-"${CLUSTER}": execution_state["cluster"],
-"${ENVIRON}": execution_state["environ"],
-"${TOPOLOGY}": execution_state["jobna

[incubator-heron] branch master updated: Joshfischer/javadocs (#3302)

2019-07-01 Thread nwang
This is an automated email from the ASF dual-hosted git repository.

nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
 new 20f438d  Joshfischer/javadocs (#3302)
20f438d is described below

commit 20f438d597179db4d030ee791abd92c2cce44fa3
Author: Josh Fischer 
AuthorDate: Mon Jul 1 11:24:00 2019 -0500

Joshfischer/javadocs (#3302)

* adding start to make file and javadoc script

* updating javadoc overview
---
 .gitignore  |  2 +
 website2/website/Makefile   |  5 ++
 website2/website/scripts/javadocs-overview.html | 22 +++
 website2/website/scripts/javadocs.sh| 78 +
 4 files changed, 107 insertions(+)

diff --git a/.gitignore b/.gitignore
index 635f236..3b81340 100644
--- a/.gitignore
+++ b/.gitignore
@@ -129,6 +129,8 @@ com_crashlytics_export_strings.xml
 website/node_modules/
 website/public/
 /bin/
+website2/website/public
+website2/website/static/api
 
 # Visual Studio Code
 .vscode
diff --git a/website2/website/Makefile b/website2/website/Makefile
new file mode 100644
index 000..3e82ae8
--- /dev/null
+++ b/website2/website/Makefile
@@ -0,0 +1,5 @@
+start:
+   yarn start
+
+javadocs:
+   @scripts/javadocs.sh
diff --git a/website2/website/scripts/javadocs-overview.html 
b/website2/website/scripts/javadocs-overview.html
new file mode 100644
index 000..4d0a711
--- /dev/null
+++ b/website2/website/scripts/javadocs-overview.html
@@ -0,0 +1,22 @@
+
+
+
+Heron is a realtime, distributed, fault-tolerant stream processing 
engine.
+  
\ No newline at end of file
diff --git a/website2/website/scripts/javadocs.sh 
b/website2/website/scripts/javadocs.sh
new file mode 100755
index 000..5232bbc
--- /dev/null
+++ b/website2/website/scripts/javadocs.sh
@@ -0,0 +1,78 @@
+#!/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.
+set -e
+
+JAVADOC=javadoc
+FLAGS="-quiet -Xdoclint:none"
+
+HERON_ROOT_DIR=$(git rev-parse --show-toplevel)
+# for display on GitHub website
+JAVADOC_OUTPUT_DIR=$HERON_ROOT_DIR/website2/website/public/api/java
+# for display on local Hugo server
+JAVADOC_OUTPUT_LOCAL_DIR=$HERON_ROOT_DIR/website2/website/static/api
+GEN_PROTO_DIR=$HERON_ROOT_DIR/bazel-bin/heron/proto/_javac
+
+# The path of the customized landing page for the Javadocs
+OVERVIEW_HTML_FILE=$HERON_ROOT_DIR/website2/website/scripts/javadocs-overview.html
+
+# Check if this script is run with Travis flag
+if [ $# -eq 1 ] && [ $1 == "--travis" ]; then
+BAZEL_CMD="bazel --bazelrc=$HERON_ROOT_DIR/tools/travis/bazel.rc build"
+else
+BAZEL_CMD="bazel build"
+fi
+
+(cd $HERON_ROOT_DIR && $BAZEL_CMD \
+  `bazel query 'kind("java_library", "heron/...")'`\
+  `bazel query 'kind("java_test", "heron/...")'` \
+  `bazel query 'kind("java_library", "integration_test/...")'`)
+
+HERON_SRC_FILES=`find $HERON_ROOT_DIR -path "*/org/apache/*" -name "*.java"`
+BACKTYPE_SRC_FILES=`find $HERON_ROOT_DIR -path "*/backtype/storm/*" -name 
"*.java"`
+APACHE_SRC_FILES=`find $HERON_ROOT_DIR -path "*/org/apache/storm/*" -name 
"*.java"`
+GEN_FILES=`find $GEN_PROTO_DIR -name "*.java"`
+
+rm -rf $JAVADOC_OUTPUT_DIR
+mkdir -p $JAVADOC_OUTPUT_DIR
+
+BIN_JARS=`find $HERON_ROOT_DIR/bazel-incubator-heron/_bin/. -name "*\.jar" | 
tr '\n' ':'`
+GEN_JARS=`find $HERON_ROOT_DIR/bazel-genfiles/external/. -name "*\.jar" | tr 
'\n' ':'`
+SCRIBE_JARS=`find $HERON_ROOT_DIR/bazel-bin/. -name 
"libthrift_scribe_java.jar" | tr '\n' ':'`
+PROTO_JARS=`find $HERON_ROOT_DIR/bazel-bin/heron/proto/. -name "*\.jar" | tr 
'\n' ':'`
+CLOSURE_CLASSES="$HERON_ROOT_DIR/bazel-bin/storm-compatibility/src/java/_javac/storm-compatibility-java/libstorm-compatibility-java_classes/."
+
+export CLASSPATH=$BIN_JARS:$GEN_JARS:$SCRIBE_JARS:$PROTO_JARS:$CLOSURE_CLASSES
+
+$JAVADOC $FLAGS \
+  -windowtitle "Hero

  1   2   3   >