# library/assemble vs. action-plugin/assemble etc.

**URL:** <https://forum.ansible.com/t/library-assemble-vs-action-plugin-assemble-etc/11878>\
**Category:** Ansible Project\
**Created:** [September 10, 2012, 2:15pm UTC](https://forum.ansible.com/t/library-assemble-vs-action-plugin-assemble-etc/11878 "2012-09-10T14:15:00Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Timothy\_Appnel](https://avatars.discourse-cdn.com/v4/letter/t/e5b9ba/32.png) [@Timothy\_Appnel](https://forum.ansible.com/u/Timothy_Appnel)\
**Post date:** [September 10, 2012, 2:15pm UTC](https://forum.ansible.com/t/library-assemble-vs-action-plugin-assemble-etc/11878/1 "2012-09-10T14:15:00Z")

</div>

I'm guessing this is just a minor oversight that needs to be cleaned up, however its worth mentioning that some of the functionality converted to action\_plugins still remain as modules in library/.

Somewhat relatedly to this topic, do action\_plugins require a file (even if empty) in library/ such as fetch?

\<tim/\>

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan](https://avatars.discourse-cdn.com/v4/letter/m/c4cdca/32.png) [@Michael\_DeHaan](https://forum.ansible.com/u/Michael_DeHaan)\
**Post date:** [September 10, 2012, 2:29pm UTC](https://forum.ansible.com/t/library-assemble-vs-action-plugin-assemble-etc/11878/2 "2012-09-10T14:29:08Z")

</div>

This is really an internals question that users shouldn't have to think about.

There's no "oversight" either.

Currently the assemble module doesn't use the daisy chain return logic  
that "get\_url" uses, so it still has a server side module.

The files in the modules directory when they are basically present are  
there because sometimes they ARE needed, and otherwise someone  
browsing the source code can quickly see all of the modules that are  
available and read the source to know which ones are implemented  
server side.

---

<div class="post-metadata">

**Author:** ![Timothy\_Appnel](https://avatars.discourse-cdn.com/v4/letter/t/e5b9ba/32.png) [@Timothy\_Appnel](https://forum.ansible.com/u/Timothy_Appnel)\
**Post date:** [September 10, 2012, 3:30pm UTC](https://forum.ansible.com/t/library-assemble-vs-action-plugin-assemble-etc/11878/3 "2012-09-10T15:30:58Z")

</div>

Sorry. It's Monday and I'm feeling dense.

> This is really an internals question that users shouldn't have to think about.

Understood. I'm writing an action plugin of my own.

> There's no "oversight" either.

So Ansible doesn't necessarily check if a server side plugin was a file in library/.

> Currently the assemble module doesn't use the daisy chain return logic  
> that "get\_url" uses, so it still has a server side module.

I see. That just needs to be cleaned up then.

> The files in the modules directory when they are basically present are  
> there because sometimes they ARE needed,

and their need is a matter of implementation? A module that needs to perform a server side operation and a remote one per host.

> and otherwise someone  
> browsing the source code can quickly see all of the modules that are  
> available and read the source to know which ones are implemented  
> server side.

Got it.

\<tim/\>
