Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!aioe.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.007 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'sorts': 0.04; 'python:': 0.05; 'function,': 0.07; 'stuff,': 0.07; 'python': 0.08; 'etc).': 0.09; 'url:packages': 0.09; 'workstation': 0.09; 'server,': 0.12; 'cc:addr:python-list': 0.15; 'approach,': 0.16; 'from:addr:alec.taylor6': 0.16; 'from:name:alec taylor': 0.16; 'subject:app': 0.16; 'subject:server': 0.16; 'trivially': 0.16; 'wmi': 0.16; 'workstations': 0.16; '(i.e.': 0.17; 'wrote:': 0.18; 'received:209.85.210.174': 0.18; 'received:mail- iy0-f174.google.com': 0.18; 'seems': 0.19; 'cc:no real name:2**0': 0.21; 'maybe': 0.21; 'stuff': 0.22; '(or': 0.22; 'runs': 0.23; 'values.': 0.23; 'header:In-Reply-To:1': 0.23; 'cc:2**0': 0.25; 'code': 0.25; 'server.': 0.26; "i'm": 0.26; 'function': 0.27; 'remote': 0.27; 'url:mailman': 0.27; 'pass': 0.28; 'generic': 0.28; 'cc:addr:python.org': 0.29; 'message-id:@mail.gmail.com': 0.29; 'server': 0.30; 'module': 0.30; "client's": 0.30; 'remains': 0.30; 'xmlrpc': 0.30; 'nov': 0.31; 'pm,': 0.31; 'updated': 0.31; 'values': 0.31; 'downloads': 0.32; 'objects': 0.32; 'url:listinfo': 0.32; 'it.': 0.33; 'there': 0.33; 'done': 0.33; '17,': 0.34; 'things': 0.35; 'running': 0.35; 'subject:/': 0.35; 'thank': 0.35; 'url:python': 0.35; 'file': 0.36; 'fri,': 0.36; 'disk': 0.36; 'executing': 0.36; 'like,': 0.36; 'but': 0.37; 'problems': 0.37; 'focused': 0.38; 'allows': 0.38; 'run': 0.38; 'received:google.com': 0.38; 'registered': 0.38; 'some': 0.38; 'received:209.85': 0.38; 'url:org': 0.38; 'client': 0.38; 'itself.': 0.38; 'relatively': 0.38; 'ways': 0.38; "it's": 0.39; 'tool': 0.39; 'case': 0.39; 'subject:: ': 0.39; 'far': 0.40; 'received:209': 0.40; 'hoping': 0.40; 'more': 0.60; 'huge': 0.60; 'easily': 0.60; 'your': 0.61; 'central': 0.61; 'back': 0.62; '2011': 0.62; 'you.': 0.63; 'our': 0.63; 'free': 0.63; 'direction.': 0.64; 'transferring': 0.67; 'url:http': 0.72; 'learned': 0.73; 'reverse': 0.73; '100%': 0.82; 'flame': 0.84; 'to:addr:hotmail.com': 0.89 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=zZxZOw38pq4FDX2N+NMzcIazWobC0oWYgRI/6SAmiPQ=; b=rBlEmEDePvpjIBMAUCqP5HS85PXE1+N+qvj/7KOZcIm3zRzd6lXBkWT2qK2i8Qj0RA TUmiTxor8PwEbRWISzQokyC2DNw0QCA1plbFoZBDP4XzGIdXiN+mmjVrJV1/Ebb3Dj5h 5eMgS71wX+0ofYIxvQHiJiVvgfRYkpaihTe4s= MIME-Version: 1.0 In-Reply-To: <1ba9dc95-9347-4a5a-a705-774d31166a08@o17g2000yqa.googlegroups.com> References: <557bfa42-0ba1-45b6-9eee-5bf23a278baf@h5g2000yqk.googlegroups.com> <4ec58b51$0$6842$e4fe514c@news2.news.xs4all.nl> <1ba9dc95-9347-4a5a-a705-774d31166a08@o17g2000yqa.googlegroups.com> Date: Fri, 18 Nov 2011 15:53:07 +1100 Subject: Re: Monitoring/inventory client-server app From: Alec Taylor To: snorble Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: python-list@python.org X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 73 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1321591990 news.xs4all.nl 6963 [2001:888:2000:d::a6]:60731 X-Complaints-To: abuse@xs4all.nl Xref: x330-a1.tempe.blueboxinc.net comp.lang.python:15863 Maybe take a look outside python: - Puppet On Fri, Nov 18, 2011 at 3:49 PM, snorble wrote: > On Nov 17, 4:31=A0pm, Irmen de Jong wrote: >> On 17-11-2011 5:17, snorble wrote: >> >> >> >> >> >> >> >> >> >> > I'm writing a tool for monitoring the workstations and servers in our >> > office. I plan to have a server and a client service that runs on each >> > workstation and reports back to the server (heartbeat, disk free >> > space, etc). >> >> > So far I am considering XMLRPC, or a client service that just >> > downloads a Python file and runs it. >> >> > With XMLRPC I don't know how to easily add features without having to >> > update every client. Also while playing with XMLRPC I learned that >> > when you run a registered function, it runs it on the server. I was >> > hoping it would run on the client, so that when I get the machine's >> > computer name (or disk space, etc) it will return the client's info. >> > It seems with XMLRPC I would have to hard code the functionality into >> > the client (i.e. client gets it's computer name, then calls the XMLRPC >> > function to pass it to the server)? I was hoping it would work more >> > like, "pass some code to the client to be run on the client, and >> > report it to the server". Almost XMLRPC in the reverse direction. >> >> > With the download-and-run approach, it seems trivially easy to add new >> > functionality to the clients. Just save the updated Python file to the >> > server, and clients download it and run it. >> >> > Are there any standard approaches to problems like this that can be >> > recommended? Thank you. >> >> The security implications are HUGE when you are thinking about >> transferring and executing arbitrary code over the network. Avoid this >> if at all possible. But if you can be 100% sure it's only trusted stuff, >> things are not so grim. >> >> Have a look at Pyro, or even Pyro Flame: >> >> http://packages.python.org/Pyro4/http://packages.python.org/Pyro4/flame.= html >> >> Flame allows for very easy remote module execution and a limited way of >> transferring code to the 'other side'. >> >> Also what is wrong with running an XMLrpc server, or Pyro daemon, on >> your client machines? This way your central computer can call registered >> methods (or remote objects in case of Pyro) on the client and execute >> code there (that reports all sorts of stuff you want to know). Or have >> each client call into a central server, where it reports that stuff >> itself. Many ways to skin a cat. >> >> Regards, >> Irmen de Jong > > I'm thinking maybe the client service will have a small number of > generic features, such as reading WMI and SNMP values. That way the > server still dictates the work to be done (i.e. XMLRPC returns which > WMI/SNMP values to query), and the client remains relatively focused > and straightforward. > -- > http://mail.python.org/mailman/listinfo/python-list >