# map crash database names to CrashDatabase implementations and URLs

default = 'ubuntu'

def get_oem_project():
    '''Determine OEM project name from Distribution Channel Descriptor

    Return None if it cannot be determined or does not exist.
    '''
    try:
        dcd = open('/var/lib/ubuntu_dist_channel').read()
        if dcd.startswith('canonical-oem-'):
            return dcd.split('-')[2]
    except IOError:
        return None

databases = {
    'ubuntu': {
        'impl': 'launchpad',
        'bug_pattern_url': 'http://people.canonical.com/~ubuntu-archive/bugpatterns/bugpatterns.xml',
        'dupdb_url': 'http://people.canonical.com/~ubuntu-archive/apport-duplicates',
        'distro': 'ubuntu',
        'problem_types': ['Bug', 'Package'],
        'escalation_tag': 'bugpattern-needed',
        'escalated_tag': 'bugpattern-written',
    },
    'canonical-oem': {
        'impl': 'launchpad',
        'bug_pattern_url': 'http://people.canonical.com/~ubuntu-archive/bugpatterns/bugpatterns.xml',
        'project': get_oem_project(),
    },
    'snap-github': {
        'impl': 'github',
        'repository_owner': None,
        'repository_name': None,
        'github_app_id': 'bb74ee9268c04aeca4fa',
        'labels': ['apport'],
    },
    'ubuntu-wsl': {
        'impl': 'github',
        'repository_owner': 'ubuntu',
        'repository_name': 'WSL',
        'github_app_id': 'bb74ee9268c04aeca4fa',
        'labels': ['apport'],
    },
    'debug': {
        # for debugging
        'impl': 'memory',
        'bug_pattern_url': 'file:///tmp/bugpatterns.xml',
        'distro': 'debug'
    },
}
