Exemplo n.º 1
0
    def validate_set(self, dict_key_value):
        user_attr = 'admin_user_name'
        passwd_attr = 'admin_user_password'
        init_user_attr = 'initial_user_name'
        init_passwd_attr = 'initial_user_password'

        logging.debug('validate_set called with %s' % str(dict_key_value))

        value_str = dict_key_value.get(self.domain)
        value_dict = {} if not value_str else json.loads(value_str)
        if not value_dict:
            raise validation.ValidationError('No value for %s' % self.domain)
        if not isinstance(value_dict, dict):
            raise validation.ValidationError('%s value is not a dict' % self.domain)

        utils = validation.ValidationUtils()
        user = value_dict.get(user_attr)
        if user:
            utils.validate_username(user)
        else:
            raise validation.ValidationError('Missing %s' % user_attr)
        um_user = value_dict.get(init_user_attr)
        if um_user:
            utils.validate_username(um_user)
        else:
            raise validation.ValidationError('Missing %s' % init_user_attr)

        if not value_dict.get(passwd_attr):
            raise validation.ValidationError('Missing %s' % passwd_attr)
        if not value_dict.get(init_passwd_attr):
            raise validation.ValidationError('Missing %s' % init_passwd_attr)
Exemplo n.º 2
0
    def validate_ntp(self, ntp_list):
        if not ntp_list:
            raise validation.ValidationError('Missing NTP configuration')

        if not isinstance(ntp_list, list):
            raise validation.ValidationError(
                'NTP servers value must be a list')
        utils = validation.ValidationUtils()
        for ntp in ntp_list:
            utils.validate_ip_address(ntp)
Exemplo n.º 3
0
 def validate_preallocated_ips(self, host, nw_profile_config,
                               networking_config):
     if not self.host_has_preallocated_ip(host):
         return
     validationutils = validation.ValidationUtils()
     for network_name, ip in host["pre_allocated_ips"].iteritems():
         for net_profile_name in host["network_profiles"]:
             if not self.is_network_in_net_profile(
                     network_name, nw_profile_config.get(net_profile_name)):
                 raise validation.ValidationError(
                     "Network %s is missing from network profile %s" %
                     (network_name, net_profile_name))
         network_domains = networking_config.get(network_name).get(
             "network_domains")
         host_network_domain = host["network_domain"]
         subnet = network_domains.get(host_network_domain)["cidr"]
         validationutils.validate_ip_address(ip)
         utils.validate_ip_in_network(ip, subnet)
Exemplo n.º 4
0
    def validate_hwmgmt(self, hwmgmt, host):
        # this list may not be comprehensive, but it matches ironic's idea
        # of valid privileges.  In practice, we'll likely only see OPERATOR
        # and ADMINISTRATOR.  Case seems to matter here.
        valid_ipmi_priv = ['USER', 'CALLBACK', 'OPERATOR', 'ADMINISTRATOR']

        if not hwmgmt:
            raise validation.ValidationError(
                'Missing hwmgmt configuration for %s' % host)
        if not hwmgmt.get('user'):
            raise validation.ValidationError('Missing hwmgmt username for %s' %
                                             host)
        if not hwmgmt.get('password'):
            raise validation.ValidationError('Missing hwmgmt password for %s' %
                                             host)
        priv_level = hwmgmt.get('priv_level')
        if priv_level and priv_level not in valid_ipmi_priv:
            # priv_level is optional, but should be in the valid range.
            raise validation.ValidationError(
                'Invalid IPMI privilege level %s for %s' % (priv_level, host))
        validationutils = validation.ValidationUtils()
        validationutils.validate_ip_address(hwmgmt.get('address'))
 def __init__(self):
     cmvalidator.CMValidator.__init__(self)
     self.utils = validation.ValidationUtils()
     self.conf = None
     self.net_conf = None
Exemplo n.º 6
0
 def __init__(self):
     cmvalidator.CMValidator.__init__(self)
     self.validation_utils = validation.ValidationUtils()
     self.conf = None
     self.caas_conf = None
     self.caas_utils = CaasValidationUtils()