本文整理汇总了Python中subscription_manager.identity.ConsumerIdentity.existsAndValid方法的典型用法代码示例。如果您正苦于以下问题:Python ConsumerIdentity.existsAndValid方法的具体用法?Python ConsumerIdentity.existsAndValid怎么用?Python ConsumerIdentity.existsAndValid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类subscription_manager.identity.ConsumerIdentity
的用法示例。
在下文中一共展示了ConsumerIdentity.existsAndValid方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: validate_registration
# 需要导入模块: from subscription_manager.identity import ConsumerIdentity [as 别名]
# 或者: from subscription_manager.identity.ConsumerIdentity import existsAndValid [as 别名]
def validate_registration():
"""
Validate consumer registration by making a REST call
to the server. Updates the global 'registered' variable.
"""
global registered
registered = False
if ConsumerIdentity.existsAndValid():
consumer = ConsumerIdentity.read()
consumer_id = consumer.getConsumerId()
else:
return
try:
uep = UEP()
consumer = uep.getConsumer(consumer_id)
registered = (consumer is not None)
except GoneException:
registered = False
except RemoteServerException as e:
if e.code not in (http.NOT_FOUND, http.GONE):
log.warn(str(e))
raise
except Exception as e:
log.exception(str(e))
raise
示例2: _do_update
# 需要导入模块: from subscription_manager.identity import ConsumerIdentity [as 别名]
# 或者: from subscription_manager.identity.ConsumerIdentity import existsAndValid [as 别名]
def _do_update(self):
if not ConsumerIdentity.existsAndValid():
# we could in theory try to update the id in the
# case of it being bogus/corrupted, ala #844069,
# but that seems unneeded
return 0
from subscription_manager import managerlib
idcert = ConsumerIdentity.read()
uuid = idcert.getConsumerId()
consumer = self.uep.getConsumer(uuid)
# only write the cert if the serial has changed
if idcert.getSerialNumber() != consumer['idCert']['serial']['serial']:
log.debug('identity certificate changed, writing new one')
managerlib.persist_consumer_cert(consumer)
return 1
示例3: main
# 需要导入模块: from subscription_manager.identity import ConsumerIdentity [as 别名]
# 或者: from subscription_manager.identity.ConsumerIdentity import existsAndValid [as 别名]
def main(options, log):
if not ConsumerIdentity.existsAndValid():
log.error('Either the consumer is not registered or the certificates' +
' are corrupted. Certificate update using daemon failed.')
sys.exit(-1)
print _('Updating entitlement certificates & repositories')
try:
if options.autoheal:
actionclient = action_client.HealingActionClient()
else:
actionclient = action_client.ActionClient()
actionclient.update(options.autoheal)
for update_report in actionclient.update_reports:
# FIXME: make sure we don't get None reports
if update_report:
print update_report
except connection.ExpiredIdentityCertException, e:
log.critical(_("Your identity certificate has expired"))
raise e
示例4: _main
# 需要导入模块: from subscription_manager.identity import ConsumerIdentity [as 别名]
# 或者: from subscription_manager.identity.ConsumerIdentity import existsAndValid [as 别名]
def _main(options, log):
# Set default mainloop
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
# exit on SIGTERM, otherwise finally statements don't run (one explanation: http://stackoverflow.com/a/41840796)
# SIGTERM happens for example when systemd wants the service to stop
# without finally statements, we get confusing behavior (ex. see bz#1431659)
signal.signal(signal.SIGTERM, exit_on_signal)
cp_provider = inj.require(inj.CP_PROVIDER)
correlation_id = generate_correlation_id()
log.info('X-Correlation-ID: %s', correlation_id)
cp_provider.set_correlation_id(correlation_id)
if not ConsumerIdentity.existsAndValid():
log.error('Either the consumer is not registered or the certificates' +
' are corrupted. Certificate update using daemon failed.')
sys.exit(-1)
print(_('Updating entitlement certificates & repositories'))
cp = cp_provider.get_consumer_auth_cp()
cp.supports_resource(None) # pre-load supported resources; serves as a way of failing before locking the repos
try:
if options.autoheal:
actionclient = action_client.HealingActionClient()
else:
actionclient = action_client.ActionClient()
actionclient.update(options.autoheal)
for update_report in actionclient.update_reports:
# FIXME: make sure we don't get None reports
if update_report:
print(update_report)
except connection.ExpiredIdentityCertException as e:
log.critical(_("Your identity certificate has expired"))
raise e
except connection.GoneException as ge:
uuid = ConsumerIdentity.read().getConsumerId()
# This code is to prevent an errant 410 response causing consumer cert deletion.
#
# If a server responds with a 410, we want to very that it's not just a 410 http status, but
# also that the response is from candlepin, and include the right info about the consumer.
#
# A connection to the entitlement server could get an unintentional 410 response. A common
# cause for that kind of error would be a bug or crash or misconfiguration of a reverse proxy
# in front of candlepin. Most error codes we treat as temporary and transient, and they don't
# cause any action to be taken (aside from error handling). But since consumer deletion is tied
# to the 410 status code, and that is difficult to recover from, we try to be a little bit
# more paranoid about that case.
#
# So we look for both the 410 status, and the expected response body. If we get those
# then python-rhsm will create a GoneException that includes the deleted_id. If we get
# A GoneException and the deleted_id matches, then we actually delete the consumer.
#
# However... If we get a GoneException and it's deleted_id does not match the current
# consumer uuid, we do not delete the consumer. That would require using a valid consumer
# cert, but making a request for a different consumer uuid, so unlikely. Could register
# with --consumerid get there?
if ge.deleted_id == uuid:
log.critical("Consumer profile \"%s\" has been deleted from the server. Its local certificates will now be archived", uuid)
managerlib.clean_all_data()
log.critical("Certificates archived to '/etc/pki/consumer.old'. Contact your system administrator if you need more information.")
raise ge