aboutsummaryrefslogtreecommitdiff
path: root/h-client/hlibrary.py
diff options
context:
space:
mode:
authorAntonio Gallo <tonicucoz@gmail.com>2011-04-07 20:19:06 +0000
committerAntonio Gallo <tonicucoz@gmail.com>2011-04-07 20:19:06 +0000
commit105117ebccdf5cecb3e33416287bec3f44e6cf2b (patch)
treed855be8979df3da84ba77b409a266e23aba17f83 /h-client/hlibrary.py
parent1a42c1c617bea6ec2c9344073fcef082fae9cb35 (diff)
h-client:implemented submit button
Diffstat (limited to 'h-client/hlibrary.py')
-rw-r--r--h-client/hlibrary.py79
1 files changed, 50 insertions, 29 deletions
diff --git a/h-client/hlibrary.py b/h-client/hlibrary.py
index 974fced..8388984 100644
--- a/h-client/hlibrary.py
+++ b/h-client/hlibrary.py
@@ -113,7 +113,7 @@ class Device(object):
self._post['comm_year'] = self._year;
self._post['pci_id'] = self._vendorId + ':' + self._productId;
self._post['interface'] = self._interface;
- self._post['description'] = self.htmlentitiesDecode(self._description.replace("\n","\r\n"));
+ self._post['description'] = self._description.replace("\n","\r\n");
self._post['driver'] = self._driver;
#replace the HTML entitites with utf-8 characters
@@ -143,8 +143,9 @@ class Device(object):
dis = ' , '.join(cleanDistros)
#correct a strange python behaviour
- if dis[0] == ' , ':
- dis = dis[3:]
+ if dis != '':
+ if dis[0] == ' , ':
+ dis = dis[3:]
return dis
#add a distribution
@@ -436,7 +437,13 @@ class Client:
#log out
def logout(self):
- self.request.perform('users/logout/en')
+ result = self.request.perform('users/logout/en')
+
+ if result:
+ return True
+ else:
+ self.errors.append("unable to connect to server")
+ return False
#get info about the user logged
def getUserInfo(self):
@@ -458,15 +465,14 @@ class Client:
return {'status':status,'username':username,'token':token,'groups':groups}
else:
- self._status = False
self.errors.append("unable to connect to server")
- return -1
+ return False
#return True if the user is logged, else return False
def isLogged(self):
info = self.getUserInfo()
- if info != -1:
+ if info != False:
if info['status'] == 'logged':
return True
@@ -481,7 +487,7 @@ class Client:
return notice
else:
self.errors.append("unable to connect to server")
- return -1
+ return False
def createDevices(self):
@@ -585,7 +591,7 @@ class Client:
if device.getElementsByTagName("description")[0].hasChildNodes():
description = device.getElementsByTagName("description")[0].childNodes[0].data.encode('utf-8')
- dev[0].setDescription(description)
+ dev[0].setDescription(dev[0].htmlentitiesDecode(description))
else:
dev[0].setDescription('')
@@ -611,30 +617,45 @@ class Client:
else:
self._status = False
self.errors.append("unable to connect to server")
-
- def submit(self):
+
+
+ def submit(self,deviceCode = None):
for key,dev in self.devices.iteritems():
- dev[0].setPost()
- post = dev[0].getPost()
+ if key == deviceCode or deviceCode == None:
+ dev[0].setPost()
+ post = dev[0].getPost()
- #get the node controller
- controller = self.getController(dev[1])
+ #get the node controller
+ controller = self.getController(dev[1])
- #get the user info
- info = self.getUserInfo()
- token = info['token']
-
- if dev[2] == 'update':
+ #get the user info
+ info = self.getUserInfo()
+ token = info['token']
+
+ post['from_client'] = 'yes'
- post['id_hard'] = dev[3]
- post['updateAction'] = 'update'
- url = controller + '/update/en/' + token
+ if dev[2] == 'update':
- elif dev[2] == 'insert':
+ post['id_hard'] = dev[3]
+ post['updateAction'] = 'update'
+ url = controller + '/update/en/' + token
- post['insertAction'] = 'insert'
- url = controller + '/insert/en/' + token
+ elif dev[2] == 'insert':
- self.request.setPost(post)
- self.request.perform(url.encode('utf-8'))
- #print self.request.contents \ No newline at end of file
+ post['insertAction'] = 'insert'
+ url = controller + '/insert/en/' + token
+
+ self.request.setPost(post)
+ self.request.perform(url.encode('utf-8'))
+
+ #parse the response
+ xmldoc = minidom.parseString(self.request.contents)
+ deviceType = xmldoc.getElementsByTagName("status")[0].childNodes[0].data.encode('utf-8')
+
+ notice = xmldoc.getElementsByTagName("notice")[0].childNodes[1].data.encode('utf-8')
+ self.errors.append(notice.lstrip().rstrip())
+
+ if deviceType == 'executed':
+ return True
+ else:
+ return False \ No newline at end of file