[pyar] Puedo evitar ejecución del bloque con un Context Manager?

Gonzalo Sainz Trápaga gomox.ar en gmail.com
Jue Jun 20 14:16:22 ART 2013


Entro por la ventana, pero me parece que estás reinventando la rueda de
manera poco conveniente - Fabric es simpático pero es una herramienta muy
mala para hacer configuración de servidores. Los sistemas de config
management [0] para resolver este mismo tema (que es central a toda la
problemática) tienen un lenguaje declarativo en vez de imperativo. Así la
aplicación de una configuración es idempotente y se puede repetir sin
peligro [1].

Por ejemplo, en vez de hacer un script que diga "crear el usuario tito y
instalar postgres", lo que harías es poner una linea que diga "garantizar
que el usuario tito exista y que postgres esté instalado". Se le delega la
inteligencia necesaria para saber qué hacer al plugin correspondiente (en
este ejemplo, el plugin que interactúa con APT y el de user management del
sistema). La cereza del postre es que está lleno de plugins ya hechos para
tareas comunes que podés reusar sin tener que armar scripts frágiles, y
hacen cientos de cosas que con Fabric son un hack total.

Te recomendaría que mires un poco estas herramientas como para al menos
dimensionar mejor el problema y ver si vale la pena invertir más tiempo
programando y no sería mejor aprender a usar alguna de estas herramientas.

Si tenés que hacer cosas super personalizadas te hacés tus propios plugins,
pero al menos invertís el tiempo en hacer bien las cosas que no fueron
hechas ya por otros. Chef y Puppet se extienden en Ruby, Ansible en Python
(y este último es el sistema que menos inversión inicial requiere, no muy
distinto de Fabric).

Saludos!

[0] Ansible, Chef, Puppet, etc
[1] Si usaste Fabric para esto y nunca tuviste que ponerte a mirar los logs
y comentar tus fabfiles hasta el lugar donde ya se ejecutaron para
completar un deploy abortado, tenés todo mi respeto


On Tue, Jun 18, 2013 at 8:01 PM, Lucio Torre <lucio.torre en gmail.com> wrote:

> Digo que task monitor define el contexto del task a realizar, es decir,
> todo lo indentado dentro de ese context manager debe ser el task y
> solamente el task.
> Entonces el if deberia ir afuera.
>
> No tengo mucho mas argumento que preferencia. :)
>
>
> On Tue, Jun 18, 2013 at 11:53 AM, Claudio Freire <klaussfreire en gmail.com>wrote:
>
>> On Tue, Jun 18, 2013 at 12:56 AM, Lucio Torre <lucio.torre en gmail.com>
>> wrote:
>> > On Mon, Jun 17, 2013 at 7:27 PM, Claudio Freire <klaussfreire en gmail.com
>> >
>> > wrote:
>> >>
>> >> 2013/6/15 Lucio Torre <lucio.torre en gmail.com>:
>> >> > Esto a lo mejor tendria mas sentido asi:
>> >> >
>> >> > if not task_done(task_name):
>> >> >      with task_monitor(task_name):
>> >> >           do_task()
>> >>
>> >>
>> >> O, al revés:
>> >
>> >
>> > Si, pero yo tengo mis TOCs :)
>> >
>> > Y el task monitor deberia encapsular todo el Task. Y el if no es parte
>> del
>> > task.
>>
>>
>> No entiendo
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130620/f0b35df2/attachment.html>


More information about the pyar mailing list