def handle(self): input = self.request.input with closing(self.odb.session()) as session: existing_one = session.query(OutgoingFTP.id).\ filter(OutgoingFTP.cluster_id==input.cluster_id).\ filter(OutgoingFTP.name==input.name).\ first() if existing_one: raise Exception( 'Outgoing FTP connection `{}` already exists'.format( input.name)) try: item = OutgoingFTP() item.name = input.name item.is_active = input.is_active item.cluster_id = input.cluster_id item.dircache = input.dircache item.host = input.host item.port = input.port item.user = input.user item.acct = input.acct item.timeout = input.timeout or None # Opaque attributes set_instance_opaque_attrs(item, input) session.add(item) session.commit() self.notify_worker_threads(input) self.response.payload.id = item.id self.response.payload.name = item.name except Exception: self.logger.error( 'Outgoing FTP connection could not be created, e:`{}`', format_exc()) session.rollback() raise
def handle(self): input = self.request.input with closing(self.odb.session()) as session: existing_one = session.query(OutgoingFTP.id).\ filter(OutgoingFTP.cluster_id==input.cluster_id).\ filter(OutgoingFTP.name==input.name).\ first() if existing_one: raise Exception( 'An outgoing FTP connection [{0}] already exists on this cluster' .format(input.name)) try: item = OutgoingFTP() item.name = input.name item.is_active = input.is_active item.cluster_id = input.cluster_id item.dircache = input.dircache item.host = input.host item.port = input.port item.user = input.user item.acct = input.acct item.timeout = input.timeout or None session.add(item) session.commit() self.notify_worker_threads(input) self.response.payload.id = item.id self.response.payload.name = item.name except Exception, e: msg = 'Could not create an outgoing FTP connection, e:[{e}]'.format( e=format_exc(e)) self.logger.error(msg) session.rollback() raise