From ad081d901bce143023c7dee5af1979b1612c463d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Charlier?= <francois.charlier@enovance.com>
Date: Tue, 15 May 2012 18:13:03 +0200
Subject: [PATCH] Implement creation of user & endpoints for swift

---
 manifests/keystone/auth.pp | 44 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
 create mode 100644 manifests/keystone/auth.pp

diff --git a/manifests/keystone/auth.pp b/manifests/keystone/auth.pp
new file mode 100644
index 00000000..b05475c7
--- /dev/null
+++ b/manifests/keystone/auth.pp
@@ -0,0 +1,44 @@
+class swift::keystone::auth(
+  $auth_name = 'swift',
+  $password  = 'swift_password',
+  $address   = '127.0.0.1',
+  $port      = '8080'
+) {
+
+  keystone_user { $auth_name:
+    ensure   => present,
+    password => $password,
+  }
+  keystone_user_role { "${auth_name}@services":
+    ensure  => present,
+    roles   => 'admin',
+    require => Keystone_user[$auth_name]
+  }
+
+  keystone_service { $auth_name:
+    ensure      => present,
+    type        => 'object-store',
+    description => 'Openstack Object-Store Service',
+  }
+  keystone_endpoint { $auth_name:
+    ensure       => present,
+    region       => 'RegionOne',
+    public_url   => "http://${address}:${port}/v1/AUTH_%(tenant_id)s",
+    admin_url    => "http://${address}:${port}/",
+    internal_url => "http://${address}:${port}/v1/AUTH_%(tenant_id)s",
+  }
+
+  keystone_service { "${auth_name}_s3":
+    ensure      => present,
+    type        => 's3',
+    description => 'Openstack S3 Service',
+  }
+  keystone_endpoint { "${auth_name}_s3":
+    ensure       => present,
+    region       => 'RegionOne',
+    public_url   => "http://${address}:${port}",
+    admin_url    => "http://${address}:${port}",
+    internal_url => "http://${address}:${port}",
+  }
+
+}