docker support

Change-Id: Ib5727e6acd25c6a74d4ccad2ef03ae56936b657d
diff --git a/neutron/files/entrypoint.sh b/neutron/files/entrypoint.sh
new file mode 100644
index 0000000..c66da6d
--- /dev/null
+++ b/neutron/files/entrypoint.sh
@@ -0,0 +1,25 @@
+{%- from "neutron/map.jinja" import server with context -%}
+#!/bin/bash -e
+
+cat /srv/salt/pillar/neutron-server.sls | envsubst > /tmp/neutron-server.sls
+mv /tmp/neutron-server.sls /srv/salt/pillar/neutron-server.sls
+
+salt-call --local --retcode-passthrough state.highstate
+
+{% for service in server.services %}
+service {{ service }} stop || true
+{% endfor %}
+
+if [ "$1" == "server" ]; then
+    echo "starting neutron-server"
+    su neutron --shell=/bin/sh -c '/usr/bin/neutron-server --config-file=/etc/neutron/neutron.conf --config-file=/etc/neutron/plugins/opencontrail/ContrailPlugin.ini'
+elif [ "$1" == "lbaas-agent" ]; then
+    echo "starting neutron-lbaas-agent"
+    su neutron --shell=/bin/sh -c '/usr/bin/neutron-lbaas-agent --config-file=/etc/neutron/neutron.conf'
+else
+    echo "No parameter submitted, don't know what to start" 1>&2
+fi
+
+{#-
+vim: syntax=jinja
+-#}
\ No newline at end of file
diff --git a/neutron/map.jinja b/neutron/map.jinja
index 4c89807..23f6502 100644
--- a/neutron/map.jinja
+++ b/neutron/map.jinja
@@ -27,7 +27,7 @@
 
 {% set server = salt['grains.filter_by']({
     'Debian': {
-        'pkgs': ['neutron-server','neutron-lbaas-agent'],
+        'pkgs': ['neutron-server','neutron-lbaas-agent', 'gettext-base'],
         'pkgs_ml2': ['neutron-plugin-ml2'],
         'services': ['neutron-server'],
         'notification': False
diff --git a/neutron/server.sls b/neutron/server.sls
index 573440f..34c656e 100644
--- a/neutron/server.sls
+++ b/neutron/server.sls
@@ -49,13 +49,17 @@
   - template: jinja
   - require:
     - pkg: neutron_server_packages
+{%- if not grains.get('noservices', False) %}
   - watch_in:
     - service: neutron_server_services
-
 {%- endif %}
 
 {%- endif %}
 
+{%- endif %}
+
+{%- if not grains.get('noservices', False) %}
+
 neutron_server_services:
   service.running:
   - names: {{ server.services }}
@@ -64,3 +68,16 @@
     - file: /etc/neutron/neutron.conf
 
 {%- endif %}
+
+{%- if grains.get('virtual_subtype', None) == "Docker" %}
+
+neutron_entrypoint:
+  file.managed:
+  - name: /entrypoint.sh
+  - template: jinja
+  - source: salt://neutron/files/entrypoint.sh
+  - mode: 755
+
+{%- endif %}
+
+{%- endif %}