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)
cmd = Mixlib::ShellOut.new("crm configure show | grep #{name}")
cmd.environment['HOME'] = ENV.fetch('HOME', '/root')
@ -9,3 +11,10 @@ def resource_exists?(name)
false
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)
Chef::Log.info "Deleted primitive '#{name}'."
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.
#
actions :create, :delete
actions :create, :delete, :start, :stop
default_action :create