def alertIfBlockingAppsRunning(self): apps_to_check = [] for update_item in self._listofupdates: if 'blocking_applications' in update_item: apps_to_check.extend(update_item['blocking_applications']) else: apps_to_check.extend([os.path.basename(item.get('path')) for item in update_item.get('installs', []) if item['type'] == 'application']) running_apps = munki.getRunningBlockingApps(apps_to_check) if running_apps: alert = NSAlert.alertWithMessageText_defaultButton_alternateButton_otherButton_informativeTextWithFormat_( NSLocalizedString(u"Conflicting applications running", None), NSLocalizedString(u"OK", None), objc.nil, objc.nil, NSLocalizedString(u"You must quit the following applications before proceeding with installation:\n\n%s", None) % '\n'.join(running_apps)) munki.log("MSU", "conflicting_apps", ','.join(running_apps)) self._currentAlert = alert alert.beginSheetModalForWindow_modalDelegate_didEndSelector_contextInfo_( self.mainWindowController.theWindow, self, self.blockingAppsRunningAlertDidEnd_returnCode_contextInfo_, objc.nil) return True else: return False
def alertIfBlockingAppsRunning(self): apps_to_check = [] for update_item in self._listofupdates: if 'blocking_applications' in update_item: apps_to_check.extend(update_item['blocking_applications']) else: apps_to_check.extend([ os.path.basename(item.get('path')) for item in update_item.get('installs', []) if item['type'] == 'application' ]) running_apps = munki.getRunningBlockingApps(apps_to_check) if running_apps: alert = NSAlert.alertWithMessageText_defaultButton_alternateButton_otherButton_informativeTextWithFormat_( NSLocalizedString(u"Conflicting applications running", None), NSLocalizedString(u"OK", None), objc.nil, objc.nil, NSLocalizedString( u"You must quit the following applications before proceeding with installation:\n\n%s", None) % '\n'.join(running_apps)) munki.log("MSU", "conflicting_apps", ','.join(running_apps)) self._currentAlert = alert alert.beginSheetModalForWindow_modalDelegate_didEndSelector_contextInfo_( self.mainWindowController.theWindow, self, self.blockingAppsRunningAlertDidEnd_returnCode_contextInfo_, objc.nil) return True else: return False
def alertedToBlockingAppsRunning(self): '''Returns True if blocking_apps are running; alerts as a side-effect''' apps_to_check = [] for update_item in MunkiItems.getUpdateList(): if 'blocking_applications' in update_item: apps_to_check.extend(update_item['blocking_applications']) else: apps_to_check.extend( [os.path.basename(item.get('path')) for item in update_item.get('installs', []) if item['type'] == 'application'] ) running_apps = munki.getRunningBlockingApps(apps_to_check) if running_apps: current_user = munki.getconsoleuser() other_users_apps = [item['display_name'] for item in running_apps if item['user'] != current_user] my_apps = [item['display_name'] for item in running_apps if item['user'] == current_user] msclog.log( "MSC", "conflicting_apps", ','.join(other_users_apps + my_apps)) if other_users_apps: detailText = NSLocalizedString( u"Other logged in users are using the following " "applications. Try updating later when they are no longer " "in use:\n\n%s", u"Other Users Blocking Apps Running detail") alert = NSAlert.alertWithMessageText_defaultButton_alternateButton_otherButton_informativeTextWithFormat_( NSLocalizedString( u"Applications in use by others", u"Other Users Blocking Apps Running title"), NSLocalizedString(u"OK", u'OKButtonText'), nil, nil, u"%@", detailText % u'\n'.join(set(other_users_apps)) ) else: detailText = NSLocalizedString( u"You must quit the following applications before " "proceeding with installation or removal:\n\n%s", u"Blocking Apps Running detail") alert = NSAlert.alertWithMessageText_defaultButton_alternateButton_otherButton_informativeTextWithFormat_( NSLocalizedString( u"Conflicting applications running", u"Blocking Apps Running title"), NSLocalizedString(u"OK", u"OK button title"), nil, nil, u"%@", detailText % u'\n'.join(set(my_apps)) ) alert.beginSheetModalForWindow_modalDelegate_didEndSelector_contextInfo_( self.window, self, self.blockingAppsRunningAlertDidEnd_returnCode_contextInfo_, nil) return True else: return False