# All modules ported over

**URL:** <https://forum.ansible.com/t/all-modules-ported-over/11739>\
**Category:** Ansible Project\
**Created:** [July 31, 2012, 12:09am UTC](https://forum.ansible.com/t/all-modules-ported-over/11739 "2012-07-31T00:09:13Z")\
**Posts on this page:** 4\
**Page:** 1

<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:** [July 31, 2012, 12:09am UTC](https://forum.ansible.com/t/all-modules-ported-over/11739/1 "2012-07-31T00:09:13Z")

</div>

I've ported all of the modules over to the use the common module code.

This should mean they are both easier to work on and faster.

--Michael

---

<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:** [July 31, 2012, 12:57am UTC](https://forum.ansible.com/t/all-modules-ported-over/11739/2 "2012-07-31T00:57:39Z")

</div>

I missed one -- porting the virt module now.

---

<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:** [July 31, 2012, 1:28am UTC](https://forum.ansible.com/t/all-modules-ported-over/11739/3 "2012-07-31T01:28:54Z")

</div>

and file...

---

<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:** [July 31, 2012, 2:05am UTC](https://forum.ansible.com/t/all-modules-ported-over/11739/4 "2012-07-31T02:05:50Z")

</div>

Ok, all modules done now (including file). We've accepted 4 new  
database modules recently and are smaller than before we accepted  
them! That is pretty awesome. Two modules actually got longer  
(ohai and facter) but they got faster along the way too because they  
now transfer less files.

There are probably a few consistency things we can use here and there  
still, like the new BOOLEANS cast in library/service (as added today  
to intelligently grok "yes|no" but also "true|false" and such) but all  
in all they are pretty minor. Everything now has a main function and  
an argument spec. I think I noticed today that if something is in  
argument spec and not set, it doesn't get auto-set to None. I'll  
probably fix that. Some modules could be broken up into subfunctions  
and cleaned up some more, but I probably \*won't\* fix that now, but I  
would encourage folks working on modules to clean them up where they  
think appropriate. Also now pretty much all modules should accept  
"name" for consistency (and they do), and the database modules work  
like each other (which is great too). Good stuff.

virt & authorized\_key were tested only lightly, file is obviously very  
important too though, please don't hold back on testing them.
