Hi,

SCP? FTP?

My company will be releasing soon in OSS an application built on top of
Twisted that in other things perform this

Nicolas

On Tue, Jan 20, 2009 at 9:57 PM, Worsham, Michael <
michael.wors...@morris.com> wrote:

>  I was recommended to look at the Twisted application framework for
> replacing a legacy application that relies on RPC portmapper, so here's my
> issue and question…
>
>
>
> Currently, we use an in-house designed application called 'Fileman', which
> acts as a combined bi-directional shared library (client) and server system
> to transfer data files between other 'Fileman' server points. The problem is
> that the Fileman application requires portmapper under Linux which exposes
> all TCP ports (i.e. a network security nightmare). Fileman also has the
> ability to send data in either ASCII or binary format and at receiver end --
> change directories, modify user id (uid) and group id (gid) of file once
> data is received.
>
> ---
>
> Here is what Fileman can perform via following functions from client side
> code:
>
> struct StatResult   *pFileMan_FileStat(char *host, char *file, int userid,
> int groupid);
> struct StatResult   *pFileMan_GetDirectoryListing(char *host, char *dir,
> int userid, int groupid, int *entries);
> int                 iFileMan_PutAsciiFile(char *host, char *file, char
> *cpBuf, int bMakeDir, int userid, int groupid);
> char                *cpFileMan_GetAsciiFile(char *host, char *file, int
> userid, int groupid, int *result);
> int                 iFileMan_PutBinaryFile(char *host, char *file, char
> *cpBuf, int bMakeDir, int userid, int groupid, int length);
> char                *cpFileMan_GetBinaryFile(char *host, char *file, int
> userid, int groupid, int *result, int *length);
> int                 iFileMan_DeleteFile(char *host, char *file, int userid,
> int groupid);
> int                 bFileMan_Ping(char *cpHost);
> void                vFileMan_ResetStats(void);
> int                 iFileMan_GetNumOps();
> double              dFileMan_GetSecsSpent();
> void                vFileMan_SetTimeout(int iSecs);
>
> Above functions translates to 'over the wire' execution of:
> stat
> opendir, readdir
> fopen, fwrite with any necessary mkdir, chown/chgrp to given group
> fopen, read, subject to uid/gid restrictions
> fopen, fwrite with any necessary mkdir, chown/chgrp to given group
> fopen, read, subject to uid/gid restrictions
> unlink subject to uid/gid restrictions
> noop response from server
> Internal stat change
> Internal stat info
> Internal stat info
> Set network timeout parameters for operation
>
>
>
> Usage/Syntax from 'Fileman' client:
>
>
>
> void printUsage()
>
> {
>
>     printf("Usage: \n");
>
>     printf("  \n");
>
>     printf(" fileman Get [remote_host] [remote_file] [remote_uid]
> [remote_gid] [local_file] \n");
>
>     printf(" fileman GetAscii [remote_host] [remote_file] [remote_uid]
> [remote_gid] [local_file] \n");
>
>     printf(" fileman GetBinary [remote_host] [remote_file] [remote_uid]
> [remote_gid] [local_file] \n");
>
>     printf(" fileman Put [remote_host] [remote_file] [remote_uid]
> [remote_gid] [local_file] \n");
>
>     printf(" fileman PutAscii [remote_host] [remote_file] [remote_uid]
> [remote_gid] [local_file] \n");
>
>     printf(" fileman PutBinary [remote_host] [remote_file] [remote_uid]
> [remote_gid] [local_file] \n");
>
>     printf(" fileman Stat [remote_host] [remote_file] [remote_uid]
> [remote_gid] \n");
>
>     printf(" fileman Ping [remote_host] \n");
>
>     printf("  \n");
>
> }
>
>
> ---
>
> My question is can the Twisted framework be utilized in a way that can do
> actions of sending and receiving data in either ASCII or binary format,
> change uid or gid permissions of files once delivered, run as a
> client/server client & listener and utilize one (or two) TCP ports for both
> sending and listening upon?
>
> Known application replacement requirements:
> 1) Application must be able to run upon RHEL/CentOS 5.x Linux platform.
> 2) Application must be able to be locked down to one or two TCP ports for
> listening and sending data upon.
> 3) Application must be able to take command line (CLI) instructions
> 4) Application must be able to transfer data in ASCII or binary format
> (i.e. graphic images)
> 5) Application must be able to [at receiver end]: change directories,
> modify user id (uid) and group id (gid) of file once data is received.
>
> Current solutions we are actively looking at now:
>  -- Apache's WebDAV: Uses port 80; Needs apache instance on each server;
> cannot change uid or gid permissions of files
>  -- Apache's ActiveMQ: Uses channel/queue/broker system; requires trigger
> queue and external program for dumping queue data; Needs Java platform
>  -- JBoss Messaging: Suffers same issues as Apache's ActiveMQ; Requires
> costly licensing
>  -- IBM Websphere MQ: Suffers same issues as Apache's ActiveMQ; Requires
> costly licensing
>
>  -- XML-RPC Library for C & C++ -- http://xmlrpc-c.sourceforge.net/
>
>
> Anyone have any ideas or other plausible solutions for solving this
> problem?
>
>
>
> -- Michael
>
>
>
> ---
> Michael Worsham
> Sr. System Engineer, IT Architect
> Morris Technology Services, IHS Division
>
>
>
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python@twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
>


-- 
A+
Nico
http://www.deviant-abstraction.net
_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to