File: //usr/lib/python2.7/site-packages/lap/xen_expiration.py
#!/usr/bin/python
import socket
import subprocess
import datetime
import yaml
try:
from xenapi import XenAPI
except:
import XenAPI
socket.setdefaulttimeout(10)
def __run__(params):
try:
xapi = XenAPI.xapi_local()
xapi.login_with_password("", "")
hostname = socket.gethostname().split(".")[0]
host_ref = xapi.xenapi.host.get_by_name_label(hostname)
host = xapi.xenapi.host.get_record(host_ref[0])
expire_date = host["license_params"]["expiry"].replace(":", "").replace("T", "").replace("Z", "").replace(" ", "")
expire_days = params.get('expire_days')
today = datetime.datetime.now()
date = datetime.datetime(int(expire_date[0:4]), int(expire_date[4:6]), int(expire_date[6:8]), int(expire_date[8:10]), int(expire_date[10:12]), int(expire_date[12:14]))
dif = date - today
xapi.xenapi.session.logout()
if dif.days >= int(expire_days):
return [0, "OK - License is up-to-date. Expires on: %s" % date]
elif dif.days >= 1:
return [1, "WARNING - Verify XEN EXPIRATION: %s" % dif]
else:
return [2, "CRITICAL - Provide de new XenServer License. Expired on: %s" % dif]
except Exception, e:
xapi.xenapi.session.logout()
return [2, "Unable to calc expiration day ERROR => %s" % repr(e)]