|
Packit Service |
a04d08 |
# Copyright (C) 2014 Yahoo! Inc.
|
|
Packit Service |
a04d08 |
#
|
|
Packit Service |
a04d08 |
# This file is part of cloud-init. See LICENSE file for license information.
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
from cloudinit.config import cc_debug
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
from cloudinit import cloud
|
|
Packit Service |
a04d08 |
from cloudinit import distros
|
|
Packit Service |
a04d08 |
from cloudinit import helpers
|
|
Packit Service |
a04d08 |
from cloudinit import util
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
from cloudinit.sources import DataSourceNone
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
from cloudinit.tests.helpers import (FilesystemMockingTestCase, mock)
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
import logging
|
|
Packit Service |
a04d08 |
import shutil
|
|
Packit Service |
a04d08 |
import tempfile
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
LOG = logging.getLogger(__name__)
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
@mock.patch('cloudinit.distros.debian.read_system_locale')
|
|
Packit Service |
a04d08 |
class TestDebug(FilesystemMockingTestCase):
|
|
Packit Service |
a04d08 |
def setUp(self):
|
|
Packit Service |
a04d08 |
super(TestDebug, self).setUp()
|
|
Packit Service |
a04d08 |
self.new_root = tempfile.mkdtemp()
|
|
Packit Service |
a04d08 |
self.addCleanup(shutil.rmtree, self.new_root)
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
def _get_cloud(self, distro, metadata=None):
|
|
Packit Service |
a04d08 |
self.patchUtils(self.new_root)
|
|
Packit Service |
a04d08 |
paths = helpers.Paths({})
|
|
Packit Service |
a04d08 |
cls = distros.fetch(distro)
|
|
Packit Service |
a04d08 |
d = cls(distro, {}, paths)
|
|
Packit Service |
a04d08 |
ds = DataSourceNone.DataSourceNone({}, d, paths)
|
|
Packit Service |
a04d08 |
if metadata:
|
|
Packit Service |
a04d08 |
ds.metadata.update(metadata)
|
|
Packit Service |
a04d08 |
return cloud.Cloud(ds, paths, {}, d, None)
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
def test_debug_write(self, m_locale):
|
|
Packit Service |
a04d08 |
m_locale.return_value = 'en_US.UTF-8'
|
|
Packit Service |
a04d08 |
cfg = {
|
|
Packit Service |
a04d08 |
'abc': '123',
|
|
Packit Service |
a04d08 |
'c': u'\u20a0',
|
|
Packit Service |
a04d08 |
'debug': {
|
|
Packit Service |
a04d08 |
'verbose': True,
|
|
Packit Service |
a04d08 |
# Does not actually write here due to mocking...
|
|
Packit Service |
a04d08 |
'output': '/var/log/cloud-init-debug.log',
|
|
Packit Service |
a04d08 |
},
|
|
Packit Service |
a04d08 |
}
|
|
Packit Service |
a04d08 |
cc = self._get_cloud('ubuntu')
|
|
Packit Service |
a04d08 |
cc_debug.handle('cc_debug', cfg, cc, LOG, [])
|
|
Packit Service |
a04d08 |
contents = util.load_file('/var/log/cloud-init-debug.log')
|
|
Packit Service |
a04d08 |
# Some basic sanity tests...
|
|
Packit Service |
a04d08 |
self.assertNotEqual(0, len(contents))
|
|
Packit Service |
a04d08 |
for k in cfg.keys():
|
|
Packit Service |
a04d08 |
self.assertIn(k, contents)
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
def test_debug_no_write(self, m_locale):
|
|
Packit Service |
a04d08 |
m_locale.return_value = 'en_US.UTF-8'
|
|
Packit Service |
a04d08 |
cfg = {
|
|
Packit Service |
a04d08 |
'abc': '123',
|
|
Packit Service |
a04d08 |
'debug': {
|
|
Packit Service |
a04d08 |
'verbose': False,
|
|
Packit Service |
a04d08 |
# Does not actually write here due to mocking...
|
|
Packit Service |
a04d08 |
'output': '/var/log/cloud-init-debug.log',
|
|
Packit Service |
a04d08 |
},
|
|
Packit Service |
a04d08 |
}
|
|
Packit Service |
a04d08 |
cc = self._get_cloud('ubuntu')
|
|
Packit Service |
a04d08 |
cc_debug.handle('cc_debug', cfg, cc, LOG, [])
|
|
Packit Service |
a04d08 |
self.assertRaises(IOError,
|
|
Packit Service |
a04d08 |
util.load_file, '/var/log/cloud-init-debug.log')
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
# vi: ts=4 expandtab
|