Closed moylop260 closed 8 years ago
@LuisAlejandro Es correcto, los objetivos aquí son:
/etc/init.d/postgresql [command]
Todo esto, con la finalidad de que, los comandos de los CI sean los más limpios posibles, como si estuviera solo una versión de postgresql instalada, pero pudiendo usar varias versiones, si no, tendríamos que cambiar muchos .travis.yml
y algunos scripts de MQT.
@nhomar dice: Yo creo qeu podemos ya dejar PSQL 9.5 no más- Ese cambio según yo, fué temporal cuando nos migramos 9.3 - 9.5 No sé que opina Moy y Tulio?
Realmente no fue un cambio temporal, aplica para cualquier versión que se tenga en la imagen, hoy es 9.3->9.5 Mañana será 9.5->9.6 y tendremos el mismo problema. Esto fue copiado de la imagen base quay.io/travisci/travis-python Después de que reportaron los usuarios de t2d que tenían los mismos problemas de aquí:
https://travis-ci.org/zenitraM/test-travis/builds/113662868#L195 https://travis-ci.org/mgaitan/preciosa#L195 https://travis-ci.org/rochoa/test-travis/builds/113438047#L151
Por lo que sí sería bueno tener el control de este tipo de contingencias.
Creo que deberíamos dejar las dos versiones por ahora, pues aún tenemos instancias con 9.3, los nuevos se etsán instalando con 9.5 de una vez.
:+1: @moylop260
La variable de entorno que estábamos usando para manejar la versión podría ser útil en este caso "desactiva todas menos ${PSQL_VERSION}" o "instala ${PSQL_VERSION} nada más"
Aunque creo que la primera de las dos opciones que puse es la más viable, ya que al momento de ejecutar los tests la imagen de shippable ya está construída.
Tulio y Moy aqui son los bosses... soy un simple espectador, si creen se deben quedar las dos, creo que la base lógica de moy me hace mucho sentido, y creo que tulio la soporta.
Saludos.
PS: Eso hasta ahora no nos ha traido ningún problema ya que solo se usa en los CI en producción tenemos una sola (la usada en producción) cuando se arma otro cluster (que ha sucedido) este queda apagado, y los clusters se arman a mano, así que no creo que nos afecte en producción.
Espero te sirva Luis.
2016-05-10 12:45 GMT-05:00 Tulio Ruiz notifications@github.com:
Creo que deberíamos dejar las dos versiones por ahora, pues aún tenemos instancias con 9.3, los nuevos se etsán instalando con 9.5 de una vez.
[image: :+1:] @moylop260 https://github.com/moylop260
La variable de entorno https://github.com/Vauxoo/docker-odoo-image/blob/master/odoo-shippable/Dockerfile#L45 que estábamos usando para manejar la versión podría ser útil en este caso "desactiva todas menos ${PSQL_VERSION}" o "instala ${PSQL_VERSION} nada más"
Aunque creo que la primera de las dos opciones que puse es la más viable, ya que al momento de ejecutar los tests la imagen de shippable ya está construída.
— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/Vauxoo/docker-odoo-image/issues/114#issuecomment-218235116
Nhomar Hernandez CEO Vauxoo. Site: http://vauxoo.com Twitter: @nhomar Blog: http://nhomar.com Github User: https://github.com/nhomar Odoo Gold Partner Skype: nhomar00 (Envia mail previo no lo superviso siempre). HangOut: nhomar@vauxoo.com Móvil Venezuela: +58 4144110269 Móvil México: +52 1 4773933942
Pregunto, ¿es aceptable el siguiente comportamiento?
1) Que la versión especificada en PSQL_VERSION sea la afectada por los comandos:
service postgresql [start|stop|restart]
/etc/init.d/postgresql [start|stop|restart]
2) Que para las demás versiones de PostgreSQL instaladas el método para iniciarlas o pararlas sea:
pg_ctlcluster [VERSION] [CLUSTER] [start|stop|restart]
P. ej.:
pg_ctlcluster 9.3 main start
Si este comportamiento es adecuado, entonces puedo remover el script de inicio custom. La solución sería editar el archivo /etc/postgresql/9.3/main/start.conf
y colocar manual
. De esta forma el script de inicio controlaría solo la versión 9.5, mientras que la 9.3 habría que manipularla manualmente con el comando provisto.
@LuisAlejandro
Check all points of my last https://github.com/Vauxoo/docker-odoo-image/issues/114#issuecomment-218176951
If you change a command to start/stop postgresql then you will need:
.travis.yml
files where a service postgresql
is used with other versions..travis.yml
for service postgresql
if is our image of docker or if is a travis build.If really we need this change then we will need to add this changes in the roadmap.
@moylop260
No, i wouldn't want to do that, it has no justification.
So, current behaviour is this one, right?
To start 9.5: PSQL_VERSION=9.5 service postgresql start
To start 9.3: PSQL_VERSION=9.3 service postgresql start
I found a way to retain the same behavior:
Overwrite the get_versions function by appending a piece of code in the init.d-functions which is the one that defines the version(s) to start.
Less intrusive than overwriting the init script. What do you think?
Overwrite the get_versions function by appending a piece of code in the init.d-functions which is the one that defines the version(s) to start.
+1
Your tests cases are:
test case | result |
---|---|
Start container with -e PSQL_VERSION=9.3/etc/init.d/postgresql restart && psql template1 -c "select version();" | grep 9.3 |
Show the result 9.3 |
Start container with -e PSQL_VERSION=9.5/etc/init.d/postgresql restart && psql template1 -c "select version();" | grep 9.5 |
Show the result 9.5 |
Start container with -e PSQL_VERSION=9.3/etc/init.d/postgresql start && /etc/init.d/postgresql start 9.5 |
Show error refused because other version is running |
Start container with -e PSQL_VERSION=9.3/etc/init.d/postgresql start && /etc/init.d/postgresql stop |
Stop the current version running |
Start container with -e PSQL_VERSION=9.3/etc/init.d/postgresql start 9.5 && /etc/init.d/postgresql stop |
Stop the current version running |
If you can add this test cases in a unitests should be cool!
!!! Thanks
I'm going to leave the unittests for #111, though.
@moylop260 I don't know if this worked, but it seems to not work anymore:
$ pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
9.3 main 5432 down odoo /var/lib/postgresql/9.3/main pg_log/postgresql.log
9.5 main 5432 down odoo /var/lib/postgresql/9.5/main pg_log/postgresql.log
9.6 main 5432 down odoo /var/lib/postgresql/9.6/main pg_log/postgresql.log
10 main 5432 down odoo /var/lib/postgresql/10/main pg_log/postgresql.log
$ echo $PSQL_VERSION
9.5
$ service postgresql start
* Starting PostgreSQL 9.3 database server [ OK ]
$
Debugging a little, I noticed the value of the variable $PSQL_VERSION
is not retrievable in the init scripts, neither in /etc/init.d/postgresql
, nor /usr/share/postgresql-common/init.d-functions
.
If I try to print the variable inside those scripts, nothing is printed, like if it was undefined.
I reported a new issue on https://github.com/Vauxoo/docker-odoo-image/issues/298, to address my last comment.
@LuisAlejandro dice: