diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0bd149f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+./tests/build
\ No newline at end of file
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
new file mode 100644
index 0000000..f9280db
--- /dev/null
+++ b/CHANGELOG.rst
@@ -0,0 +1,6 @@
+avinetworks-formula
+===================
+
+2017.2 (2017-02-16)
+
+- Initial formula setup
diff --git a/FORMULA b/FORMULA
new file mode 100644
index 0000000..ae97a05
--- /dev/null
+++ b/FORMULA
@@ -0,0 +1,8 @@
+name: avinetworks
+os: Debian, RedHat
+os_family: Debian, RedHat
+version: 2017216
+release: 1
+summary: Formula for installing and configuring Avinetworks Avivantage
+description: Formula for installing and configuring Avinetworks Avivantage
+top_level_dir: avinetworks
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..1043fbe
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,118 @@
+DESTDIR=/
+SALTENVDIR=/usr/share/salt-formulas/env
+RECLASSDIR=/usr/share/salt-formulas/reclass
+FORMULANAME=$(shell grep name: metadata.yml|head -1|cut -d : -f 2|grep -Eo '[a-z0-9\-\_]*')
+VERSION=$(shell grep version: metadata.yml|head -1|cut -d : -f 2|grep -Eo '[a-z0-9\.\-\_]*')
+VERSION_MAJOR := $(shell echo $(VERSION)|cut -d . -f 1-2)
+VERSION_MINOR := $(shell echo $(VERSION)|cut -d . -f 3)
+
+NEW_MAJOR_VERSION ?= $(shell date +%Y.%m|sed 's,\.0,\.,g')
+NEW_MINOR_VERSION ?= $(shell /bin/bash -c 'echo $$[ $(VERSION_MINOR) + 1 ]')
+
+MAKE_PID := $(shell echo $$PPID)
+JOB_FLAG := $(filter -j%, $(subst -j ,-j,$(shell ps T | grep "^\s*$(MAKE_PID).*$(MAKE)")))
+
+ifneq ($(subst -j,,$(JOB_FLAG)),)
+JOBS := $(subst -j,,$(JOB_FLAG))
+else
+JOBS := 1
+endif
+
+KITCHEN_LOCAL_YAML?=.kitchen.yml
+KITCHEN_OPTS?="--concurrency=$(JOBS)"
+KITCHEN_OPTS_CREATE?=""
+KITCHEN_OPTS_CONVERGE?=""
+KITCHEN_OPTS_VERIFY?=""
+KITCHEN_OPTS_TEST?=""
+
+all:
+	@echo "make install - Install into DESTDIR"
+	@echo "make test    - Run tests"
+	@echo "make kitchen - Run Kitchen CI tests (create, converge, verify)"
+	@echo "make clean   - Cleanup after tests run"
+	@echo "make release-major  - Generate new major release"
+	@echo "make release-minor  - Generate new minor release"
+	@echo "make changelog      - Show changes since last release"
+
+install:
+	# Formula
+	[ -d $(DESTDIR)/$(SALTENVDIR) ] || mkdir -p $(DESTDIR)/$(SALTENVDIR)
+	cp -a $(FORMULANAME) $(DESTDIR)/$(SALTENVDIR)/
+	[ ! -d _modules ] || cp -a _modules $(DESTDIR)/$(SALTENVDIR)/
+	[ ! -d _states ] || cp -a _states $(DESTDIR)/$(SALTENVDIR)/ || true
+	[ ! -d _grains ] || cp -a _grains $(DESTDIR)/$(SALTENVDIR)/ || true
+	# Metadata
+	[ -d $(DESTDIR)/$(RECLASSDIR)/service/$(FORMULANAME) ] || mkdir -p $(DESTDIR)/$(RECLASSDIR)/service/$(FORMULANAME)
+	cp -a metadata/service/* $(DESTDIR)/$(RECLASSDIR)/service/$(FORMULANAME)
+
+test:
+	[ ! -d tests ] || (cd tests; ./run_tests.sh)
+
+release-major: check-changes
+	@echo "Current version is $(VERSION), new version is $(NEW_MAJOR_VERSION)"
+	@[ $(VERSION_MAJOR) != $(NEW_MAJOR_VERSION) ] || (echo "Major version $(NEW_MAJOR_VERSION) already released, nothing to do. Do you want release-minor?" && exit 1)
+	echo "$(NEW_MAJOR_VERSION)" > VERSION
+	sed -i 's,version: .*,version: "$(NEW_MAJOR_VERSION)",g' metadata.yml
+	[ ! -f debian/changelog ] || dch -v $(NEW_MAJOR_VERSION) -m --force-distribution -D `dpkg-parsechangelog -S Distribution` "New version"
+	make genchangelog-$(NEW_MAJOR_VERSION)
+	(git add -u; git commit -m "Version $(NEW_MAJOR_VERSION)")
+	git tag -s -m $(NEW_MAJOR_VERSION) $(NEW_MAJOR_VERSION)
+
+release-minor: check-changes
+	@echo "Current version is $(VERSION), new version is $(VERSION_MAJOR).$(NEW_MINOR_VERSION)"
+	echo "$(VERSION_MAJOR).$(NEW_MINOR_VERSION)" > VERSION
+	sed -i 's,version: .*,version: "$(VERSION_MAJOR).$(NEW_MINOR_VERSION)",g' metadata.yml
+	[ ! -f debian/changelog ] || dch -v $(VERSION_MAJOR).$(NEW_MINOR_VERSION) -m --force-distribution -D `dpkg-parsechangelog -S Distribution` "New version"
+	make genchangelog-$(VERSION_MAJOR).$(NEW_MINOR_VERSION)
+	(git add -u; git commit -m "Version $(VERSION_MAJOR).$(NEW_MINOR_VERSION)")
+	git tag -s -m $(NEW_MAJOR_VERSION) $(VERSION_MAJOR).$(NEW_MINOR_VERSION)
+
+check-changes:
+	@git log --pretty=oneline --decorate $(VERSION)..HEAD | grep -Eqc '.*' || (echo "No new changes since version $(VERSION)"; exit 1)
+
+changelog:
+	git log --pretty=short --invert-grep --grep="Merge pull request" --decorate $(VERSION)..HEAD
+
+genchangelog: genchangelog-$(VERSION_MAJOR).$(NEW_MINOR_VERSION)
+
+genchangelog-%:
+	$(eval NEW_VERSION := $(patsubst genchangelog-%,%,$@))
+	(echo "=========\nChangelog\n=========\n"; \
+	(echo $(NEW_VERSION);git tag) | sort -r | grep -E '^[0-9\.]+' | while read i; do \
+	    cur=$$i; \
+	    test $$i = $(NEW_VERSION) && i=HEAD; \
+	    prev=`(echo $(NEW_VERSION);git tag)|sort|grep -E '^[0-9\.]+'|grep -B1 "$$cur\$$"|head -1`; \
+	    echo "Version $$cur\n=============================\n"; \
+	    git log --pretty=short --invert-grep --grep="Merge pull request" --decorate $$prev..$$i; \
+	    echo; \
+	done) > CHANGELOG.rst
+
+kitchen-check:
+	@[ -e $(KITCHEN_LOCAL_YAML) ] || (echo "Kitchen tests not available, there's no $(KITCHEN_LOCAL_YAML)." && exit 1)
+
+kitchen: kitchen-check kitchen-create kitchen-converge kitchen-verify kitchen-list
+
+kitchen-create: kitchen-check
+	kitchen create ${KITCHEN_OPTS} ${KITCHEN_OPTS_CREATE}
+	[ "$(shell echo $(KITCHEN_LOCAL_YAML)|grep -Eo docker)" = "docker" ] || sleep 120
+
+kitchen-converge: kitchen-check
+	kitchen converge ${KITCHEN_OPTS} ${KITCHEN_OPTS_CONVERGE} &&\
+	kitchen converge ${KITCHEN_OPTS} ${KITCHEN_OPTS_CONVERGE}
+
+kitchen-verify: kitchen-check
+	[ ! -d tests/integration ] || kitchen verify -t tests/integration ${KITCHEN_OPTS} ${KITCHEN_OPTS_VERIFY}
+	[ -d tests/integration ]   || kitchen verify ${KITCHEN_OPTS} ${KITCHEN_OPTS_VERIFY}
+
+kitchen-test: kitchen-check
+	[ ! -d tests/integration ] || kitchen test -t tests/integration ${KITCHEN_OPTS} ${KITCHEN_OPTS_TEST}
+	[ -d tests/integration ]   || kitchen test ${KITCHEN_OPTS} ${KITCHEN_OPTS_TEST}
+
+kitchen-list: kitchen-check
+	kitchen list
+
+clean:
+	[ ! -x "$(shell which kitchen)" ] || kitchen destroy
+	[ ! -d .kitchen ] || rm -rf .kitchen
+	[ ! -d tests/build ] || rm -rf tests/build
+	[ ! -d build ] || rm -rf build
diff --git a/README.md b/README.md
deleted file mode 100644
index ee1104f..0000000
--- a/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# salt-formula-avinetworks
-Salt formula to setup Avi Networks LBaaS
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..405e43f
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,60 @@
+
+===================
+Avinetworks formula
+===================
+
+Sample pillars
+==============
+
+Salt formula to setup Avi Networks LBaaS
+
+.. code-block:: yaml
+
+    avinetworks:
+      server:
+        enabled: true
+        identity: cloud1
+        image_location: http://...
+        public_network: INET1
+
+    avinetworks:
+      client:
+        enabled: true
+
+External links
+==============
+
+- https://kb.avinetworks.com/installing-avi-vantage-for-openstack-2/
+
+Documentation and Bugs
+======================
+
+To learn how to install and update salt-formulas, consult the documentation
+available online at:
+
+    http://salt-formulas.readthedocs.io/
+
+In the unfortunate event that bugs are discovered, they should be reported to
+the appropriate issue tracker. Use Github issue tracker for specific salt
+formula:
+
+    https://github.com/salt-formulas/salt-formula-avinetworks/issues
+
+For feature requests, bug reports or blueprints affecting entire ecosystem,
+use Launchpad salt-formulas project:
+
+    https://launchpad.net/salt-formulas
+
+You can also join salt-formulas-users team and subscribe to mailing list:
+
+    https://launchpad.net/~salt-formulas-users
+
+Developers wishing to work on the salt-formulas projects should always base
+their work on master branch and submit pull request against specific formula.
+
+    https://github.com/salt-formulas/salt-formula-avinetworks
+
+Any questions or feedback is always welcome so feel free to join our IRC
+channel:
+
+    #salt-formulas @ irc.freenode.net
diff --git a/VERSION b/VERSION
new file mode 100644
index 0000000..67a0ce1
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+2017.2
\ No newline at end of file
diff --git a/avinetworks/client.sls b/avinetworks/client.sls
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/avinetworks/client.sls
diff --git a/avinetworks/init.sls b/avinetworks/init.sls
new file mode 100644
index 0000000..4acabb4
--- /dev/null
+++ b/avinetworks/init.sls
@@ -0,0 +1,4 @@
+include:
+{%- if pillar.avinetworks.server.enabled %}
+- avinetworks.server
+{%- endif %}
\ No newline at end of file
diff --git a/avinetworks/map.jinja b/avinetworks/map.jinja
new file mode 100644
index 0000000..092e6d2
--- /dev/null
+++ b/avinetworks/map.jinja
@@ -0,0 +1,8 @@
+{% set server = salt['grains.filter_by']({
+    'Debian': {
+
+    },
+    'RedHat': {
+
+    },
+}, merge=pillar.avinetworks.get('server', {})) %}
\ No newline at end of file
diff --git a/avinetworks/server.sls b/avinetworks/server.sls
new file mode 100644
index 0000000..ede0da6
--- /dev/null
+++ b/avinetworks/server.sls
@@ -0,0 +1,144 @@
+{%- from "avinetworks/map.jinja" import server with context %}
+{%- if server.enabled %}
+
+avinetworks_tenant:
+  keystone.tenant_present:
+    - profile: {{ server.identity }}
+    - name: avinetworks
+    - description: Avi Networks Vantage service project
+
+avinetworks_flavor:
+  novang.flavor_present:
+  - name: avinetworks
+  - profile: {{ server.identity }}
+  - flavor_id: avinetworks
+  - ram: 8
+  - disk: 160
+  - vcpus: 4
+  - require:
+    - keystone: avinetworks_tenant
+
+avinetworks_image:
+  glanceng.image_present:
+  - name: avinetworks
+  - profile: {{ server.identity }}
+  - visibility: public
+  - protected: False
+  - location: {{ server.image_location }}
+  - require:
+    - keystone: avinetworks_tenant
+
+avinetworks_network:
+  neutronng.network_present:
+  - profile: {{ server.identity }}
+  - name: avinetworks
+  - tenant: avinetworks
+  - require:
+    - keystone: avinetworks_tenant
+
+avinetworks_subnet:
+  neutronng.subnet_present:
+  - profile: {{ server.identity }}
+  - name: avinetworks
+  - tenant: avinetworks
+  - network: avinetworks
+  - cidr: 10.1.0.0/24
+  - require:
+    - keystone: avinetworks_tenant
+    - neutronng: avinetworks_network
+
+avinetworks_router:
+  neutronng.router_present:
+  - profile: {{ server.identity }}
+  - name: avinetworks
+  - tenant: avinetworks
+  - interfaces:
+    - avinetworks
+  - gateway_network: {{ server.public_network }}
+  - require:
+    - keystone: avinetworks_tenant
+    - neutronng: avinetworks_network
+    - neutronng: avinetworks_subnet
+
+avinetworks_secgroup:
+  neutronng.security_group_present:
+  - profile: {{ server.identity }}
+  - name: avinetworks
+  - tenant: avinetworks
+  - rules:
+    - direction: egress
+      ethertype: IPv6
+      protocol: tcp
+      remote_ip_prefix: ::/0
+      port_range_min: 0
+      port_range_max: 65535
+    - direction: egress
+      ethertype: IPv4
+      remote_ip_prefix: 0.0.0.0/0
+      port_range_min: 0
+      port_range_max: 65535
+    - direction: ingress
+      ethertype: IPv4
+      protocol: icmp
+      remote_ip_prefix: 0.0.0.0/0
+    - direction: ingress
+      ethertype: IPv4
+      protocol: tcp
+      port_range_min: 22
+      port_range_max: 22
+      remote_ip_prefix: 0.0.0.0/0
+    - direction: ingress
+      ethertype: IPv4
+      protocol: tcp
+      port_range_min: 80
+      port_range_max: 80
+      remote_ip_prefix: 0.0.0.0/0
+    - direction: ingress
+      ethertype: IPv4
+      protocol: tcp
+      port_range_min: 123
+      port_range_max: 123
+      remote_ip_prefix: 10.1.0.0/24
+    - direction: ingress
+      ethertype: IPv4
+      protocol: tcp
+      port_range_min: 443
+      port_range_max: 443
+      remote_ip_prefix: 0.0.0.0/0
+  - require:
+    - keystone: avinetworks_tenant
+
+avinetworks_instance:
+  novang.instance_present:
+  - profile: {{ server.identity }}
+  - tenant_name: avinetworks
+  - name: avinetworks
+  - flavor: avinetworks
+  - image: avinetworks
+  - security_groups:
+    - avinetworks
+  - networks:
+    - name: avinetworks
+      v4_fixed_ip: 10.1.0.10
+  - require:
+    - keystone: avinetworks_tenant
+    - novang: avinetworks_flavor
+    - glanceng: avinetworks_image
+    - neutronng: avinetworks_network
+    - neutronng: avinetworks_subnet
+    - neutronng: avinetworks_secgroup
+
+avinetworks_floating_ip:
+  neutronng.floatingip_present:
+  - profile: {{ server.identity }}
+  - subnet: avinetworks
+  - tenant_name: avinetworks
+  - name: avinetworks
+  - network: avinetworks
+  - require:
+    - keystone: avinetworks_tenant
+    - neutronng: avinetworks_network
+    - neutronng: avinetworks_subnet
+    - novang: avinetworks_instance
+
+{%- endif %}
\ No newline at end of file
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..de44c23
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,5 @@
+salt-formula-avinetworks (2017.2) xenial; urgency=medium
+
+  * Initial release
+
+ -- Richard Felkl <rfelkl@mirantis.com>  Thu, 16 Feb 2017 16:50:41 +0200
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..0f5628e
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,15 @@
+Source: salt-formula-avinetworks
+Maintainer: Salt Formulas Community <salt-formulas@freelists.org>
+Section: admin
+Priority: optional
+Build-Depends: salt-master, python, python-yaml, debhelper (>= 9), salt-master, python, python-yaml
+Standards-Version: 3.9.6
+Homepage: https://github.com/salt-formulas/salt-formulas
+Vcs-Browser: https://github.com/salt-formulas/salt-formula-avinetworks
+Vcs-Git: https://github.com/salt-formulas/salt-formula-avinetworks.git
+
+Package: salt-formula-avinetworks
+Architecture: all
+Depends: ${misc:Depends}, salt-master, reclass
+Description: Avinetworks salt formula
+ Configure Linux operating system.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..28bc4ba
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,15 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: salt-formula-avinetworks
+Upstream-Contact: Salt Formulas Community <salt-formulas@freelists.org>
+Source: https://github.com/salt-formulas/salt-formula-avinetworks
+
+Files: *
+Copyright: 2017 Mirantis et al.
+License: Apache-2.0
+  Copyright: 2017 Mirantis et al.
+  .
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  .
+  On a Debian system you can find a copy of this license in
+  /usr/share/common-licenses/Apache-2.0.
diff --git a/debian/docs b/debian/docs
new file mode 100644
index 0000000..d585829
--- /dev/null
+++ b/debian/docs
@@ -0,0 +1,3 @@
+README.rst
+CHANGELOG.rst
+VERSION
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..abde6ef
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,5 @@
+#!/usr/bin/make -f
+
+%:
+	dh $@
+
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..89ae9db
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (native)
diff --git a/metadata.yml b/metadata.yml
new file mode 100644
index 0000000..c4d99e3
--- /dev/null
+++ b/metadata.yml
@@ -0,0 +1,3 @@
+name: "avinetworks"
+version: "2017.2"
+source: "https://github.com/salt-formulas/salt-formula-avinetworks"
\ No newline at end of file
diff --git a/tests/pillar/server.sls b/tests/pillar/server.sls
new file mode 100644
index 0000000..3e01819
--- /dev/null
+++ b/tests/pillar/server.sls
@@ -0,0 +1,6 @@
+avinetworks:
+  server:
+    enabled: true
+    identity: cloud1
+    image_location: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
+    public_network: INET1
\ No newline at end of file
diff --git a/tests/run_tests.sh b/tests/run_tests.sh
new file mode 100755
index 0000000..6710a50
--- /dev/null
+++ b/tests/run_tests.sh
@@ -0,0 +1,163 @@
+#!/usr/bin/env bash
+
+set -e
+[ -n "$DEBUG" ] && set -x
+
+CURDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+METADATA=${CURDIR}/../metadata.yml
+FORMULA_NAME=$(cat $METADATA | python -c "import sys,yaml; print yaml.load(sys.stdin)['name']")
+
+## Overrideable parameters
+PILLARDIR=${PILLARDIR:-${CURDIR}/pillar}
+BUILDDIR=${BUILDDIR:-${CURDIR}/build}
+VENV_DIR=${VENV_DIR:-${BUILDDIR}/virtualenv}
+DEPSDIR=${BUILDDIR}/deps
+
+SALT_FILE_DIR=${SALT_FILE_DIR:-${BUILDDIR}/file_root}
+SALT_PILLAR_DIR=${SALT_PILLAR_DIR:-${BUILDDIR}/pillar_root}
+SALT_CONFIG_DIR=${SALT_CONFIG_DIR:-${BUILDDIR}/salt}
+SALT_CACHE_DIR=${SALT_CACHE_DIR:-${SALT_CONFIG_DIR}/cache}
+
+SALT_OPTS="${SALT_OPTS} --retcode-passthrough --local -c ${SALT_CONFIG_DIR}"
+
+if [ "x${SALT_VERSION}" != "x" ]; then
+    PIP_SALT_VERSION="==${SALT_VERSION}"
+fi
+
+## Functions
+log_info() {
+    echo "[INFO] $*"
+}
+
+log_err() {
+    echo "[ERROR] $*" >&2
+}
+
+setup_virtualenv() {
+    log_info "Setting up Python virtualenv"
+    virtualenv $VENV_DIR
+    source ${VENV_DIR}/bin/activate
+    pip install salt${PIP_SALT_VERSION}
+}
+
+setup_pillar() {
+    [ ! -d ${SALT_PILLAR_DIR} ] && mkdir -p ${SALT_PILLAR_DIR}
+    echo "base:" > ${SALT_PILLAR_DIR}/top.sls
+    for pillar in ${PILLARDIR}/*; do
+        state_name=$(basename ${pillar%.sls})
+        echo -e "  ${state_name}:\n    - ${state_name}" >> ${SALT_PILLAR_DIR}/top.sls
+    done
+}
+
+setup_salt() {
+    [ ! -d ${SALT_FILE_DIR} ] && mkdir -p ${SALT_FILE_DIR}
+    [ ! -d ${SALT_CONFIG_DIR} ] && mkdir -p ${SALT_CONFIG_DIR}
+    [ ! -d ${SALT_CACHE_DIR} ] && mkdir -p ${SALT_CACHE_DIR}
+
+    echo "base:" > ${SALT_FILE_DIR}/top.sls
+    for pillar in ${PILLARDIR}/*.sls; do
+        state_name=$(basename ${pillar%.sls})
+        echo -e "  ${state_name}:\n    - ${FORMULA_NAME}" >> ${SALT_FILE_DIR}/top.sls
+    done
+
+    cat << EOF > ${SALT_CONFIG_DIR}/minion
+file_client: local
+cachedir: ${SALT_CACHE_DIR}
+verify_env: False
+minion_id_caching: False
+
+file_roots:
+  base:
+  - ${SALT_FILE_DIR}
+  - ${CURDIR}/..
+  - /usr/share/salt-formulas/env
+
+pillar_roots:
+  base:
+  - ${SALT_PILLAR_DIR}
+  - ${PILLARDIR}
+EOF
+}
+
+fetch_dependency() {
+    dep_name="$(echo $1|cut -d : -f 1)"
+    dep_source="$(echo $1|cut -d : -f 2-)"
+    dep_root="${DEPSDIR}/$(basename $dep_source .git)"
+    dep_metadata="${dep_root}/metadata.yml"
+
+    [ -d /usr/share/salt-formulas/env/${dep_name} ] && log_info "Dependency $dep_name already present in system-wide salt env" && return 0
+    [ -d $dep_root ] && log_info "Dependency $dep_name already fetched" && return 0
+
+    log_info "Fetching dependency $dep_name"
+    [ ! -d ${DEPSDIR} ] && mkdir -p ${DEPSDIR}
+    git clone $dep_source ${DEPSDIR}/$(basename $dep_source .git)
+    ln -s ${dep_root}/${dep_name} ${SALT_FILE_DIR}/${dep_name}
+
+    METADATA="${dep_metadata}" install_dependencies
+}
+
+install_dependencies() {
+    grep -E "^dependencies:" ${METADATA} >/dev/null || return 0
+    (python - | while read dep; do fetch_dependency "$dep"; done) << EOF
+import sys,yaml
+for dep in yaml.load(open('${METADATA}', 'ro'))['dependencies']:
+    print '%s:%s' % (dep["name"], dep["source"])
+EOF
+}
+
+clean() {
+    log_info "Cleaning up ${BUILDDIR}"
+    [ -d ${BUILDDIR} ] && rm -rf ${BUILDDIR} || exit 0
+}
+
+salt_run() {
+    [ -e ${VEN_DIR}/bin/activate ] && source ${VENV_DIR}/bin/activate
+    salt-call ${SALT_OPTS} $*
+}
+
+prepare() {
+    [ -d ${BUILDDIR} ] && mkdir -p ${BUILDDIR}
+
+    which salt-call || setup_virtualenv
+    setup_pillar
+    setup_salt
+    install_dependencies
+}
+
+run() {
+    for pillar in ${PILLARDIR}/*.sls; do
+        state_name=$(basename ${pillar%.sls})
+        salt_run --id=${state_name} state.show_sls ${FORMULA_NAME} || (log_err "Execution of ${FORMULA_NAME}.${state_name} failed"; exit 1)
+    done
+}
+
+_atexit() {
+    RETVAL=$?
+    trap true INT TERM EXIT
+
+    if [ $RETVAL -ne 0 ]; then
+        log_err "Execution failed"
+    else
+        log_info "Execution successful"
+    fi
+    return $RETVAL
+}
+
+## Main
+trap _atexit INT TERM EXIT
+
+case $1 in
+    clean)
+        clean
+        ;;
+    prepare)
+        prepare
+        ;;
+    run)
+        run
+        ;;
+    *)
+        prepare
+        run
+        ;;
+esac
