Details
Description
iis_virtual_directory is not idempotent when name contains slashes.
Consider when a customer specifies an iis_virtual_directory with a name with a slash:
iis_site { "test_site":
|
name => "test_site",
|
ensure => 'present',
|
physicalpath => 'c:\\inetpub\\test_site',
|
applicationpool => 'DefaultApplicationPool',
|
}
|
|
iis_virtual_directory{ "test_vdir":
|
ensure => 'present',
|
sitename => "test_site",
|
physicalpath => 'c:\\inetpub\\test_vdir',
|
}
|
|
iis_virtual_directory { 'bbbb\bbbb':
|
name => 'bbbb\bbbb',
|
ensure => 'present',
|
sitename => 'test_site',
|
physicalpath => '\\\\WEBSHARE\\data\\backward',
|
}
|
|
iis_virtual_directory { 'ffff/ffff':
|
name => 'ffff/ffff',
|
ensure => 'present',
|
sitename => 'test_site',
|
physicalpath => '\\\\WEBSHARE\\data\\forward',
|
}
|
C:\Users\Administrator> puppet agent -t
|
Info: Using configured environment 'production'
|
Info: Retrieving pluginfacts
|
Info: Retrieving plugin
|
Info: Loading facts
|
Info: Caching catalog for pe-201722-agent-win2012
|
Info: Applying configuration version '1501179219'
|
Notice: /Stage[main]/Main/Node[pe-201722-agent-win2012]/Iis_site[test_site]/ensure: defined 'ensure' as 'present'
|
Notice: /Stage[main]/Main/Node[pe-201722-agent-win2012]/Iis_virtual_directory[test_vdir]/ensure: created
|
Notice: /Stage[main]/Main/Node[pe-201722-agent-win2012]/Iis_virtual_directory[bbbb\bbbb]/ensure: created
|
Notice: /Stage[main]/Main/Node[pe-201722-agent-win2012]/Iis_virtual_directory[ffff/ffff]/ensure: created
|
Notice: Applied catalog in 14.33 seconds
|
|
C:\Users\Administrator> puppet agent -t
|
Info: Using configured environment 'production'
|
Info: Retrieving pluginfacts
|
Info: Retrieving plugin
|
Info: Loading facts
|
Info: Caching catalog for pe-201722-agent-win2012
|
Info: Applying configuration version '1501179249'
|
Notice: /Stage[main]/Main/Node[pe-201722-agent-win2012]/Iis_virtual_directory[bbbb\bbbb]/ensure: created
|
Notice: /Stage[main]/Main/Node[pe-201722-agent-win2012]/Iis_virtual_directory[ffff/ffff]/ensure: created
|
Notice: Applied catalog in 7.13 seconds
|
The iis_virtual_directory provider uses the New-WebVirtualDirectory PowerShell command. The New-WebVirtualDirectory PowerShell command uses -Name to specify -Path. The VirtualDirectory path specifies the virtual path.
The issue appears to be caused by how we parse the output of Get-WebVirtualDirectory in:
lib/puppet/provider/templates/webadministration/_getvirtualdirectories.ps1.erb
Attachments
Issue Links
- links to