本文整理汇总了Python中munkicommon.display_error函数的典型用法代码示例。如果您正苦于以下问题:Python display_error函数的具体用法?Python display_error怎么用?Python display_error使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了display_error函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: getpkgkeys
def getpkgkeys(pkgnames):
"""
Given a list of receipt names, bom file names, or package ids,
gets a list of pkg_keys from the pkgs table in our database.
"""
# open connection and cursor to our database
conn = sqlite3.connect(packagedb)
curs = conn.cursor()
# check package names to make sure they're all in the database,
# build our list of pkg_keys
pkgerror = False
pkgkeyslist = []
for pkg in pkgnames:
values_t = (pkg,)
munkicommon.display_debug1("select pkg_key from pkgs where pkgid = %s", pkg)
pkg_keys = curs.execute("select pkg_key from pkgs where pkgid = ?", values_t).fetchall()
if not pkg_keys:
# try pkgname
munkicommon.display_debug1("select pkg_key from pkgs where pkgname = %s", pkg)
pkg_keys = curs.execute("select pkg_key from pkgs where pkgname = ?", values_t).fetchall()
if not pkg_keys:
munkicommon.display_error("%s not found in database.", pkg)
pkgerror = True
else:
for row in pkg_keys:
# only want first column
pkgkeyslist.append(row[0])
if pkgerror:
pkgkeyslist = []
curs.close()
conn.close()
munkicommon.display_debug1("pkgkeys: %s", pkgkeyslist)
return pkgkeyslist
开发者ID:kcrawford,项目名称:munki,代码行数:35,代码来源:removepackages.py
示例2: add_to_keychain_list
def add_to_keychain_list(keychain_path):
'''Ensure the keychain is in the search path. Returns True if we
added the keychain to the list.'''
# we use *foo to expand a list of keychain paths
# pylint: disable=W0142
added_keychain = False
output = security('list-keychains', '-d', 'user')
# Split the output and strip it of whitespace and leading/trailing
# quotes, the result are absolute paths to keychains
# Preserve the order in case we need to append to them
search_keychains = [x.strip().strip('"')
for x in output.split('\n') if x.strip()]
if not keychain_path in search_keychains:
# Keychain is not in the search paths
munkicommon.display_debug2('Adding client keychain to search path...')
search_keychains.append(keychain_path)
try:
output = security(
'list-keychains', '-d', 'user', '-s', *search_keychains)
if output:
munkicommon.display_debug2(output)
added_keychain = True
except SecurityError, err:
munkicommon.display_error(
'Could not add keychain %s to keychain list: %s',
keychain_path, err)
added_keychain = False
开发者ID:henrydobson,项目名称:munki,代码行数:29,代码来源:keychain.py
示例3: remove_from_keychain_list
def remove_from_keychain_list(keychain_path):
'''Remove keychain from the list of keychains'''
# we use *foo to expand a list of keychain paths
# pylint: disable=W0142
output = security('list-keychains', '-d', 'user')
# Split the output and strip it of whitespace and leading/trailing
# quotes, the result are absolute paths to keychains
# Preserve the order in case we need to append to them
search_keychains = [x.strip().strip('"')
for x in output.split('\n') if x.strip()]
if keychain_path in search_keychains:
# Keychain is in the search path
munkicommon.display_debug1(
'Removing %s from search path...', keychain_path)
filtered_keychains = [keychain for keychain in search_keychains
if keychain != keychain_path]
try:
output = security(
'list-keychains', '-d', 'user', '-s', *filtered_keychains)
if output:
munkicommon.display_debug2(output)
except SecurityError, err:
munkicommon.display_error(
'Could not set new keychain list: %s', err)
开发者ID:henrydobson,项目名称:munki,代码行数:26,代码来源:keychain.py
示例4: downloadAvailableUpdates
def downloadAvailableUpdates():
'''Downloads the available Apple updates using our local
filtered sucatalog. Returns True if successful, False otherwise.'''
msg = "Downloading available Apple Software Updates..."
if munkicommon.munkistatusoutput:
munkistatus.message(msg)
munkistatus.detail("")
munkistatus.percent(-1)
munkicommon.log(msg)
else:
munkicommon.display_status(msg)
# use our filtered local catalog
catalogpath = os.path.join(swupdCacheDir(),
'content/catalogs/local_download.sucatalog')
if not os.path.exists(catalogpath):
munkicommon.display_error(
'Missing local Software Update catalog at %s', catalogpath)
return False
catalogURL = 'file://localhost' + urllib2.quote(catalogpath)
# get the OS version
osvers = int(os.uname()[2].split('.')[0])
if osvers == 9:
retcode = leopardDownloadAvailableUpdates(catalogURL)
else:
retcode = run_softwareupdate(['--CatalogURL', catalogURL, '-d', '-a'])
if retcode:
# there was an error
munkicommon.display_error("softwareupdate error: %s" % retcode)
return False
return True
开发者ID:zdw,项目名称:munki,代码行数:33,代码来源:appleupdates.py
示例5: read_signed_profile
def read_signed_profile(profile_path):
'''Attempts to read a (presumably) signed profile.'''
# filed for future reference:
# openssl smime -inform DER -verify -in Signed.mobileconfig
# -noverify -out Unsigned.mobileconfig
# will strip the signing from a signed profile
# this might be a better approach
# from: http://apple.stackexchange.com/questions/105981/
# how-do-i-view-or-verify-signed-mobileconfig-files-using-terminal
# but... we're going to use an Apple-provided tool instead.
cmd = ['/usr/bin/security', 'cms', '-D', '-i', profile_path]
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = proc.communicate()
if proc.returncode:
# security cms -D couldn't decode the file
munkicommon.display_error(
'Error reading profile %s: %s' % (profile_path, stderr))
return {}
try:
return FoundationPlist.readPlistFromString(stdout)
except FoundationPlist.NSPropertyListSerializationException, err:
# not a valid plist
munkicommon.display_error(
'Error reading profile %s: %s' % (profile_path, err))
return {}
开发者ID:CLCMacTeam,项目名称:bigfiximport,代码行数:28,代码来源:profiles.py
示例6: cacheAppleSUScatalog
def cacheAppleSUScatalog():
'''Caches a local copy of the current Apple SUS catalog.'''
osvers = int(os.uname()[2].split('.')[0])
munkisuscatalog = munkicommon.pref('SoftwareUpdateServerURL')
prefs_catalogURL = getSoftwareUpdatePref('CatalogURL')
if munkisuscatalog:
# defined in Munki's prefs? use that
catalogURL = munkisuscatalog
elif prefs_catalogURL:
# defined via MCX or
# in /Library/Preferences/com.apple.SoftwareUpdate.plist
catalogURL = prefs_catalogURL
elif osvers == 9:
# default catalog for Leopard
catalogURL = 'http://swscan.apple.com/content/catalogs/others/index-leopard.merged-1.sucatalog'
elif osvers == 10:
# default catalog for Snow Leopard
catalogURL = 'http://swscan.apple.com/content/catalogs/others/index-leopard-snowleopard.merged-1.sucatalog'
elif osvers == 11:
# default catalog for Lion
catalogURL = 'http://swscan.apple.com/content/catalogs/others/index-lion-snowleopard-leopard.merged-1.sucatalog.gz'
else:
munkicommon.display_error(
'Can\'t determine Software Update CatalogURL for Darwin '
'version %s', osvers)
return -1
if not os.path.exists(swupdCacheDir(temp=False)):
try:
os.makedirs(swupdCacheDir(temp=False))
except OSError, oserr:
raise ReplicationError(oserr)
开发者ID:zdw,项目名称:munki,代码行数:31,代码来源:appleupdates.py
示例7: config_profile_info
def config_profile_info(ignore_cache=False):
'''Returns a dictionary representing the output of `profiles -C -o`'''
global CONFIG_PROFILE_INFO
if not profiles_supported():
CONFIG_PROFILE_INFO = {}
return CONFIG_PROFILE_INFO
if not ignore_cache and CONFIG_PROFILE_INFO is not None:
return CONFIG_PROFILE_INFO
output_plist = os.path.join(
tempfile.mkdtemp(dir=munkicommon.tmpdir()), 'profiles')
cmd = ['/usr/bin/profiles', '-C', '-o', output_plist]
proc = subprocess.Popen(
cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
proc.communicate()
if proc.returncode != 0:
munkicommon.display_error(
'Could not obtain configuration profile info: %s' % proc.stderr)
CONFIG_PROFILE_INFO = {}
else:
try:
CONFIG_PROFILE_INFO = FoundationPlist.readPlist(
output_plist + '.plist')
except BaseException, err:
munkicommon.display_error(
'Could not read configuration profile info: %s' % err)
CONFIG_PROFILE_INFO = {}
finally:
开发者ID:WhiskeyShivers,项目名称:munki,代码行数:27,代码来源:profiles.py
示例8: pem_cert_sha1_digest
def pem_cert_sha1_digest(cert_path):
'''Return SHA1 digest for pem certificate at path'''
try:
raw_bytes = pem_cert_bytes(cert_path)
return hashlib.sha1(raw_bytes).hexdigest().upper()
except BaseException, err:
munkicommon.display_error('Error reading %s: %s' % (cert_path, err))
return None
开发者ID:henrydobson,项目名称:munki,代码行数:8,代码来源:keychain.py
示例9: read_profile
def read_profile(profile_path):
'''Reads a profile.'''
try:
return FoundationPlist.readPlist(profile_path)
except FoundationPlist.NSPropertyListSerializationException:
# possibly a signed profile
return read_signed_profile(profile_path)
except BaseException, err:
munkicommon.display_error(
'Error reading profile %s: %s' % (profile_path, err))
return {}
开发者ID:CLCMacTeam,项目名称:bigfiximport,代码行数:11,代码来源:profiles.py
示例10: read_file
def read_file(pathname):
'''Return the contents of pathname as a string'''
try:
fileobj = open(pathname, mode='r')
data = fileobj.read()
fileobj.close()
return data
except (OSError, IOError), err:
munkicommon.display_error(
'Could not read %s: %s', pathname, err)
return ''
开发者ID:henrydobson,项目名称:munki,代码行数:11,代码来源:keychain.py
示例11: make_client_keychain
def make_client_keychain(cert_info=None):
'''Builds a client cert keychain from existing client certs'''
if not cert_info:
# just grab data from Munki's preferences/defaults
cert_info = get_munki_client_cert_info()
client_cert_path = cert_info['client_cert_path']
client_key_path = cert_info['client_key_path']
site_urls = cert_info['site_urls']
if not client_cert_path:
# no client, so nothing to do
munkicommon.display_debug1(
'No client cert info provided, '
'so no client keychain will be created.')
return
else:
munkicommon.display_debug1('Client cert path: %s', client_cert_path)
munkicommon.display_debug1('Client key path: %s', client_key_path)
# to do some of the following options correctly, we need to be root
# and have root's home.
# check to see if we're root
if os.geteuid() != 0:
munkicommon.display_error(
'Can\'t make our client keychain unless we are root!')
return
# switch HOME if needed to root's home
original_home = os.environ.get('HOME')
if original_home:
os.environ['HOME'] = os.path.expanduser('~root')
keychain_pass = (
munkicommon.pref('KeychainPassword') or DEFAULT_KEYCHAIN_PASSWORD)
abs_keychain_path = get_keychain_path()
if os.path.exists(abs_keychain_path):
os.unlink(abs_keychain_path)
if not os.path.exists(os.path.dirname(abs_keychain_path)):
os.makedirs(os.path.dirname(abs_keychain_path))
# create a new keychain
munkicommon.display_debug1('Creating client keychain...')
try:
output = security('create-keychain',
'-p', keychain_pass, abs_keychain_path)
if output:
munkicommon.display_debug2(output)
except SecurityError, err:
munkicommon.display_error(
'Could not create keychain %s: %s', abs_keychain_path, err)
if original_home:
# switch it back
os.environ['HOME'] = original_home
return
开发者ID:henrydobson,项目名称:munki,代码行数:53,代码来源:keychain.py
示例12: removepackages
def removepackages(
pkgnames,
forcedeletebundles=False,
listfiles=False,
rebuildpkgdb=False,
noremovereceipts=False,
noupdateapplepkgdb=False,
):
"""
Our main function, called by installer.py to remove items based on
receipt info.
"""
if pkgnames == []:
munkicommon.display_error("You must specify at least one package to remove!")
return -2
if not initDatabase(forcerebuild=rebuildpkgdb):
munkicommon.display_error("Could not initialize receipt database.")
return -3
pkgkeyslist = getpkgkeys(pkgnames)
if len(pkgkeyslist) == 0:
return -4
if munkicommon.stopRequested():
return -128
removalpaths = getpathstoremove(pkgkeyslist)
if munkicommon.stopRequested():
return -128
if removalpaths:
if listfiles:
removalpaths.sort()
for item in removalpaths:
print "/" + item.encode("UTF-8")
else:
if munkicommon.munkistatusoutput:
munkistatus.disableStopButton()
removeFilesystemItems(removalpaths, forcedeletebundles)
else:
munkicommon.display_status_minor("Nothing to remove.")
if munkicommon.munkistatusoutput:
time.sleep(2)
if not listfiles:
if not noremovereceipts:
removeReceipts(pkgkeyslist, noupdateapplepkgdb)
if munkicommon.munkistatusoutput:
munkistatus.enableStopButton()
munkicommon.display_status_minor("Package removal complete.")
time.sleep(2)
return 0
开发者ID:kcrawford,项目名称:munki,代码行数:53,代码来源:removepackages.py
示例13: write_file
def write_file(stringdata, pathname):
'''Writes stringdata to pathname.
Returns the pathname on success, empty string on failure.'''
try:
fileobject = open(pathname, mode='w')
fileobject.write(stringdata)
fileobject.close()
return pathname
except (OSError, IOError), err:
munkicommon.display_error('Couldn\'t write %s to %s: %s',
stringdata, pathname, err)
return ''
开发者ID:henrydobson,项目名称:munki,代码行数:12,代码来源:keychain.py
示例14: remove_profile
def remove_profile(identifier):
'''Removes a profile with the given identifier. Returns True on success,
False otherwise'''
cmd = ['/usr/bin/profiles', '-Rp', identifier]
proc = subprocess.Popen(
cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
proc.communicate()
if proc.returncode != 0:
munkicommon.display_error(
'Profile %s removal failed: %s' % (identifier, proc.stderr))
return False
remove_profile_receipt(identifier)
return True
开发者ID:CLCMacTeam,项目名称:bigfiximport,代码行数:13,代码来源:profiles.py
示例15: install_profile
def install_profile(profile_path):
'''Installs a profile. Returns True on success, False otherwise'''
cmd = ['/usr/bin/profiles', '-IF', profile_path]
proc = subprocess.Popen(
cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
proc.communicate()
if proc.returncode != 0:
munkicommon.display_error(
'Profile %s installation failed: %s'
% (os.path.basename(profile_path), proc.stderr))
return False
record_profile_receipt(profile_path)
return True
开发者ID:eigerman,项目名称:munki-1,代码行数:13,代码来源:profiles.py
示例16: main
def main():
'''Used when calling removepackages.py directly from the command line.'''
# command-line options
p = optparse.OptionParser()
p.set_usage('''Usage: %prog [options] package_id ...''')
p.add_option('--forcedeletebundles', '-f', action='store_true',
help='Delete bundles even if they aren\'t empty.')
p.add_option('--listfiles', '-l', action='store_true',
help='''List the filesystem objects to be removed,
but do not actually remove them.''')
p.add_option('--rebuildpkgdb', action='store_true',
help='Force a rebuild of the internal package database.')
p.add_option('--noremovereceipts', action='store_true',
help='''Do not remove receipts and boms from
/Library/Receipts and update internal package
database.''')
p.add_option('--noupdateapplepkgdb', action='store_true',
help='''Do not update Apple\'s package database.
If --noremovereceipts is also given, this is implied''')
p.add_option('--munkistatusoutput', '-m', action='store_true',
help='Output is formatted for use with MunkiStatus.')
p.add_option('--verbose', '-v', action='count', default=1,
help='''More verbose output. May be specified multiple
times.''')
# Get our options and our package names
options, pkgnames = p.parse_args()
# check to see if we're root
if os.geteuid() != 0:
munkicommon.display_error("You must run this as root!")
exit(-1)
# set the munkicommon globals
munkicommon.munkistatusoutput = options.munkistatusoutput
munkicommon.verbose = options.verbose
if options.munkistatusoutput:
pkgcount = len(pkgnames)
munkistatus.message("Removing %s packages..." % pkgcount)
munkistatus.detail("")
retcode = removepackages(pkgnames,
forcedeletebundles=options.forcedeletebundles,
listfiles=options.listfiles,
rebuildpkgdb=options.rebuildpkgdb,
noremovereceipts=options.noremovereceipts,
noupdateapplepkgdb=options.noupdateapplepkgdb)
if options.munkistatusoutput:
munkistatus.quit()
exit(retcode)
开发者ID:brianmickelson,项目名称:munki,代码行数:51,代码来源:removepackages.py
示例17: debug_output
def debug_output():
'''Debugging output for keychain'''
try:
munkicommon.display_debug1('***Keychain list***')
munkicommon.display_debug1(security('list-keychains', '-d', 'user'))
munkicommon.display_debug1('***Default keychain info***')
munkicommon.display_debug1(security('default-keychain', '-d', 'user'))
keychainfile = get_keychain_path()
if os.path.exists(keychainfile):
munkicommon.display_debug1('***Info for %s***' % keychainfile)
munkicommon.display_debug1(
security('show-keychain-info', keychainfile))
except SecurityError, err:
munkicommon.display_error(err)
开发者ID:henrydobson,项目名称:munki,代码行数:14,代码来源:keychain.py
示例18: __init__
def __init__(self):
'''Adds CA certs as trusted to System keychain.
Unlocks the munki.keychain if it exists.
Makes sure the munki.keychain is in the search list.
Creates a new client keychain if needed.'''
add_ca_certs_to_system_keychain()
self.keychain_path = get_keychain_path()
if client_certs_exist() and os.path.exists(self.keychain_path):
# we have client certs; we should build a keychain using them
try:
os.unlink(self.keychain_path)
except (OSError, IOError), err:
munkicommon.display_error(
'Could not remove pre-existing %s: %s'
% (self.keychain_path, err))
开发者ID:henrydobson,项目名称:munki,代码行数:15,代码来源:keychain.py
示例19: getAvailableUpdates
def getAvailableUpdates():
'''Returns a list of product IDs of available Apple updates'''
msg = "Checking for available Apple Software Updates..."
if munkicommon.munkistatusoutput:
munkistatus.message(msg)
munkistatus.detail("")
munkistatus.percent(-1)
munkicommon.log(msg)
else:
munkicommon.display_status(msg)
applicable_updates = os.path.join(swupdCacheDir(),
'ApplicableUpdates.plist')
if os.path.exists(applicable_updates):
# remove any old item
try:
os.unlink(applicable_updates)
except (OSError, IOError):
pass
# use our locally-cached Apple catalog
catalogpath = os.path.join(swupdCacheDir(),
'content/catalogs/apple_index.sucatalog')
catalogURL = 'file://localhost' + urllib2.quote(catalogpath)
su_options = ['--CatalogURL', catalogURL, '-l', '-f', applicable_updates]
retcode = run_softwareupdate(su_options)
if retcode:
# there was an error
osvers = int(os.uname()[2].split('.')[0])
if osvers == 9:
# always a non-zero retcode on Leopard
pass
else:
munkicommon.display_error("softwareupdate error: %s" % retcode)
return []
if os.path.exists(applicable_updates):
try:
updatelist = FoundationPlist.readPlist(applicable_updates)
if updatelist:
results_array = updatelist.get('phaseResultsArray', [])
return [item['productKey'] for item in results_array
if 'productKey' in item]
except FoundationPlist.NSPropertyListSerializationException:
return []
return []
开发者ID:zdw,项目名称:munki,代码行数:47,代码来源:appleupdates.py
示例20: install_profile
def install_profile(profile_path, profile_identifier):
'''Installs a profile. Returns True on success, False otherwise'''
cmd = ['/usr/bin/profiles', '-IF', profile_path]
proc = subprocess.Popen(
cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
proc.communicate()
if proc.returncode != 0:
munkicommon.display_error(
'Profile %s installation failed: %s'
% (os.path.basename(profile_path), proc.stderr))
return False
if profile_identifier:
record_profile_receipt(profile_path, profile_identifier)
else:
munkicommon.display_warning(
'No identifier for profile %s; cannot record an installation '
'receipt.' % os.path.basename(profile_path))
return True
开发者ID:CLCMacTeam,项目名称:bigfiximport,代码行数:18,代码来源:profiles.py
注:本文中的munkicommon.display_error函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论