<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def _load_properties(property_name, config_option, set_default=False, default=None):
    '''
    Load properties for the cassandra module from config or pillar.

    :param property_name: The property to load.
    :type  property_name: str or list of str
    :param config_option: The name of the config option.
    :type  config_option: str
    :param set_default:   Should a default be set if not found in config.
    :type  set_default:   bool
    :param default:       The default value to be set.
    :type  default:       str or int
    :return:              The property fetched from the configuration or default.
    :rtype:               str or list of str
    '''
    if not property_name:
        log.debug("No property specified in function, trying to load from salt configuration")
        try:
            options = __salt__['config.option']('cassandra')
        except BaseException as e:
            log.error("Failed to get cassandra config options. Reason: %s", e)
            raise

        loaded_property = options.get(config_option)
        if not loaded_property:
            if set_default:
                log.debug('Setting default Cassandra %s to %s', config_option, default)
                loaded_property = default
            else:
                log.error('No cassandra %s specified in the configuration or passed to the module.', config_option)
                raise CommandExecutionError("ERROR: Cassandra {0} cannot be empty.".format(config_option))
        return loaded_property
    return property_name