diff --git a/lib/puppet/provider/iis/iis_object.rb b/lib/puppet/provider/iis/iis_object.rb index 4cb2868..434a123 100644 --- a/lib/puppet/provider/iis/iis_object.rb +++ b/lib/puppet/provider/iis/iis_object.rb @@ -113,8 +113,17 @@ 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 - end + 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 def get_property_args() @@ -146,4 +155,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 diff --git a/lib/puppet/provider/iis_app/iis_app.rb b/lib/puppet/provider/iis_app/iis_app.rb index 79cb85e..20f5a76 100644 --- a/lib/puppet/provider/iis_app/iis_app.rb +++ b/lib/puppet/provider/iis_app/iis_app.rb @@ -20,4 +20,16 @@ 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 + + def get_name_args_for_set_no_physical_path() + site_name, path = name.split('/', 2) + path = "/#{path}" + ["/app.name:#{name}", "/path:#{path}"] + end +end 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