[RESUELTO] Error de implementación del paquete

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Carrera
Mensajes: 27
Inscripción: 23 de marzo de 2020 - 15:37

23 de marzo de 2020 - 16:02

Hola,
he configurado un servidor WAPT y estoy intentando desplegar un archivo .exe con parámetros enviados mediante Python.
Para ser más preciso, estoy desplegando owncloud.exe y he creado un código que rellena automáticamente un archivo .cfg para que los usuarios solo tengan que introducir sus contraseñas.
En la consola del servidor, todo funciona correctamente. Puedo instalar y desinstalar el programa. Genero el paquete sin problemas, PERO en cuanto lo implemento para un usuario, recibo un error.

Adjunto el mensaje de error y una captura de pantalla que muestra la versión de WAPT que estoy utilizando.
Mi servidor ejecuta Windows Server 2012 R2 Datacenter. Mi
máquina de administración es Windows 10 Pro.


Si necesitan que les proporcione mi código, no hay problema, pero quizás el mensaje de error les dé alguna pista sin abrumarlos con demasiada información.

Gracias de antemano.
Archivos adjuntos
Wapt.7z
(197,37 KB) Descargado 251 veces
Última edición realizada por Scud el 07 de abril de 2020 a las 11:20, editado 1 vez.
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

24 de marzo de 2020 - 09:23

Hola,

nos falta el archivo setup.py. :(

¿Podrías también publicar el error (haz clic en la máquina con el error y luego en el paquete con el error)? El error del paquete se encuentra en el panel inferior derecho.
Carrera
Mensajes: 27
Inscripción: 23 de marzo de 2020 - 15:37

24 de marzo de 2020 - 12:13

Hola,
gracias por tu respuesta.
Esta mañana modifiqué ligeramente mi código para usar la última versión de Owncloud (en formato .msi).
Ahora, la instalación y desinstalación funcionan, pero no se aplican mis ajustes. Creo que me da un error de codificación, aunque mi entorno y mi configuración están correctamente configurados en UTF-8.

Adjunto setup.py
(y acabo de añadir el mensaje de error como un archivo .csv).

El objetivo de mi script es rellenar previamente la información solicitada tras la instalación de Owncloud:
el nombre de usuario, la ruta de almacenamiento local y escribir todo en un archivo .cfg en una carpeta de Windows.

Localmente, usando Python con las funciones install y remove, funciona. Pero cuando lo ejecuto en otra máquina (virtual por ahora), mi script no parece ejecutarse.

Gracias por tu ayuda.
Archivos adjuntos
Errores de tareas del host de cuadrícula 00000.7z
(1,11 KB) Descargado 309 veces
configuración.7z
(1,01 KB) Descargado 316 veces
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

24 de marzo de 2020 - 16:07

Cuando desee interactuar con el entorno del usuario, debe utilizar session_setup:

https://www.wapt.fr/fr/doc/wapt-create- ... index.html

He reelaborado un poco tu código:

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *
import os

uninstallkey = []

url_owncloud = 'https://cloud.test.fr'

def install():
    print('installing frej-owncloud')
    install_msi_if_needed('ownCloud-2.6.1.msi')

def session_setup():

    homeowncloud = makepath(os.environ.get('HOMEPATH'),'ownCloud')
    owncloud_appdata = makepath(application_data(),'ownCloud')
    fichiercfg = makepath(owncloud_appdata,'owncloud.cfg')

    mkdirs(homeowncloud)
    mkdirs(owncloud_appdata)

    inside_owncloud_file = r"""[General]
clientVersion=2.6.1 (build 12992)
confirmExternalStorage=false
newBigFolderSizeLimit=500
optionalDesktopNotifications=true
showInExplorerNavigationPane=true
useNewBigFolderSizeLimit=false

[Accounts]
version=2
0\Folders\1\localPath=c:/Users/%s/ownCloud
0\url=%s
0\http_user=%s
0\user=%s""" % (get_current_user(),url_owncloud,get_current_user(),get_current_user())

    with open(fichiercfg, "w") as fichier:
        fichier.write(inside_owncloud_file)
Carrera
Mensajes: 27
Inscripción: 23 de marzo de 2020 - 15:37

24 de marzo de 2020 - 17:08

Gracias por tu respuesta.
Tu código es mucho más limpio que el mío, pero disculpa, solo llevo dos semanas aprendiendo Python. :D
Sin embargo, creo que no está escribiendo los archivos en la ubicación correcta, ni siquiera rellenándolos.

Pero ahora mismo estoy un poco aturdido, así que dejo de programar por hoy. Mañana haré las pruebas y te daré un informe completo.

Gracias de nuevo
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

25 de marzo de 2020 - 11:49

Esto es la configuración de la sesión.

Por lo tanto, la configuración de la sesión comienza cuando se abre la sesión.
Carrera
Mensajes: 27
Inscripción: 23 de marzo de 2020 - 15:37

26 de marzo de 2020 - 09:38

Hola,
debo haber cometido un error porque no funciona. Reemplacé todo mi código con el tuyo, pero no escribe nada en el archivo .cfg.
Respecto a tu código, no veo dónde defines la variable `current_user`.

Como es una función conocida de Wapt, no necesito incluirla en el código, ¿verdad?

De igual manera, con la variable `session_setup`, tengo problemas para entender cómo recupera automáticamente todas las variables (rutas, etc.) y cómo escribe en el archivo. Mi código era más básico, pero más fácil de entender para un principiante. ;)

Gracias por tu ayuda.
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

26 de marzo de 2020 - 12:50

A mí me funciona

Y en la parte superior del script, importamos setuphelpers:

Código: Seleccionar todo

from setuphelpers import *
Esto explica por qué ya tenemos muchas cosas disponibles; Pyscripter ofrece autocompletado para ayudarte.

Para las diferentes cosas a utilizar:
- `get_current_user()` está en setuphelpers y recupera el usuario actual
- install_msi_if_needed está en setuphelpers, desinstalando fácilmente un MSI
- os.environ.get('HOMEPATH') es aproximadamente el valor de %HOMEPATH%
- `makepath` está en setuphelpers, te permite transformar este `makepath('c:','toto','tata')` en este `'c:\toto\tata'`
- mkdirs está en setuphelpers, crea una carpeta
- url_owncloud se define en la parte superior de setup.py
- inside_owncloud_file representa el contenido de nuestro archivo con las diferentes variables (%s) https://python.developpez.com/cours/Div ... trings.php
Carrera
Mensajes: 27
Inscripción: 23 de marzo de 2020 - 15:37

26 de marzo de 2020 - 15:19

Acabo de realizar otra prueba.
Eliminé el paquete de mi repositorio privado (y me di cuenta de que si se mantiene el mismo nombre, hay que eliminarlo tantas veces como se haya añadido).
Una vez vacío, recreé un paquete usando tu código. El resultado fue el mismo. Owncloud se instala y desinstala sin problemas.
Sin embargo, cierro la sesión (o incluso la reinicio) y no creo una carpeta, por lo que no se rellena el archivo .cfg.
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

26 de marzo de 2020 - 15:22

En un símbolo del sistema puedes ejecutar:

Código: Seleccionar todo

wapt-get session-setup nomdevotrepaquet -f
Bloqueado