Beispiel #1
0
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)
Beispiel #2
0
    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"
Beispiel #3
0
#!/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)
Beispiel #4
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