Example #1
0
    def do_save_raw_crash(boto_connection, raw_crash, dumps, crash_id):
        if dumps is None:
            dumps = MemoryDumpsMapping()
        raw_crash_as_string = boto_connection._convert_mapping_to_string(
            raw_crash
        )
        boto_connection.submit(
            crash_id,
            "raw_crash",
            raw_crash_as_string
        )
        dump_names_as_string = boto_connection._convert_list_to_string(
            dumps.keys()
        )
        boto_connection.submit(
            crash_id,
            "dump_names",
            dump_names_as_string
        )

        # we don't know what type of dumps mapping we have.  We do know,
        # however, that by calling the memory_dump_mapping method, we will
        # get a MemoryDumpMapping which is exactly what we need.
        dumps = dumps.as_memory_dumps_mapping()
        for dump_name, dump in dumps.iteritems():
            if dump_name in (None, '', 'upload_file_minidump'):
                dump_name = 'dump'
            boto_connection.submit(crash_id, dump_name, dump)
Example #2
0
    def save_raw_crash(self, raw_crash, dumps, crash_id):
        """Save raw crash data to S3 bucket.

        A raw crash consists of the raw crash annotations and all the dumps that came in
        the crash report. We need to save the raw crash file, a dump names file listing
        the dumps that came in the crash report, and then each of the dumps.

        """
        if dumps is None:
            dumps = MemoryDumpsMapping()

        path = build_keys("raw_crash", crash_id)[0]
        raw_crash_data = dict_to_str(raw_crash).encode("utf-8")
        self.conn.save_file(path, raw_crash_data)

        path = build_keys("dump_names", crash_id)[0]
        dump_names_data = list_to_str(dumps.keys()).encode("utf-8")
        self.conn.save_file(path, dump_names_data)

        # We don't know what type of dumps mapping we have. We do know,
        # however, that by calling the memory_dump_mapping method, we will get
        # a MemoryDumpMapping which is exactly what we need.
        dumps = dumps.as_memory_dumps_mapping()
        for dump_name, dump in dumps.items():
            if dump_name in (None, "", "upload_file_minidump"):
                dump_name = "dump"
            path = build_keys(dump_name, crash_id)[0]
            self.conn.save_file(path, dump)
Example #3
0
    def do_save_raw_crash(boto_connection, raw_crash, dumps, crash_id):
        if dumps is None:
            dumps = MemoryDumpsMapping()
        raw_crash_as_string = boto_connection._convert_mapping_to_string(
            raw_crash
        )
        boto_connection.submit(
            crash_id,
            "raw_crash",
            raw_crash_as_string
        )
        dump_names_as_string = boto_connection._convert_list_to_string(
            dumps.keys()
        )
        boto_connection.submit(
            crash_id,
            "dump_names",
            dump_names_as_string
        )

        # we don't know what type of dumps mapping we have.  We do know,
        # however, that by calling the memory_dump_mapping method, we will
        # get a MemoryDumpMapping which is exactly what we need.
        dumps = dumps.as_memory_dumps_mapping()
        for dump_name, dump in dumps.iteritems():
            if dump_name in (None, '', 'upload_file_minidump'):
                dump_name = 'dump'
            boto_connection.submit(crash_id, dump_name, dump)
 def test_simple(self):
     mdm = MemoryDumpsMapping(
         {"upload_file_minidump": b"binary_data", "moar_dump": b"more binary data"}
     )
     assert mdm.as_memory_dumps_mapping() is mdm
     fdm = mdm.as_file_dumps_mapping("a", "/tmp", "dump")
     assert fdm.as_file_dumps_mapping() is fdm
     assert fdm.as_memory_dumps_mapping() == mdm
 def test_simple(self):
     mdm = MemoryDumpsMapping({
         'upload_file_minidump': b'binary_data',
         'moar_dump': b'more binary data',
     })
     assert mdm.as_memory_dumps_mapping() is mdm
     fdm = mdm.as_file_dumps_mapping('a', '/tmp', 'dump')
     assert fdm.as_file_dumps_mapping() is fdm
     assert fdm.as_memory_dumps_mapping() == mdm
Example #6
0
 def test_simple(self):
     mdm = MemoryDumpsMapping({
         'upload_file_minidump': 'binary_data',
         'moar_dump': "more binary data",
     })
     ok_(mdm.as_memory_dumps_mapping() is mdm)
     fdm = mdm.as_file_dumps_mapping('a', '/tmp', 'dump')
     ok_(fdm.as_file_dumps_mapping() is fdm)
     eq_(fdm.as_memory_dumps_mapping(), mdm)
Example #7
0
 def save_raw_crash(self, raw_crash, dumps, crash_id):
     if dumps is None:
         dumps = MemoryDumpsMapping()
     files = {
         crash_id + self.config.json_file_suffix: json.dumps(raw_crash)
     }
     in_memory_dumps = dumps.as_memory_dumps_mapping()
     files.update(dict((self._get_dump_file_name(crash_id, fn), dump)
                       for fn, dump in in_memory_dumps.iteritems()))
     self._save_files(crash_id, files)
Example #8
0
 def save_raw_crash(self, raw_crash, dumps, crash_id):
     if dumps is None:
         dumps = MemoryDumpsMapping()
     files = {
         crash_id + self.config.json_file_suffix: json.dumps(raw_crash)
     }
     in_memory_dumps = dumps.as_memory_dumps_mapping()
     files.update(
         dict((self._get_dump_file_name(crash_id, fn), dump)
              for fn, dump in in_memory_dumps.iteritems()))
     self._save_files(crash_id, files)
Example #9
0
 def save_raw_crash(self, raw_crash, dumps, crash_id):
     if dumps is None:
         dumps = MemoryDumpsMapping()
     files = {
         crash_id + self.config.json_file_suffix: json.dumps(raw_crash).encode('utf-8')
     }
     in_memory_dumps = dumps.as_memory_dumps_mapping()
     files.update({
         self._get_dump_file_name(crash_id, fn): dump
         for fn, dump in in_memory_dumps.items()
     })
     self._save_files(crash_id, files)
Example #10
0
 def save_raw_crash(self, raw_crash, dumps, crash_id):
     if dumps is None:
         dumps = MemoryDumpsMapping()
     files = {
         crash_id + self.config.json_file_suffix: json.dumps(raw_crash).encode('utf-8')
     }
     in_memory_dumps = dumps.as_memory_dumps_mapping()
     files.update({
         self._get_dump_file_name(crash_id, fn): dump
         for fn, dump in in_memory_dumps.items()
     })
     self._save_files(crash_id, files)
Example #11
0
 def test_simple(self):
     mdm = MemoryDumpsMapping({
         'upload_file_minidump': 'binary_data',
         'moar_dump': "more binary data",
     })
     ok_(mdm.as_memory_dumps_mapping() is mdm)
     fdm = mdm.as_file_dumps_mapping(
         'a',
         '/tmp',
         'dump'
     )
     ok_(fdm.as_file_dumps_mapping() is fdm)
     eq_(fdm.as_memory_dumps_mapping(), mdm)
 def test_simple(self):
     mdm = MemoryDumpsMapping({
         'upload_file_minidump': 'binary_data',
         'moar_dump': "more binary data",
     })
     assert mdm.as_memory_dumps_mapping() is mdm
     fdm = mdm.as_file_dumps_mapping(
         'a',
         '/tmp',
         'dump'
     )
     assert fdm.as_file_dumps_mapping() is fdm
     assert fdm.as_memory_dumps_mapping() == mdm
Example #13
0
    def do_save_raw_crash(boto_connection, raw_crash, dumps, crash_id):
        if dumps is None:
            dumps = MemoryDumpsMapping()

        raw_crash_data = boto_connection._convert_mapping_to_string(raw_crash).encode('utf-8')
        boto_connection.submit(crash_id, 'raw_crash', raw_crash_data)

        dump_names_data = boto_connection._convert_list_to_string(dumps.keys()).encode('utf-8')
        boto_connection.submit(crash_id, 'dump_names', dump_names_data)

        # We don't know what type of dumps mapping we have. We do know,
        # however, that by calling the memory_dump_mapping method, we will get
        # a MemoryDumpMapping which is exactly what we need.
        dumps = dumps.as_memory_dumps_mapping()
        for dump_name, dump in iteritems(dumps):
            if dump_name in (None, '', 'upload_file_minidump'):
                dump_name = 'dump'
            boto_connection.submit(crash_id, dump_name, dump)
Example #14
0
    def do_save_raw_crash(conn, raw_crash, dumps, crash_id):
        if dumps is None:
            dumps = MemoryDumpsMapping()

        raw_crash_data = conn._convert_mapping_to_string(raw_crash).encode(
            "utf-8")
        conn.submit(crash_id, "raw_crash", raw_crash_data)

        dump_names_data = conn._convert_list_to_string(
            dumps.keys()).encode("utf-8")
        conn.submit(crash_id, "dump_names", dump_names_data)

        # We don't know what type of dumps mapping we have. We do know,
        # however, that by calling the memory_dump_mapping method, we will get
        # a MemoryDumpMapping which is exactly what we need.
        dumps = dumps.as_memory_dumps_mapping()
        for dump_name, dump in iteritems(dumps):
            if dump_name in (None, "", "upload_file_minidump"):
                dump_name = "dump"
            conn.submit(crash_id, dump_name, dump)
Example #15
0
    def do_save_raw_crash(boto_connection, raw_crash, dumps, crash_id):
        if dumps is None:
            dumps = MemoryDumpsMapping()

        raw_crash_data = boto_connection._convert_mapping_to_string(
            raw_crash).encode('utf-8')
        boto_connection.submit(crash_id, 'raw_crash', raw_crash_data)

        dump_names_data = boto_connection._convert_list_to_string(
            dumps.keys()).encode('utf-8')
        boto_connection.submit(crash_id, 'dump_names', dump_names_data)

        # We don't know what type of dumps mapping we have. We do know,
        # however, that by calling the memory_dump_mapping method, we will get
        # a MemoryDumpMapping which is exactly what we need.
        dumps = dumps.as_memory_dumps_mapping()
        for dump_name, dump in iteritems(dumps):
            if dump_name in (None, '', 'upload_file_minidump'):
                dump_name = 'dump'
            boto_connection.submit(crash_id, dump_name, dump)