Blame cloudinit/config/tests/test_disable_ec2_metadata.py

Packit Service a04d08
# This file is part of cloud-init. See LICENSE file for license information.
Packit Service a04d08
Packit Service a04d08
"""Tests cc_disable_ec2_metadata handler"""
Packit Service a04d08
Packit Service a04d08
import cloudinit.config.cc_disable_ec2_metadata as ec2_meta
Packit Service a04d08
Packit Service a04d08
from cloudinit.tests.helpers import CiTestCase, mock
Packit Service a04d08
Packit Service a04d08
import logging
Packit Service a04d08
Packit Service a04d08
LOG = logging.getLogger(__name__)
Packit Service a04d08
Packit Service a04d08
DISABLE_CFG = {'disable_ec2_metadata': 'true'}
Packit Service a04d08
Packit Service a04d08
Packit Service a04d08
class TestEC2MetadataRoute(CiTestCase):
Packit Service a04d08
Packit Service 751c4a
    @mock.patch('cloudinit.config.cc_disable_ec2_metadata.subp.which')
Packit Service 751c4a
    @mock.patch('cloudinit.config.cc_disable_ec2_metadata.subp.subp')
Packit Service a04d08
    def test_disable_ifconfig(self, m_subp, m_which):
Packit Service a04d08
        """Set the route if ifconfig command is available"""
Packit Service a04d08
        m_which.side_effect = lambda x: x if x == 'ifconfig' else None
Packit Service a04d08
        ec2_meta.handle('foo', DISABLE_CFG, None, LOG, None)
Packit Service a04d08
        m_subp.assert_called_with(
Packit Service a04d08
            ['route', 'add', '-host', '169.254.169.254', 'reject'],
Packit Service a04d08
            capture=False)
Packit Service a04d08
Packit Service 751c4a
    @mock.patch('cloudinit.config.cc_disable_ec2_metadata.subp.which')
Packit Service 751c4a
    @mock.patch('cloudinit.config.cc_disable_ec2_metadata.subp.subp')
Packit Service a04d08
    def test_disable_ip(self, m_subp, m_which):
Packit Service a04d08
        """Set the route if ip command is available"""
Packit Service a04d08
        m_which.side_effect = lambda x: x if x == 'ip' else None
Packit Service a04d08
        ec2_meta.handle('foo', DISABLE_CFG, None, LOG, None)
Packit Service a04d08
        m_subp.assert_called_with(
Packit Service a04d08
            ['ip', 'route', 'add', 'prohibit', '169.254.169.254'],
Packit Service a04d08
            capture=False)
Packit Service a04d08
Packit Service 751c4a
    @mock.patch('cloudinit.config.cc_disable_ec2_metadata.subp.which')
Packit Service 751c4a
    @mock.patch('cloudinit.config.cc_disable_ec2_metadata.subp.subp')
Packit Service a04d08
    def test_disable_no_tool(self, m_subp, m_which):
Packit Service a04d08
        """Log error when neither route nor ip commands are available"""
Packit Service a04d08
        m_which.return_value = None  # Find neither ifconfig nor ip
Packit Service a04d08
        ec2_meta.handle('foo', DISABLE_CFG, None, LOG, None)
Packit Service a04d08
        self.assertEqual(
Packit Service a04d08
            [mock.call('ip'), mock.call('ifconfig')], m_which.call_args_list)
Packit Service a04d08
        m_subp.assert_not_called()
Packit Service a04d08
Packit Service a04d08
# vi: ts=4 expandtab