Hi,

IMHO a non-command based interface is more flexible and more portable (no need to hardcode all the paths) at the same time.
Hi,

What is the use case you are trying to address?

Part of our service mgmt infrastructure is python-based, including a fairly 
complex backup system. However, it builds on an API layer which internally uses 
CLI via a subprocess (vos, fs, …) and we found this is completely sufficient.  
Moreover, you do not expose to the python layer any runtime problems occurring 
in extension libraries such as crashes, memory leaks etc... (this is 
effectively encapsulated in a subprocess) so I would even argue that from this 
point of view it is a technically more desirable approach (and easier, too). 
However our internal API implements only what we need and is quite limited.

Simple example of usage (sum the size occupied by volumes (which follow a 
certain name pattern) on all partitions of a file server)::

from cernafs import vos

   >>> for p in vos.listpart('afs108'):
   ...    print p, sum([v.sizeKB for v in vos.listvol('afs108',p) if v.name and 
v.name[0] in ['q','s']])/1024./1024.
    b 154.509589195
    c 260.041460991
    d 215.590883255
    e 292.481509209
    f 221.171380043
    g 262.226537704
    h 214.474150658
    i 159.367405891
    j 336.694796562
    k 227.23085022
    l 338.797628403
    m 283.453014374
    n 235.3145895
    o 148.527907372
    s 0.000127792358398
kuba

--
Cheers

Geza Gemes

On Sep 1, 2013, at 12:27 PM, Gémes Géza <[email protected]>
  wrote:

Hi,

I've decided to start a project for building a swig based python interface for 
afs commands/functions. The advantage is that a swig interface can be further 
used for creating interfaces for other languages. Currently I know about only 
one limited python-afs interface which calls the afs binary commands instead of 
implementing an interface to the C code 
(https://github.com/openafs-contrib/afspy). On the other hand the (to my 
knowledge) only interface: AFSPerl 
(http://cpansearch.perl.org/src/NOG/AFS-2.6.3/) uses suboptimal interfaces 
making it incompatible with 1.6.x and 64 bit 
(https://lists.openafs.org/pipermail/openafs-info/2012-September/038684.html).

So if you can give me some pointers about where should I look in the openafs 
source for the declaration of different functions? My first guess would be the 
files in libadmin, but I'm probably wrong :-(

Thank you in advance!

Cheers

Geza Gemes
_______________________________________________
OpenAFS-info mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-info

_______________________________________________
OpenAFS-info mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-info

Reply via email to