def handle(self): input = self.request.input with closing(self.odb.session()) as session: # Let's see if we already have a channel of that name before committing # any stuff into the database. existing_one = session.query(ChannelWMQ.id).\ filter(ConnDefWMQ.cluster_id==input.cluster_id).\ filter(ChannelWMQ.def_id==ConnDefWMQ.id).\ filter(ChannelWMQ.name==input.name).\ first() if existing_one: raise Exception( 'A IBM MQ channel `{}` already exists on this cluster'. format(input.name)) # Is the service's name correct? service = session.query(ModelService).\ filter(Cluster.id==input.cluster_id).\ filter(ModelService.cluster_id==Cluster.id).\ filter(ModelService.name==input.service).first() if not service: msg = 'Service `{}` does not exist on this cluster'.format( input.service) self.logger.error(msg) raise Exception(msg) try: item = ChannelWMQ() item.name = input.name item.is_active = input.is_active item.queue = input.queue item.def_id = input.def_id item.service = service item.data_format = input.data_format session.add(item) session.commit() input.id = item.id input.service_name = service.name input.action = BROKER_MSG_CHANNEL.WMQ_CREATE.value self.broker_client.publish(input) self.response.payload.id = item.id self.response.payload.name = item.name except Exception: self.logger.error( 'Could not create an IBM MQ MQ channel, e:`%s`', format_exc()) session.rollback() raise
def handle(self): input = self.request.input with closing(self.odb.session()) as session: # Let's see if we already have a channel of that name before committing # any stuff into the database. existing_one = session.query(ChannelWMQ.id).\ filter(ConnDefWMQ.cluster_id==input.cluster_id).\ filter(ChannelWMQ.def_id==ConnDefWMQ.id).\ filter(ChannelWMQ.name==input.name).\ first() if existing_one: raise Exception( 'A WebSphere MQ channel [{0}] already exists on this cluster' .format(input.name)) # Is the service's name correct? service = session.query(Service).\ filter(Cluster.id==input.cluster_id).\ filter(Service.cluster_id==Cluster.id).\ filter(Service.name==input.service).first() if not service: msg = 'Service [{0}] does not exist on this cluster'.format( input.service) self.logger.error(msg) raise Exception(msg) try: item = ChannelWMQ() item.name = input.name item.is_active = input.is_active item.queue = input.queue item.def_id = input.def_id item.service = service item.data_format = input.data_format session.add(item) session.commit() if item.is_active: start_connector(self.server.repo_location, item.id, item.def_id) self.response.payload.id = item.id self.response.payload.name = item.name except Exception, e: msg = 'Could not create a WebSphere MQ channel, e:[{e}]'.format( e=format_exc(e)) self.logger.error(msg) session.rollback() raise
def handle(self): input = self.request.input with closing(self.odb.session()) as session: # Let's see if we already have a channel of that name before committing # any stuff into the database. existing_one = session.query(ChannelWMQ.id).\ filter(ConnDefWMQ.cluster_id==input.cluster_id).\ filter(ChannelWMQ.def_id==ConnDefWMQ.id).\ filter(ChannelWMQ.name==input.name).\ first() if existing_one: raise Exception('A WebSphere MQ channel [{0}] already exists on this cluster'.format(input.name)) # Is the service's name correct? service = session.query(Service).\ filter(Cluster.id==input.cluster_id).\ filter(Service.name==input.service).first() if not service: msg = 'Service [{0}] does not exist on this cluster'.format(input.service) self.logger.error(msg) raise Exception(msg) try: item = ChannelWMQ() item.name = input.name item.is_active = input.is_active item.queue = input.queue item.def_id = input.def_id item.service = service item.data_format = input.data_format session.add(item) session.commit() if item.is_active: start_connector(self.server.repo_location, item.id, item.def_id) self.response.payload.id = item.id self.response.payload.name = item.name except Exception, e: msg = 'Could not create a WebSphere MQ channel, e:[{e}]'.format(e=format_exc(e)) self.logger.error(msg) session.rollback() raise
def handle(self, *args, **kwargs): with closing(self.server.odb.session()) as session: payload = kwargs.get('payload') params = ['cluster_id', 'name', 'is_active', 'def_id', 'queue', 'service'] params = _get_params(payload, params, 'data.') name = params['name'] cluster_id = params['cluster_id'] service_name = params['service'] params['def_id'] = int(params['def_id']) # Let's see if we already have a channel of that name before committing # any stuff into the database. existing_one = session.query(ChannelWMQ.id).\ filter(ConnDefWMQ.cluster_id==cluster_id).\ filter(ChannelWMQ.def_id==ConnDefWMQ.id).\ filter(ChannelWMQ.name==name).\ first() if existing_one: raise Exception('A WebSphere MQ channel [{0}] already exists on this cluster'.format(name)) # Is the service's name correct? service = session.query(Service).\ filter(Cluster.id==cluster_id).\ filter(Service.name==service_name).first() if not service: msg = 'Service [{0}] does not exist on this cluster'.format(service_name) logger.error(msg) raise Exception(msg) created_elem = Element('channel_jms_wmq') try: params['is_active'] = is_boolean(params['is_active']) item = ChannelWMQ() item.name = params['name'] item.is_active = params['is_active'] item.queue = params['queue'] item.def_id = params['def_id'] item.service = service session.add(item) session.commit() created_elem.id = item.id start_connector(self.server.repo_location, item.id, item.def_id) return ZATO_OK, etree.tostring(created_elem) except Exception, e: msg = 'Could not create a WebSphere MQ channel, e=[{e}]'.format(e=format_exc(e)) self.logger.error(msg) session.rollback() raise