Exemplo n.º 1
0
 def insert_command_reboot(self, device_id):
     init = Init.Init()
     device_command = db.DeviceCommand.DeviceCommand(device_id=device_id,
                                                     command='reboot',
                                                     status='wait')
     init.database.session.add(device_command)
     init.database.session.commit()
    def do(self):
        init = Init.Init()

        ret_values = []

        try:
            for param_name_key in self.params.keys():
                if param_name_key.lower() == 'parameterpath':

                    print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")

                    param_name = self.params[param_name_key]
                    print(param_name)
                    query_params = init.database.session.query(
                        db.Param.Param).filter(
                            db.Param.Param.name.like(param_name + '%'))
                    params = query_params.all()
                    ret_values = ret_values + params

        except:
            pass
        get_parameter_names_str = open(
            init.config['TEMPLATERS']['templater_dir'] + '/' +
            init.config['TEMPLATERS']['templater_get_parameter_names']).read()
        templater = Template(get_parameter_names_str)
        content = templater.render(params=ret_values,
                                   leng=len(ret_values),
                                   cwmp_id=1)
        self.http_client.request(content)
        return
Exemplo n.º 3
0
    def do(self):
        init = Init.Init()
        inform_str = open(
            init.config['TEMPLATERS']['templater_dir'] + '/' +
            init.config['TEMPLATERS']['templater_inform']).read()
        templater = Template(inform_str)

        query_params = init.database.session.query(db.Param.Param)
        params = query_params.all()
        params_hash = {}
        for param in params:
            params_hash[param.name] = param

        query_param_tr69 = init.database.session.query(
            db.Param.Param).filter(db.Param.Param.tr69_interface == 'Y')
        param_tr69_interface = query_param_tr69.one()

        param_tr69_interface.value = '192.168.206.3'

        inform_str_parse = templater.render(
            params=params_hash,
            cwmp_id=1,
            event='1 BOOT',
            date='2014-10-29T16:24:21+00:00',
            param_tr69_interface=param_tr69_interface)

        self.http_client.request(inform_str_parse)
        ret = self.http_client.response()
        self.http_client.request("")
        return
    def do(self):
        init = Init.Init()
        try:
            if self.params['ParameterList']['ParameterValueStruct']:
                print(
                    type(self.params['ParameterList']['ParameterValueStruct']))
                if type(self.params['ParameterList']
                        ['ParameterValueStruct']) == list:
                    for p in self.params['ParameterList'][
                            'ParameterValueStruct']:
                        self.save_param(p)

                else:
                    p = self.params['ParameterList']['ParameterValueStruct']
                    self.save_param(p)
        except:
            pass

        set_parameter_values_str = open(
            init.config['TEMPLATERS']['templater_dir'] + '/' +
            init.config['TEMPLATERS']['templater_set_parameter_values']).read(
            )
        templater = Template(set_parameter_values_str)

        content = templater.render(cwmp_id=1)

        self.http_client.request(content)
        return
Exemplo n.º 5
0
    def do(self, command):

        init = Init.Init()

        query_device = init.database.session.query(
            db.Device.Device).filter_by(id=1)
        devices = query_device.all()

        if len(devices) < 1:
            command.status = 'error'
            init.database.session.commit()
            return
        if len(devices) > 1:
            command.status = 'error'
            init.database.session.commit()
            return

        device = devices[0]
        if command.command == 'power_on':
            self.power_on(device, command)
            return
        if command.command == 'power_off':
            self.power_off(device, command)
            return

        if command.command == 'connect_request':
            self.connect_request(device, command)
            return

        command.status = 'error'
        init.database.session.commit()
Exemplo n.º 6
0
 def get_acs_url(self):
     init = Init.Init()
     url = None
     try:
         query_param = init.database.session.query(
             db.Param.Param).filter_by(
                 name='InternetGatewayDevice.ManagementServer.URL')
         param_url = query_param.one()
         url = param_url.value
         self.acs_full_url = url
     except BaseException:
         pass
     if url:
         port = None
         ip = None
         if len(re.findall(r'\d+.\d+.\d+.\d+', url)) > 0:
             ip = re.findall(r'\d+.\d+.\d+.\d+', url)[0]
         if len(re.findall(r':\d+', url)) > 0:
             port = re.findall(r'\d+', re.findall(r':\d+', param_url)[0])
         else:
             port = 80
         self.acs_ip = ip
         self.acs_port = port
         return (ip, port)
     return (None, None)
 def erase_dump(self):
     init=Init.Init()
     dump_path=init.config['DUMP']['dump_dir']
     self.index=1
     self.dump_path=dump_path
     files=os.listdir(path=dump_path)
     for file in files:
         if len(re.findall(r'listner',file))>0:
             os.remove(dump_path+'/'+file)
Exemplo n.º 8
0
    def do(self):
        init = Init.Init()
        factory_reset_str = open(
            init.config['TEMPLATERS']['templater_dir'] + '/' +
            init.config['TEMPLATERS']['templater_factory_reset']).read()
        templater = Template(factory_reset_str)
        factory_reset_parse = templater.render(cwmp_id=1)
        self.http_client.request(factory_reset_parse)
        self.insert_command_factory_reset(1)

        return
 def save_param(self, data):
     init = Init.Init()
     name = data['Name']
     value = data['Value']['#text']
     query_param = init.database.session.query(
         db.Param.Param).filter_by(name=name)
     try:
         param = query_param.one()
         param.value = value
         init.database.session.commit()
     except:
         pass
Exemplo n.º 10
0
 def start_tr069_client(self, device):
     init = Init.Init()
     try:
         client = Client.Client()
         client.start()
         device.client_TR069_status = "Link to ACS ip:" + str(
             client.acs_ip) + " port " + str(client.acs_port) + " ...OK"
         return True
     except:
         device.client_TR069_status = "Fail connect to ACS ip" + str(
             client.acs_ip) + " port " + str(client.acs_port)
         return False
     return True
Exemplo n.º 11
0
    def do(self):
        init=Init.Init()
        download_str = open(init.config['TEMPLATERS']['templater_dir']+'/'+init.config['TEMPLATERS']['templater_download']).read()
        templater=Template(download_str)
        download_parse=templater.render(cwmp_id=1)
        self.http_client.request(download_parse)
        try:
            for key in self.params.keys():
                if key.lower()=='url':
                    self.insert_command_download(1,self.params['URL'])
        except:
            pass

        return 
Exemplo n.º 12
0
    def do(self):
        init = Init.Init()

        ret_values = []

        get_parameter_values_str = open(
            init.config['TEMPLATERS']['templater_dir'] + '/' +
            init.config['TEMPLATERS']['templater_get_rpc_method']).read()
        templater = Template(get_parameter_values_str)

        content = templater.render(leng=len(ret_values), cwmp_id=1)

        self.http_client.request(content)
        return
 def __init__(self):
     self.shema_dir=""
     self.database=db.DB()
     init=Init.Init()
     self.database.set_shema_dir(init.config['ORM']['shema_files'])
     self.database.initDataBaseEngine(init.config['DATABASE']['host'],init.config['DATABASE']['driver'],init.config['DATABASE']['database'],init.config['DATABASE']['login'],init.config['DATABASE']['password'],False)
     self.logger=logging.getLogger()
     self.logger.setLevel(int(init.config['CONNECT_REQUEST']['log_level']))
     formatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s')
     handler = logging.FileHandler(init.config['CONNECT_REQUEST']['log_file'])
     handler.setFormatter(formatter)
     self.logger.addHandler(handler)
     self.logger.info (u'Connection request ..... init' )
     self.index=1
     self.dump_path=''
Exemplo n.º 14
0
    def power_off(self, device, command):
        init = Init.Init()
        device.status = "off"

        try:
            if int(device.connect_request_pid) > 0:
                os.kill(int(device.connect_request_pid), signal.SIGTERM)
        except:
            pass
        device.connect_request_pid = "0"
        device.client_TR069_status = "Offline"
        device.listner_connect_request = "Offline"
        init.database.session.commit()
        command.status = 'done'
        init.database.session.commit()
Exemplo n.º 15
0
 def power_on(self, device, command):
     pid = os.fork()
     if pid == 0:
         # дочерний процесс
         try:
             listner = Listner.ConnectRequestListner()
             listner.deviced_id = device.id
             listner.start()
             sys.exit()
         except:
             pass
     # родитель
     init = Init.Init()
     device.status = "on"
     device.connect_request_pid = str(pid)
     init.database.session.commit()
     command.status = 'done'
     self.start_tr069_client(device)
     init.database.session.commit()
    def do(self):
        init = Init.Init()

        ret_values = []

        param_names = self.params['ParameterNames']
        for param_name in param_names:
            if param_name == 'string':
                if type(self.params['ParameterNames'][param_name]) == str:
                    query_params = init.database.session.query(
                        db.Param.Param).filter(
                            db.Param.Param.name.like(
                                self.params['ParameterNames'][param_name] +
                                '%'))
                    params = query_params.all()
                    ret_values = ret_values + params
                else:
                    for find_param in self.params['ParameterNames'][
                            param_name]:
                        query_params = init.database.session.query(
                            db.Param.Param).filter(
                                db.Param.Param.name.like(find_param + '%'))
                        params = query_params.all()
                        ret_values = ret_values + params

        get_parameter_values_str = open(
            init.config['TEMPLATERS']['templater_dir'] + '/' +
            init.config['TEMPLATERS']['templater_get_parameter_values']).read(
            )
        templater = Template(get_parameter_values_str)

        content = templater.render(params=ret_values,
                                   leng=len(ret_values),
                                   cwmp_id=1)

        self.http_client.request(content)
        return
Exemplo n.º 17
0
 def insert_command_download(self,device_id,url):
     init=Init.Init()
     device_command=db.DeviceCommand.DeviceCommand(device_id=device_id,command='download',status='wait',download_url=url)
     init.database.session.add(device_command)
     init.database.session.commit()
Exemplo n.º 18
0
 def connect_request(self, device, command):
     init = Init.Init()
     command.status = 'done'
     init.database.session.commit()
     self.start_tr069_client(device)
Exemplo n.º 19
0
# -*- coding: utf-8 -*-

import socket
import sys
import re
import pprint
import requests, base64
import logging


import lib.init as Init
import lib.ORM.db as db
import lib.ConnectionRequest.ConnectRequestListner as Listner




init=Init.Init()
init.config_file='/home/leo/emualator/etc/device.conf'
init.read_config()
init.init_database()

listner=Listner.ConnectRequestListner()
listner.deviced_id=1
listner.start()


sys.exit()