Esempio n. 1
0
 def buildResponse(self, **kwargs):
     if kwargs['path'] in ["/api/service/v2/update", "/api/service/v2/list"]:
         while not self.configUpdate:
             sleep(0.25)
             if self.halt:
                 sys.stderr.write('%s halting while client still on the Phone!\n' % self.__class__.__name__)
                 sys.stderr.flush()
                 break
         if self.configUpdate:
             keys = set(k for k in kwargs.get('arguments', {}).get('keys', [''])[0].split(',') if k)
             for special_key in ['services', 'config']:
                 if '-'+special_key in keys:
                     keys.remove('-'+special_key)
                 else:
                     keys.add(special_key)
             identifier = self._findIdentifier(**kwargs)
             result = {}
             for key in keys:
                 try:
                     result[key] = self.configUpdate[key]
                 except KeyError:
                     pass
             if identifier:
                 service = result.get('services', {}).get(identifier, None)
                 if service:
                     result['this_service'] = dict(service)
                     result['this_service']['state'] = {'readable':service['readable'], 'writable':service['writable']}
             return Ok + CRLF + dumps(result)
     return MockServer.buildResponse(self, **kwargs)
Esempio n. 2
0
 def buildResponse(self, **kwargs):
     if kwargs["path"] in ["/api/service/v2/update", "/api/service/v2/list"]:
         while not self.configUpdate:
             sleep(0.25)
             if self.halt:
                 sys.stderr.write("%s halting while client still on the Phone!\n" % self.__class__.__name__)
                 sys.stderr.flush()
                 break
         if self.configUpdate:
             keys = set(k for k in kwargs.get("arguments", {}).get("keys", [""])[0].split(",") if k)
             for special_key in ["services", "config"]:
                 if "-" + special_key in keys:
                     keys.remove("-" + special_key)
                 else:
                     keys.add(special_key)
             identifier = self._findIdentifier(**kwargs)
             result = {}
             for key in keys:
                 try:
                     result[key] = self.configUpdate[key]
                 except KeyError:
                     pass
             if identifier:
                 service = result.get("services", {}).get(identifier, None)
                 if service:
                     result["this_service"] = dict(service)
                     result["this_service"]["state"] = {
                         "readable": service["readable"],
                         "writable": service["writable"],
                     }
             return Ok + CRLF + dumps(result)
     return MockServer.buildResponse(self, **kwargs)