aboutsummaryrefslogtreecommitdiff
path: root/python/toree_profile.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/toree_profile.py')
-rw-r--r--python/toree_profile.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/python/toree_profile.py b/python/toree_profile.py
index eaadc9d..b306b76 100644
--- a/python/toree_profile.py
+++ b/python/toree_profile.py
@@ -21,6 +21,10 @@ import json
import time
class Profile:
+ """
+ Abstract the handling of a toree slot providing access
+ to configuration, process id, and any manipulations
+ """
PROCESS_FILE_NAME = "toree.pid"
CONFIGURATION_FILE_NAME = "profile.json"
@@ -30,28 +34,57 @@ class Profile:
self.profilePath = profilePath
def pidLocation(self):
+ """
+ The location for the pid file
+ :return: absolute path to pid file
+ """
return self.profilePath + '/' + self.PROCESS_FILE_NAME
def configurationLocation(self):
+ """
+ The location for the profile.json configuration file
+ :return: absolute path to the profile.json
+ """
return self.profilePath + '/' + self.CONFIGURATION_FILE_NAME
def isAvailable(self):
+ """
+ Weather or not the Toree slot is available
+ :return: true in case the slot is available (no pid file)
+ """
taken = os.path.exists(self.pidLocation())
return not taken
def reserve(self):
+ """
+ Reserve the slot profile by adding a pid file into it
+ :return:
+ """
open(self.pidLocation(), 'a').close()
def release(self):
+ """
+ Release the slot profile by removing the pid file from it
+ :return:
+ """
if os.path.exists(self.pidLocation()):
os.remove(self.pidLocation())
def pid(self):
+ """
+ The Toree process id
+ :return: the pid number or None
+ """
with open(self.pidLocation(), 'r') as pid_file:
data = pid_file.read()
return data
def updatePid(self, pid):
+ """
+ Update the contents of the pid file
+ :param pid: The pid value
+ :return:
+ """
try:
file = open(self.pidLocation(), 'w')
file.write(pid)
@@ -59,6 +92,10 @@ class Profile:
file.close
def config(self):
+ """
+ The parsed content of the profile.json
+ :return:
+ """
with open(self.configurationLocation(), 'r') as data_file:
return json.load(data_file) #, object_hook=util._byteify