# pipe\_once lookup plugin -- missing from 1.3?

**URL:** <https://forum.ansible.com/t/pipe-once-lookup-plugin-missing-from-1-3/13649>\
**Category:** Ansible Project\
**Created:** [October 9, 2013, 9:45pm UTC](https://forum.ansible.com/t/pipe-once-lookup-plugin-missing-from-1-3/13649 "2013-10-09T21:45:52Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Brice\_Burgess](https://avatars.discourse-cdn.com/v4/letter/b/d2c977/32.png) [@Brice\_Burgess](https://forum.ansible.com/u/Brice_Burgess)\
**Post date:** [October 9, 2013, 9:45pm UTC](https://forum.ansible.com/t/pipe-once-lookup-plugin-missing-from-1-3/13649/1 "2013-10-09T21:45:52Z")

</div>

I’m finally making the move from 1.1 =\> 1.3 , and refactoring an awful lot of automation playbooks to take advantage of the consistency and built in role inheritance. We’ve come across an area where we’d benefit from a cached pipe lookup. There was a pipe\_once, once … is this gone in the latest ansible? A cursory look over /lib/ansible/runners/lookup\_plugins did not reveal any trace.

Many thanks,

~ Brice

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan2](https://avatars.discourse-cdn.com/v4/letter/m/da6949/32.png) [@Michael\_DeHaan2](https://forum.ansible.com/u/Michael_DeHaan2)\
**Post date:** [October 9, 2013, 10:45pm UTC](https://forum.ansible.com/t/pipe-once-lookup-plugin-missing-from-1-3/13649/2 "2013-10-09T22:45:41Z")

</div>

pipe\_once never worked and was removed because of it.

The reason being is in the multiprocessing code if you are talking to 10 systems at once it will evaluate 10 different times.

---

<div class="post-metadata">

**Author:** ![Brice\_Burgess](https://avatars.discourse-cdn.com/v4/letter/b/d2c977/32.png) [@Brice\_Burgess](https://forum.ansible.com/u/Brice_Burgess)\
**Post date:** [October 10, 2013, 1:17am UTC](https://forum.ansible.com/t/pipe-once-lookup-plugin-missing-from-1-3/13649/3 "2013-10-10T01:17:23Z")

</div>

Awww shucks! I actually planned to use the caching code from pipe\_once as a model for caching REST api calls in the dnsmadeeasy module for the duration of an ansible runtime. There’s two hard things in computer science; naming things and cache invalidation 😉

~ Brice

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan2](https://avatars.discourse-cdn.com/v4/letter/m/da6949/32.png) [@Michael\_DeHaan2](https://forum.ansible.com/u/Michael_DeHaan2)\
**Post date:** [October 10, 2013, 12:31pm UTC](https://forum.ansible.com/t/pipe-once-lookup-plugin-missing-from-1-3/13649/4 "2013-10-10T12:31:53Z")

</div>

I have always heard that as:

“There’s two hard things in computer science; naming things, cache invalidation, and off by one errors!”

🙂

---

<div class="post-metadata">

**Author:** ![Brian\_Coca1](https://avatars.discourse-cdn.com/v4/letter/b/278dde/32.png) [@Brian\_Coca1](https://forum.ansible.com/u/Brian_Coca1)\
**Post date:** [October 10, 2013, 2:39pm UTC](https://forum.ansible.com/t/pipe-once-lookup-plugin-missing-from-1-3/13649/5 "2013-10-10T14:39:18Z")

</div>

There are two hard things in computer scence: naming things, concurrency, cache invalidation and concurrency and I’m forgetting the other 3.
