コード例 #1
0
class TestConfigData(unittest.TestCase):
    def setUp(self):
        self.manager = ConfigManager(os.path.join(curdir, 'test.cfg'),
                                     os.path.join(curdir, 'test.yml'))

    def tearDown(self):
        self.manager = None

    def test_initial_load(self):
        self.assertEquals(self.manager.data._global_settings, expected_ini)

    def test_value_and_origin_from_ini(self):
        self.assertEquals(
            self.manager.get_config_value_and_origin('config_entry'),
            ('fromini', cfg_file))

    def test_value_from_ini(self):
        self.assertEquals(self.manager.get_config_value('config_entry'),
                          'fromini')

    def test_value_and_origin_from_alt_ini(self):
        self.assertEquals(
            self.manager.get_config_value_and_origin('config_entry',
                                                     cfile=cfg_file2),
            ('fromini2', cfg_file2))

    def test_value_from_alt_ini(self):
        self.assertEquals(
            self.manager.get_config_value('config_entry', cfile=cfg_file2),
            'fromini2')
コード例 #2
0
class TestConfigData(unittest.TestCase):
    def setUp(self):
        self.manager = ConfigManager(cfg_file,
                                     os.path.join(curdir, 'test.yml'))

    def tearDown(self):
        self.manager = None

    def test_initial_load(self):
        self.assertEquals(self.manager.data._global_settings, expected_ini)

    def test_ensure_type_list(self):
        self.assertIsInstance(ensure_type('a,b', 'list'), list)
        self.assertIsInstance(ensure_type(['a', 'b'], 'list'), list)

    def test_ensure_type_bool(self):
        self.assertIsInstance(ensure_type('yes', 'bool'), bool)
        self.assertIsInstance(ensure_type(True, 'bool'), bool)

    def test_ensure_type_int(self):
        self.assertIsInstance(ensure_type('10', 'int'), int)
        self.assertIsInstance(ensure_type(20, 'int'), int)

    def test_ensure_type_float(self):
        self.assertIsInstance(ensure_type('0.10', 'float'), float)
        self.assertIsInstance(ensure_type(0.2, 'float'), float)

    def test_find_ini_file(self):
        cur_config = os.environ['ANSIBLE_CONFIG']
        os.environ['ANSIBLE_CONFIG'] = cfg_file
        self.assertEquals(cfg_file, find_ini_config_file())
        os.environ['ANSIBLE_CONFIG'] = cur_config

    def test_resolve_path(self):
        self.assertEquals(os.path.join(curdir, 'test.yml'),
                          resolve_path('./test.yml', cfg_file))

    def test_resolve_path_cwd(self):
        self.assertEquals(os.path.join(os.getcwd(), 'test.yml'),
                          resolve_path('{{CWD}}/test.yml'))
        self.assertEquals(os.path.join(os.getcwd(), 'test.yml'),
                          resolve_path('./test.yml'))

    def test_get_config_dest(self):
        pass

    def test_value_and_origin_from_ini(self):
        self.assertEquals(
            self.manager.get_config_value_and_origin('config_entry'),
            ('fromini', cfg_file))

    def test_value_from_ini(self):
        self.assertEquals(self.manager.get_config_value('config_entry'),
                          'fromini')

    def test_value_and_origin_from_alt_ini(self):
        self.assertEquals(
            self.manager.get_config_value_and_origin('config_entry',
                                                     cfile=cfg_file2),
            ('fromini2', cfg_file2))

    def test_value_from_alt_ini(self):
        self.assertEquals(
            self.manager.get_config_value('config_entry', cfile=cfg_file2),
            'fromini2')

    def test_value_and_origin_from_yaml(self):
        pass

    def test_value_from_yaml(self):
        pass

    def test_value_and_origin_from_alt_yaml(self):
        pass

    def test_value_from_alt_yaml(self):
        pass

    def test_config_type_bool(self):
        pass

    def test_config_type_list(self):
        pass

    def test_config_default(self):
        pass

    def test_deprecated_config(self):
        pass

    def test_deprecated_config_source(self):
        pass

    def test_multi_precedence(self):
        pass

    def test_initialize_plugin_config(self):
        pass

    def test_update_config_data(self):
        pass
コード例 #3
0
ファイル: test_manager.py プロジェクト: awiddersheim/ansible
class TestConfigData(unittest.TestCase):

    def setUp(self):
        self.manager = ConfigManager(cfg_file, os.path.join(curdir, 'test.yml'))

    def tearDown(self):
        self.manager = None

    def test_initial_load(self):
        self.assertEquals(self.manager.data._global_settings, expected_ini)

    def test_ensure_type_list(self):
        self.assertIsInstance(ensure_type('a,b', 'list'), list)
        self.assertIsInstance(ensure_type(['a', 'b'], 'list'), list)

    def test_ensure_type_bool(self):
        self.assertIsInstance(ensure_type('yes', 'bool'), bool)
        self.assertIsInstance(ensure_type(True, 'bool'), bool)

    def test_ensure_type_int(self):
        self.assertIsInstance(ensure_type('10', 'int'), int)
        self.assertIsInstance(ensure_type(20, 'int'), int)

    def test_ensure_type_float(self):
        self.assertIsInstance(ensure_type('0.10', 'float'), float)
        self.assertIsInstance(ensure_type(0.2, 'float'), float)

    def test_find_ini_file(self):
        cur_config = os.environ['ANSIBLE_CONFIG']
        os.environ['ANSIBLE_CONFIG'] = cfg_file
        self.assertEquals(cfg_file, find_ini_config_file())
        os.environ['ANSIBLE_CONFIG'] = cur_config

    def test_resolve_path(self):
        self.assertEquals(os.path.join(curdir, 'test.yml'), resolve_path('./test.yml', cfg_file))

    def test_resolve_path_cwd(self):
        self.assertEquals(os.path.join(os.getcwd(), 'test.yml'), resolve_path('{{CWD}}/test.yml'))
        self.assertEquals(os.path.join(os.getcwd(), 'test.yml'), resolve_path('./test.yml'))

    def test_get_config_dest(self):
        pass

    def test_value_and_origin_from_ini(self):
        self.assertEquals(self.manager.get_config_value_and_origin('config_entry'), ('fromini', cfg_file))

    def test_value_from_ini(self):
        self.assertEquals(self.manager.get_config_value('config_entry'), 'fromini')

    def test_value_and_origin_from_alt_ini(self):
        self.assertEquals(self.manager.get_config_value_and_origin('config_entry', cfile=cfg_file2), ('fromini2', cfg_file2))

    def test_value_from_alt_ini(self):
        self.assertEquals(self.manager.get_config_value('config_entry', cfile=cfg_file2), 'fromini2')

    def test_value_and_origin_from_yaml(self):
        pass

    def test_value_from_yaml(self):
        pass

    def test_value_and_origin_from_alt_yaml(self):
        pass

    def test_value_from_alt_yaml(self):
        pass

    def test_config_type_bool(self):
        pass

    def test_config_type_list(self):
        pass

    def test_config_default(self):
        pass

    def test_deprecated_config(self):
        pass

    def test_deprecated_config_source(self):
        pass

    def test_multi_precedence(self):
        pass

    def test_initialize_plugin_config(self):
        pass

    def test_update_config_data(self):
        pass
コード例 #4
0
    # ssh TODO: remove
    ssh_executable=('ansible_ssh_executable', ),
    ssh_common_args=('ansible_ssh_common_args', ),
    sftp_extra_args=('ansible_sftp_extra_args', ),
    scp_extra_args=('ansible_scp_extra_args', ),
    ssh_extra_args=('ansible_ssh_extra_args', ),
    ssh_transfer_method=('ansible_ssh_transfer_method', ),

    # docker TODO: remove
    docker_extra_args=('ansible_docker_extra_args', ),

    # become
    become=('ansible_become', ),
    become_method=('ansible_become_method', ),
    become_user=('ansible_become_user', ),
    become_pass=('ansible_become_password', 'ansible_become_pass'),
    become_exe=('ansible_become_exe', ),
    become_flags=('ansible_become_flags', ),
)

# POPULATE SETTINGS FROM CONFIG ###
config = ConfigManager()

# Generate constants from config
for setting in config.get_configuration_definitions():
    set_constant(setting, config.get_config_value(setting, variables=vars()))

for warn in config.WARNINGS:
    _warning(warn)
コード例 #5
0
ファイル: loader.py プロジェクト: orange888/infrastructure
class Loader:
    def __init__(self):
        self._config = ConfigManager()
        self._loader = DataLoader()
        self._file_vault_secrets = {}
        self._inventory: InventoryManager = None
        self._variables: VariableManager = None

    def _load_file_vault_secrets(self, password_file_path=None):
        if password_file_path is None:
            password_file_path = self._config.get_config_value(
                "DEFAULT_VAULT_PASSWORD_FILE")

        password_file = Path(password_file_path)

        if password_file.name in self._file_vault_secrets:
            return

        if not password_file.is_file():
            raise FileNotFoundError(password_file)

        self._file_vault_secrets[password_file.name] = get_file_vault_secret(
            filename=password_file, loader=self._loader)
        self._file_vault_secrets[password_file.name].load()
        self._loader.set_vault_secrets([
            (password_file.name, self._file_vault_secrets[password_file.name])
        ])

    def _get_inventory(self, source=None):
        if source is None:
            source = self._config.get_config_value("DEFAULT_HOST_LIST")

        if self._inventory is None:
            self._inventory = InventoryManager(loader=self._loader,
                                               sources=source)
        else:
            sources = source if isinstance(source, list) else [source]
            (self._inventory.parse_source(s) for s in sources)
            self._inventory.reconcile_inventory()

        return self._inventory

    def _get_variables(self, source=None):
        self._load_file_vault_secrets()
        if self._variables is None:
            self._variables = VariableManager(
                loader=self._loader, inventory=self._get_inventory(source))

        return self._variables

    def get_hosts(self, pattern='all', source=None):
        return self._get_inventory(source).get_hosts(pattern)

    def get_host(self, hostname, source=None):
        return self._get_inventory(source).get_host(hostname)

    def get_vars(self, host, data={}):
        play = Play.load(data,
                         loader=self._loader,
                         variable_manager=self._get_variables())
        return self._get_variables().get_vars(host=host, play=play)