summaryrefslogtreecommitdiff
path: root/lib/chef/resource
diff options
context:
space:
mode:
authorNoah Kantrowitz <noah@coderanger.net>2017-04-11 14:15:30 -0700
committerNoah Kantrowitz <noah@coderanger.net>2017-04-11 14:15:30 -0700
commit2fba7ed9f7d0b05671b6a67580b2f0ec539b60ae (patch)
treecb270ce24c13f142b177989f676557a97cf96732 /lib/chef/resource
parent1302c36be2db96b3a44c70eac065840981937506 (diff)
downloadchef-2fba7ed9f7d0b05671b6a67580b2f0ec539b60ae.tar.gz
Convert the env and route resources to property style to get nillable setters.
Signed-off-by: Noah Kantrowitz <noah@coderanger.net>
Diffstat (limited to 'lib/chef/resource')
-rw-r--r--lib/chef/resource/env.rb38
-rw-r--r--lib/chef/resource/route.rb120
2 files changed, 16 insertions, 142 deletions
diff --git a/lib/chef/resource/env.rb b/lib/chef/resource/env.rb
index 7fac8af40b..746369f02d 100644
--- a/lib/chef/resource/env.rb
+++ b/lib/chef/resource/env.rb
@@ -20,46 +20,14 @@
class Chef
class Resource
class Env < Chef::Resource
-
- identity_attr :key_name
-
- state_attrs :value
-
provides :env, os: "windows"
default_action :create
allowed_actions :create, :delete, :modify
- def initialize(name, run_context = nil)
- super
- @key_name = name
- @value = nil
- @delim = nil
- end
-
- def key_name(arg = nil)
- set_or_return(
- :key_name,
- arg,
- :kind_of => [ String ]
- )
- end
-
- def value(arg = nil)
- set_or_return(
- :value,
- arg,
- :kind_of => [ String ]
- )
- end
-
- def delim(arg = nil)
- set_or_return(
- :delim,
- arg,
- :kind_of => [ String ]
- )
- end
+ property :key_name, String, identity: true, name_property: true
+ property :value, String, required: true
+ property :delim, [ String, nil, false ], desired_state: false
end
end
end
diff --git a/lib/chef/resource/route.rb b/lib/chef/resource/route.rb
index 0117a8bfc0..9412d28dce 100644
--- a/lib/chef/resource/route.rb
+++ b/lib/chef/resource/route.rb
@@ -22,116 +22,22 @@ require "chef/resource"
class Chef
class Resource
class Route < Chef::Resource
- identity_attr :target
-
- state_attrs :netmask, :gateway
-
default_action :add
allowed_actions :add, :delete
- def initialize(name, run_context = nil)
- super
- @target = name
- @netmask = nil
- @gateway = nil
- @metric = nil
- @device = nil
- @route_type = :host
- @networking = nil
- @networking_ipv6 = nil
- @hostname = nil
- @domainname = nil
- @domain = nil
- end
-
- def networking(arg = nil)
- set_or_return(
- :networking,
- arg,
- :kind_of => String
- )
- end
-
- def networking_ipv6(arg = nil)
- set_or_return(
- :networking_ipv6,
- arg,
- :kind_of => String
- )
- end
-
- def hostname(arg = nil)
- set_or_return(
- :hostname,
- arg,
- :kind_of => String
- )
- end
-
- def domainname(arg = nil)
- set_or_return(
- :domainname,
- arg,
- :kind_of => String
- )
- end
-
- def domain(arg = nil)
- set_or_return(
- :domain,
- arg,
- :kind_of => String
- )
- end
-
- def target(arg = nil)
- set_or_return(
- :target,
- arg,
- :kind_of => String
- )
- end
-
- def netmask(arg = nil)
- set_or_return(
- :netmask,
- arg,
- :kind_of => String
- )
- end
-
- def gateway(arg = nil)
- set_or_return(
- :gateway,
- arg,
- :kind_of => String
- )
- end
-
- def metric(arg = nil)
- set_or_return(
- :metric,
- arg,
- :kind_of => Integer
- )
- end
-
- def device(arg = nil)
- set_or_return(
- :device,
- arg,
- :kind_of => String
- )
- end
-
- def route_type(arg = nil)
- real_arg = arg.kind_of?(String) ? arg.to_sym : arg
- set_or_return(
- :route_type,
- real_arg,
- :equal_to => [ :host, :net ]
- )
- end
+ property :target, String, identity: true, name_property: true
+ property :netmask, [String, nil]
+ property :gateway, [String, nil]
+ property :device, [String, nil], desired_state: false # Has a partial default in the provider of eth0.
+ property :route_type, [:host, :net], default: :host, coerce: proc { |x| x.to_sym }, desired_state: false
+
+ # I can find no evidence of these properties actually being used by Chef. NK 2017-04-11
+ property :networking, [String, nil], desired_state: false
+ property :networking_ipv6, [String, nil], desired_state: false
+ property :hostname, [String, nil], desired_state: false
+ property :domainname, [String, nil], desired_state: false
+ property :domain, [String, nil], desired_state: false
+ property :metric, [Integer, nil], desired_state: false
end
end
end