Implement workflow essence extractor
- Extract useful information from airflow workflow code
- Produce "essence" as a json output
- Output will be passed to workflow controller for workflow management

No source code change.

Change-Id: I01de9939fdf699522e81c369676c33c73a38b4bc
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..5e0520b
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,58 @@
+# Copyright 2019-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# set default shell
+SHELL = bash -e -o pipefail
+
+# Variables
+VERSION                  ?= $(shell cat ./VERSION)
+
+## Testing related
+CORDWORKFLOWAIRFLOW_LIBRARIES            := $(wildcard lib/*)
+
+# Targets
+all: test
+
+# Create a virtualenv and install all the libraries
+venv-workflowengine:
+	virtualenv $@;\
+    source ./$@/bin/activate ; set -u ;\
+    pip install -r requirements.txt nose2 ;\
+    pip install -e lib/cord-workflow-essence-extractor
+
+# tests
+test: lib-test unit-test
+
+lib-test:
+	for lib in $(CORDWORKFLOWAIRFLOW_LIBRARIES); do pushd $$lib; tox; popd; done
+
+unit-test:
+	tox
+
+clean:
+	find . -name '*.pyc' | xargs rm -f
+	find . -name '__pycache__' | xargs rm -rf
+	rm -rf \
+    .coverage \
+    coverage.xml \
+    nose2-results.xml \
+    venv-workflowengine \
+    lib/*/.tox \
+    lib/*/build \
+    lib/*/dist \
+    lib/*/*.egg-info \
+    lib/*/.coverage \
+    lib/*/coverage.xml \
+    lib/*/*results.xml \
+    lib/*/*/VERSION