diff options
| author | Kenny Woodson <kwoodson@redhat.com> | 2017-02-27 10:56:57 -0500 | 
|---|---|---|
| committer | Kenny Woodson <kwoodson@redhat.com> | 2017-02-27 11:01:18 -0500 | 
| commit | 3b877826bc214c7e1e952b1968f933c40e477f50 (patch) | |
| tree | 98b4290405844769b80c5829dde6aa7b4db7871d /roles/openshift_hosted | |
| parent | 41ee91326a9f533396bc876d399d4e7c50c9ea38 (diff) | |
| download | openshift-3b877826bc214c7e1e952b1968f933c40e477f50.tar.gz openshift-3b877826bc214c7e1e952b1968f933c40e477f50.tar.bz2 openshift-3b877826bc214c7e1e952b1968f933c40e477f50.tar.xz openshift-3b877826bc214c7e1e952b1968f933c40e477f50.zip | |
Moving replica logic to filter_plugin to fix skipped task variable behavior.
Diffstat (limited to 'roles/openshift_hosted')
| -rw-r--r-- | roles/openshift_hosted/filter_plugins/filters.py | 35 | ||||
| -rw-r--r-- | roles/openshift_hosted/tasks/router/router.yml | 2 | 
2 files changed, 36 insertions, 1 deletions
| diff --git a/roles/openshift_hosted/filter_plugins/filters.py b/roles/openshift_hosted/filter_plugins/filters.py new file mode 100644 index 000000000..cbfadfe9d --- /dev/null +++ b/roles/openshift_hosted/filter_plugins/filters.py @@ -0,0 +1,35 @@ +#!/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 + +        if (isinstance(router_nodes, dict) and +                'results' in router_nodes and +                'results' in router_nodes['results'] and +                'items' in router_nodes['results']['results']): + +            return len(router_nodes['results']['results'][0]['items']) + +        return 1 + +    def filters(self): +        ''' returns a mapping of filters to methods ''' +        return {'get_router_replicas': self.get_router_replicas} diff --git a/roles/openshift_hosted/tasks/router/router.yml b/roles/openshift_hosted/tasks/router/router.yml index 3535d5f5e..607ace7f9 100644 --- a/roles/openshift_hosted/tasks/router/router.yml +++ b/roles/openshift_hosted/tasks/router/router.yml @@ -10,7 +10,7 @@  - name: set_fact replicas    set_fact: -    replicas: "{{ openshift.hosted.router.replicas | default(router_nodes.results.results[0]['items'] | length) }}" +    replicas: "{{ openshift.hosted.router.replicas|default(None) | get_router_replicas(router_nodes) }}"  - block: | 
