diff options
author | Tim Smith <tsmith@chef.io> | 2019-02-02 10:09:47 -0800 |
---|---|---|
committer | Tim Smith <tsmith@chef.io> | 2019-02-02 10:09:47 -0800 |
commit | 2146563c2f305fd5dfab00b0e1ed07ee33884212 (patch) | |
tree | 1267c2c4c948515a69910dfa71aaf226ba6a7c77 /lib/chef/resource/windows_dns_zone.rb | |
parent | 0f4bd34e95111d755b646d85150698626e27fa3d (diff) | |
download | chef-2146563c2f305fd5dfab00b0e1ed07ee33884212.tar.gz |
Add windows_dfs and windows_dns resources
These are ported over from the windows_dns and windows_dfs cookbooks.
Signed-off-by: Tim Smith <tsmith@chef.io>
Diffstat (limited to 'lib/chef/resource/windows_dns_zone.rb')
-rw-r--r-- | lib/chef/resource/windows_dns_zone.rb | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/lib/chef/resource/windows_dns_zone.rb b/lib/chef/resource/windows_dns_zone.rb new file mode 100644 index 0000000000..1e191e2a63 --- /dev/null +++ b/lib/chef/resource/windows_dns_zone.rb @@ -0,0 +1,65 @@ +# +# Author:: Jason Field +# +# Copyright:: 2018, Calastone Ltd. +# Copyright:: 2019, Chef Software, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require "chef/resource" + +class Chef + class Resource + class WindowsDnsZone < Chef::Resource + resource_name :windows_dns_zone + provides :windows_dns_zone + + property :zone_name, String, name_property: true + property :replication_scope, String, default: "Domain", required: false + property :server_type, String, default: "Domain", regex: /^(?:Domain|Standalone)$/i + + action :create do + powershell_package "xDnsServer" do + end + do_it "Present" + end + + action :delete do + powershell_package "xDnsServer" do + end + do_it "Absent" + end + + action_class do + def do_it(ensure_prop) + if new_resource.server_type == "Domain" + dsc_resource "xDnsServerADZone #{new_resource.zone_name} #{ensure_prop}" do + module_name "xDnsServer" + resource :xDnsServerADZone + property :Ensure, ensure_prop + property :Name, new_resource.zone_name + property :ReplicationScope, new_resource.replication_scope + end + elsif new_resource.server_type == "Standalone" + dsc_resource "xDnsServerPrimaryZone #{new_resource.zone_name} #{ensure_prop}" do + module_name "xDnsServer" + resource :xDnsServerPrimaryZone + property :Ensure, ensure_prop + property :Name, new_resource.zone_name + end + end + end + end + end + end +end |