Skip to content

Commit 995d614

Browse files
committed
crowbar: Avoid duplicated code for adding node role on node
1 parent 0d8c5b5 commit 995d614

File tree

1 file changed

+11
-7
lines changed
  • crowbar_framework/app/models

1 file changed

+11
-7
lines changed

crowbar_framework/app/models/node.rb

+11-7
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,7 @@ def initialize(node, role = nil)
3939
raise Crowbar::Error::NotFound.new
4040
end
4141
end
42-
unless node.run_list.run_list_items.include?("role[#{@role.name}]")
43-
node.run_list.run_list_items << "role[#{@role.name}]"
44-
node.save
45-
end
42+
Node.ensure_node_role(node, @role.name)
4643
# deep clone of @role.default_attributes, used when saving node
4744
@attrs_last_saved = @role.default_attributes.deep_dup
4845
@node = node
@@ -1705,13 +1702,20 @@ def create_new_role(new_name, machine)
17051702
role.default_attributes["crowbar"]["network"] = {}
17061703
role.save
17071704

1708-
# This run_list call is to add the crowbar tracking role to the node. (SAFE)
1709-
machine.run_list.run_list_items << "role[#{role.name}]"
1710-
machine.save
1705+
Node.ensure_node_role(machine, role.name)
17111706

17121707
role
17131708
end
17141709

1710+
def ensure_node_role(node, role_name = nil)
1711+
role_name = make_role_name(node.name) if role_name.nil?
1712+
return if node.run_list.run_list_items.include?("role[#{role_name}]")
1713+
1714+
# This run_list call is to add the crowbar tracking role to the node. (SAFE)
1715+
node.run_list.run_list_items << "role[#{role_name}]"
1716+
node.save
1717+
end
1718+
17151719
def create_new(new_name)
17161720
machine = Chef::Node.new
17171721
machine.name "#{new_name}"

0 commit comments

Comments
 (0)