Commit d5b8b1c7f111430b4d7fd7ec9d5672ad8c02e660

Authored by Tássia Camões Araújo
1 parent 94efb102
Exists in master and in 1 other branch add_vagrant

Moved connection to DDE test do DebianPackage class.

Showing 1 changed file with 29 additions and 4 deletions   Show diff stats
src/data.py
... ... @@ -32,6 +32,7 @@ import re
32 32 import operator
33 33 import urllib
34 34 import simplejson as json
  35 +import socket
35 36  
36 37 from error import Error
37 38 from singleton import Singleton
... ... @@ -184,6 +185,30 @@ class DebianPackage():
184 185 def __init__(self,pkg_name):
185 186 self.name = pkg_name
186 187  
  188 + def connect_to_dde(self,dde_server,dde_port):
  189 + try:
  190 + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  191 + # just one parameter (a tuple)
  192 + s.connect((dde_server,dde_port))
  193 + s.close()
  194 + return True
  195 + except:
  196 + logging.debug("Could not connect to DDE")
  197 + return False
  198 +
  199 + def load_summary(self):
  200 + cfg = Config()
  201 + if self.connect_to_dde(cfg.dde_server,cfg.dde_port):
  202 + json_data = json.load(urllib.urlopen(cfg.dde_url % self.name))
  203 + self.summary = json_data['r']['description']
  204 +
  205 + def load_details(self):
  206 + cfg = Config()
  207 + if self.connect_to_dde(cfg.dde_server,cfg.dde_port):
  208 + self.load_details_from_dde(cfg.dde_url)
  209 + else:
  210 + self.load_details_from_apt()
  211 +
187 212 def load_details_from_apt(self):
188 213 pkg_version = apt.Cache()[self.name].candidate
189 214  
... ... @@ -213,9 +238,8 @@ class DebianPackage():
213 238 if pkg_version.record.has_key('Provides'):
214 239 self.provides = pkg_version.record['Provides']
215 240  
216   - def load_details_from_dde(self,dde_server,dde_port):
217   - json_data = json.load(urllib.urlopen("http://%s:%d/q/udd/packages/prio-debian-sid/%s?t=json"
218   - % (dde_server,dde_port,self.name)))
  241 + def load_details_from_dde(self,dde_url):
  242 + json_data = json.load(urllib.urlopen(dde_url % self.name))
219 243  
220 244 self.maintainer = json_data['r']['maintainer']
221 245 self.version = json_data['r']['version']
... ... @@ -240,7 +264,8 @@ class DebianPackage():
240 264 self.replaces = json_data['r']['replaces']
241 265 if json_data['r']['provides']:
242 266 self.provides = json_data['r']['provides']
243   - self.popcon_insts = json_data['r']['popcon']['insts']
  267 + if json_data['r']['popcon']['insts']:
  268 + self.popcon_insts = json_data['r']['popcon']['insts']
244 269  
245 270 def format_description(self,description):
246 271 return description.replace(' .\n','<br />').replace('\n','<br />')
... ...