summaryrefslogtreecommitdiff
path: root/lib/chef/resource/windows_dns_zone.rb
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2019-02-02 10:09:47 -0800
committerTim Smith <tsmith@chef.io>2019-02-02 10:09:47 -0800
commit2146563c2f305fd5dfab00b0e1ed07ee33884212 (patch)
tree1267c2c4c948515a69910dfa71aaf226ba6a7c77 /lib/chef/resource/windows_dns_zone.rb
parent0f4bd34e95111d755b646d85150698626e27fa3d (diff)
downloadchef-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.rb65
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