def init_db_device(self, urls): """ 从RCMS获取需要的设备,更新url表,将dev_id加入表中 :param urls: :return: """ worker_hostname = REFRESH_WORKER_HOST devs = rcmsapi.getDevices(urls[0].get("channel_code")) logger.debug('init_db_device:%s' % urls[0].get("layer_type")) if urls[0].get("layer_type") != "one": devs += rcmsapi.getFirstLayerDevices(urls[0].get("channel_code")) db_device = { "devices": verify.create_dev_dict(devs), "unprocess": len(devs), "created_time": datetime.now(), "_id": self.dev_id } for url in urls: url["dev_id"] = self.dev_id db_update(db.url, {"_id": ObjectId(url.get("id"))}, { "$set": { "dev_id": self.dev_id, "worker_host": worker_hostname, "recev_host": url.get("recev_host", "") } }) logger.debug( "url_init_db_device successed ,worker_id: %s ,dev_id: %s " % (self.get_id_in_requestofwork(), self.dev_id)) return db_device
def get_devs_unopened(args): dev_name = args.pop("dev_name") rcms_devs = [dev for dev in rcmsapi.getFirstLayerDevices(args.get("channel_code")) + rcmsapi.getDevices(args.get("channel_code")) if dev.get("status") == "OPEN"] if dev_name: rcms_devs = [ dev for dev in rcms_devs if dev.get("name") == dev_name ] opened_devs = [dev.get("name") for dev in db.preload_config_device.find(args)] return [dev for dev in rcms_devs if dev.get("name") not in opened_devs]
def init_db_device(self, url): worker_hostname = REFRESH_WORKER_HOST devs = rcmsapi.getDevices(url.get("channel_code")) if url.get("layer_type") != "one": devs += rcmsapi.getFirstLayerDevices(url.get("channel_code")) db_device = { "devices": verify.create_dev_dict(devs), "unprocess": len(devs), "created_time": datetime.now(), "_id": self.dev_id } # dev_id = db.device.insert(db_device) url["dev_id"] = self.dev_id #db_update(db.url, {"_id": ObjectId(url.get("id"))}, {"$set": {"dev_id": self.dev_id}}) db_update(db.url, {"_id": ObjectId(url.get("id"))}, { "$set": { "dev_id": self.dev_id, "worker_host": worker_hostname, "recev_host": url.get("recev_host", "") } }) logger.debug( "dir_init_db_device successed ,url_id : %s ,dev_id = %s " % (url.get("id"), self.dev_id)) return db_device
def test_get_devs_unopened(): args = {'channel_code': '28444'} rcms_devs = [ dev for dev in rcmsapi.getFirstLayerDevices(args.get("channel_code")) + rcmsapi.getDevices(args.get("channel_code")) if dev.get("status") == "OPEN" ] print rcms_devs
def init_db_device(self, url): worker_hostname = REFRESH_WORKER_HOST devs = rcmsapi.getDevices(url.get("channel_code")) if url.get("layer_type") != "one": devs += rcmsapi.getFirstLayerDevices(url.get("channel_code")) try: devs += rcmsapi.getGrayDevices(url.get("channel_code")) except Exception, e: logger.debug(traceback.format_exc())
def get_rcms_devices(urls): devs_f = [] devs = rcmsapi.getDevices(urls[0].get("channel_code")) dev_s = [dev['name'] for dev in devs if dev['status'] == 'OPEN'] logger.debug('get_rcms_device:%s' % urls[0].get("layer_type")) if urls[0].get("is_multilayer"): devs_f = rcmsapi.getFirstLayerDevices(urls[0].get("channel_code")) devs_f = [dev['name'] for dev in devs_f if dev['status'] == 'OPEN'] return dev_s, devs_f
def init_preload_devs(channel_code): try: rcms_devs = [] for dev in rcmsapi.getFirstLayerDevices(channel_code): if dev.get("status") == "OPEN": rcms_devs.append(dev) for dev in rcmsapi.getDevices(channel_code): if dev.get("status") == "OPEN": rcms_devs.append(dev) logger.debug("rcms_devs::::%s" % rcms_devs) return rcms_devs except Exception, e: logger.debug("init_pre_devs error:%s " % e) logger.debug(traceback.format_exc(e))
def test_getFirstLayerDevices(self): devs = [] when(rcmsapi.redisutil.firstlayer_cache).hvals( self.rediscache.FIRSTLAYER_DEVICES_PREFIX % self.channel_code).thenReturn(None) when(rcmsapi.redisutil.MongoToRedis()).render_devices_mongo( self.channel_code, False).thenReturn(None) when(rcmsapi.redisutil.OutSysToRedis()).render_devices_rcms( self.channel_code, False).thenReturn(None) self.assertEqual(devs, rcmsapi.getFirstLayerDevices(self.channel_code)) # verify(rcmsapi.redisutil.firstlayer_cache,2).hvals(self.rediscache.FIRSTLAYER_DEVICES_PREFIX % self.channel_code) verify(rcmsapi.redisutil.MongoToRedis()).render_devices_mongo( self.channel_code, False) verify(rcmsapi.redisutil.OutSysToRedis()).render_devices_rcms( self.channel_code, False)
def init_db_device(self, urls): """ 从RCMS获取需要的设备,更新url表,将dev_id加入表中 :param urls: :return: """ worker_hostname = REFRESH_WORKER_HOST devs = rcmsapi.getDevices(urls[0].get("channel_code")) logger.debug('init_db_device:%s' % urls[0].get("layer_type")) if urls[0].get("layer_type") != "one": devs += rcmsapi.getFirstLayerDevices(urls[0].get("channel_code")) try: devs += rcmsapi.getGrayDevices(urls[0].get("channel_code")) except Exception, e: logger.debug(traceback.format_exc())
def get_physical_devs(urls): devs = rcmsapi.getDevices(urls[0].get("channel_code")) devs += rcmsapi.getFirstLayerDevices(urls[0].get("channel_code")) #devs = verify.create_dev_dict(devs) return devs