Wrap the logic for creating resource and location_rule in its own function
In order to support resource update we will need to add more complex logic around resource creation. In preparation for that let's split off the creation of resources and location_rule in their own function, in order to simplify the code in the create() functions Change-Id: I960c72668938566aa83ed36230d4c8af04849317
This commit is contained in:
@@ -61,6 +61,20 @@ Puppet::Type.type(:pcmk_bundle).provide(:default) do
|
|||||||
@locations_state = {}
|
@locations_state = {}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def create_bundle_and_location(location_rule)
|
||||||
|
cmd = build_pcs_bundle_cmd()
|
||||||
|
if location_rule then
|
||||||
|
pcs('create', @resource[:name], "#{cmd} --disabled", @resource[:tries],
|
||||||
|
@resource[:try_sleep], @resource[:verify_on_create], @resource[:post_success_sleep])
|
||||||
|
location_rule_create()
|
||||||
|
pcs('create', @resource[:name], "resource enable #{@resource[:name]}", @resource[:tries],
|
||||||
|
@resource[:try_sleep], @resource[:verify_on_create], @resource[:post_success_sleep])
|
||||||
|
else
|
||||||
|
pcs('create', @resource[:name], cmd, @resource[:tries],
|
||||||
|
@resource[:try_sleep], @resource[:verify_on_create], @resource[:post_success_sleep])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
# We need to probe the existance of both location and resource
|
# We need to probe the existance of both location and resource
|
||||||
# because we do not know why we're being created (if for both or
|
# because we do not know why we're being created (if for both or
|
||||||
@@ -74,20 +88,10 @@ Puppet::Type.type(:pcmk_bundle).provide(:default) do
|
|||||||
# If both the resource and the location do not exist, we create them both
|
# If both the resource and the location do not exist, we create them both
|
||||||
# if a location_rule is specified otherwise only the resource
|
# if a location_rule is specified otherwise only the resource
|
||||||
if not did_location_exist and not did_resource_exist
|
if not did_location_exist and not did_resource_exist
|
||||||
if location_rule
|
create_bundle_and_location(location_rule)
|
||||||
pcs('create', @resource[:name], "#{cmd} --disabled", @resource[:tries],
|
|
||||||
@resource[:try_sleep], @resource[:verify_on_create], @resource[:post_success_sleep])
|
|
||||||
location_rule_create()
|
|
||||||
pcs('create', @resource[:name], "resource enable #{@resource[:name]}", @resource[:tries],
|
|
||||||
@resource[:try_sleep], @resource[:verify_on_create], @resource[:post_success_sleep])
|
|
||||||
else
|
|
||||||
pcs('create', @resource[:name], cmd, @resource[:tries],
|
|
||||||
@resource[:try_sleep], @resource[:verify_on_create], @resource[:post_success_sleep])
|
|
||||||
end
|
|
||||||
# If the location_rule already existed, we only create the resource
|
# If the location_rule already existed, we only create the resource
|
||||||
elsif did_location_exist and not did_resource_exist
|
elsif did_location_exist and not did_resource_exist
|
||||||
pcs('create', @resource[:name], cmd, @resource[:tries],
|
create_bundle_and_location(false)
|
||||||
@resource[:try_sleep], @resource[:verify_on_create], @resource[:post_success_sleep])
|
|
||||||
# The location_rule does not exist and the resource does exist
|
# The location_rule does not exist and the resource does exist
|
||||||
elsif not did_location_exist and did_resource_exist
|
elsif not did_location_exist and did_resource_exist
|
||||||
if location_rule
|
if location_rule
|
||||||
|
@@ -69,6 +69,20 @@ Puppet::Type.type(:pcmk_resource).provide(:default) do
|
|||||||
@locations_state = {}
|
@locations_state = {}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def create_resource_and_location(location_rule)
|
||||||
|
cmd = build_pcs_resource_cmd()
|
||||||
|
if location_rule then
|
||||||
|
pcs('create', @resource[:name], "#{cmd} --disabled", @resource[:tries],
|
||||||
|
@resource[:try_sleep], @resource[:verify_on_create], @resource[:post_success_sleep])
|
||||||
|
location_rule_create()
|
||||||
|
pcs('create', @resource[:name], "resource enable #{@resource[:name]}", @resource[:tries],
|
||||||
|
@resource[:try_sleep], @resource[:verify_on_create], @resource[:post_success_sleep])
|
||||||
|
else
|
||||||
|
pcs('create', @resource[:name], cmd, @resource[:tries],
|
||||||
|
@resource[:try_sleep], @resource[:verify_on_create], @resource[:post_success_sleep])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
# We need to probe the existance of both location and resource
|
# We need to probe the existance of both location and resource
|
||||||
# because we do not know why we're being created (if for both or
|
# because we do not know why we're being created (if for both or
|
||||||
@@ -82,20 +96,10 @@ Puppet::Type.type(:pcmk_resource).provide(:default) do
|
|||||||
# If both the resource and the location do not exist, we create them both
|
# If both the resource and the location do not exist, we create them both
|
||||||
# if a location_rule is specified otherwise only the resource
|
# if a location_rule is specified otherwise only the resource
|
||||||
if not did_location_exist and not did_resource_exist
|
if not did_location_exist and not did_resource_exist
|
||||||
if location_rule
|
create_resource_and_location(location_rule)
|
||||||
pcs('create', @resource[:name], "#{cmd} --disabled", @resource[:tries],
|
|
||||||
@resource[:try_sleep], @resource[:verify_on_create], @resource[:post_success_sleep])
|
|
||||||
location_rule_create()
|
|
||||||
pcs('create', @resource[:name], "resource enable #{@resource[:name]}", @resource[:tries],
|
|
||||||
@resource[:try_sleep], @resource[:verify_on_create], @resource[:post_success_sleep])
|
|
||||||
else
|
|
||||||
pcs('create', @resource[:name], cmd, @resource[:tries],
|
|
||||||
@resource[:try_sleep], @resource[:verify_on_create], @resource[:post_success_sleep])
|
|
||||||
end
|
|
||||||
# If the location_rule already existed, we only create the resource
|
# If the location_rule already existed, we only create the resource
|
||||||
elsif did_location_exist and not did_resource_exist
|
elsif did_location_exist and not did_resource_exist
|
||||||
pcs('create', @resource[:name], cmd, @resource[:tries],
|
create_resource_and_location(false)
|
||||||
@resource[:try_sleep], @resource[:verify_on_create], @resource[:post_success_sleep])
|
|
||||||
# The location_rule does not exist and the resource does exist
|
# The location_rule does not exist and the resource does exist
|
||||||
elsif not did_location_exist and did_resource_exist
|
elsif not did_location_exist and did_resource_exist
|
||||||
if location_rule
|
if location_rule
|
||||||
|
Reference in New Issue
Block a user