From 2146563c2f305fd5dfab00b0e1ed07ee33884212 Mon Sep 17 00:00:00 2001 From: Tim Smith Date: Sat, 2 Feb 2019 10:09:47 -0800 Subject: Add windows_dfs and windows_dns resources These are ported over from the windows_dns and windows_dfs cookbooks. Signed-off-by: Tim Smith --- lib/chef/resource/windows_dns_zone.rb | 65 +++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 lib/chef/resource/windows_dns_zone.rb (limited to 'lib/chef/resource/windows_dns_zone.rb') 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 -- cgit v1.2.1