Are there Python3 libraries for the net commands and etc?
John Mulligan
phlogistonjohn at asynchrono.us
Mon Mar 28 19:44:18 UTC 2022
On Monday, March 28, 2022 12:11:18 PM EDT Jeremy Allison via samba-technical
wrote:
> On Sun, Mar 27, 2022 at 09:21:38AM -0700, Richard Sharpe via samba-technical
wrote:
> >Hi folks,
> >
> >A lot of system management scripts these days are implemented in
> >Python and I am sick of using popen and system in python to run Samba
> >commands and then grub through the output to figure out what I need.
> >
> >Are there any Python3 libraries that provide the functionality of the
> >net commands?
>
> I don't think so. The only python SMB stuff I'm aware of is:
>
> https://pysmb.readthedocs.io/en/latest/
>
> I think only Samba does the management stuff. However,
> most of our management stuff is drivable directly from
> python, as that's how we do much of the testing.
>
> Talk to David Mulder from SuSE or some of the Catalyst
> Team as they know much more about this than I.
There's also https://github.com/hamano/pysmbc that I used in past projects. It
uses libsmbclient, rather than being pure python.
However, I do think Richard Sharpe meant management stuff. I am also very
interested in doing less fork/exec/parse and make more use of samba library
bindings for our `sambacc` project. Personally, I keep meaning to spend some
time digging around in the samba-tool code. Since there's some overlap there
with `net` around things like domain join, even for non-AD-DC servers, I think
there *are* some existing libs to do a lot of these actions. However, the
documentation is missing/not obvious. One of my big stumbling blocks when I
see a package/api that seems to be something I want there's often a lack of
clarity around how to make use of it due to stuff like undocumented arguments &
some magic numeric constants, etc. However, its been some months since I last
looked so things may have improved too... so take this with a grain of salt.
There was also an effort to add JSON to some of the commands. If smbstatus and/
or other commands had JSON output we don't have to do low-level parsing of
output, even if we still need to fork/exec/read. My team was interested in
this but we didn't have sufficient bandwidth to actively pursue it ourselves.
However, a teammate alerted me to a new MR on the subject earlier today:
https://gitlab.com/samba-team/samba/-/merge_requests/2449
Anyway, I just wanted to reply to say that Richard isn't the only person
interested in this kind of thing. :-)
More information about the samba-technical
mailing list