class Intercom(object): def __init__(self, led_red_channel, led_green_channel, doors_channel, btn_call_channel, snd_dev_capture="default", snd_dev_playback="default"): self.selected_sipid = "sip:localhost" self.led_red = OnOffDevice(led_red_channel) self.led_green = OnOffDevice(led_green_channel) self.doors = OnOffDevice(doors_channel) self.caller = Caller(snd_dev_capture, snd_dev_playback, simple_callback_factory=self._callback_factory) self.buttonCall = Button(btn_call_channel, self.call) def _callback_factory(self): intercom = self class _IntercomCallCallback(SimpleCallCallback): def on_connecting(self): intercom.led_green.start_blinking(0.5) def on_connected(self): intercom.led_green.set(True) def on_disconnected(self): intercom.led_green.set(False) return _IntercomCallCallback() def call(self): self.caller.call(self.selected_sipid) def cancel_call(self): self.caller.cancel_call() def open_door(self, duration=5): self.doors.set(True) time.sleep(duration) self.doors.set(False)
PARSER = argparse.ArgumentParser(description='Options to access micro service') PARSER.add_argument('--service', dest='service', help='service to access') PARSER.add_argument('--job', dest='job', help='job to report') PARSER.add_argument('--status', dest='status', help='job status to report') args = PARSER.parse_args() APP = Caller(verbose=1, serverip="localhost", port="8080") APP.set_verbose(1) APP.set_ip(serverip="localhost") APP.set_port(port="8080") if "create" in args.service: ROUTE = "create/" + str(args.job) APP.call(route=ROUTE, verb="POST", data=None) elif "delete" in args.service: ROUTE = "delete/" + str(args.job) APP.call(route=ROUTE, verb="DELETE", data=None) elif "search" in args.service: ROUTE = "search/" + str(args.job) APP.call(route=ROUTE, verb="GET", data=None) elif "report" in args.service: ROUTE = "report/" + str(args.job) + "/" + str(args.status) APP.call(route=ROUTE, verb="PUT", data=None) elif "help" in args.service: ROUTE = "help"
#!/usr/bin/env python # encoding: utf-8 import sys from caller import Caller if __name__ == "__main__": caller = Caller() while True: sys.stdout.write("Provide sip id: or q to exit") line = sys.stdin.readline().strip() if line == "q": break caller.call(line) sys.stdout.write("enter to end the call") sys.stdin.readline() caller.cancel_call() sys.exit(0)
class Broker(object): """ Broker object to control regression system along Gitlab push/issue/merge requests """ def __init__(self, verbose=0): """ Class constructor """ self.verbose = verbose # Object to do dashboard call self.dashcall = DashboardCaller(verbose=1) # Object shared to do server calls self.servercall = Caller(verbose=1) self.config_file = None self.config = [] def set_config_file(self, config): """ Configuration file setter """ self.config_file = config def setup(self): """ Function to setup the server from configuration file """ self.config = [] tree = etree.parse(self.config_file) root = tree.getroot() # Read from xml configuration file all # the available resources for server in root.find("servers"): srv = {} srv["namespace"] = server.attrib['namespace'] srv["version"] = server.attrib['version'] srv["name"] = server.attrib['name'] srv["ip"] = server.attrib['ip'] srv["port"] = server.attrib['port'] srv["type"] = server.attrib['type'] srv["place"] = server.attrib['place'] srv["vendor"] = server.attrib['vendor'] srv["board"] = server.attrib['board'] self.config.append(srv) # Configure the dashboard caller for server in self.config: if server["namespace"] == "dashboard": self.dashcall.setup(server) if self.verbose: print "info - broker.py - Configuration loaded:" for server in self.config: print server def filter_hooks(self): """ Function to filter hooks and launch them after a mean time to avoid multiple useless runs """ pass def get_dashboard(self): """ Read all server status """ return self.dashcall.read_dashboard() def get_dashboard_help(self): """ Read all server status """ return self.dashcall.read_help() def get_server_status(self): """ Read all server status """ status = [] for server in self.config: stat = {} self.servercall = Caller() self.servercall.set_cfg(server) stat["status"] = self.servercall.call(route="status", verb="GET", data=None) stat["name"] = server.name["name"] status.append(stat) return status