From ecadc5930d5d25c234fa5b8b99b2c12fe3e2dcf4 Mon Sep 17 00:00:00 2001
From: Dan Prince <dprince@redhat.com>
Date: Thu, 11 Feb 2016 19:54:57 -0500
Subject: [PATCH] Add zaqar::server class

This class manages the primary zaqar-server process.

Change-Id: Ie062d1ff4dd2a3adef5bcc9d36eca2f67a39048c
---
 manifests/server.pp               | 37 +++++++++++++++++++++++++++++++
 spec/classes/zaqar_server_spec.rb | 20 +++++++++++++++++
 2 files changed, 57 insertions(+)
 create mode 100644 manifests/server.pp
 create mode 100644 spec/classes/zaqar_server_spec.rb

diff --git a/manifests/server.pp b/manifests/server.pp
new file mode 100644
index 0000000..a9b2963
--- /dev/null
+++ b/manifests/server.pp
@@ -0,0 +1,37 @@
+# = Class: zaqar::server
+#
+# This class manages the Zaqar server.
+#
+# [*enabled*]
+#   (Optional) Service enable state for zaqar-server.
+#   Defaults to true.
+#
+# [*manage_service*]
+#   (Optional) Whether the service is managed by this puppet class.
+#   Defaults to true.
+#
+class zaqar::server(
+  $manage_service = true,
+  $enabled        = true,
+) {
+
+  include ::zaqar
+  include ::zaqar::params
+
+  if $manage_service {
+    if $enabled {
+      $service_ensure = 'running'
+    } else {
+      $service_ensure = 'stopped'
+    }
+  }
+
+  if $manage_service {
+    service { $::zaqar::params::service_name:
+      ensure => $service_ensure,
+      enable => $enabled,
+    }
+    Zaqar_config<||> ~> Service[$::zaqar::params::service_name]
+  }
+
+}
diff --git a/spec/classes/zaqar_server_spec.rb b/spec/classes/zaqar_server_spec.rb
new file mode 100644
index 0000000..e2d0623
--- /dev/null
+++ b/spec/classes/zaqar_server_spec.rb
@@ -0,0 +1,20 @@
+require 'spec_helper'
+describe 'zaqar::server' do
+
+  let :facts do
+    { :osfamily => 'RedHat' }
+  end
+
+  describe 'with a zaqar server enabled' do
+    let :pre_condition do
+      "class {'::zaqar': admin_password => 'foo'}"
+    end
+
+    it { is_expected.to contain_service('openstack-zaqar').with(
+        :ensure => 'running',
+        :enable => true
+    )}
+
+  end
+
+end