change all code locations using os.listdir() to use munkicommon.listdir()
git-svn-id: http://munki.googlecode.com/svn/trunk@941 a4e17f2e-e282-11dd-95e1-755cbddbdd66
to concatenate to the message (using Python concat ala logging.* methods); drop unicode chars.
Fix problem (line 338 of updatecheck.py) where attempting to string-concat
unicode characters before sending to munkicommon.display_debug1() causes
UnicodeDecodeError.
git-svn-id: http://munki.googlecode.com/svn/trunk@921 a4e17f2e-e282-11dd-95e1-755cbddbdd66
munkicommon - in display_warning and display_error, make sure it is a string that is appended to report['Warnings'] or report['Errors']
git-svn-id: http://munki.googlecode.com/svn/trunk@919 a4e17f2e-e282-11dd-95e1-755cbddbdd66
updatecheck.py: provide more feedback when pkg items are rejected due to incompatible os or architecture.
git-svn-id: http://munki.googlecode.com/svn/trunk@918 a4e17f2e-e282-11dd-95e1-755cbddbdd66
prevent curl from using non-authenticated anon DH cipher types,
e.g. TLS_DH_anon_WITH_AES_256_CBC_SHA
(seems that curl --ciphers HIGH selects high # bit ciphers, but
not necessarily only secure ones)
git-svn-id: http://munki.googlecode.com/svn/trunk@899 a4e17f2e-e282-11dd-95e1-755cbddbdd66
If there's a download error, make sure what gets sent to munkicommon.display_error is a string; otherwise we get an unhandled exception when writing out our report.
Add "localmanifestpath" option to updatecheck.check(). This may be used if I implement the alternate Apple Software Update mechanism, and should also be useful for a future Puppet package provider or any programmatically-generated manifest.
git-svn-id: http://munki.googlecode.com/svn/trunk@847 a4e17f2e-e282-11dd-95e1-755cbddbdd66
- separate forced_installs and forced_uninstalls, so they one can be forced while the other is not.
- move status output enabling to the only place it's necessary; --auto at login window.
- move forced install run to top of "GUI user exists" conditional instead of two places within. (Greg, please verify this is okay).
git-svn-id: http://munki.googlecode.com/svn/branches/unattended-installs@813 a4e17f2e-e282-11dd-95e1-755cbddbdd66
Notes:
- Needs documentation about how risky this is, and how it should only be used
for simple packages that are known to be safely installed while app is running.
- If notification is popped up, it will contain the unattended install; if
notification is not due to be popped up the unattended install will be installed
immediately.
- Only works in --auto mode (which is what launchd execs); I will test more tomorrow with manual runs, as we may be able to do this before --installonly too.
git-svn-id: http://munki.googlecode.com/svn/branches/unattended-installs@809 a4e17f2e-e282-11dd-95e1-755cbddbdd66
1) fix OSError because nonexistent file is attempted to be read if HTTP status=200 but response yields no download; this happens if local Cache package is *newer* than package on the server (curl receives 200 but doesn't download); instead raise HTTPError.
2) In the event of a curl() download error, delete any existing cache files
related to the failed download (destination or tmp names). This is basically
just resetting state after any download failures that aren't resume related,
one of those failures being the temp download file doesn't exist.
This fixes a problem where if the destination exists and the date (header:
If-Modified-Since) is newer than on the server (header: Last-Modified), the curl
binary does not ever download the older file. In this case Munki never has a
.download temp file, so it can't overwrite the original/newer file. A susequent
Munki execution will download the older server file.
git-svn-id: http://munki.googlecode.com/svn/trunk@783 a4e17f2e-e282-11dd-95e1-755cbddbdd66
getHTTPfileIfChangedAtomically now returns a boolean indicating if the item was downloaded (True) or just returned from the local cache (False). This way, we only do the expensive SHA-256 checksum comparison on the initial download.
getHTTPfileIfChangedAtomically now raises exceptions if it runs into trouble, as does download_installeritem().
git-svn-id: http://munki.googlecode.com/svn/trunk@764 a4e17f2e-e282-11dd-95e1-755cbddbdd66
processManifestForOptionalInstalls(), processManifestForManagedUpdates(), processManifestForInstalls(), and processManifestForRemovals(), which ll shared a very similar structure, have been refactored and replaced with processManifestForKey().
Various pylint cleanups: marking unused variables, global variable names are now all CAPS, added some docstrings,
Removed all remaining references to aliases. (support for aliases was removed a long time ago, but some references still remained in the code)
Removed support for "modifies" dependency type, which was deprecated months ago.
git-svn-id: http://munki.googlecode.com/svn/trunk@748 a4e17f2e-e282-11dd-95e1-755cbddbdd66
Add support for copy_local key in pkginfo/installinfo so adobeutils can work around AdobePatchInstaller issues.
git-svn-id: http://munki.googlecode.com/svn/trunk@629 a4e17f2e-e282-11dd-95e1-755cbddbdd66
New removeCopiedItems method that removes the same list of items from the startup disk.
updatecheck.py: support for new copy_from_dmg and remove_copied_items methods.
makepkginfo: support for making pkginfo with new copy_from_dmg method,
git-svn-id: http://munki.googlecode.com/svn/trunk@603 a4e17f2e-e282-11dd-95e1-755cbddbdd66