Current File : //lib/python2.7/site-packages/cloudinit/apport.py
# Copyright (C) 2017 Canonical Ltd.
#
# This file is part of cloud-init. See LICENSE file for license information.

'''Cloud-init apport interface'''

try:
    from apport.hookutils import (
        attach_file, attach_root_command_outputs, root_command_output)
    has_apport = True
except ImportError:
    has_apport = False


KNOWN_CLOUD_NAMES = [
    'AliYun',
    'AltCloud',
    'Amazon - Ec2',
    'Azure',
    'Bigstep',
    'Brightbox',
    'CloudSigma',
    'CloudStack',
    'DigitalOcean',
    'E24Cloud',
    'GCE - Google Compute Engine',
    'Exoscale',
    'Hetzner Cloud',
    'IBM - (aka SoftLayer or BlueMix)',
    'LXD',
    'MAAS',
    'NoCloud',
    'OpenNebula',
    'OpenStack',
    'Oracle',
    'OVF',
    'RbxCloud - (HyperOne, Rootbox, Rubikon)',
    'OpenTelekomCloud',
    'Scaleway',
    'SmartOS',
    'VMware',
    'ZStack',
    'Other'
]

# Potentially clear text collected logs
CLOUDINIT_LOG = '/var/log/cloud-init.log'
CLOUDINIT_OUTPUT_LOG = '/var/log/cloud-init-output.log'
USER_DATA_FILE = '/var/lib/cloud/instance/user-data.txt'  # Optional


def attach_cloud_init_logs(report, ui=None):
    '''Attach cloud-init logs and tarfile from 'cloud-init collect-logs'.'''
    attach_root_command_outputs(report, {
        'cloud-init-log-warnings':
            'egrep -i "warn|error" /var/log/cloud-init.log',
        'cloud-init-output.log.txt': 'cat /var/log/cloud-init-output.log'})
    root_command_output(
        ['cloud-init', 'collect-logs', '-t', '/tmp/cloud-init-logs.tgz'])
    attach_file(report, '/tmp/cloud-init-logs.tgz', 'logs.tgz')


def attach_hwinfo(report, ui=None):
    '''Optionally attach hardware info from lshw.'''
    prompt = (
        'Your device details (lshw) may be useful to developers when'
        ' addressing this bug, but gathering it requires admin privileges.'
        ' Would you like to include this info?')
    if ui and ui.yesno(prompt):
        attach_root_command_outputs(report, {'lshw.txt': 'lshw'})


def attach_cloud_info(report, ui=None):
    '''Prompt for cloud details if available.'''
    if ui:
        prompt = 'Is this machine running in a cloud environment?'
        response = ui.yesno(prompt)
        if response is None:
            raise StopIteration  # User cancelled
        if response:
            prompt = ('Please select the cloud vendor or environment in which'
                      ' this instance is running')
            response = ui.choice(prompt, KNOWN_CLOUD_NAMES)
            if response:
                report['CloudName'] = KNOWN_CLOUD_NAMES[response[0]]
            else:
                report['CloudName'] = 'None'


def attach_user_data(report, ui=None):
    '''Optionally provide user-data if desired.'''
    if ui:
        prompt = (
            'Your user-data or cloud-config file can optionally be provided'
            ' from {0} and could be useful to developers when addressing this'
            ' bug. Do you wish to attach user-data to this bug?'.format(
                USER_DATA_FILE))
        response = ui.yesno(prompt)
        if response is None:
            raise StopIteration  # User cancelled
        if response:
            attach_file(report, USER_DATA_FILE, 'user_data.txt')


def add_bug_tags(report):
    '''Add any appropriate tags to the bug.'''
    if 'JournalErrors' in report.keys():
        errors = report['JournalErrors']
        if 'Breaking ordering cycle' in errors:
            report['Tags'] = 'systemd-ordering'


def add_info(report, ui):
    '''This is an entry point to run cloud-init's apport functionality.

    Distros which want apport support will have a cloud-init package-hook at
    /usr/share/apport/package-hooks/cloud-init.py which defines an add_info
    function and returns the result of cloudinit.apport.add_info(report, ui).
    '''
    if not has_apport:
        raise RuntimeError(
            'No apport imports discovered. Apport functionality disabled')
    attach_cloud_init_logs(report, ui)
    attach_hwinfo(report, ui)
    attach_cloud_info(report, ui)
    attach_user_data(report, ui)
    add_bug_tags(report)
    return True

# vi: ts=4 expandtab
blog

blog

Casibom Casino – Güvenilir Online Casino Giriş Adresi.4680

Casibom Casino – Güvenilir Online Casino Giriş Adresi ▶️ OYNAMAK Содержимое Casibom Casino Hakkında Genel Bilgiler Güvenlik ve Güvenilirlik Casibom Casino’da Güvenliği Nasıl Garantiedir? Şifreleme ve Güvenlik Protokolleri Casibom Casino’da Oynayabileceğiniz Oyunlar casibom , en güvenilir online casino sitelerinden biridir. Güvenli ve hızlı bir giriş deneyimi sunar. Casibom giriş sayfasından …

Read More »

Официальный Сайт Играть в Онлайн Казино Pinco.3744 (2)

Пинко Казино Официальный Сайт – Играть в Онлайн Казино Pinco ▶️ ИГРАТЬ Содержимое Удобство и Безопасность в Казино Pinco Возможности и Бонусы Бонусы для новых игроков Преимущества игроков В современном мире интернета и технологий, казино стали одним из самых популярных способов развлечения и заработка. В этом тексте мы будем говорить …

Read More »

Casinos en ligne légitimes pour les joueurs français.388

Casinos en ligne légitimes pour les joueurs français ▶️ JOUER Содержимое Les avantages de jouer dans un casino en ligne légitime Comment choisir un casino en ligne fiable et sérésé Les règles et les lois régissant les casinos en ligne en France Conseils pour jouer de manière responsable dans un …

Read More »

1win — официальный сайт букмекерской конторы 1вин.1812

1win — официальный сайт букмекерской конторы 1вин ▶️ ИГРАТЬ Содержимое Официальный сайт букмекерской конторы 1вин Быстрый доступ к ставкам и линиям Преимущества быстрого доступа Преимущества и функции официального сайта 1вин Большой выбор ставок В мире ставок и азарта 1win – это имя, которое ассоциируется с надежностью, быстротой и комфортной игрой. …

Read More »

Mostbet onlayn kazino O‘zbekistonda xavfsizlik va litsenziya.121

Mostbet onlayn kazino O‘zbekistonda – xavfsizlik va litsenziya ▶️ O’YNANG Содержимое Mostbet onlayn kazinoning O‘zbekistondagi litsenziyasi Litsenziya haqida ma’lumot Xavfsizlik choralarining amalga oshirilishi Xavfsizlik choralarining turlari Xavfsizlik choralarini bajarishning afzalliklari Onlayn kazinoda moliyaviy operatsiyalar xavfsizligi Moliyaviy operatsiyalar xavfsizligi texnologiyalari Foydalanuvchilar uchun maslahatlar Mostbet onlayn kazinosining O‘zbekiston bozorida ishtiroki Mostbet onlayn …

Read More »

Mostbet onlayn kazino O‘zbekistonda mobil ilova.393

Mostbet onlayn kazino O‘zbekistonda – mobil ilova ▶️ O’YNANG Содержимое Mostbet mobil ilovasining afzalliklari Mostbet onlayn kazinoda o’yinlar va bonuslar Mostbet mobil ilovasini O‘zbekistonda yuklab olish va o’rnatish Mostbet uz kirish imkoniyati bilan, O‘zbekistonda yashovchi iste’molchilar endi o‘z sevimli kazino o‘yinlarini onlayn rejimda o‘ynashlari mumkin. Kazino online o‘yinlari dunyosi juda …

Read More »

8d25650162e5

Noxwin Gambling enterprise Canada ️ Rating C$a hundred Welcome Extra Blogs Safer, Prompt, and you will Legitimate Casino Financial Options for 2024 Exclusive Crypto Now offers A primary area of amount to your organization is the on the internet gaming world in the China and you can Europe. Video slots …

Read More »

Unique Casino (Avis 2025) Bonus 200% jusqu’à 500.1713

Unique Casino Avis 2025 Profitez d’un Bonus Exclusif de 200% Jusqu’à 500€ ▶️ JOUER Содержимое Unique Casino (Avis 2025) : Découvrez l’Expérience Ultime Bonus Exclusif : 200% Jusqu’à 500€ Pourquoi Choisir Unique Casino en 2025 ? Jeux de Casino Variés et Passionnants Sécurité et Fiabilité à Toute Épreuve Support Client …

Read More »