ogle
4e3261b95f
Fix exception syntax to be python2.5 compatible, maintaining support for OS X 10.5 Leopard.
2013-07-22 16:09:05 +00:00
Justin McWilliams
7c4eeb2d7b
s/munki\./munkicommon./g to fix display_error calls added in rf8c46ec3eb955cef6a2aefcc52be090234ac3705
2013-07-18 16:48:33 -04:00
Greg Neagle
fe2a402202
Merge branch 'master' of https://code.google.com/p/munki
2013-07-16 15:21:43 -07:00
Greg Neagle
97d0d34f9b
Initial support for checking for available licensed seats for uninstalled optional_installs
2013-07-16 15:21:29 -07:00
Greg Neagle
709d6f8b1d
Bumping version.plist for next round of development.
2013-07-02 07:16:03 -07:00
Justin McWilliams
f8c46ec3eb
If self-serve/etc. manifests are corrupt, log and pass instead of crashing.
2013-06-21 10:59:43 -04:00
Justin McWilliams
dd712b5d3a
Track whether an update was installed in "only_unattended" mode or not in InstallResults, for additional reporting on various Munki servers.
2013-06-16 11:18:49 -04:00
Greg Neagle
45ade74d30
Change application data collection code so that system_profiler SPApplicationsDataType is called only once per Munki session, even if system_profiler fails or hangs.
2013-06-05 08:49:01 -07:00
Greg Neagle
b2651e9926
Don't display 'Running installcheck_script/uninstallcheck_script for foo...' messages when checking for updates.
2013-05-31 15:59:35 -07:00
Greg Neagle
5aff95e9cd
Support for installing AAMEE/CCP packages that include updates.
2013-05-17 10:20:28 -07:00
Justin McWilliams
cd15912feb
Fix case where munkicommon.getAppBundleExecutable() returns None due to non-existent Info.plist, causing Munki to crash when parsing the None executable name.
2013-05-14 16:07:59 -07:00
Greg Neagle
f848fb744d
Patch to adobeutils.py from Pepijn Bruienne <bruienne@gmail.com> to allow makepkginfo to properly parse an Adobe Creative Cloud product package built with Creative Cloud Packager.
2013-05-10 16:19:49 -07:00
Greg Neagle
fc8c36d1fa
Change apple_item logic in updatecheck.processRemoval to match that in updatecheck.processInstall. Specifically, allow admin to override detection of apple_item by explictly setting it in the pkginfo.
2013-04-11 14:28:40 -07:00
Greg Neagle
52468cc6c2
Update version.plist to 0.9.0 for next development round.
2013-04-08 10:02:43 -07:00
Greg Neagle
7882edfbc1
Better info/warning messages when Apple update metadata conflicts with existing RestartAction
2013-04-02 12:17:08 -07:00
Greg Neagle
2d4bafe694
Ensure AppleUpdates.plist is removed if there are no available Apple updates. Update appleupdates_test.py to reflect this and a previous commit.
2013-03-17 10:49:51 -07:00
Greg Neagle
220cf91a77
Don't remove an item if another item that depends on it failed to be removed. This is the complimentary behavior to issue 217, which dealt with installs
2013-03-12 19:16:51 -07:00
Greg Neagle
b28677dd34
If preinstall_script exits non-zero or installation fails, add item to skipped installs; for each install, if a prerequisite was skipped, don't install. Addresses issue 217.
2013-03-12 16:48:27 -07:00
Greg Neagle
699decfe00
Use consistent format when an item's version cannot be determined and is noted as '(newer than ...)'
2013-03-11 15:46:29 -07:00
Greg Neagle
1df439ef37
Store original Apple name for an update and use that when determining success of an Apple update install; new metadata functionality allows admins to override the display_name, which could have caused determining success of an Apple update install to fail, since it would have been looking for the wrong name.
2013-03-11 11:03:13 -07:00
Greg Neagle
1ac91e8b44
Patch from rmiddleton for updatecheck.isItemInstallInfo() -- fixes issue with multiple updates with the same name (but different versions) that need to be applied in a single session.
2013-03-11 08:18:08 -07:00
Greg Neagle
000d1b969a
PyLint cleanups in munkilib/installer.py.
2013-03-02 21:13:56 -08:00
Heig Gregorian
4847006300
Minor code clean-up, no functional changes
2013-02-22 17:17:26 -08:00
Heig Gregorian
ed9a8b0913
Renamed updatecheck.getAppleUpdateMetaData to updatecheck.getPrimaryManifestCatalogs to reflect actual function; added function parameter to specify whether or not the primary client manifest and catalogs should be re-downloaded before parsing for apple_update_metadata
...
Additionally, ensure that MACHINE dict is populated regardless of the
runtype as it may impact how a primary manifest is discovered.
2013-02-22 15:29:15 -08:00
Greg Neagle
8bac537975
When getting blocking_applications from an Apple update dist file, de-dup the list of application-ids before finding matching applications.
2013-02-21 18:44:37 -08:00
Heig Gregorian
27cbf06058
Minor inline comments added for clarification's sake
2013-02-19 15:15:11 -08:00
Heig Gregorian
53fc136d28
unattended_install in metadata no longer applied if a RestartAction exists (in original item or metadata); unattended Apple updates are skipped if a blocking application is running; installlist, holding Apple update installation results, only holds items which are eligible for unattended installation
...
Mostly, this commit involves improving upon expected functionality of
an unattend Apple update installation.
Munki performs a "suppressed" Apple software update check post
installation run if a GUI user is logged in such that the user will be
prompted to install any remaining updates. This is inline with munki's
behavior for munki packages.
blocking_applications can now accept items which are full paths in case
an admin wishes to be specific regarding the location of a running,
blocking application and/or executable.
Also of note is a fix for previously broken blocking_application
checking for Apple updates, both in MSU and managaedsoftwareupdate.
2013-02-19 13:32:09 -08:00
Heig Gregorian
a52acd73f8
Overall clean-up of adding install items to the list of parameters supplied in 'su_options'
2013-02-16 14:08:51 -08:00
Heig Gregorian
cd3c69b5a2
'unattended_install' and 'force_install_after_date' actions for Apple update are honored. Overall, functions were add/modified to support this effort.
2013-02-15 18:34:28 -08:00
Heig Gregorian
e59555ff76
Minor clean-up; removed custom argument for updatecheck.getItemDetail, unusued self.apple_md variable removed from appleupdates
2013-02-13 16:00:38 -08:00
Heig Gregorian
e2005a696b
Significant changes to how Apple update items are matched to metadata; new function in updatecheck specifically created to handle collection of catalog data by appleupdates; new function created for applying metadata
...
Of note, 'copyUpdateMetadata' function uses a list of whitelisted
metadata keys as well as appropriate logic to determine if a particular
'RestartAction' should be applied.
2013-02-13 13:22:07 -08:00
Heig Gregorian
9f8cd3a975
Initial commit adding client-side support for 'apple_update_metadata'
...
Provided that 'AppleSoftwareUpdatesOnly' preference is False, primary
client manifest's catalogs are parsed for matching
'apple_update_metadata' and applied to pending Apple updates.
Please note that not ALL keys presented by an apple_update_metadata
item are applied as to not either clobber or complicate the listing of
items provided in 'AppleUpdates.plist'. The current list of excluded
keys is as follows:
catalogs
installed_size
installer_type
name
version
version_to_install
2013-02-12 13:23:45 -08:00
Greg Neagle
a3db265246
When checking for cached Apple updates, use self.GetSoftwareUpdateInfo() instead of self.WriteAppleUpdatesFile() to avoid writing the AppleUpdates.plist twice.
2013-02-12 09:15:52 -08:00
Greg Neagle
b80430753b
Changes to allow Munki to check for and install Apple Software Update items in the same session as normal Munki updates.
2013-02-11 08:37:39 -08:00
Greg Neagle
a4ff92e4c6
Reset item[path] to original path after calling comparePlistVersion from compareBundleVersion. More debug output.
2013-02-05 10:06:10 -08:00
Greg Neagle
5feaa8ffd3
More clarifying comments in munkicommon.getVersionString()
2013-02-04 16:03:36 -08:00
Greg Neagle
e3aef2bd7e
Debug output tweaks when doing version comparisons
2013-02-04 15:14:47 -08:00
Greg Neagle
78d9ea6b49
Simplify implementation of compareBundleVersion() by just calling comparePlistVersion() to do the actual version comparison. Don't Repeat Yourself!
2013-02-04 15:00:21 -08:00
Greg Neagle
3c5d707ec1
Key name changes and behavior tweaks to Heig's submission for support for bundle/plist version keys other than CFBundleShortVersionString
2013-02-04 14:20:31 -08:00
Greg Neagle
20a0b51895
Fix typo in call to pkgutil --regexp --pkg-info-plist (was -pkg-info-plist). Thanks to Heig Gregorian.
2013-02-04 13:31:14 -08:00
Greg Neagle
097c6d8acb
Merge branch 'versionkey' of https://code.google.com/r/theheig-conditionals
2013-02-04 10:46:24 -08:00
Greg Neagle
4b71ace130
Updated copyright info on all files with copyright info.
2013-01-28 11:55:09 -08:00
Greg Neagle
6fffa1b025
Change updatecheck.checkServer for IPv6 compatibility.
2013-01-28 09:17:16 -08:00
Justin McWilliams
ba6588acdd
Force Munki to obtain temp directories within /tmp, to avoid rare, intermittent issue where tempfile.mkdtemp() would choose to create a temp dir on an NFS path, such as /home/<username>/tmp/, causing Munki to crash when attempting to chown/etc.
2013-01-09 17:32:31 -05:00
Justin McWilliams
4784ea762b
Cleanup readability of pkgid_table generation in makeCatalogDB().
2012-12-19 16:53:31 -05:00
Greg Neagle
cc67bb8ca1
Add 'date' item to INFO_OBJECT for use in conditional_items. This allows for date-based conditions.
2012-12-18 13:08:13 -08:00
Greg Neagle
d4f3fed906
Bumping version in version.plist to 0.8.4 for next round of development.
2012-12-04 13:50:23 -08:00
Justin McWilliams
2cc9bd5f11
Don't delete package from cache if installation fails. If the package is corrupt, hash/etags should not match the server and it'll redownload. Furthermore, if the install was actually successful regardless of a non-zero installer exit code, the cached package will be downloaded on the next Munki execution after determining that package is no longer needed.
...
As discussed here: https://groups.google.com/forum/?fromgroups=#!topic/munki-dev/Q5UxFOf6En8
2012-11-29 15:50:40 -05:00
Justin McWilliams
fe3c76dbdb
Munki shouldn't crash when attempting to load a non-existent dist file while detecting blocking apps.
...
Fixes the following traceback:
File '/usr/local/munki/munkilib/appleupdates.py', line 808, in GetSoftwareUpdateInfo
blocking_apps = self.GetBlockingApps(update['productKey'])
File '/usr/local/munki/munkilib/appleupdates.py', line 423, in GetBlockingApps
dom = minidom.parse(distfile)
File '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/dom/minidom.py', line 1914, in parse
File '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/dom/expatbuilder.py', line 922, in parse
IOError: [Errno 2] No such file or directory: u'/tmp/munki_swupd_cache/content/downloads/15/38/041-7414/ldfmzmn6psq7re395jmalnyba8ge3xa4cj/041-7414.English.dist'
2012-11-27 16:23:20 -05:00
Greg Neagle
b959caddb5
Change tsutton's 'predicate_check' pkginfo key to 'installable_condition'
2012-11-16 16:34:57 -08:00