Are there Python3 libraries for the net commands and etc?

John Mulligan phlogistonjohn at asynchrono.us
Thu Mar 31 22:40:05 UTC 2022


On Thursday, March 31, 2022 4:02:32 PM EDT Richard Sharpe wrote:
> On Thu, Mar 31, 2022 at 10:57 AM John Mulligan via samba-technical
> 
> <samba-technical at lists.samba.org> wrote:
> > > We don't have bindings for these right now. It probably wouldn't be
> > > difficult to add them though.
> > 
> > I'm interested in contributing patches for this. I've already looked at
> > the
> > code needed to be wrapped (lib/smbconf and source3/lib/smbconf). I've even
> > started prototyping.  I've done C/Python APIs before, but it's been a
> > while
> > and I'm rusty, so I'll probably start by making a draft merge request for
> > a
> > subset of these API to get early feedback.
> 
> How were you planning on dealing with the 'net conf list output'? As a
> list of dictionaries, one per section or a dictionary of dictionaries?

The bindings are a bit low level, so my plan is to map the `struct 
smbconf_service` to a tuple, like so:
(<name>, [(<param-name 0>, <param-value 0>), (<param-name 1>, <param-value 
1>)...])
That's a two-tuple of the share/section name, an then a list of two-tuples 
each as a pair for the param name & param value.  It's very easy to go back 
and forth between a dict and a list of key-value pairs.  Once the low level 
bindings are more in shape we can also discuss if there should be a more 
"pythonic" wrapper on top.  

For example, I want to have a python function that implements the equivalent 
of `net conf import` but I'd rather (re)implement the logic in python not C. 
And if so, we'll need another py file in the samba tree for that. It could 
contain other useful wrapper types and functions. We'll see what others think 
when it comes time... :-)

I just filed a draft MR with my prototype. Please feel free to provide feedback 
on this attempt so far: https://gitlab.com/samba-team/samba/-/merge_requests/
2469





More information about the samba-technical mailing list