Skip to content

Commit

Permalink
GH zatosource#282 - Moving GenericModel SQL utils to a different module.
Browse files Browse the repository at this point in the history
  • Loading branch information
dsuch committed Mar 4, 2019
1 parent 54cdbde commit 8f0eec6
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 21 deletions.
15 changes: 15 additions & 0 deletions code/zato-common/src/zato/common/util/sql.py
Original file line number Diff line number Diff line change
Expand Up @@ -254,3 +254,18 @@ def get_security_by_id(session, security_id):
one()

# ################################################################################################################################

def get_instance_by_id(session, model_class, id):
return session.query(model_class).\
filter(model_class.id==id).\
one()

# ################################################################################################################################

def get_instance_by_name(session, model_class, type_, name):
return session.query(model_class).\
filter(model_class.type_==type_).\
filter(model_class.name==name).\
one()

# ################################################################################################################################
11 changes: 0 additions & 11 deletions code/zato-server/src/zato/server/connection/sftp.py
Original file line number Diff line number Diff line change
Expand Up @@ -637,14 +637,3 @@ def write(self, data, remote_path, mode='w+b', overwrite=False, log_level=0):

# ################################################################################################################################
# ################################################################################################################################

class MyService(Service):
def handle(self):
conn = self.out.sftp['local']
config = conn.config

api = SFTPIPCFacade(self.cid, self.server, config)
api.ping()

# ################################################################################################################################
# ################################################################################################################################
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"""

# Zato
from zato.common.util.sql import get_instance_by_id, get_instance_by_name
from zato.server.service.internal import AdminService

# ################################################################################################################################
Expand All @@ -16,16 +17,11 @@ class _BaseService(AdminService):
# ################################################################################################################################

def _get_instance_by_id(self, session, model_class, id):
return session.query(model_class).\
filter(model_class.id==id).\
one()
return get_instance_by_id(session, model_class, id)

# ################################################################################################################################

def _get_instance_by_name(self, session, model_class, type_, name):
return session.query(model_class).\
filter(model_class.type_==type_).\
filter(model_class.name==name).\
one()
return get_instance_by_name(session, model_class, type_, name)

# ################################################################################################################################
14 changes: 11 additions & 3 deletions code/zato-server/src/zato/server/service/internal/outgoing/sftp.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,13 @@

from __future__ import absolute_import, division, print_function, unicode_literals

# stdlib
from contextlib import closing

# Zato
from zato.common.broker_message import OUTGOING
from zato.common.odb.model import GenericConn as ModelGenericConn
from zato.common.util.sql import get_instance_by_id
from zato.server.service.internal import AdminService, AdminSIO

# ################################################################################################################################
Expand All @@ -21,15 +25,19 @@ class Execute(AdminService):
"""
class SimpleIO(AdminSIO):
input_required = 'id', 'data', 'log_level'
output_optional = 'response_time', 'stdout', 'stderr'
output_optional = 'response_time', 'stdout', 'stderr', 'command_no'
response_elem = None

def handle(self):
msg = self.request.input.deepcopy()
msg['action'] = OUTGOING.SFTP_EXECUTE.value
msg['cid'] = self.cid

out = self.server.connector_sftp.invoke_sftp_connector(msg)
self.response.payload = out.text
with closing(self.odb.session()) as session:
instance = get_instance_by_id(session, ModelGenericConn, self.request.input.id)
conn = self.out.sftp[instance.name].conn
response = conn.execute(self.request.input.data, self.request.input.log_level)
self.response.payload = response.to_dict()

# ################################################################################################################################
# ################################################################################################################################

0 comments on commit 8f0eec6

Please sign in to comment.