Esempio n. 1
0
def main():

    connect(host="mongodb://27.78.16.56:8040/iron_man")
    #connect(host="mongodb://27.78.16.56:8040/ironmanV2")# push

    stringhelpers.print_welcome()

    socketConnector = SocketConnector(os.environ.get('SOCKBOT_SERVER'),
                                      os.environ.get('SOCKBOT_PORT'))
    dict_sockbot = socketConnector.connect()
    '''_mega_manager = MegaManager('MEGA-MANAGEMENT', False)
    _mega_manager.start()'''
    '''_flask_manager = FlaskManager('FLASK-MANAGEMENT', False)
    _flask_manager.start()'''

    _ironman_manager = IronManager('IRONMAN-MANAGEMENT', False,
                                   dict_sockbot['io'],
                                   dict_sockbot['iron_namespace'])
    _ironman_manager.start()

    heartbeat = HeartBeat(False, dict_sockbot['io'])
    heartbeat.start()

    dict_sockbot['io'].on('on_startstop_autobot', on_startstop_autobot)

    #socket waiting response
    dict_sockbot['io'].wait()
Esempio n. 2
0
    def __init__(self, adapter, device_id):
        self.log = structlog.get_logger(device_id=device_id)
        self.log.debug('function-entry')
        self.adapter = adapter
        self.adapter_agent = adapter.adapter_agent
        self.parent_adapter = None
        self.parent_id = None
        self.device_id = device_id
        self.incoming_messages = DeferredQueue()
        self.event_messages = DeferredQueue()
        self.proxy_address = None
        self.tx_id = 0
        self._enabled = False
        self.alarms = None
        self.pm_metrics = None
        self._omcc_version = OMCCVersion.Unknown
        self._total_tcont_count = 0  # From ANI-G ME
        self._qos_flexibility = 0  # From ONT2_G ME

        self._onu_indication = None
        self._unis = dict()  # Port # -> UniPort

        self._pon = None
        # TODO: probably shouldnt be hardcoded, determine from olt maybe?
        self._pon_port_number = 100
        self.logical_device_id = None

        self._heartbeat = HeartBeat.create(self, device_id)

        # Set up OpenOMCI environment
        self._onu_omci_device = None
        self._dev_info_loaded = False
        self._deferred = None

        self._in_sync_subscription = None
        self._connectivity_subscription = None
        self._capabilities_subscription = None

        self.mac_bridge_service_profile_entity_id = 0x201
        self.gal_enet_profile_entity_id = 0x1

        self._tp_service_specific_task = dict()
        self._tech_profile_download_done = dict()

        # Initialize KV store client
        self.args = registry('main').get_args()
        if self.args.backend == 'etcd':
            host, port = self.args.etcd.split(':', 1)
            self.kv_client = EtcdStore(
                host, port, TechProfile.KV_STORE_TECH_PROFILE_PATH_PREFIX)
        elif self.args.backend == 'consul':
            host, port = self.args.consul.split(':', 1)
            self.kv_client = ConsulStore(
                host, port, TechProfile.KV_STORE_TECH_PROFILE_PATH_PREFIX)
        else:
            self.log.error('Invalid-backend')
            raise Exception("Invalid-backend-for-kv-store")

        # Handle received ONU event messages
        reactor.callLater(0, self.handle_onu_events)
    def __init__(self, adapter, device_id):
        kwargs = dict()
        super(AdtranOnuHandler, self).__init__(**kwargs)
        self.adapter = adapter
        self.adapter_agent = adapter.adapter_agent
        self.device_id = device_id
        self.log = structlog.get_logger(device_id=device_id)
        self.logical_device_id = None
        self.proxy_address = None
        self._enabled = False
        self.pm_metrics = None
        self.alarms = None
        self._mgmt_gemport_aes = False
        self._upstream_channel_speed = 0

        self._openomci = OMCI(self, adapter.omci_agent)
        self._in_sync_subscription = None

        self._onu_port_number = 0
        self._pon_port_number = 1
        self._port_number_pool = IndexPool(_MAXIMUM_PORT, 0)

        self._unis = dict()         # Port # -> UniPort
        self._pon = PonPort.create(self, self._pon_port_number)
        self._heartbeat = HeartBeat.create(self, device_id)
        self._deferred = None

        # Flow entries
        self._flows = dict()

        # OMCI resources
        # TODO: Some of these could be dynamically chosen
        self.vlan_tcis_1 = 0x900
        self.mac_bridge_service_profile_entity_id = self.vlan_tcis_1
        self.gal_enet_profile_entity_id = 0     # Was 0x100, but ONU seems to overwrite and use zero
Esempio n. 4
0
    def __init__(self, adapter, device_id):
        kwargs = dict()
        super(AdtranOnuHandler, self).__init__(**kwargs)
        self.adapter = adapter
        self.adapter_agent = adapter.adapter_agent
        self.device_id = device_id
        self.log = structlog.get_logger(device_id=device_id)
        self.logical_device_id = None
        self.proxy_address = None
        self._event_messages = None
        self._enabled = False
        self.pm_metrics = None
        self.alarms = None
        self._mgmt_gemport_aes = False
        self._upstream_channel_speed = 0

        self._unis = dict()  # Port # -> UniPort
        self._pons = dict()  # Port # -> PonPort
        self._heartbeat = HeartBeat.create(self, device_id)

        self._deferred = None
        self._event_deferred = None
        self._omci = None
        self._port_number_pool = IndexPool(_MAXIMUM_PORT, 1)

        self._olt_created = False  # True if deprecated method of OLT creating DA is used
        self._is_mock = False
Esempio n. 5
0
    def __init__(self, adapter, device_id):
        kwargs = dict()
        super(AdtranOnuHandler, self).__init__(**kwargs)
        self.adapter = adapter
        self.adapter_agent = adapter.adapter_agent
        self.device_id = device_id
        self.log = structlog.get_logger(device_id=device_id)
        self.logical_device_id = None
        self.proxy_address = None
        self._event_messages = None
        self._enabled = False
        self.pm_metrics = None
        self.alarms = None
        self._mgmt_gemport_aes = False
        self._upstream_channel_speed = 0

        self._unis = dict()  # Port # -> UniPort
        self._pon = None
        self._heartbeat = HeartBeat.create(self, device_id)

        self._deferred = None
        self._event_deferred = None

        # TODO: Remove next two lines if/when OpenOMCI is in the core or a container
        #       in order to support multiple ONUs per instance
        self._omci_agent = OpenOMCIAgent(self.adapter_agent.core)
        self._omci_agent.start()

        self._port_number_pool = IndexPool(_MAXIMUM_PORT, 1)

        self._olt_created = False  # True if deprecated method of OLT creating DA is used
        self._is_mock = False
    def __init__(self, adapter, device_id):
        kwargs = dict()
        super(AdtranOnuHandler, self).__init__(**kwargs)
        self.adapter = adapter
        self.adapter_agent = adapter.adapter_agent
        self.device_id = device_id
        self.log = structlog.get_logger(device_id=device_id)
        self.logical_device_id = None
        self.proxy_address = None
        self._event_messages = None
        self._enabled = False
        self.pm_metrics = None
        self.alarms = None
        self._mgmt_gemport_aes = False
        self._upstream_channel_speed = 0

        self._unis = dict()         # Port # -> UniPort
        self._pons = dict()         # Port # -> PonPort
        self._heartbeat = HeartBeat.create(self, device_id)

        self._deferred = None
        self._event_deferred = None
        self._omci = None
        self._port_number_pool = IndexPool(_MAXIMUM_PORT, 1)

        self._olt_created = False   # True if deprecated method of OLT creating DA is used
        self._is_mock = False
Esempio n. 7
0
class taskManager:
    def __init__(self):
        args = parse_process_args()

        self.heartbeat = HeartBeat(process_id=getpid())
        self.heartbeat.daemon = True
        atexit.register(self.handle_shutdown)

        self.flow_manager = FlowManager(cache_prefix=args.execution_group_id,
                                        pid=getpid())
        self.executor = ExecutionWorker(args.model_path, args.video_path,
                                        args.model_config_path, args.code_path)
        self.merger = Merger(args.video_path, args.model_config_path,
                             args.video_token)

        self.action_map = {
            'merge': self.merger.execute,
            'execute': self.executor.execute
        }

    def handle_shutdown(self):
        self.heartbeat.gracefull_shutdown = True
        logger.info('[TASKMANAGER] Process shutdown successfully')

    def start(self):
        self.heartbeat.start()

        while True:
            try:
                job_meta, job_key = self.flow_manager.get_new_job()
                self.heartbeat.curr_job_id = job_key.decode('utf-8')
            except Exception as e:
                logger.exception(f'[TASKMANAGER] job key is malformed : {e}')
                self.flow_manager.reject_job(job_key)
                continue

            self.heartbeat.set_busy()

            action = self.action_map.get(job_meta['action'])
            if action:
                try:
                    action(job_meta)
                except Exception as e:
                    logger.exception(
                        f'[TASKMANAGER] failed to execute action on job {job_meta.get("jid")} | {e}'
                    )
                    self.flow_manager.reject_job(job_key)
            else:
                logger.warning(
                    f'[TASKMANAGER] action {job_meta.get("action")} not defined | ignoring job'
                )

            self.heartbeat.set_free()

        self.heartbeat.join()
Esempio n. 8
0
    def __init__(self):
        args = parse_process_args()

        self.heartbeat = HeartBeat(process_id=getpid())
        self.heartbeat.daemon = True
        atexit.register(self.handle_shutdown)

        self.flow_manager = FlowManager(cache_prefix=args.execution_group_id,
                                        pid=getpid())
        self.executor = ExecutionWorker(args.model_path, args.video_path,
                                        args.model_config_path, args.code_path)
        self.merger = Merger(args.video_path, args.model_config_path,
                             args.video_token)

        self.action_map = {
            'merge': self.merger.execute,
            'execute': self.executor.execute
        }
Esempio n. 9
0
    def __init__(self, adapter, device_id):
        kwargs = dict()
        super(AdtranOnuHandler, self).__init__(**kwargs)
        self.adapter = adapter
        self.adapter_agent = adapter.adapter_agent
        self.device_id = device_id
        self.log = structlog.get_logger(device_id=device_id)
        self.logical_device_id = None
        self.proxy_address = None
        self._enabled = False
        self.pm_metrics = None
        self.alarms = None

        self._openomci = OMCI(self, adapter.omci_agent)
        self._in_sync_subscription = None

        self._pon_port_number = 1

        self._unis = dict()         # Port # -> UniPort
        self._pon = PonPort.create(self, self._pon_port_number)
        self._heartbeat = HeartBeat.create(self, device_id)
        self._deferred = None

        # Flow entries
        self._flows = dict()

        # OMCI resources               # TODO: Some of these could be dynamically chosen
        self.vlan_tcis_1 = 0x900
        self.mac_bridge_service_profile_entity_id = self.vlan_tcis_1
        self.gal_enet_profile_entity_id = 0

        # Technology profile related values
        self.incoming_messages = DeferredQueue()
        self.event_messages = DeferredQueue()
        self._tp_service_specific_task = dict()
        self._tech_profile_download_done = dict()

        # Initialize KV store client
        self.args = registry('main').get_args()
        if self.args.backend == 'etcd':
            host, port = self.args.etcd.split(':', 1)
            self.kv_client = EtcdStore(host, port,
                                       TechProfile.KV_STORE_TECH_PROFILE_PATH_PREFIX)
        elif self.args.backend == 'consul':
            host, port = self.args.consul.split(':', 1)
            self.kv_client = ConsulStore(host, port,
                                         TechProfile.KV_STORE_TECH_PROFILE_PATH_PREFIX)
        else:
            self.log.error('Invalid-backend')
            raise Exception("Invalid-backend-for-kv-store")

        # Handle received ONU event messages
        reactor.callLater(0, self.handle_onu_events)
    def __init__(self, adapter, device_id):
        self.log = structlog.get_logger(device_id=device_id)
        self.log.debug('function-entry')
        self.adapter = adapter
        self.adapter_agent = adapter.adapter_agent
        self.parent_adapter = None
        self.parent_id = None
        self.device_id = device_id
        self.incoming_messages = DeferredQueue()
        self.event_messages = DeferredQueue()
        self.proxy_address = None
        self.tx_id = 0
        self._enabled = False
        self.alarms = None
        self.pm_metrics = None
        self._omcc_version = OMCCVersion.Unknown
        self._total_tcont_count = 0  # From ANI-G ME
        self._qos_flexibility = 0  # From ONT2_G ME

        self._onu_indication = None
        self._unis = dict()  # Port # -> UniPort
        self._port_number_pool = IndexPool(_MAXIMUM_PORT, 0)

        self._pon = None
        #TODO: probably shouldnt be hardcoded, determine from olt maybe?
        self._pon_port_number = 100
        self.logical_device_id = None

        self._heartbeat = HeartBeat.create(self, device_id)

        # Set up OpenOMCI environment
        self._onu_omci_device = None
        self._dev_info_loaded = False
        self._deferred = None

        self._in_sync_subscription = None
        self._connectivity_subscription = None
        self._capabilities_subscription = None
import threading
from threading import Thread
from globals import Globals
from device_info import DeviceInfo
import json
from heartbeat import HeartBeat
import time
from event import Event

if __name__ == '__main__':

    Globals()

    device = DeviceInfo(
        device_id='10', device_name='workstation 10', notes='I don not have any notes!')
    print(device.toJSON())

    while(True):

        hb = HeartBeat('10',device)
        thread = hb.run_in_background()
        thread.join()
        print(hb.toJSON())
        time.sleep(10)