Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAjay Garg <ajay@activitycentral.com>2012-10-16 12:03:13 (GMT)
committer Ajay Garg <ajay@activitycentral.com>2012-10-16 12:04:30 (GMT)
commitea0162bf509ae87cdf0b2236824b87d037a2b5da (patch)
treeff245f312f7b575a3874cc5510526b18612416f7
parentcc614c2e69ad92a1ac00cb4911523a0e29240f2e (diff)
Lease-Duration information in "My Settings" -> "About My Computer"
Signed-off-by: Ajay Garg <ajay@activitycentral.com>
-rw-r--r--extensions/cpsection/aboutcomputer/model.py29
-rw-r--r--extensions/cpsection/aboutcomputer/view.py5
2 files changed, 34 insertions, 0 deletions
diff --git a/extensions/cpsection/aboutcomputer/model.py b/extensions/cpsection/aboutcomputer/model.py
index d0a9c9c..0732b1b 100644
--- a/extensions/cpsection/aboutcomputer/model.py
+++ b/extensions/cpsection/aboutcomputer/model.py
@@ -21,6 +21,7 @@ import re
import subprocess
from gettext import gettext as _
import errno
+from datetime import datetime
import dbus
@@ -39,6 +40,9 @@ _DMI_DIRECTORY = '/sys/class/dmi/id'
_SN = 'serial-number'
_MODEL = 'openprom/model'
+_XO_1_0_LEASE_PATH = '/security/lease.sig'
+_XO_1_5_LEASE_PATH = '/bootpart/boot/security/lease.sig'
+
_logger = logging.getLogger('ControlPanel - AboutComputer')
_not_available = _('Not available')
@@ -53,6 +57,31 @@ def print_aboutcomputer():
print get_aboutcomputer()
+def _get_lease_path():
+ if os.path.exists(_XO_1_0_LEASE_PATH):
+ return _XO_1_0_LEASE_PATH
+ elif os.path.exists(_XO_1_5_LEASE_PATH):
+ return _XO_1_5_LEASE_PATH
+ else:
+ return ''
+
+
+def get_lease_days():
+ lease_file = _read_file(_get_lease_path())
+ if lease_file is None:
+ return _not_available
+
+ encoded_date = str(str.split(lease_file)[3])
+ expiry_date = datetime.strptime(encoded_date
+ , '%Y%m%dT%H%M%SZ')
+ current_date = datetime.today()
+ days_remaining = (expiry_date - current_date).days
+
+ # TRANS: Do not translate %s
+ str_days_remaining = _('%s days remaining' % str(days_remaining))
+ return str_days_remaining
+
+
def get_serial_number():
serial_no = None
if os.path.exists(os.path.join(_OFW_TREE, _SN)):
diff --git a/extensions/cpsection/aboutcomputer/view.py b/extensions/cpsection/aboutcomputer/view.py
index 0560963..ac89e08 100644
--- a/extensions/cpsection/aboutcomputer/view.py
+++ b/extensions/cpsection/aboutcomputer/view.py
@@ -70,6 +70,11 @@ class AboutComputer(SectionView):
self._model.get_serial_number(),
vbox_identity)
+ self._setup_component_if_applicable(None,
+ _('Lease:'),
+ self._model.get_lease_days(),
+ vbox_identity)
+
self._vbox.pack_start(vbox_identity, False, True, 0)
vbox_identity.show()