本文整理汇总了Python中socorro.lib.util.DotDict.update方法的典型用法代码示例。如果您正苦于以下问题:Python DotDict.update方法的具体用法?Python DotDict.update怎么用?Python DotDict.update使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类socorro.lib.util.DotDict
的用法示例。
在下文中一共展示了DotDict.update方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: setup_mocked_s3_storage
# 需要导入模块: from socorro.lib.util import DotDict [as 别名]
# 或者: from socorro.lib.util.DotDict import update [as 别名]
def setup_mocked_s3_storage(
self,
executor=TransactionExecutor,
executor_for_gets=TransactionExecutor,
storage_class='BotoS3CrashStorage',
host='',
port=0,
resource_class=S3ConnectionContext,
**extra
):
config = DotDict({
'resource_class': resource_class,
'logger': mock.Mock(),
'host': host,
'port': port,
'access_key': 'this is the access key',
'secret_access_key': 'secrets',
'bucket_name': 'silliness',
'prefix': 'dev',
'calling_format': mock.Mock()
})
config.update(extra)
s3_conn = resource_class(config)
s3_conn._connect_to_endpoint = mock.Mock()
s3_conn._mocked_connection = s3_conn._connect_to_endpoint.return_value
s3_conn._calling_format.return_value = mock.Mock()
s3_conn._CreateError = mock.Mock()
s3_conn.ResponseError = mock.Mock()
s3_conn._open = mock.MagicMock()
return s3_conn
示例2: _create_basic_processed_crash
# 需要导入模块: from socorro.lib.util import DotDict [as 别名]
# 或者: from socorro.lib.util.DotDict import update [as 别名]
#.........这里部分代码省略.........
# ++++++++++++++++++++
# date transformations
processed_crash.date_processed = submitted_timestamp
# defaultCrashTime: must have crashed before date processed
submitted_timestamp_as_epoch = int(
time.mktime(submitted_timestamp.timetuple())
)
timestampTime = int(
raw_crash.get('timestamp', submitted_timestamp_as_epoch)
) # the old name for crash time
crash_time = int(
self._get_truncate_or_warn(
raw_crash,
'CrashTime',
processor_notes,
timestampTime,
10
)
)
processed_crash.crash_time = crash_time
if crash_time == submitted_timestamp_as_epoch:
processor_notes.append(
"WARNING: No 'client_crash_date' "
"could be determined from the raw_crash"
)
# StartupTime: must have started up some time before crash
startupTime = int(raw_crash.get('StartupTime', crash_time))
# InstallTime: must have installed some time before startup
installTime = int(raw_crash.get('InstallTime', startupTime))
processed_crash.client_crash_date = datetime.datetime.fromtimestamp(
crash_time,
UTC
)
processed_crash.install_age = crash_time - installTime
processed_crash.uptime = max(0, crash_time - startupTime)
try:
last_crash = int(raw_crash.SecondsSinceLastCrash)
except:
last_crash = None
processed_crash.last_crash = last_crash
# TODO: not sure how to reimplemnt this
#if crash_id in self.priority_job_set:
#processor_notes.append('Priority Job')
#self.priority_job_set.remove(crash_id)
# can't get report id because we don't have the database here
#reportId = processed_crash["id"]
processed_crash.dump = ''
try:
processed_crash.ReleaseChannel = \
raw_crash.ReleaseChannel
except KeyError:
processed_crash.ReleaseChannel = 'unknown'
if self.config.collect_addon:
#logger.debug("collecting Addons")
# formerly 'insertAdddonsIntoDatabase'
addons_as_a_list_of_tuples = self._process_list_of_addons(
raw_crash,
processor_notes
)
processed_crash.addons = addons_as_a_list_of_tuples
if self.config.collect_crash_process:
#logger.debug("collecting Crash Process")
# formerly insertCrashProcess
processed_crash.update(
self._add_process_type_to_processed_crash(raw_crash)
)
processed_crash.addons_checked = None
try:
addons_checked_txt = raw_crash.EMCheckCompatibility.lower()
processed_crash.addons_checked = False
if addons_checked_txt == 'true':
processed_crash.addons_checked = True
except KeyError:
pass # leaving it as None if not in the document
if int(raw_crash.get('PluginHang', False)):
processed_crash.hangid = 'fake-' + uuid
else:
processed_crash.hangid = raw_crash.get('HangID', None)
if int(raw_crash.get('Hang', False)):
processed_crash.hang_type = 1
elif int(raw_crash.get('PluginHang', False)):
processed_crash.hang_type = -1
elif processed_crash.hangid:
processed_crash.hang_type = -1
else:
processed_crash.hang_type = 0
processed_crash.java_stack_trace = \
raw_crash.setdefault('JavaStackTrace', None)
return processed_crash
示例3: convert_raw_crash_to_processed_crash
# 需要导入模块: from socorro.lib.util import DotDict [as 别名]
# 或者: from socorro.lib.util.DotDict import update [as 别名]
def convert_raw_crash_to_processed_crash(self, raw_crash, raw_dump):
""" This function is run only by a worker thread.
Given a job, fetch a thread local database connection and the json
document. Use these to create the record in the 'reports' table,
then start the analysis of the dump file.
input parameters:
"""
try:
self.quit_check()
crash_id = raw_crash.uuid
processor_notes = []
processed_crash = DotDict()
processed_crash.uuid = raw_crash.uuid
processed_crash.success = False
started_timestamp = self._log_job_start(crash_id)
#self.config.logger.debug('about to apply rules')
self.raw_crash_transform_rule_system.apply_all_rules(raw_crash,
self)
#self.config.logger.debug('done applying transform rules')
try:
submitted_timestamp = datetimeFromISOdateString(
raw_crash.submitted_timestamp
)
except KeyError:
submitted_timestamp = dateFromOoid(crash_id)
# formerly the call to 'insertReportIntoDatabase'
processed_crash_update = self._create_basic_processed_crash(
crash_id,
raw_crash,
submitted_timestamp,
started_timestamp,
processor_notes
)
processed_crash.update(processed_crash_update)
temp_dump_pathname = self._get_temp_dump_pathname(
crash_id,
raw_dump
)
try:
#logger.debug('about to doBreakpadStackDumpAnalysis')
processed_crash_update_dict = \
self._do_breakpad_stack_dump_analysis(
crash_id,
temp_dump_pathname,
processed_crash.hang_type,
processed_crash.java_stack_trace,
submitted_timestamp,
processor_notes
)
processed_crash.update(processed_crash_update_dict)
finally:
self._cleanup_temp_file(temp_dump_pathname)
processed_crash.topmost_filenames = "|".join(
processed_crash.get('topmost_filenames', [])
)
try:
processed_crash.Winsock_LSP = raw_crash.Winsock_LSP
except KeyError:
pass # if it's not in the original raw_crash,
# it does get into the jsonz
#except (KeyboardInterrupt, SystemExit):
#self.config.logger.info("quit request detected")
#raise
except Exception, x:
self.config.logger.warning(
'Error while processing %s: %s',
crash_id,
str(x),
exc_info=True
)
processor_notes.append(str(x))