Пример #1
0
    def configure_parsers(self):
        self.root_parser = auto(RootParser)

        parsers = ListInstanceProvider()
        parsers.add(auto(TerraformParserConfig))
        parsers.add(auto(HelmfileParserConfig))
        parsers.add(auto(ConfigGeneratorParserConfig))
        self.sub_parsers = parsers
Пример #2
0
    def configure_parsers(self):
        self.root_parser = auto(RootParser)

        parsers = ListInstanceProvider()
        parsers.add(auto(InventoryParserConfig))
        parsers.add(auto(TerraformParserConfig))
        parsers.add(auto(PackerParserConfig))
        parsers.add(auto(SshParserConfig))
        parsers.add(auto(PlaybookParserConfig))
        parsers.add(auto(CommandParserConfig))
        parsers.add(auto(SyncParserConfig))
        parsers.add(auto(HelmfileParserConfig))
        parsers.add(auto(ConfigGeneratorParserConfig))
        self.sub_parsers = parsers
Пример #3
0
    def __init__(self, argv=None):
        super(AppContainer, self).__init__()

        self.argv = instance(argv)

        self.configure_parsers()

        self.kompos_config = cache(auto(KomposConfig))
        self.terraform_runner = auto(TerraformRunner)
        self.helmfile_runner = auto(HelmfileRunner)
        self.config_runner = auto(ConfigGeneratorRunner)

        # bind the command executor
        self.execute = auto(Executor)

        self.configure()
        self.kompos_config.validate_version()
Пример #4
0
def test_constructor_wiring():
    class Foo(object):
        def __init__(self, bar):
            self.bar = bar

    class Bar(object):
        def __init__(self, baz):
            self.baz = baz

    def baz(a_string):
        return a_string

    container = Container()
    container.foo = auto(Foo)
    container.bar = auto(Bar)
    container.baz = instance(baz)
    container.a_baz_dependency = instance('a baz thing')

    assert container.foo.bar.baz(container.a_baz_dependency) == 'a baz thing'
Пример #5
0
def test_list_instance_provider():
    class Foo(object):
        def __init__(self, numbers):
            self.numbers = numbers

        def sum(self):
            return sum(self.numbers)

    container = Container()
    container.foo = auto(Foo)
    container.numbers = ListInstanceProvider(
        lambda c: 1,
        instance(2),
        lambda c: c.three
    )
    container.three = instance(3)

    assert container.foo.sum() == 6
Пример #6
0
    def configure_inventory(self):
        self.inventory_runner = auto(InventoryRunner)
        self.base_inventory_generator = cache(auto(InventoryGenerator))
        self.inventory_generator = cache(auto(CachedInventoryGenerator))
        self.ansible_inventory = cache(auto(AnsibleInventory))

        inventory_generators = ListInstanceProvider()
        inventory_generators.add(auto(DirInventoryGenerator))
        inventory_generators.add(auto(ShellInventoryGenerator))
        inventory_generators.add(auto(PluginInventoryGenerator))

        self.inventory_generators = inventory_generators

        # inventory generator plugins
        inventory_plugins = ListInstanceProvider()
        inventory_plugins.add(instance(ec2))
        inventory_plugins.add(instance(legacy_pcs))
        inventory_plugins.add(instance(cns))
        inventory_plugins.add(instance(azr))
        inventory_plugins.add(instance(skms))
        self.inventory_plugins = inventory_plugins
Пример #7
0
    def __init__(self, argv=None):
        super(AppContainer, self).__init__()

        self.argv = instance(argv)

        self.configure_parsers()
        self.configure_inventory()

        self.terraform_runner = auto(TerraformRunner)
        self.packer_runner = auto(PackerRunner)
        self.ssh_runner = auto(SshRunner)
        self.play_runner = auto(PlaybookRunner)
        self.run_runner = auto(CommandRunner)
        self.sync_runner = auto(SyncRunner)
        self.helmfile_runner = auto(HelmfileRunner)
        self.config_runner = auto(ConfigGeneratorRunner)

        self.cluster_config = cache(auto(ClusterConfig))
        self.ops_config = cache(auto(OpsConfig))
        self.cluster_config_generator = auto(ClusterConfigGenerator)
        self.ssh_config_generator = auto(SshConfigGenerator)
        self.template = auto(Template)

        # bind the command executor
        self.execute = auto(Executor)

        self.configure()
        self.validate_ops_version()