def METHOD_NAME(self, submission, tmpdir, mode="list"):
    try:
        with tarfile.open(submission) as tar:
            tar.extractall(tmpdir.name)
            with open(os.path.join(
                      tmpdir.name, 'submission.json')) as f:
                data = json.load(f)
        for result in data['results']:
            result['plugin'] = 'shell'  # Required so default to shell
            result['summary'] = result['name']
            # 'id' field in json file only contains partial id
            result['id'] = result.get('full_id', result['id'])
            if "::" not in result['id']:
                result['id'] = CERTIFICATION_NS + result['id']
            if mode == "list":
                self.job_list.append(JobDefinition(result))
            elif mode == "dict":
                self.job_dict[result['id']] = JobDefinition(result)
        for result in data['resource-results']:
            result['plugin'] = 'resource'
            result['summary'] = result['name']
            # 'id' field in json file only contains partial id
            result['id'] = result.get('full_id', result['id'])
            if "::" not in result['id']:
                result['id'] = CERTIFICATION_NS + result['id']
            if mode == "list":
                self.job_list.append(JobDefinition(result))
            elif mode == "dict":
                self.job_dict[result['id']] = JobDefinition(result)
        for result in data['attachment-results']:
            result['plugin'] = 'attachment'
            result['summary'] = result['name']
            # 'id' field in json file only contains partial id
            result['id'] = result.get('full_id', result['id'])
            if "::" not in result['id']:
                result['id'] = CERTIFICATION_NS + result['id']
            if mode == "list":
                self.job_list.append(JobDefinition(result))
            elif mode == "dict":
                self.job_dict[result['id']] = JobDefinition(result)
        for cat_id, cat_name in data['category_map'].items():
            if mode == "list":
                self.category_list.append(
                    CategoryUnit({'id': cat_id, 'name': cat_name}))
            elif mode == "dict":
                self.category_dict[cat_id] = CategoryUnit(
                    {'id': cat_id, 'name': cat_name})
    except OSError as e:
        raise SystemExit(e)
    except KeyError as e:
        self._output_potential_action(str(e))
        raise SystemExit(e)
    return data['title']