예제 #1
0
 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
예제 #2
0
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"
예제 #3
0
    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))
예제 #4
0
 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)
예제 #5
0
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()