class Puppet::Provider::Package::Windows::MsiPackage
Constants
- INSTALLSTATE_DEFAULT
From msi.h
- INSTALLUILEVEL_NONE
- REG_VALUE_NAMES
registry values to load under each product entry in HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstall for this provider
Attributes
packagecode[R]
productcode[R]
Public Class Methods
from_registry(name, values)
click to toggle source
Return an instance of the package from the registry, or nil
# File lib/puppet/provider/package/windows/msi_package.rb 27 def self.from_registry(name, values) 28 if valid?(name, values) 29 inst = installer 30 31 if inst.ProductState(name) == INSTALLSTATE_DEFAULT 32 MsiPackage.new(get_display_name(values), 33 values['DisplayVersion'], 34 name, # productcode 35 inst.ProductInfo(name, 'PackageCode')) 36 end 37 end 38 end
install_command(resource)
click to toggle source
# File lib/puppet/provider/package/windows/msi_package.rb 63 def self.install_command(resource) 64 ['msiexec.exe', '/qn', '/norestart', '/i', munge(resource[:source])] 65 end
installer()
click to toggle source
Get the COM installer object, it's in a separate method for testing
# File lib/puppet/provider/package/windows/msi_package.rb 21 def self.installer 22 # REMIND: when does the COM release happen? 23 WIN32OLE.new("WindowsInstaller.Installer") 24 end
new(name, version, productcode, packagecode)
click to toggle source
Calls superclass method
Puppet::Provider::Package::Windows::Package::new
# File lib/puppet/provider/package/windows/msi_package.rb 49 def initialize(name, version, productcode, packagecode) 50 super(name, version) 51 52 @productcode = productcode 53 @packagecode = packagecode 54 end
valid?(name, values)
click to toggle source
Is this a valid MSI package we should manage?
# File lib/puppet/provider/package/windows/msi_package.rb 41 def self.valid?(name, values) 42 # See http://community.spiceworks.com/how_to/show/2238 43 displayName = get_display_name(values) 44 !!(displayName && displayName.length > 0 && 45 values['WindowsInstaller'] == 1 && # DWORD 46 name =~ /\A\{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\}\Z/i) 47 end
Public Instance Methods
match?(resource)
click to toggle source
Does this package match the resource?
# File lib/puppet/provider/package/windows/msi_package.rb 57 def match?(resource) 58 resource[:name].casecmp(packagecode) == 0 || 59 resource[:name].casecmp(productcode) == 0 || 60 resource[:name] == name 61 end
uninstall_command()
click to toggle source
# File lib/puppet/provider/package/windows/msi_package.rb 67 def uninstall_command 68 ['msiexec.exe', '/qn', '/norestart', '/x', productcode] 69 end