text: #!/usr/bin/python
  # -*- coding: utf-8 -*-
  '''
  Custom filters for use in openshift_hosted
  '''
  
  
  class FilterModule(object):
      ''' Custom ansible filters for use by openshift_hosted role'''
  
      @staticmethod
      def get_router_replicas(replicas=None, router_nodes=None):
          ''' This function will return the number of replicas
              based on the results from the defined
              openshift_hosted_router_replicas OR
              the query from oc_obj on openshift nodes with a selector OR
              default to 1
  
          '''
          # We always use what they've specified if they've specified a value
          if replicas is not None:
              return replicas
  
          replicas = 1
  
          # Ignore boolean expression limit of 5.
          # pylint: disable=too-many-boolean-expressions
          if (isinstance(router_nodes, dict) and
                  'results' in router_nodes and
                  'results' in router_nodes['results'] and
                  isinstance(router_nodes['results']['results'], list) and
                  len(router_nodes['results']['results']) > 0 and
                  'items' in router_nodes['results']['results'][0]):
  
              if len(router_nodes['results']['results'][0]['items']) > 0:
                  replicas = len(router_nodes['results']['results'][0]['items'])
  
          return replicas
  
      def filters(self):
          ''' returns a mapping of filters to methods '''
          return {'get_router_replicas': self.get_router_replicas}
  