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 26 def self.from_registry(name, values) 27 if valid?(name, values) 28 inst = installer 29 30 if inst.ProductState(name) == INSTALLSTATE_DEFAULT 31 MsiPackage.new(get_display_name(values), 32 values['DisplayVersion'], 33 name, # productcode 34 inst.ProductInfo(name, 'PackageCode')) 35 end 36 end 37 end
install_command(resource)
click to toggle source
# File lib/puppet/provider/package/windows/msi_package.rb 62 def self.install_command(resource) 63 ['msiexec.exe', '/qn', '/norestart', '/i', munge(resource[:source])] 64 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 20 def self.installer 21 # REMIND: when does the COM release happen? 22 WIN32OLE.new("WindowsInstaller.Installer") 23 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 48 def initialize(name, version, productcode, packagecode) 49 super(name, version) 50 51 @productcode = productcode 52 @packagecode = packagecode 53 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 40 def self.valid?(name, values) 41 # See http://community.spiceworks.com/how_to/show/2238 42 displayName = get_display_name(values) 43 !!(displayName && displayName.length > 0 && 44 values['WindowsInstaller'] == 1 && # DWORD 45 name =~ /\A\{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\}\Z/i) 46 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 56 def match?(resource) 57 resource[:name].casecmp(packagecode) == 0 || 58 resource[:name].casecmp(productcode) == 0 || 59 resource[:name] == name 60 end
uninstall_command()
click to toggle source
# File lib/puppet/provider/package/windows/msi_package.rb 66 def uninstall_command 67 ['msiexec.exe', '/qn', '/norestart', '/x', productcode] 68 end