From f8da40d95c0be8d007b55160ace3c35e827a1cc3 Mon Sep 17 00:00:00 2001 From: vprajapa Date: Tue, 6 May 2014 17:14:03 -0500 Subject: [PATCH 1/5] add physicalpath to be able to create Application add physicalpath to be able to create Application under Default Web Site --- lib/puppet/type/iis_app.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/puppet/type/iis_app.rb b/lib/puppet/type/iis_app.rb index e614861..7b9cf79 100644 --- a/lib/puppet/type/iis_app.rb +++ b/lib/puppet/type/iis_app.rb @@ -21,6 +21,10 @@ desc "Enabled protocols" end + newproperty(:physicalpath, :parent => Puppet::IisFileSystemPathProperty) do + desc "Physical path" + end + newproperty(:serviceautostartenabled, :parent => Puppet::IisProperty) do desc "Whether autostart is enabled" end From 8ebdd98dbe54920e9b25b967f7f140e7e602207d Mon Sep 17 00:00:00 2001 From: vprajapa Date: Wed, 7 May 2014 16:37:49 -0500 Subject: [PATCH 2/5] fix when appcmd.exe app runs as set fix when appcmd.exe app runs as set make sure the parameter is app.name instead of site.name --- lib/puppet/provider/iis/iis_object.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/puppet/provider/iis/iis_object.rb b/lib/puppet/provider/iis/iis_object.rb index 4cb2868..c82d38d 100644 --- a/lib/puppet/provider/iis/iis_object.rb +++ b/lib/puppet/provider/iis/iis_object.rb @@ -113,7 +113,8 @@ def execute_delete def execute_flush if @resource[:ensure] != :absent args = get_property_args() - appcmd *(['set', self.class.iis_type(), resource[:name]] + args) if args.length > 0 + #appcmd *(['set', self.class.iis_type(), resource[:name]] + args) if args.length > 0 + appcmd *(['set', self.class.iis_type()] + get_name_args_for_set() + get_property_args()) end end @@ -146,4 +147,4 @@ def get_complex_property_arg(name, value) def get_simple_property_arg(name, value) "/#{name.to_s.gsub('_', '.')}:#{value}" end -end \ No newline at end of file +end From 66ecca7efcaf4e23a7d6725ad4ead1e7800eeade Mon Sep 17 00:00:00 2001 From: vprajapa Date: Wed, 7 May 2014 16:39:37 -0500 Subject: [PATCH 3/5] fix when appcmd.exe app runs as set when set is run instead of add use /[path='/'].physicalpath --- lib/puppet/provider/iis_app/iis_app.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/puppet/provider/iis_app/iis_app.rb b/lib/puppet/provider/iis_app/iis_app.rb index 79cb85e..cb1e710 100644 --- a/lib/puppet/provider/iis_app/iis_app.rb +++ b/lib/puppet/provider/iis_app/iis_app.rb @@ -20,4 +20,10 @@ def get_name_args() path = "/#{path}" ["/site.name:#{site_name}", "/path:#{path}"] end -end \ No newline at end of file + + def get_name_args_for_set() + site_name, path = name.split('/', 2) + path = "/#{path}" + ["/app.name:#{name}", "/[path='/'].physicalpath:#{physicalpath}", "/applicationpool:#{applicationpool}", "/enabledprotocols:#{enabledprotocols}"] + end +end From 2123a0e074a8b8a6b50dde0417b36effd917ce92 Mon Sep 17 00:00:00 2001 From: vprajapa Date: Thu, 8 May 2014 15:53:22 -0500 Subject: [PATCH 4/5] fix for set and add just for app resource set previous fix for set and add just for app resource --- lib/puppet/provider/iis/iis_object.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/puppet/provider/iis/iis_object.rb b/lib/puppet/provider/iis/iis_object.rb index c82d38d..7251c9d 100644 --- a/lib/puppet/provider/iis/iis_object.rb +++ b/lib/puppet/provider/iis/iis_object.rb @@ -113,8 +113,11 @@ def execute_delete def execute_flush if @resource[:ensure] != :absent args = get_property_args() - #appcmd *(['set', self.class.iis_type(), resource[:name]] + args) if args.length > 0 - appcmd *(['set', self.class.iis_type()] + get_name_args_for_set() + get_property_args()) + if self.class.iis_type() == "app" + appcmd *(['set', self.class.iis_type()] + get_name_args_for_set() + get_property_args()) + else + appcmd *(['set', self.class.iis_type(), resource[:name]] + args) if args.length > 0 + end end end From 856a7ad47608c272c0ab21b3e5a4fa07141cba49 Mon Sep 17 00:00:00 2001 From: vprajapa Date: Thu, 8 May 2014 18:12:09 -0500 Subject: [PATCH 5/5] fix for different combo of iis_app resource account for iis_app with and without physicalpath attribute --- lib/puppet/provider/iis/iis_object.rb | 11 ++++++++--- lib/puppet/provider/iis_app/iis_app.rb | 6 ++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/puppet/provider/iis/iis_object.rb b/lib/puppet/provider/iis/iis_object.rb index 7251c9d..434a123 100644 --- a/lib/puppet/provider/iis/iis_object.rb +++ b/lib/puppet/provider/iis/iis_object.rb @@ -113,12 +113,17 @@ def execute_delete def execute_flush if @resource[:ensure] != :absent args = get_property_args() - if self.class.iis_type() == "app" - appcmd *(['set', self.class.iis_type()] + get_name_args_for_set() + get_property_args()) + if self.class.iis_type() == "app" + if @resource[:physicalpath] + appcmd *(['set', self.class.iis_type()] + get_name_args_for_set()) + else + appcmd *(['set', self.class.iis_type()] + get_name_args_for_set_no_physical_path() + args) + end + # appcmd *(['set', self.class.iis_type(), resource[:name]] + args) if args.length > 0 else appcmd *(['set', self.class.iis_type(), resource[:name]] + args) if args.length > 0 end - end + end end def get_property_args() diff --git a/lib/puppet/provider/iis_app/iis_app.rb b/lib/puppet/provider/iis_app/iis_app.rb index cb1e710..20f5a76 100644 --- a/lib/puppet/provider/iis_app/iis_app.rb +++ b/lib/puppet/provider/iis_app/iis_app.rb @@ -26,4 +26,10 @@ def get_name_args_for_set() path = "/#{path}" ["/app.name:#{name}", "/[path='/'].physicalpath:#{physicalpath}", "/applicationpool:#{applicationpool}", "/enabledprotocols:#{enabledprotocols}"] end + + def get_name_args_for_set_no_physical_path() + site_name, path = name.split('/', 2) + path = "/#{path}" + ["/app.name:#{name}", "/path:#{path}"] + end end