diff --git a/playbook/roles/vm-bootstrap/tasks/uploadlog.yml b/playbook/roles/vm-bootstrap/tasks/uploadlog.yml index 6df990be45df74ae5ad1e3f5b23b6a5b701b6efc..5b2e7a5bd549d96e19f6319755a0c5f9836e60ed 100644 --- a/playbook/roles/vm-bootstrap/tasks/uploadlog.yml +++ b/playbook/roles/vm-bootstrap/tasks/uploadlog.yml @@ -5,5 +5,5 @@ - name: Add a periodical upload of logs and result cron: name="Upload ansible files to http server" minute="*/7" - job="bash -lc /usr/local/bin/ansible-upload-vm-logs http://10.0.2.100/ /var/log/vm-bootstrap.log > /var/log/ansible-upload.log" + job="/usr/local/bin/ansible-upload-vm-logs http://10.0.2.100/ /var/log/vm-bootstrap.log > /var/log/ansible-upload.log" diff --git a/playbook/roles/vm-bootstrap/templates/upload-script.j2 b/playbook/roles/vm-bootstrap/templates/upload-script.j2 index 9d96327ef244a74f2d18db4d4d4581e12325454f..3dc41000c61df72fc02f201f5cd965058afb7f2f 100644 --- a/playbook/roles/vm-bootstrap/templates/upload-script.j2 +++ b/playbook/roles/vm-bootstrap/templates/upload-script.j2 @@ -8,9 +8,11 @@ class uploader(): log_path = '/var/log/ansible/hosts' url = '' + host = '127.0.0.1' - def __init__(self, url='http://10.0.2.100/'): + def __init__(self, url='http://10.0.2.100/', host='127.0.0.1'): self.url = url + self.host = host def upload_file(self, file_name, content, override=False): values = {'path': file_name, 'content': content} @@ -20,6 +22,7 @@ class uploader(): return result def upload_result(self): + has_failure = False for filename in os.listdir(self.log_path): filepath = os.path.join(self.log_path, filename) to_path = 'ansible/%s' % filename @@ -29,6 +32,12 @@ class uploader(): content = ','.join(fd.readlines()) r = self.upload_file(to_path, '[%s]' % content, True) print 'Content uploaded to %s' % to_path, r + if filename.endswith('FAILED'): + has_failure = True + if not has_failure: + to_path = 'ansible/%s_FAILED' % self.host + r = self.upload_file(to_path, '[]', True) + print 'Content uploaded to %s' % to_path, r def readFileFrom(self, f, lastPosition, limit=20000): """ @@ -83,7 +92,7 @@ if __name__ == "__main__": if len(sys.argv) >= 3: ansible_log = sys.argv[2] - uploader = uploader() + uploader = uploader(url=url) state_file = "/opt/.ansible_log.state" log_destination = "ansible/vm-bootstrap.log" current_state = 0