From 21931d36f895ef1879efbf8802c7fc731fb06270 Mon Sep 17 00:00:00 2001
From: Lars Kellogg-Stedman <lars@redhat.com>
Date: Thu, 18 Sep 2014 12:45:52 -0400
Subject: [PATCH] fixed to work with recently fixed mysql service discovery

---
 docker/keystone/keystone-service-35357.json | 10 +++++++++
 docker/keystone/keystone-service-5000.json  | 10 +++++++++
 docker/keystone/keystone.json               | 24 +++++++++++++++++++++
 docker/keystone/start                       | 23 ++++++++++++++------
 4 files changed, 60 insertions(+), 7 deletions(-)
 create mode 100644 docker/keystone/keystone-service-35357.json
 create mode 100644 docker/keystone/keystone-service-5000.json
 create mode 100644 docker/keystone/keystone.json

diff --git a/docker/keystone/keystone-service-35357.json b/docker/keystone/keystone-service-35357.json
new file mode 100644
index 0000000000..08315bfba0
--- /dev/null
+++ b/docker/keystone/keystone-service-35357.json
@@ -0,0 +1,10 @@
+{
+  "id": "keystonemaster",
+  "kind": "Service",
+  "apiVersion": "v1beta1",
+  "port": 35357,
+  "containerPort": 35357,
+  "selector": {
+    "name": "keystone-master"
+  }
+}
diff --git a/docker/keystone/keystone-service-5000.json b/docker/keystone/keystone-service-5000.json
new file mode 100644
index 0000000000..4a95033693
--- /dev/null
+++ b/docker/keystone/keystone-service-5000.json
@@ -0,0 +1,10 @@
+{
+  "id": "keystonemaster",
+  "kind": "Service",
+  "apiVersion": "v1beta1",
+  "port": 5000,
+  "containerPort": 5000,
+  "selector": {
+    "name": "keystone-master"
+  }
+}
diff --git a/docker/keystone/keystone.json b/docker/keystone/keystone.json
new file mode 100644
index 0000000000..1eda27ca75
--- /dev/null
+++ b/docker/keystone/keystone.json
@@ -0,0 +1,24 @@
+{
+  "id": "keystone",
+  "desiredState": {
+    "manifest": {
+      "version": "v1beta1",
+      "id": "keystone-1",
+      "containers": [{
+        "name": "keystone",
+        "image": "docker.usersys.redhat.com/jlabocki/keystone",
+        "ports": [
+		{"containerPort": 5000},
+		{"containerPort": 35357},
+        ],
+        "env": [{
+	  'name': 'DB_ROOT_PASSWORD',
+	  'value': 'password'
+	}]
+      }]
+    }
+  },
+  "labels": {
+    "name": "keystone-master"
+  }
+}
diff --git a/docker/keystone/start b/docker/keystone/start
index 5b46dfedd9..2fcb91317b 100755
--- a/docker/keystone/start
+++ b/docker/keystone/start
@@ -1,14 +1,23 @@
 #!/bin/bash -e
 
-env > /root/ENV
+: ${KEYSTONE_DB_PASSWORD:=keystone}
+: ${KEYSTONE_ADMIN_PASSWORD:=redhat}
 
-socat UNIX-LISTEN:/var/lib/mysql/mysql.sock,fork,reuseaddr,unlink-early,user=mysql,group=mysql,mode=777 TCP:${SERVICE_HOST}:${MARIADBMASTER_SERVICE_PORT} &
+if ! [ "$KEYSTONE_ADMIN_TOKEN" ]; then
+	KEYSTONE_ADMIN_TOKEN=$(openssl -hex 15)
+fi
 
-/usr/bin/openstack-db --service keystone --init --yes --rootpw ${DB_ROOT_PASSWORD} --password redhat
+/usr/bin/openstack-db --service keystone --init --yes --rootpw ${DB_ROOT_PASSWORD} --password ${KEYSTONE_DB_PASSWORD}
 
+crudini --set /etc/keystone/keystone.conf \
+	database \
+	connection \
+	"mysql://keystone:${KEYSTONE_DB_PASSWORD}@${MARIADBMASTER_PORT_3306_TCP_ADDR}:MARIADBMASTER_PORT_3306_TCP_PORT/keystone"
 
-sed -ri 's/#driver=keystone.identity.backends.sql.Identity/driver=keystone.identity.backends.sql.Identity/' /etc/keystone/keystone.conf
-sed -ri 's/#idle_timeout=3600/idle_timeout=200/' /etc/keystone/keystone.conf
+crudini --set /etc/keystone/keystone.conf \
+	DEFAULT \
+	admin_token \
+	"${KEYSTONE_ADMIN_TOKEN}"
 
 /usr/bin/keystone-manage db_sync
 
@@ -17,10 +26,10 @@ PID=$!
 
 /bin/sleep 5
 
-export SERVICE_TOKEN=`cat /root/ks_admin_token`
+export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
 export SERVICE_ENDPOINT="http://127.0.0.1:35357/v2.0"
 
-/bin/keystone user-create --name admin --pass redhat
+/bin/keystone user-create --name admin --pass ${KEYSTONE_ADMIN_PASSWORD}
 /bin/keystone role-create --name admin
 /bin/keystone tenant-create --name admin
 /bin/keystone user-role-add --user admin --role admin --tenant admin