ioBroker.admin icon indicating copy to clipboard operation
ioBroker.admin copied to clipboard

Check of globalDependencies is not working

Open Feuer-sturm opened this issue 2 years ago • 9 comments

Describe the bug
It is possible to insall e.g. telegram Adapter in Version 1.14.1 which requires at minimum Admin 6.1.6 (https://github.com/iobroker-community-adapters/ioBroker.telegram/blob/9e1dfef04f3d760c1ae3c61c815a9a92c6a3d45a/io-package.json#L162) with an admin version below the required version

Issure raises here: https://github.com/iobroker-community-adapters/ioBroker.telegram/issues/358

To Reproduce
Steps to reproduce the behavior:

  1. Install Admin 5.3.8 or 6.1.4
  2. Install Telegram Adapter v1.13.0 (which requires at minimum Admin 5.2.x)
  3. Update Telegram Adapter to v1.14.1
  4. Update will be execute and only in log file is an error startInstance system.adapter.telegram.0 Adapter dependency not fulfilled on any host: required adapter "admin" has wrong version. Installed "6.1.5", required ">=6.1.6"!

Expected behavior
Adapter update will not be executed if globalDependencies is not fulfilled

Versions:

  • Adapter version: Admin 5.3.8 (stable) or Admin 6.1.4

Feuer-sturm avatar Jul 21 '22 21:07 Feuer-sturm

For validating this issue a adapter is necessary which requires admin version > 6.2.16 and admin must be at minimum 6.2.16

Feuer-sturm avatar Aug 18 '22 22:08 Feuer-sturm

I have update telegram from 1.13.0 to 1.14.1. After this, the telegram adapter crash with the following error: startInstance system.adapter.telegram.0 Adapter dependency not fulfilled on any host: required adapter "admin" has wrong version. Installed "5.3.8", required ">=6.1.6" My admin adapter has version 6.2.17. After downgrade telegram to version 1.13.0 all works fine.

tux-1950 avatar Aug 30 '22 15:08 tux-1950

Please try „iob upload admin“. If you run telegram on a slave host make sure to also update admin there.

Apollon77 avatar Aug 31 '22 08:08 Apollon77

@Apollon77 I have done this.

tux-1950 avatar Aug 31 '22 11:08 tux-1950

WHich of the two? And the result is?

Apollon77 avatar Aug 31 '22 11:08 Apollon77

I use the master. Which result do you mean? The output of the command? Here is it: upload_admin.txt

tux-1950 avatar Aug 31 '22 13:08 tux-1950

Ok, wehcn you say that you use the master: Do you also have a slave host? Is admin installed there too? If yes in which version? Please also upgrade admin there!!

To install telegram the admin adapter needs to be updated on all hosts where it is installed to atleast the relevant version,

Apollon77 avatar Aug 31 '22 18:08 Apollon77

OK, on the slave, the admin adapter has version 5.3.8. When I make iob update on the host (not use the gui), then I get the message: Cannot check dependencies: Invalid version of "admin". Installed "5.3.8", required ">=6.1.6 Cannot check dependencies: Invalid version of "admin". Installed "5.3.8", required ">=5.4.3 Now I install the version 6.2.20 on the slave

That was the reason of the bug. Now telegram was updates from 1.13.0 to 1.14.1 and run correkt. Thanks for your assistance

tux-1950 avatar Sep 01 '22 15:09 tux-1950

@GermanBluefox I have the following behavior which looks like a bug

My System

Multihost System ioBroker Master with Admin 6.2.22 ioBroker Slave no admin installed

ioBroker Slave

proxmox@ioBrokerNew:~$ iob update Used repository: beta Adapter "backitup" : 2.4.12 , installed 2.4.12 Adapter "discovery" : 3.0.5 , installed 3.0.5 Adapter "history" : 2.2.3 , installed 2.2.1 [Updatable] Adapter "ical" : 1.13.2 , installed 1.13.1 [Updatable] Adapter "info" : 1.9.20 , installed 1.9.20 Controller "js-controller": 4.0.23 , installed 4.0.23 Adapter "sql" : 2.1.8 , installed 2.1.8

Problem

If I want to update an adapter on my iobroker Slave I see that admin version is not fullfilled grafik

It is possible to update the adapter and the adapter is starting without any error.

More Details

system.adapter.admin

{
  "_id": "system.adapter.admin",
  "type": "adapter",
  "common": {
    "name": "admin",
    "version": "6.2.22",
    "titleLang": {
      "en": "Admin",
      "de": "Admin",
      "ru": "Админ",
      "pt": "Admin",
      "pl": "Admin",
      "fr": "Admin",
      "nl": "Admin",
      "it": "Admin",
      "es": "Admin",
      "zh-cn": "Admin"
    },
    "title": "Admin",
    "connectionType": "local",
    "dataSource": "push",
    "desc": {
      "en": "The configuration of ioBroker via Web-Interface",
      "de": "Die Konfiguration von ioBroker über das Web-Interface",
      "ru": "Конфигурация ioBroker через веб-интерфейс",
      "pt": "A configuração do ioBroker via Web-Interface",
      "fr": "La configuration de ioBroker via Web-Interface",
      "nl": "De configuratie van ioBroker via de webinterface",
      "it": "La configurazione di ioBroker tramite interfaccia Web",
      "zh-cn": "配置ioBroker的Web界面"
    },
    "docs": {
      "en": "docs/en/admin.md",
      "ru": "docs/ru/admin.md",
      "de": [
        "docs/de/admin.md",
        "docs/de/admin/tab-adapters.md",
        "docs/de/admin/tab-instances.md",
        "docs/de/admin/tab-objects.md",
        "docs/de/admin/tab-states.md",
        "docs/de/admin/tab-groups.md",
        "docs/de/admin/tab-users.md",
        "docs/de/admin/tab-events.md",
        "docs/de/admin/tab-hosts.md",
        "docs/de/admin/tab-enums.md",
        "docs/de/admin/tab-log.md",
        "docs/de/admin/tab-system.md"
      ],
      "pt": "docs/pt/admin.md",
      "nl": "docs/nl/admin.md",
      "es": "docs/es/admin.md",
      "fr": "docs/fr/admin.md",
      "it": "docs/it/admin.md",
      "pl": "docs/pl/admin.md",
      "zh-cn": "docs/zh-cn/admin.md"
    },
    "materialize": true,
    "mode": "daemon",
    "platform": "Javascript/Node.js",
    "loglevel": "info",
    "icon": "admin.png",
    "messagebox": true,
    "enabled": true,
    "extIcon": "https://raw.githubusercontent.com/ioBroker/ioBroker.admin/master/admin/admin.png",
    "keywords": [
      "setup",
      "config",
      "update",
      "upgrade",
      "system",
      "konfiguration",
      "administration",
      "einrichtung",
      "wartung"
    ],
    "compact": true,
    "readme": "https://github.com/ioBroker/ioBroker.admin/blob/master/README.md",
    "authors": [
      "bluefox <[email protected]>",
      "hobbyquaker <[email protected]>"
    ],
    "dependencies": [
      {
        "js-controller": ">=3.3.22"
      }
    ],
    "type": "general",
    "license": "MIT",
    "logTransporter": true,
    "stopBeforeUpdate": true,
    "wwwDontUpload": true,
    "eraseOnUpload": true,
    "nogit": true,
    "welcomeScreenPro": {
      "link": "admin/index.html",
      "name": "Admin",
      "img": "admin/img/admin.png",
      "color": "pink",
      "order": 5,
      "localLinks": "_default",
      "localLink": true
    },
    "localLinks": {
      "_default": {
        "link": "%protocol%://%bind%:%port%",
        "pro": true
      }
    },
    "plugins": {
      "sentry": {
        "dsn": "https://[email protected]/18"
      }
    },
    "jsonConfig": true,
    "adminUI": {
      "config": "json"
    },
    "installedFrom": "[email protected]",
    "installedVersion": "6.2.22"
  },
  "native": {
    "port": 8081,
    "auth": false,
    "secure": false,
    "bind": "0.0.0.0",
    "cache": false,
    "autoUpdate": 24,
    "accessLimit": false,
    "accessApplyRights": false,
    "accessAllowedConfigs": [],
    "accessAllowedTabs": [],
    "certPublic": "",
    "certPrivate": "",
    "certChained": "",
    "ttl": 3600,
    "defaultUser": "admin",
    "tmpPath": "/tmp",
    "tmpPathAllow": false,
    "thresholdValue": 200,
    "leEnabled": false,
    "leUpdate": false,
    "leCheckPort": 80,
    "loginBackgroundColor": "",
    "loginBackgroundImage": false,
    "loginHideLogo": false,
    "loginMotto": "",
    "language": "",
    "reverseProxy": [],
    "loadingBackgroundColor": "",
    "loadingHideLogo": false,
    "loadingBackgroundImage": false
  },
  "from": "system.host.ioBrokerTestsystem.cli",
  "ts": 1663447391198,
  "acl": {
    "object": 1636,
    "owner": "system.user.admin",
    "ownerGroup": "system.group.administrator"
  },
  "protectedNative": [],
  "encryptedNative": [],
  "instanceObjects": [
    {
      "_id": "info",
      "type": "channel",
      "common": {
        "name": {
          "en": "Information",
          "de": "Information",
          "ru": "Информация",
          "pt": "Em formação",
          "nl": "Informatie",
          "fr": "Information",
          "it": "Informazione",
          "es": "Información",
          "pl": "Informacja",
          "zh-cn": "信息"
        }
      },
      "native": {}
    },
    {
      "_id": "",
      "type": "meta",
      "common": {
        "name": {
          "en": "user files and images for background",
          "de": "Benutzerdateien und Bilder für den Hintergrund",
          "ru": "пользовательские файлы и изображения для фона",
          "pt": "arquivos e imagens do usuário para plano de fundo",
          "nl": "gebruikersbestanden en afbeeldingen voor achtergrond",
          "fr": "fichiers utilisateur et images pour l'arrière-plan",
          "it": "file utente e immagini per lo sfondo",
          "es": "archivos de usuario e imágenes para el fondo",
          "pl": "pliki użytkownika i obrazy w tle",
          "zh-cn": "背景的用户文件和图像"
        },
        "type": "meta.user"
      },
      "native": {}
    },
    {
      "_id": "info.connected",
      "type": "state",
      "common": {
        "role": "state",
        "name": {
          "en": "Info about connected socket clients",
          "de": "Informationen über verbundene Socket-Clients",
          "ru": "Информация о подключенных клиентах сокетов",
          "pt": "Informações sobre clientes de soquete conectados",
          "nl": "Info over aangesloten socket-clients",
          "fr": "Informations sur les clients socket connectés",
          "it": "Informazioni sui client socket connessi",
          "es": "Información sobre clientes de socket conectados",
          "pl": "Informacje o podłączonych klientach gniazd",
          "zh-cn": "有关已连接套接字客户端的信息"
        },
        "type": "string",
        "read": true,
        "write": false,
        "def": ""
      },
      "native": {}
    },
    {
      "_id": "info.connection",
      "type": "state",
      "common": {
        "role": "indicator.connected",
        "name": {
          "en": "HTTP server started",
          "de": "HTTP-Server gestartet",
          "ru": "HTTP-сервер запущен",
          "pt": "Servidor HTTP iniciado",
          "nl": "HTTP-server gestart",
          "fr": "Serveur HTTP démarré",
          "it": "Server HTTP avviato",
          "es": "Servidor HTTP iniciado",
          "pl": "Uruchomiono serwer HTTP",
          "zh-cn": "HTTP 服务器已启动"
        },
        "type": "boolean",
        "read": true,
        "write": false,
        "def": false
      },
      "native": {}
    },
    {
      "_id": "info.newsFeed",
      "type": "state",
      "common": {
        "name": {
          "en": "Last news feed as JSON",
          "de": "Letzter Newsfeed als JSON",
          "ru": "Лента последних новостей в формате JSON",
          "pt": "Último feed de notícias como JSON",
          "nl": "Laatste nieuwsfeed als JSON",
          "fr": "Dernier fil d'actualité au format JSON",
          "it": "Ultimo feed di notizie come JSON",
          "es": "Últimas noticias como JSON",
          "pl": "Ostatni kanał wiadomości jako JSON",
          "zh-cn": "最后一个新闻提要为 JSON"
        },
        "type": "json",
        "read": true,
        "write": false
      }
    },
    {
      "_id": "info.newsETag",
      "type": "state",
      "common": {
        "name": {
          "en": "Etag for news feed",
          "de": "Etag für Newsfeed",
          "ru": "Etag для новостной ленты",
          "pt": "Etag para feed de notícias",
          "nl": "Etag voor nieuwsfeed",
          "fr": "Etag pour le fil d'actualité",
          "it": "Etag per il feed di notizie",
          "es": "Etag para noticias",
          "pl": "Etag dla kanału informacyjnego",
          "zh-cn": "用于新闻提要的 Etag"
        },
        "type": "string",
        "read": true,
        "write": false
      }
    },
    {
      "_id": "info.newsLastId",
      "type": "state",
      "common": {
        "name": {
          "en": "Last news ID",
          "de": "Letzte Nachrichten-ID",
          "ru": "Идентификатор последней новости",
          "pt": "ID da última notícia",
          "nl": "Laatste nieuws-ID",
          "fr": "Identifiant des dernières nouvelles",
          "it": "Ultime notizie ID",
          "es": "ID de última noticia",
          "pl": "Identyfikator ostatnich wiadomości",
          "zh-cn": "最新消息 ID"
        },
        "type": "string",
        "read": true,
        "write": false
      }
    },
    {
      "_id": "info.updatesList",
      "type": "state",
      "common": {
        "role": "indicator.updates",
        "name": {
          "en": "List of adapters to update",
          "de": "Liste der zu aktualisierenden Adapter",
          "ru": "Список адаптеров для обновления",
          "pt": "Lista de adaptadores para atualizar",
          "nl": "Lijst met adapters die moeten worden bijgewerkt",
          "fr": "Liste des adaptateurs à mettre à jour",
          "it": "Elenco degli adattatori da aggiornare",
          "es": "Lista de adaptadores para actualizar",
          "pl": "Lista adapterów do aktualizacji",
          "zh-cn": "要更新的适配器列表"
        },
        "type": "string",
        "read": true,
        "write": false,
        "def": ""
      },
      "native": {}
    }
  ],
  "objects": [],
  "notifications": [],
  "user": "system.user.admin"
}

Feuer-sturm avatar Sep 18 '22 18:09 Feuer-sturm

the MH check should be fixed at least in 6.13.15 since https://github.com/ioBroker/ioBroker.admin/pull/2264

For the activated button on invalid checks we track it in https://github.com/ioBroker/ioBroker.admin/issues/2332

foxriver76 avatar Jan 30 '24 07:01 foxriver76