def test_gce_config(self): self.config['mycluster']['cloud'] = { "provider": "google", "gce_client_id": "***fill in your data here***", "gce_client_secret": "***fill in your data here***", "gce_project_id": "test-id"} validator = ConfigValidator(self.config) validator.validate()
def test_invalid_config(self): ''' Invalid configuration ''' # check wrong file path config = copy.deepcopy(self.config) config["mycluster"]["login"]["user_key_public"] = "/tmp/elastic-test" validator = ConfigValidator(config) self.assertRaises(Invalid, validator.validate) # check wrong url config = copy.deepcopy(config) config["mycluster"]["setup"]["ec2_host"] = "www.elasticluster" validator = ConfigValidator(config) self.assertRaises(Invalid, validator.validate) # check all mandatory properties optional = [ "frontend_groups", "compute_groups", "frontend_nodes", "compute_nodes", "security_group", "flavor", "image_id", "playbook_path", "frontend", "compute" ] config = copy.deepcopy(config) for cluster, sections in config.iteritems(): for section, properties in sections.iteritems(): for property, value in properties.iteritems(): if property not in optional: config_tmp = copy.deepcopy(config) del config_tmp[cluster][section][property] validator = ConfigValidator(config_tmp) self.assertRaises(Invalid, validator.validate) # check all node properties mandatory = ["flavor", "image_id", "security_group"] config = copy.deepcopy(config) for node, properties in config["mycluster"]["nodes"].iteritems(): for property in properties.iterkeys(): if property in mandatory: config_tmp = copy.deepcopy(config) del config_tmp["mycluster"]["nodes"][node][property] validator = ConfigValidator(config_tmp) self.assertRaises(Invalid, validator.validate)
def test_invalid_ec2_vpc_config(self): """ Invalid EC2 VPC configuration """ # VPC without cluster network_ids definition config = copy.deepcopy(self.config) self.assertEqual(config["mycluster"]["cloud"]["provider"], "ec2_boto") config["mycluster"]["cloud"]["vpc"] = "vpc-c0ffee" if "network_ids" in config["mycluster"]["cluster"]: del config["mycluster"]["cluster"]["network_ids"] validator = ConfigValidator(config) self.assertRaises(Invalid, validator.validate) # network_ids definition without a VPC config = copy.deepcopy(self.config) self.assertEqual(config["mycluster"]["cloud"]["provider"], "ec2_boto") config["mycluster"]["nodes"]["frontend"]["network_ids"] = "subnet-deadbeef" if "vpc" in config["mycluster"]["cloud"]: del config["mycluster"]["cloud"]["vpc"] validator = ConfigValidator(config) self.assertRaises(Invalid, validator.validate)
def test_valid_config(self): ''' Valid configuration ''' validator = ConfigValidator(self.config) validator.validate()