def init(self, conf, force_deploy=False): logging.info("Chameleon baremetal provider") enoslib_conf = self.build_config(conf) _conf = Configuration.from_dictionnary(enoslib_conf) ecb = Ecb(_conf) roles, networks = ecb.init(force_deploy=force_deploy) return roles, networks
def chameleon(config, force, env=None, **kwargs): conf = CbConf.from_dictionnary(config["chameleon"]) provider = Cb(conf) roles, networks = provider.init(force_deploy=force) env["config"] = config env["roles"] = roles env["networks"] = networks env["context"] = "chameleon"
def test_programmatic(self): conf = Configuration.from_settings(key_name="test-key") conf.add_machine(roles=["test-role"], flavour="m1.tiny", number=1).add_network("api_network") conf.finalize() self.assertEqual(1, len(conf.machines)) self.assertEqual(1, len(conf.networks))
def test_from_dictionnary_minimal(self): d = { "key_name": "test-key", "resources": { "machines": [], "networks": [] } } conf = Configuration.from_dictionnary(d) self.assertEqual(constants.DEFAULT_IMAGE, conf.image) self.assertEqual(constants.DEFAULT_USER, conf.user) self.assertEqual(constants.DEFAULT_NAMESERVERS, conf.dns_nameservers)
provider_conf = { "key_name": "enos_matt", "resources": { "machines": [{ "roles": ["control"], "flavour": "compute_skylake", "number": 1, },{ "roles": ["compute"], "flavour": "compute_skylake", "number": 1, }], "networks": ["network_interface"] } } tc = { "enable": True, "default_delay": "20ms", "default_rate": "1gbit", } inventory = os.path.join(os.getcwd(), "hosts") conf = Configuration.from_dictionnary(provider_conf) provider = Chameleonbaremetal(conf) # provider.destroy() roles, networks = provider.init() generate_inventory(roles, networks, inventory, check_networks=True) emulate_network(roles, inventory, tc) validate_network(roles, inventory) provider.destroy()