From 1daca5d9f57eb0b992677f2636edad03972cc0fa Mon Sep 17 00:00:00 2001
From: Emiliano Vavassori <syntaxerrormmm@gmail.com>
Date: Wed, 30 Sep 2015 00:08:46 +0200
Subject: [PATCH] Little changes to checksum.fact.

---
 roles/prereq/templates/checksum.fact | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/roles/prereq/templates/checksum.fact b/roles/prereq/templates/checksum.fact
index 97d341b..f11bb6b 100644
--- a/roles/prereq/templates/checksum.fact
+++ b/roles/prereq/templates/checksum.fact
@@ -1,14 +1,32 @@
 #!/usr/bin/env python
 
+from os import popen
 from os.path import isfile
-from json import dumps
+from json import dumps, loads
+from hashlib import md5
+import requests
 
+repo_path = '/var/lib/{{ ansible_local.domain.domainfull }}/config'
 pkgver_file = '/var/lib/{{ ansible_local.domain.domainfull }}/pkg-ver.txt'
 repover_file = '/var/lib/{{ ansible_local.domain.domainfull }}/repo-ver.txt'
 
 local_pkg_hash = ''
 local_repo_hash = ''
 
+live_repo_hash = ''
+# Getting live versions for repo
+repover = popen("pushd %s >/dev/null; git log --pretty=oneline -1 | cut -d' ' -f 1; popd > /dev/null" % repo_path)
+live_repo_hash = repover.read().strip()
+repover.close()
+
+live_pkg_hash = ''
+# Recreating pkg checksum
+r = requests.get("http://%s:3000/ansible_host" % '{{ ansible_local.domain.serverfqdn }}')
+if r.status_code == 200:
+  response = loads(r.text)
+  retval = response['addpkg'].sort() + response['delpkg'].sort()
+  live_pkg_hash = md5("".join(retval)).hexdigest()
+
 if isfile(pkgver_file):
   local_pkg_hash = open(pkgver_file, 'r').read().strip()
 
@@ -16,8 +34,10 @@ if isfile(repover_file):
   local_repo_hash = open(repover_file, 'r').read().strip()
 
 retval = {
+  'live_repover': live_repo_hash,
   'repover': local_repo_hash,
   'repover_file': repover_file,
+  'live_pkgver': live_pkg_hash,
   'pkgver': local_pkg_hash,
   'pkgver_file': pkgver_file
 }