diff options
author | Kenny Woodson <kwoodson@redhat.com> | 2015-05-08 15:00:31 -0400 |
---|---|---|
committer | Kenny Woodson <kwoodson@redhat.com> | 2015-05-11 09:57:09 -0400 |
commit | d9b276629476dc2d6de3ef32717bf2035f4338c2 (patch) | |
tree | 7732000b1d758f0842ab1b6ce050ef3e8e9141af | |
parent | 4705af597cee2ff523aaede4bb2479c0fc6af430 (diff) | |
download | openshift-d9b276629476dc2d6de3ef32717bf2035f4338c2.tar.gz openshift-d9b276629476dc2d6de3ef32717bf2035f4338c2.tar.bz2 openshift-d9b276629476dc2d6de3ef32717bf2035f4338c2.tar.xz openshift-d9b276629476dc2d6de3ef32717bf2035f4338c2.zip |
Adding cache location for multi ec2
-rwxr-xr-x | bin/oscp | 14 | ||||
-rwxr-xr-x | bin/ossh | 15 | ||||
-rw-r--r-- | roles/openshift_ansible_inventory/tasks/main.yml | 19 | ||||
-rw-r--r-- | roles/openshift_ansible_inventory/templates/multi_ec2.yaml.j2 | 1 |
4 files changed, 36 insertions, 13 deletions
@@ -32,10 +32,10 @@ class Oscp(object): self.aws = awsutil.AwsUtil(self.inventory) # get a dict of host inventory - if self.args.list: - self.get_hosts() - else: + if self.args.refresh_cache: self.get_hosts(True) + else: + self.get_hosts() if (self.args.src == '' or self.args.dest == '') and not self.args.list: self.parser.print_help() @@ -68,6 +68,8 @@ class Oscp(object): action="store_true", help="debug mode") parser.add_argument('-v', '--verbose', default=False, action="store_true", help="Verbose?") + parser.add_argument('--refresh-cache', default=False, + action="store_true", help="Force a refresh on the host cache.") parser.add_argument('--list', default=False, action="store_true", help="list out hosts") parser.add_argument('-r', '--recurse', action='store_true', default=False, @@ -119,14 +121,14 @@ class Oscp(object): else: self.env = None - def get_hosts(self, cache_only=False): + def get_hosts(self, refresh_cache=False): '''Query our host inventory and return a dict where the format equals: dict['environment'] = [{'servername' : {}}, ] ''' - if cache_only: - self.host_inventory = self.aws.build_host_dict_by_env(['--cache-only']) + if refresh_cache: + self.host_inventory = self.aws.build_host_dict_by_env(['--refresh-cache']) else: self.host_inventory = self.aws.build_host_dict_by_env() @@ -28,11 +28,10 @@ class Ossh(object): self.aws = awsutil.AwsUtil(self.inventory) - # get a dict of host inventory - if self.args.list: - self.get_hosts() - else: + if self.args.refresh_cache: self.get_hosts(True) + else: + self.get_hosts() # parse host and user self.process_host() @@ -67,6 +66,8 @@ class Ossh(object): action="store_true", help="debug mode") parser.add_argument('-v', '--verbose', default=False, action="store_true", help="Verbose?") + parser.add_argument('--refresh-cache', default=False, + action="store_true", help="Force a refresh on the host cache.") parser.add_argument('--list', default=False, action="store_true", help="list out hosts") parser.add_argument('-c', '--command', action='store', @@ -109,14 +110,14 @@ class Ossh(object): if self.args.login_name: self.user = self.args.login_name - def get_hosts(self, cache_only=False): + def get_hosts(self, refresh_cache=False): '''Query our host inventory and return a dict where the format equals: dict['servername'] = dns_name ''' - if cache_only: - self.host_inventory = self.aws.build_host_dict_by_env(['--cache-only']) + if refresh_cache: + self.host_inventory = self.aws.build_host_dict_by_env(['--refresh-cache']) else: self.host_inventory = self.aws.build_host_dict_by_env() diff --git a/roles/openshift_ansible_inventory/tasks/main.yml b/roles/openshift_ansible_inventory/tasks/main.yml index dddfe24e3..91c96d827 100644 --- a/roles/openshift_ansible_inventory/tasks/main.yml +++ b/roles/openshift_ansible_inventory/tasks/main.yml @@ -24,6 +24,14 @@ owner: root group: libra_ops +# This cron uses the above location to call its job +- name: Cron to keep cache fresh + cron: + name: 'multi_ec2_inventory' + minute: '*/10' + job: '/usr/share/ansible/inventory/multi_ec2.py --refresh-cache &> /dev/null' + when: oo_cron_refresh_cache is defined and oo_cron_refresh_cache + - lineinfile: dest: /etc/ansible/ansible.cfg backrefs: yes @@ -43,3 +51,14 @@ regexp: '^destination_format_tags *=' line: "destination_format_tags = {{ oo_ec2_destination_format_tags }}" when: oo_ec2_destination_format_tags is defined + +- name: Set cache location + file: + state: directory + dest: "{{ oo_inventory_cache_location | dirname }}" + owner: root + group: libra_ops + recurse: yes + mode: '2750' + when: oo_inventory_cache_location is defined + diff --git a/roles/openshift_ansible_inventory/templates/multi_ec2.yaml.j2 b/roles/openshift_ansible_inventory/templates/multi_ec2.yaml.j2 index 23dfe73b8..f7005ff5b 100644 --- a/roles/openshift_ansible_inventory/templates/multi_ec2.yaml.j2 +++ b/roles/openshift_ansible_inventory/templates/multi_ec2.yaml.j2 @@ -1,5 +1,6 @@ # multi ec2 inventory configs cache_max_age: {{ oo_inventory_cache_max_age }} +cache_location: {{ oo_inventory_cache_location | default('~/.ansible/tmp/multi_ec2_inventory.cache') }} accounts: {% for account in oo_inventory_accounts %} - name: {{ account.name }} |