docs: 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