This adds Force Install Notifications support to the MSU GUI, and logouthelper support to managedsoftwareupdate/launchd. Documentation on using the pkginfo force_install_after_date key to come....
This merge also includes localization fixes and on-the-fly updating of the MSU GUI when managedsoftwareupdate runs in the background while the GUI is open, changing InstallInfo.
With this merge, the Munki version is increased to 0.8.0 and MSU GUI version to 3.2.
git-svn-id: http://munki.googlecode.com/svn/trunk@1270 a4e17f2e-e282-11dd-95e1-755cbddbdd66
I ran into a machine where "parts" was: ['|', '|', '"HIDIdleTime"', '=', '1458195167613966'], and since parts[3] is "=" getIdleSeconds() was crashing trying to convert it to int().
So return int(int(parts[3])/1000000000) should really be parts[4] on this machine, but this may be inconsistent on different machines?
# /usr/sbin/ioreg -c IOHIDSystem -d 4 | grep Idle
| | "HIDIdleTime" = 1458351496253133
So let's just use regex to parse the integer out of the line more safely.
git-svn-id: http://munki.googlecode.com/svn/trunk@1103 a4e17f2e-e282-11dd-95e1-755cbddbdd66
s/only_forced/only_unattended/g
Change forced_* pkginfo key names to more accurately describe what's happening, since they're not "forced" in the true sense of the word.
Admins should include both forced_* and unattended_* keys in their pkginfos while migrating to client releases after this change, to ensure both old and new clients have desired pkg push agressiveness :(
git-svn-id: http://munki.googlecode.com/svn/trunk@1098 a4e17f2e-e282-11dd-95e1-755cbddbdd66
--applesuspkgsonly
--munkipkgsonly
options to managedsoftwareupdate to override which packages it looks at
git-svn-id: http://munki.googlecode.com/svn/trunk@1084 a4e17f2e-e282-11dd-95e1-755cbddbdd66
In most invocations of subprocess.Popen, change the bufsize from 1 to -1, which changes from line-buffered to "big" buffers.
Other minor changes to align with the appleupdates,py changes and some pylint-recommended cleanup.
git-svn-id: http://munki.googlecode.com/svn/trunk@995 a4e17f2e-e282-11dd-95e1-755cbddbdd66
Similar defensive coding in installer.py for the InstallResults and RemovalResults keys.
Safer report initialization in managedsoftwareupdate.
git-svn-id: http://munki.googlecode.com/svn/trunk@993 a4e17f2e-e282-11dd-95e1-755cbddbdd66
Re-check idle time when running in "checkandinstallatstartup" mode so we maximize our chances of getting all the updates done when bootstrapping.
git-svn-id: http://munki.googlecode.com/svn/trunk@869 a4e17f2e-e282-11dd-95e1-755cbddbdd66
- if import of Python module with ObjC binding fails, call "report_broken_client" script where admins can setup desired reporting/notification.
git-svn-id: http://munki.googlecode.com/svn/trunk@863 a4e17f2e-e282-11dd-95e1-755cbddbdd66
For gid verification, instead of only checking file gid to match current user oir hardcoded 80, check current user's gid, admin's gid, and wheel's gid all dynamically looked up.
git-svn-id: http://munki.googlecode.com/svn/trunk@862 a4e17f2e-e282-11dd-95e1-755cbddbdd66
This is in prep of a upcoming notification feature that cannot depend on ObjC Py bindings. Alternatively, if we want to share such code, we can create a common/util module for only Pure-Python code, and doc that it should not contain any ObjC imports.
git-svn-id: http://munki.googlecode.com/svn/trunk@861 a4e17f2e-e282-11dd-95e1-755cbddbdd66
If pkginfo key forced_(un)install is set to <true/>, (un)installs will run immediately after downloading without any notification the user. If further non-forced installs are remaining MSU.app will appear after all forced-installs are finished.
This needs documentation about how risky it is; should only be used for simple packages that are known to be safely installed while app is running. More features will come in the future making it safer to use on other packages.
git-svn-id: http://munki.googlecode.com/svn/trunk@814 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
1) disable status output (GUI)
2) run unattended installs
3) reenable status output (GUI)
4) notify user or remaining installs (if LastModifiedDate is happy)
Also, change logging a little to make it easier to see difference between regular install run and unattended run.
git-svn-id: http://munki.googlecode.com/svn/branches/unattended-installs@812 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
appleupdates: pylint cleanup; provide installed_size data for Managed Software Update display
managedsoftwareupdate: move "Checking for available Apple Software Updates..." message to appleupdates.checkForSoftwareUpdates()
makepkginfo: fix installer_item_size determination when we add up the contents of a directory (was bytes, now Kbytes like everything else)
git-svn-id: http://munki.googlecode.com/svn/trunk@725 a4e17f2e-e282-11dd-95e1-755cbddbdd66