Skip to content

Releases: Picaresco/qnap-tools

Qnap-Tools 0.5.2

Choose a tag to compare

@Picaresco Picaresco released this 15 Oct 22:56

Arreglo de disco_info (qnap-virtualizacion) con imagenes que no se cerraron limpias. Sigue siendo de solo lectura.

  • La comprobacion (qemu-img check -U) de una imagen grande sin cerrar escribe una linea por cluster con problema: en una de 78 GB fueron 23.550 lineas (1,4 MB) y Claude Code no admitia la respuesta. Ahora la salida se acota en el propio NAS: avisos_de_qemu da las 20 primeras lineas, cuantas hubo y la cuenta de cada tipo de linea ({filas, total, truncado, por_tipo}; en por_tipo los numeros salen como N, salvo los valores de refcount y reference). El codigo de salida sigue siendo el de qemu-img.
  • Con lazy_refcounts, QEMU no escribe las cuentas de referencia hasta cerrar la imagen; si no se cerro, la comprobacion ve clusters en uso con refcount=0 y los cuenta como corrupciones. Cuando la capa comprobada esta marcada como sucia con lazy_refcounts, no esta marcada como corrupta y todas las corrupciones son de ese tipo, el aviso dice que son cuentas sin escribir que QEMU rehace al abrir la imagen, y no "corrupciones". En cualquier otro caso se sigue avisando de corrupciones.

Cambio en la respuesta: comprobacion.avisos_de_qemu pasa de lista a {filas, total, truncado, por_tipo}.

Validado en real en QuTS hero h6.0.2 con una imagen sin cerrar (prueba de no escritura de todas las ordenes de virtualizacion).

Instalacion: /plugin marketplace add Picaresco/qnap-tools y /plugin install qnap-tools@qnap-tools. Si ya lo tenias: claude plugin marketplace update qnap-tools, claude plugin update qnap-tools@qnap-tools y reiniciar Claude Code. Paquete en PyPI: qnap-tools 0.5.2.

Qnap-Tools 0.5.1

Choose a tag to compare

@Picaresco Picaresco released this 15 Oct 22:31

Version con dos herramientas nuevas (43 en total) para revisar la copia de una maquina virtual sin registrarla, y mas datos de los discos externos y de las instantaneas. Todo sigue siendo de solo lectura.

Herramientas nuevas (qnap-virtualizacion):

  • disco_info: la imagen de un disco virtual (qcow2, raw...) dada su ruta, este registrada en una VM o no: formato, tamano virtual y en disco, si quedo marcada como sucia (cerrada sin limpiar), su cadena de capas base (solo bajo /share/) y el resultado de una comprobacion de coherencia en solo lectura (qemu-img check -U, sin reparar nada): errores, fugas y bloques asignados.
  • vm_definicion_fichero: lee la definicion de una VM que no esta registrada (el .xml de la carpeta de metadatos .<uuid>.meta que Virtualization Station guarda junto a cada maquina, p. ej. en una copia de su carpeta): sistema, CPU, memoria, firmware, discos con su ruta, bus e imagenes base, tarjetas de red, consola (nunca su contrasena), de que NAS viene y si ese UUID ya esta registrado en el NAS.

Mejoras:

  • Discos externos: discos_fisicos y carpetas_compartidas dan el sistema de ficheros real de un disco USB (p. ej. NTFS; antes salia el nombre del controlador), su etiqueta, si esta montado en solo lectura y si quedo marcado como sucio (desconectado sin expulsar), con su aviso.
  • snapshots (QuTS hero): avisa cuando la programacion de instantaneas de un volumen esta desactivada y cuando esta activa pero la ultima instantanea tiene mas de dos dias.

Validado en real en QuTS hero h6.0.2 (pruebas reales y prueba de no escritura de todas las ordenes de discos y virtualizacion). Lo propio de QTS se ha probado con salidas reales guardadas, no en un NAS en vivo.

Instalacion: /plugin marketplace add Picaresco/qnap-tools y /plugin install qnap-tools@qnap-tools. Si ya lo tenias: claude plugin marketplace update qnap-tools, claude plugin update qnap-tools@qnap-tools y reiniciar Claude Code. Paquete en PyPI: qnap-tools 0.5.1.

Qnap-Tools 0.5.0

Choose a tag to compare

@Picaresco Picaresco released this 15 Oct 21:36

Version con cinco herramientas nuevas (41 en total) y los arreglos de una revision de codigo completa, verificada hallazgo a hallazgo y probada en un NAS QuTS hero real.

Herramientas nuevas:

  • ruta_ocupacion (qnap-discos): cuanto ocupa una carpeta o un fichero (bytes aparentes y en disco, ficheros y carpetas). La ruta se da como en File Station (/Vms/carpeta o Vms/carpeta) o bajo /share/; se rechaza lo que no acabe bajo /share/.
  • ruta_comparar (qnap-discos): compara dos carpetas para comprobar una copia, sin listarlas: totales de cada lado, cuantos ficheros coinciden y solo las diferencias (faltan, sobran, distinto tamano), acotadas.
  • ruta_listar (qnap-discos): el contenido de UNA carpeta, sin recursividad y acotado (nombre, tipo, tamano, espacio en disco, permisos, propietario, fecha en hora local del NAS).
  • tareas_file_station (qnap-discos): las copias en segundo plano de File Station, con el progreso calculado (el porcentaje que guarda QNAP no es el de la tarea), velocidad, tiempo restante, si estan en curso, terminadas o interrumpidas, y aviso cuando File Station escribe una copia con otro nombre (-Copy(1)) porque el destino ya existia.
  • procesos (qnap-logs): los procesos del NAS (sin hilos del kernel) o el detalle de uno: memoria, orden, carpeta de trabajo, bytes leidos y escritos y ficheros abiertos. Las credenciales de la linea de ordenes se tapan.
  • discos_fisicos da ademas, de cada disco USB, donde esta montado, su sistema de ficheros, cuanto ocupa y que carpetas compartidas apuntan ahi; carpetas_compartidas marca las que estan en un disco externo.

Arreglos principales:

  • Resumen de almacenamiento en QTS: con un grupo RAID degradado y la lista de discos sin leer, ya no dice que faltan todos los discos del grupo (relee las bahias y, si no puede, dice que no se sabe cual falta).
  • Una orden que se queda sin codigo de salida (conexion perdida a mitad) es un error de conexion con reintento, no una salida cortada dada por buena; el sistema del NAS se vuelve a detectar en cada conexion.
  • QuTS hero: un pool que no se puede abrir ya no tumba el resumen, y se avisa de un volumen cifrado que no esta montado.
  • Avisos nuevos: VM apagada por una caida o que no pudo arrancar; cache SSD o pool ligero en fallo y metadatos que piden comprobacion.
  • Redes: un fichero de configuracion ilegible ya no sale como lista vacia, y un bloque que necesita sudo no tumba la herramienta entera.
  • Flota: nas_enrolar acepta un solo NAS; nas_comprobar avisa cuando un NAS configurado con clave entra por contrasena; un corte de red al probar la clave en el alta ya no deja el NAS en "solo contrasena" para siempre; no quedan huellas de host huerfanas; el mismo equipo no se puede dar de alta dos veces.
  • Un fallo parcial ya no se presenta como cero o lista vacia en varias herramientas.

Cambios en las respuestas: red_interfaces con interfaz da contadores_error (antes errores); en accesos, los avisos que no son un fallo de inicio de sesion o de montaje van en fallidos.otros.

Validado en real en QuTS hero h6.0.2 (pruebas reales, prueba de no escritura de todas las ordenes y una copia real de File Station). Lo propio de QTS se ha probado con salidas reales guardadas, no en un NAS en vivo.

Instalacion: /plugin marketplace add Picaresco/qnap-tools y /plugin install qnap-tools@qnap-tools. Si ya lo tenias: claude plugin marketplace update qnap-tools, claude plugin update qnap-tools@qnap-tools y reiniciar Claude Code. Paquete en PyPI: qnap-tools 0.5.0.

Qnap-Tools 0.4.4

Choose a tag to compare

@Picaresco Picaresco released this 14 Oct 22:09

Version de correccion tras una pasada de solo lectura por dos NAS QTS reales con la 0.4.3 (las 36 herramientas).

  • Volcados del kernel (sistema_estado): un volcado que acaba en sysrq: Resetting (el apagado se colgo y el sistema forzo el reinicio despues de volver a montar los discos) sale como reinicio_forzado (o apagado_forzado con sysrq: Power Off) y no como sin_cierre. Se sigue avisando si es de los ultimos 30 dias, porque no acabo en orden.
  • Las carpetas pstore_dmesg_* que guarda QTS se leen: contienen los registros que el kernel escribe al fallar (cabeceras Oops#N y Panic#N) y salen como fallo, con cuantos registros hay. Antes se listaban sin decir que eran.
  • Validado en real en QTS 5.2.9 (un reinicio forzado y un kernel panic antiguo) y en QTS 5.2.10.
  • En QTS quedan validados tambien los cambios de la 0.4.2 y la 0.4.3: VMs suspendidas, memoria guardada, rutas estaticas y QuFirewall.

Instalacion: /plugin marketplace add Picaresco/qnap-tools y /plugin install qnap-tools@qnap-tools. Si ya lo tenias: claude plugin marketplace update qnap-tools, claude plugin update qnap-tools@qnap-tools y reiniciar Claude Code. Paquete en PyPI: qnap-tools 0.4.4.

Qnap-Tools 0.4.3

Choose a tag to compare

@Picaresco Picaresco released this 14 Oct 21:31

Version de correccion: maquinas virtuales suspendidas tras reiniciar el NAS.

  • Al reiniciar el NAS, Virtualization Station suspende las maquinas en marcha (guarda su memoria en disco) en lugar de apagarlas. Ya arrancado el NAS, libvirt las da por apagadas y el plugin tambien lo hacia. Ahora se mira el fichero de memoria guardada que deja Virtualization Station (<carpeta de metadatos>/<uuid>.state, que borra al reanudar): una maquina apagada con memoria guardada sale suspendida, con su aviso, y vm_detalle da memoria_guardada (cuanto ocupa y desde cuando).
  • Si esa lectura falla, las maquinas salen con lo que dice libvirt y se indica en errores (memoria_guardada).
  • Validado en un NAS QuTS hero real con dos maquinas suspendidas por un reinicio y reanudadas despues.

Instalacion: /plugin marketplace add Picaresco/qnap-tools y /plugin install qnap-tools@qnap-tools. Si ya lo tenias: claude plugin marketplace update qnap-tools, claude plugin update qnap-tools@qnap-tools y reiniciar Claude Code. Paquete en PyPI: qnap-tools 0.4.3.

Qnap-Tools 0.4.2

Choose a tag to compare

@Picaresco Picaresco released this 14 Oct 21:13

Version de correcciones tras validar en un NAS real (QuTS hero h6.0.2) funciones que hasta ahora solo se probaban con salidas escritas a mano: cada una se configuro a proposito desde la web del NAS, se consulto con el plugin y se deshizo.

  • Redes: en QuTS hero las rutas estaticas y el DDNS se leen de donde los guarda el propio NAS (antes se leia una copia vieja y una ruta creada desde la web no aparecia); cada ruta da destino, puerta, adaptador, metrica y si esta activa. VLAN (tipo vlan) y agregaciones de puertos validadas. QuFirewall: instalado ya no se confunde con encendido; se da si el cortafuegos esta encendido, si tiene perfil y cuantas reglas aplica. Ya nada de redes queda como no_probado.
  • Discos: iscsi fallaba en QuTS hero con un destino configurado; ahora da destinos con portales y LUN, y LUN con capacidad, aprovisionamiento fino y dataset. Validada una carpeta cifrada abierta.
  • Virtualizacion: una maquina suspendida desde Virtualization Station sale como suspendida (con aviso) y no como apagada; un contenedor enlazado con --link se encuentra por su nombre. Validados en real: paquete activo con su servicio parado, contenedor reiniciandose y "unhealthy".
  • Registros: un volcado pstore de /etc/logs es la consola del arranque anterior y el NAS guarda uno en cada reinicio, tambien en uno ordenado. sistema_estado dice ahora como acabo cada arranque (cierre: reinicio, apagado, fallo, sin_cierre) y solo avisa del que no acaba en orden o de procesos matados por falta de memoria (antes avisaba de un "cuelgue" tras cada reinicio).
  • Validado tambien que la clave SSH del plugin sobrevive a un reinicio del NAS.

Instalacion: /plugin marketplace add Picaresco/qnap-tools y /plugin install qnap-tools@qnap-tools. Si ya lo tenias: claude plugin marketplace update qnap-tools, claude plugin update qnap-tools@qnap-tools y reiniciar Claude Code. Paquete en PyPI: qnap-tools 0.4.2.

Qnap-Tools 0.4.1

Choose a tag to compare

@Picaresco Picaresco released this 14 Oct 19:07

Version de correcciones: cierra la mayoria de los detalles menores pendientes de la 0.4.0.

  • Las herramientas corren en un hilo (una consulta lenta ya no bloquea al servidor) y llevan la marca MCP de solo lectura; en qnap-flota, solo nas_lista y nas_comprobar. Las de qnap-flota van de una en una, y fijar la clave de host de varios NAS a la vez ya no pierde ninguna.
  • Discos: aviso de disco sin datos SMART o sin veredicto del NAS; si hay SSD y el NAS no da el desgaste de ninguno, se dice en errores; almacenamiento_resumen da pools, grupos y volumenes aunque falle la lista de discos. En QuTS hero, lo retenido por instantaneas sale de usedbysnapshots (lo que liberaria borrarlas), en total y por volumen.
  • Maquinas virtuales: vm_uso comprueba libvirt y domstats en cada lectura; una VM con una definicion que no se entiende sale con su error sin tapar a las demas; la cadena de imagenes se recorre capa a capa y solo sigue bases en /share/ (base_sin_leer, cortada).
  • Contenedores: uno que docker no pudo medir sale sin cifras y no suma (sin_medir).
  • Registros: solo se avisa de los volcados de cuelgue de los ultimos 30 dias.
  • cryptography declarada como dependencia.

Instalacion: /plugin marketplace add Picaresco/qnap-tools y /plugin install qnap-tools@qnap-tools. Si ya lo tenias: claude plugin marketplace update qnap-tools, claude plugin update qnap-tools@qnap-tools y reiniciar Claude Code. Paquete en PyPI: qnap-tools 0.4.1.

Qnap-Tools 0.4.0

Choose a tag to compare

@Picaresco Picaresco released this 14 Oct 06:27

Primera version publica. Cinco servidores MCP de solo lectura (flota, redes, discos, virtualizacion, registros) con 36 herramientas para NAS QNAP (QTS y QuTS hero). Instalacion: /plugin marketplace add Picaresco/qnap-tools y /plugin install qnap-tools@qnap-tools. Paquete en PyPI: qnap-tools 0.4.0.