Re: plugin names and debian packages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On 28 Jan 2021, at 19:13, Angel Bosch Mora <abosch@xxxxxxxxxxxxxxxx> wrote:
> 
>>>> As sysadmin I create a lot of script to install/manage services
>>>> and is confusing having commands that change that often.
>> 
>> You may find it "more stable" to use lib389 directly rather than the
>> CLI then. I think the team should talk about the CLI having an
>> "interface guarantee", and today I don't think I personally would
>> want to commit to that (but the team hasn't decided on this). I
>> still see room to change and grow the CLI in ways that may be
>> breaking, but the core of lib389 today seems "pretty stable".
>> 
> 
> 
> I understand your recommendation but I don't think I'm going to do that, and I think I "shouldn't" do that.
> 
> my job as sysadmin is installing, managing, mantaining and monitoring, and dsconf wrapping is just what I need.
> If I have, for example, a command that tells me if a drive is out of space I don't expect to change that command over the years on different linux systems with different versions.
> 
> I understand that 389 is under heavy refactoring these last years, I'm just a little bit tired of version conditionals in my recipes (and by the way, I can't find an easy method to check the version with dsconf/dsctl, worth a feature request?).
> 
> 
> so taking my own example I just expect that `dsconf instance plugin retro-changelog enable' is still valid a year/version later.

The problem here is that there is a difference between "a command line that is good for humans" and "a command line that is good for machine/API consumption".

If we target good for APIs, and commit to making the CLI interface "stable", then we lose the possibility to improve things for humans. LDAP has a reputation for being difficult to administer, and this is just a small step to fixing that. But to commit to CLI interface stability means we would stop being able to progress on this front. We would again become stagnant, and I don't want to see that after we have made so much progress already.

But we *do* have something that *is* API stable - our python API. We *have* to maintain that and it's behaviours, and at this point it's core has not undergone significant churn. It's also much easier to script and manipulate compared to shell. In a recent email I sent this example to someone:


from lib389 import DirSrv
import logging

log = logging.getLogger()
log.setLevel(logging.DEBUG)

ds = DirSrv(verbose=True, external_log=log)
ds.remote_simple_allocate(ldapuri="ldaps://ldapuri", binddn="", password="")
ds.open()

from lib389.config import Config
dsconfig = Config(ds)
dsconfig.set('nsslapd-port', '389')

Alternately, we have another interface that *is* stable and we strongly commit to keeping it the same - our cn=config and ldap interface that you can directly modify. 


Regardless, as a project we need to discuss what level of CLI interface stability we want to commit to - today you must assume that it is *not* a commitment we are making.


> 
> 
> again, please take my point of view as a frustrated admin with too many tasks to do and too little beers to take on my free time (everything is closed right now in Mallorca :P)

I too was once upon a time, a frustrated admin with too many tasks and too little time. Some of the initial code for the python tooling you use today was written when I was in that role, and it's what inspired me to want to make this CLI better for human admins. But for programmatic tasks, you should always use a programming language like python. I used to use python to script satellite 5 via it's api for example. 

And maybe it's hard/frustrating to hear today, because it seems like more work, but any process/progress is like that. For you to learn python would be a challenge in the short term, but long term it will pay off multiple times over.


Hope that helps, 


> 
> 
> cheers,
> 
> abosch
> -- Institut Mallorqui d'Afers Socials. Aquest missatge, i si escau, qualsevol fitxer annex, es dirigeix exclusivament a la persona que n'es destinataria i pot contenir informacio confidencial. En cap cas no heu de copiar aquest missatge ni lliurar-lo a terceres persones sense permis expres de l'IMAS. Si no sou la persona destinataria que s'hi indica (o la responsable de lliurar-l'hi) us demanam que ho notifiqueu immediatament a l'adreca electronica de la persona remitent. Abans d'imprimir aquest missatge, pensau si es realment necessari.
> _______________________________________________
> 389-users mailing list -- 389-users@xxxxxxxxxxxxxxxxxxxxxxx
> To unsubscribe send an email to 389-users-leave@xxxxxxxxxxxxxxxxxxxxxxx
> Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: https://lists.fedoraproject.org/archives/list/389-users@xxxxxxxxxxxxxxxxxxxxxxx

—
Sincerely,

William Brown

Senior Software Engineer, 389 Directory Server
SUSE Labs, Australia
_______________________________________________
389-users mailing list -- 389-users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to 389-users-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/389-users@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora User Discussion]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [Fedora News]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Maintainers]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [Fedora Fonts]     [ATA RAID]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora QA]     [Fedora Triage]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Tux]     [Yosemite News]     [Yosemite Photos]     [Linux Apps]     [Maemo Users]     [Gnome Users]     [KDE Users]     [Fedora Tools]     [Fedora Art]     [Fedora Docs]     [Maemo Users]     [Asterisk PBX]     [Fedora Sparc]     [Fedora Universal Network Connector]     [Fedora ARM]

  Powered by Linux