add :start / :stop actions to primitive LWRP

This commit is contained in:
Adam Spiers
2014-01-16 18:47:04 +00:00
parent e8f4a19d36
commit 434332c1dd
3 changed files with 26 additions and 1 deletions

View File

@@ -1,3 +1,5 @@
include Chef::Mixin::ShellOut
def resource_exists?(name) def resource_exists?(name)
cmd = Mixlib::ShellOut.new("crm configure show | grep #{name}") cmd = Mixlib::ShellOut.new("crm configure show | grep #{name}")
cmd.environment['HOME'] = ENV.fetch('HOME', '/root') cmd.environment['HOME'] = ENV.fetch('HOME', '/root')
@@ -9,3 +11,10 @@ def resource_exists?(name)
false false
end end
end end
def resource_running?(name)
cmd = shell_out! "crm", "resource", "status", name
Chef::Log.info cmd.stdout
cmd.stdout.include? "resource #{name} is running"
end

View File

@@ -84,3 +84,19 @@ action :delete do
new_resource.updated_by_last_action(true) new_resource.updated_by_last_action(true)
Chef::Log.info "Deleted primitive '#{name}'." Chef::Log.info "Deleted primitive '#{name}'."
end end
action :start do
name = new_resource.name
raise "no such resource #{name}" unless resource_exists?(name)
next if resource_running?(name)
shell_out! %w(crm resource start) + [name]
Chef::Log.info "Successfully started primitive '#{name}'."
end
action :stop do
name = new_resource.name
raise "no such resource #{name}" unless resource_exists?(name)
next unless resource_running?(name)
shell_out! %w(crm resource stop) + [name]
Chef::Log.info "Successfully stopped primitive '#{name}'."
end

View File

@@ -17,7 +17,7 @@
# limitations under the License. # limitations under the License.
# #
actions :create, :delete actions :create, :delete, :start, :stop
default_action :create default_action :create