#48911 Improve plugin support for lib389 based on new mapped objects
Closed: wontfix 7 years ago Opened 7 years ago by firstyear.

Add support for managing plugins into the mapped objects. Examples are provided on how we can manage complex plugins, and have the ORM types able to effectively return them during get/list operations to the correct objects.


Thanks, William!
Very good and useful patch! Looks good to me.

commit 2ef056e217dc076496d081e97a0a879dff98c918
Writing objects: 100% (26/26), 6.25 KiB | 0 bytes/s, done.
Total 26 (delta 22), reused 0 (delta 0)
To ssh://git.fedorahosted.org/git/389/lib389.git
bc5428a..2ef056e master -> master

ack, but we should add common/global plugin tasks to the Plugin class:

- dependency getting/setting/checking
- get/set plugin type
- get/set Shared Config (SLAPI_PLUGIN_SHARED_CONFIG_AREA)
- get/set attribute --> for generic/unknown plugins 
- nsslapd-pluginArg# support --> this is being phased out, but it's still commonly used

These should be pretty simple to add.

Replying to [comment:5 mreynolds]:

ack, but we should add common/global plugin tasks to the Plugin class:

- dependency getting/setting/checking

This would be only on the "advanced" plugin types IE Attribute Uniqueness, rather than the generic. But won't be hard to add.

- get/set plugin type
- get/set Shared Config (SLAPI_PLUGIN_SHARED_CONFIG_AREA)
- get/set attribute --> for generic/unknown plugins

Already there as a function of deriving DSLdapObject

- nsslapd-pluginArg# support --> this is being phased out, but it's still commonly used

If we are phasing it out, let's leave it out. We are the major consumer of lib389 now, so let's use it the "right way".

If we were to add support, I would want it to be to migrate pluginarg -> named config only.

These should be pretty simple to add.

commit c6aedf9bde75e945143d098b49f0d44ee0691860
Writing objects: 100% (6/6), 1.08 KiB | 0 bytes/s, done.
Total 6 (delta 5), reused 0 (delta 0)
To ssh://git.fedorahosted.org/git/389/lib389.git
2ef056e..c6aedf9 master -> master

Hi William,

Instead of 'status' method, why not calling is 'enabled' as it returns the boolean value of nsslapd-pluginenabled==on ?
otherwise it looks good to me.

I prefer to keep the function names separate in a linguistic sense. It's easy to mistype

{{{
enabled
enable
}}}

As well, at a glace, it is hard to see a difference.

So were I to change thing, it would be to something like "enabled_status", or something which is far more unique to the word.

Does that make sense?

Hi William,

I understand the point. The fix looks good to me. Ack

Metadata Update from @firstyear:
- Issue assigned to firstyear
- Issue set to the milestone: lib389 1.0.3

7 years ago

I've implemented a lot of stub classes now, and at this point, each plugin needs individual attention to improve it. I think I can close this and we work on issues as they arise.

Metadata Update from @firstyear:
- Custom field reviewstatus adjusted to new
- Issue close_status updated to: fixed
- Issue status updated to: Closed (was: Open)

7 years ago

Metadata Update from @mreynolds:
- Custom field reviewstatus adjusted to None (was: new)
- Issue set to the milestone: None (was: lib389 1.0.3)

4 years ago

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This issue has been cloned to Github and is available here:
- https://github.com/389ds/389-ds-base/issues/1970

If you want to receive further updates on the issue, please navigate to the github issue
and click on subscribe button.

Thank you for understanding. We apologize for all inconvenience.

Metadata Update from @spichugi:
- Issue close_status updated to: wontfix (was: fixed)

3 years ago

Login to comment on this ticket.

Metadata