docker support

Change-Id: I6f09b6d39010a7412cfd4997e82549b6a5d7501c
diff --git a/glance/files/entrypoint.sh b/glance/files/entrypoint.sh
new file mode 100644
index 0000000..b224264
--- /dev/null
+++ b/glance/files/entrypoint.sh
@@ -0,0 +1,25 @@
+{%- from "glance/map.jinja" import server with context -%}
+#!/bin/bash -e
+
+cat /srv/salt/pillar/glance-server.sls | envsubst > /tmp/glance-server.sls
+mv /tmp/glance-server.sls /srv/salt/pillar/glance-server.sls
+
+salt-call --local --retcode-passthrough state.highstate
+
+{% for service in server.services %}
+service {{ service }} stop || true
+{% endfor %}
+
+if [ "$1" == "api" ]; then
+    echo "starting glance-api"
+    su glance --shell=/bin/sh -c '/usr/bin/glance-api --config-file=/etc/glance/glance-api.conf'
+elif [ "$1" == "registry" ]; then
+    echo "starting glance-registry"
+    su glance --shell=/bin/sh -c '/usr/bin/glance-registry --config-file=/etc/glance/glance-registry.conf'
+else
+    echo "No parameter submitted, don't know what to start" 1>&2
+fi
+
+{#-
+vim: syntax=jinja
+-#}
diff --git a/glance/map.jinja b/glance/map.jinja
index 73a3799..7245343 100644
--- a/glance/map.jinja
+++ b/glance/map.jinja
@@ -1,7 +1,7 @@
 
 {% set server = salt['grains.filter_by']({
     'Debian': {
-        'pkgs': ['glance', 'glance-api', 'glance-registry', 'glance-common', 'python-glance', 'python-glance-store', 'python-glanceclient'],
+        'pkgs': ['glance', 'glance-api', 'glance-registry', 'glance-common', 'python-glance', 'python-glance-store', 'python-glanceclient', 'gettext-base'],
         'services': ['glance-api', 'glance-registry'],
         'notification': False,
     },
diff --git a/glance/server.sls b/glance/server.sls
index 72d92a0..bc02a54 100644
--- a/glance/server.sls
+++ b/glance/server.sls
@@ -61,8 +61,8 @@
   - template: jinja
   - require:
     - pkg: glance_packages
-  - watch_in:
-    - service: glance_services
+
+{%- if not grains.get('noservices', False) %}
 
 glance_services:
   service.running:
@@ -71,6 +71,7 @@
   - watch:
     - file: /etc/glance/glance-api.conf
     - file: /etc/glance/glance-registry.conf
+    - file: /etc/glance/glance-api-paste.ini
 
 glance_install_database:
   cmd.run:
@@ -78,6 +79,19 @@
   - require:
     - service: glance_services
 
+{%- endif %}
+
+{%- if grains.get('virtual_subtype', None) == "Docker" %}
+
+glance_entrypoint:
+  file.managed:
+  - name: /entrypoint.sh
+  - template: jinja
+  - source: salt://glance/files/entrypoint.sh
+  - mode: 755
+
+{%- endif %}
+
 /var/lib/glance/images:
   file.directory:
   - mode: 755