From 5c6eb170878cefa12f717a62c31f7228d440e61e Mon Sep 17 00:00:00 2001 From: Koren Lev Date: Tue, 10 Oct 2017 18:08:39 +0300 Subject: release 1.1 for euphrates Change-Id: Iddc0e0148db7c72458b7fcdfcb7664e4aa609be0 Signed-off-by: Koren Lev --- app/api/responders/resource/environment_configs.py | 160 +++++++++++---------- 1 file changed, 87 insertions(+), 73 deletions(-) (limited to 'app/api/responders/resource/environment_configs.py') diff --git a/app/api/responders/resource/environment_configs.py b/app/api/responders/resource/environment_configs.py index 90a1adf..f54bea7 100644 --- a/app/api/responders/resource/environment_configs.py +++ b/app/api/responders/resource/environment_configs.py @@ -52,38 +52,38 @@ class EnvironmentConfigs(ResponderBase): "mysql": { "name": self.require(str, mandatory=True), "host": self.require(str, + mandatory=True, validate=DataValidate.REGEX, - requirement=[regex.IP, regex.HOSTNAME], - mandatory=True), + requirement=[regex.IP, regex.HOSTNAME]), "pwd": self.require(str, mandatory=True), "port": self.require(int, - True, - DataValidate.REGEX, - regex.PORT, - mandatory=True), + mandatory=True, + convert_to_type=True, + validate=DataValidate.REGEX, + requirement=regex.PORT), "user": self.require(str, mandatory=True) }, "OpenStack": { "name": self.require(str, mandatory=True), "admin_token": self.require(str, mandatory=True), "host": self.require(str, + mandatory=True, validate=DataValidate.REGEX, - requirement=[regex.IP, regex.HOSTNAME], - mandatory=True), + requirement=[regex.IP, regex.HOSTNAME]), "port": self.require(int, - True, + mandatory=True, + convert_to_type=True, validate=DataValidate.REGEX, - requirement=regex.PORT, - mandatory=True), + requirement=regex.PORT), "pwd": self.require(str, mandatory=True), "user": self.require(str, mandatory=True) }, "CLI": { "name": self.require(str, mandatory=True), "host": self.require(str, + mandatory=True, validate=DataValidate.REGEX, - requirement=[regex.IP, regex.HOSTNAME], - mandatory=True), + requirement=[regex.IP, regex.HOSTNAME]), "user": self.require(str, mandatory=True), "pwd": self.require(str), "key": self.require(str, @@ -93,76 +93,78 @@ class EnvironmentConfigs(ResponderBase): "AMQP": { "name": self.require(str, mandatory=True), "host": self.require(str, + mandatory=True, validate=DataValidate.REGEX, - requirement=[regex.IP, regex.HOSTNAME], - mandatory=True), + requirement=[regex.IP, regex.HOSTNAME]), "pwd": self.require(str, mandatory=True), "port": self.require(int, - True, + mandatory=True, + convert_to_type=True, validate=DataValidate.REGEX, - requirement=regex.PORT, - mandatory=True), + requirement=regex.PORT), "user": self.require(str, mandatory=True) }, "Monitoring": { "name": self.require(str, mandatory=True), "config_folder": self.require(str, + mandatory=True, validate=DataValidate.REGEX, - requirement=regex.PATH, - mandatory=True), + requirement=regex.PATH), "provision": self.require(str, + mandatory=True, validate=DataValidate.LIST, - requirement=self.provision_types, - mandatory=True), + requirement=self.provision_types), "env_type": self.require(str, + mandatory=True, validate=DataValidate.LIST, - requirement=self.env_types, - mandatory=True), - "api_port": self.require(int, True, mandatory=True), + requirement=self.env_types), + "api_port": self.require(int, + mandatory=True, + convert_to_type=True), "rabbitmq_pass": self.require(str, mandatory=True), "rabbitmq_user": self.require(str, mandatory=True), "rabbitmq_port": self.require(int, - True, + mandatory=True, + convert_to_type=True, validate=DataValidate.REGEX, - requirement=regex.PORT, - mandatory=True), + requirement=regex.PORT), "ssh_port": self.require(int, - True, + convert_to_type=True, validate=DataValidate.REGEX, requirement=regex.PORT), "ssh_user": self.require(str), "ssh_password": self.require(str), "server_ip": self.require(str, + mandatory=True, validate=DataValidate.REGEX, - requirement=[regex.IP, regex.HOSTNAME], - mandatory=True), + requirement=[regex.IP, regex.HOSTNAME]), "server_name": self.require(str, mandatory=True), "type": self.require(str, + mandatory=True, validate=DataValidate.LIST, - requirement=self.monitoring_types, - mandatory=True) + requirement=self.monitoring_types) }, "NFV_provider": { "name": self.require(str, mandatory=True), "host": self.require(str, + mandatory=True, validate=DataValidate.REGEX, - requirement=[regex.IP, regex.HOSTNAME], - mandatory=True), + requirement=[regex.IP, regex.HOSTNAME]), "nfv_token": self.require(str, mandatory=True), "port": self.require(int, - True, - DataValidate.REGEX, - regex.PORT, - True), + mandatory=True, + convert_to_type=True, + validate=DataValidate.REGEX, + requirement=regex.PORT), "user": self.require(str, mandatory=True), "pwd": self.require(str, mandatory=True) }, "ACI": { "name": self.require(str, mandatory=True), "host": self.require(str, + mandatory=True, validate=DataValidate.REGEX, - requirement=[regex.IP, regex.HOSTNAME], - mandatory=True), + requirement=[regex.IP, regex.HOSTNAME]), "user": self.require(str, mandatory=True), "pwd": self.require(str, mandatory=True) } @@ -178,25 +180,24 @@ class EnvironmentConfigs(ResponderBase): filters_requirements = { "name": self.require(str), - "distribution": self.require(str, False, - DataValidate.LIST, - self.distributions), + "distribution": self.require(str, + validate=DataValidate.LIST, + requirement=self.distributions), "mechanism_drivers": self.require([str, list], - False, - DataValidate.LIST, - self.mechanism_drivers), - "type_drivers": self.require(str, False, - DataValidate.LIST, - self.type_drivers), + validate=DataValidate.LIST, + requirement=self.mechanism_drivers), + "type_drivers": self.require(str, + validate=DataValidate.LIST, + requirement=self.type_drivers), "user": self.require(str), - "listen": self.require(bool, True), - "scanned": self.require(bool, True), - "monitoring_setup_done": self.require(bool, True), - "operational": self.require(str, False, - DataValidate.LIST, - self.operational_values), - "page": self.require(int, True), - "page_size": self.require(int, True) + "listen": self.require(bool, convert_to_type=True), + "scanned": self.require(bool, convert_to_type=True), + "monitoring_setup_done": self.require(bool, convert_to_type=True), + "operational": self.require(str, + validate=DataValidate.LIST, + requirement=self.operational_values), + "page": self.require(int, convert_to_type=True), + "page_size": self.require(int, convert_to_type=True) } self.validate_query_data(filters, filters_requirements) @@ -237,24 +238,36 @@ class EnvironmentConfigs(ResponderBase): environment_config_requirement = { "app_path": self.require(str, mandatory=True), "configuration": self.require(list, mandatory=True), - "distribution": self.require(str, False, DataValidate.LIST, - self.distributions, True), + "distribution": self.require(str, + mandatory=True, + validate=DataValidate.LIST, + requirement=self.distributions), "distribution_version": self.require(str, mandatory=True), - "listen": self.require(bool, True, mandatory=True), + "listen": self.require(bool, + mandatory=True, + convert_to_type=True), "user": self.require(str), - "mechanism_drivers": self.require(list, False, DataValidate.LIST, - self.mechanism_drivers, True), + "mechanism_drivers": self.require(list, + mandatory=True, + validate=DataValidate.LIST, + requirement=self.mechanism_drivers), "name": self.require(str, mandatory=True), - "operational": self.require(str, True, DataValidate.LIST, - self.operational_values, mandatory=True), - "scanned": self.require(bool, True), + "operational": self.require(str, + mandatory=True, + convert_to_type=True, + validate=DataValidate.LIST, + requirement=self.operational_values), + "scanned": self.require(bool, convert_to_type=True), "last_scanned": self.require(str), "type": self.require(str, mandatory=True), - "type_drivers": self.require(str, False, DataValidate.LIST, - self.type_drivers, True), - "enable_monitoring": self.require(bool, True), - "monitoring_setup_done": self.require(bool, True), - "auth": self.require(dict) + "type_drivers": self.require(str, + mandatory=True, + validate=DataValidate.LIST, + requirement=self.type_drivers), + "enable_monitoring": self.require(bool, convert_to_type=True), + "monitoring_setup_done": self.require(bool, convert_to_type=True), + "auth": self.require(dict), + "aci_enabled": self.require(bool, convert_to_type=True) } self.validate_query_data(env_config, environment_config_requirement, @@ -292,7 +305,8 @@ class EnvironmentConfigs(ResponderBase): .format(env_config["name"])}, "201") - def validate_environment_config(self, configurations): + def validate_environment_config(self, configurations, + require_mandatory=True): configurations_of_names = {} validation = {"passed": True} if [config for config in configurations @@ -319,7 +333,7 @@ class EnvironmentConfigs(ResponderBase): "configuration for {0}".format(name) return validation configurations_of_names[name] = configs[0] - else: + elif require_mandatory: if name not in self.OPTIONAL_CONFIGURATIONS_NAMES: validation["passed"] = False validation['error_message'] = "configuration for {0} " \ -- cgit 1.2.3-korg