XCP-ng
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Attempting to add new host fail on xoa and on server, worked on xcp-ng center

    Scheduled Pinned Locked Moved Management
    24 Posts 6 Posters 1.9k Views 5 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • henri9813H Offline
      henri9813 @Jonathon
      last edited by henri9813

      Hello, @Danp

      I just reproduced it.

      All my nodes are up to date
      ( my xo have 7 commits behind master, i read the commit's log of my missing commit, the commits are not related to my issue. ).

      In my scenario, i had a pool with 3 nodes

      • node1
      • node2
      • node3

      I reinstall node3 after a disaster ( i force forgot node 3).

      Now, i can't add the host back to the pool.

      6e6c4b93-7a3d-4c48-92fb-d311b4117983-image.png

      I also tried to update the host after installation ( usually, i do this after ).

      But it doesn't works more.

      I will not add my node thought xcpng center to permit you further investigation 🙂

      Here is the detailed operation json

      {
        "id": "0mcwehjzy",
        "properties": {
          "method": "pool.mergeInto",
          "params": {
            "sources": [
              "64365465-fd4e-25b6-3db2-2cdcd9edba5e"
            ],
            "target": "a92ca4ca-caac-83b9-fa00-4bb75cb48f6c",
            "force": true
          },
          "name": "API call: pool.mergeInto",
          "userId": "63a0dbaf-ba2d-4028-b80f-fe49f56686b2",
          "type": "api.call"
        },
        "start": 1752092249470,
        "status": "failure",
        "updatedAt": 1752092249473,
        "end": 1752092249472,
        "result": {
          "message": "app.getLicenses is not a function",
          "name": "TypeError",
          "stack": "TypeError: app.getLicenses is not a function\n    at enforceHostsHaveLicense (file:///etc/xen-orchestra/packages/xo-server/src/xo-mixins/pool.mjs:15:30)\n    at Pools.apply (file:///etc/xen-orchestra/packages/xo-server/src/xo-mixins/pool.mjs:80:13)\n    at Pools.mergeInto (/etc/xen-orchestra/node_modules/golike-defer/src/index.js:85:19)\n    at Xo.mergeInto (file:///etc/xen-orchestra/packages/xo-server/src/api/pool.mjs:311:15)\n    at Task.runInside (/etc/xen-orchestra/@vates/task/index.js:175:22)\n    at Task.run (/etc/xen-orchestra/@vates/task/index.js:159:20)\n    at Api.#callApiMethod (file:///etc/xen-orchestra/packages/xo-server/src/xo-mixins/api.mjs:469:18)"
        }
      }```
      henri9813H 2 Replies Last reply Reply Quote 0
      • henri9813H Offline
        henri9813 @henri9813
        last edited by

        This post is deleted!
        1 Reply Last reply Reply Quote 0
        • henri9813H Offline
          henri9813 @henri9813
          last edited by

          Hey @Danp ,
          I can keep my cluster without this node up to Monday, do you have an idea / do you want to investigate on this case ?

          J 1 Reply Last reply Reply Quote 0
          • J Offline
            Jonathon @henri9813
            last edited by Jonathon

            Guess who's back!

            Adding another host to the pool. Tested before and after updating xoa again.

            pool.mergeInto
            {
              "sources": [
                "e4cf2039-3547-6574-0e10-96f9d91316f0"
              ],
              "target": "38aea760-cf23-927c-ccf5-90969681e04b",
              "force": true
            }
            {
              "message": "app.getLicenses is not a function",
              "name": "TypeError",
              "stack": "TypeError: app.getLicenses is not a function
                at enforceHostsHaveLicense (file:///opt/xen-orchestra/packages/xo-server/src/xo-mixins/pool.mjs:15:30)
                at Pools.apply (file:///opt/xen-orchestra/packages/xo-server/src/xo-mixins/pool.mjs:80:13)
                at Pools.mergeInto (/opt/xen-orchestra/node_modules/golike-defer/src/index.js:85:19)
                at Xo.mergeInto (file:///opt/xen-orchestra/packages/xo-server/src/api/pool.mjs:314:15)
                at Task.runInside (/opt/xen-orchestra/@vates/task/index.js:175:22)
                at Task.run (/opt/xen-orchestra/@vates/task/index.js:159:20)
                at Api.#callApiMethod (file:///opt/xen-orchestra/packages/xo-server/src/xo-mixins/api.mjs:469:18)"
            }
            
            Uncaught 
            Object { code: -32000, data: {…}, stack: "", … }
            index.js:171:1258316
                default log-error.js:10
                (Async: setTimeout handler)
                default log-error.js:5
                e action-button.js:130
                InterpretGeneratorResume self-hosted:1332
                throw self-hosted:1279
                m action-button.js:10
                s action-button.js:10
                (Async: promise callback)
                m action-button.js:10
                i action-button.js:10
                _execute action-button.js:10
                _execute action-button.js:10
                _execute action-button.js:10
                React 5
                forEach self-hosted:157
                React 9
                (Async: EventListener.handleEvent)
                listen EventListener.js:29
                React 29
            

            I also checked journalctl -u xo-server.service

            Nov 12 17:46:52 xoa xo-server[1223513]: 2025-11-12T17:46:52.761Z xo:api WARN jonathon@floatplanemedia.com | pool.mergeInto(...) [32ms] =!> TypeError: app.getLicenses is not a function
            Nov 12 17:49:14 xoa xo-server[1223513]: 2025-11-12T17:49:14.414Z xo:api WARN jonathon@floatplanemedia.com | pool.mergeInto(...) [2ms] =!> TypeError: app.getLicenses is not a function
            

            58545fa3-ea5f-47b9-aff1-db90102b5022-image.png
            c36da33c-4583-408f-a82f-e3fc6836bf2f-image.png
            8e87421d-925a-4c78-a721-fdec25a88a99-image.png

            1 Reply Last reply Reply Quote 0
            • olivierlambertO Offline
              olivierlambert Vates 🪐 Co-Founder CEO
              last edited by

              Hi,

              How did you install your XO in the first place?

              J 1 Reply Last reply Reply Quote 0
              • J Offline
                Jonathon @olivierlambert
                last edited by

                @olivierlambert

                Looks like it was installed with curl https://raw.githubusercontent.com/Jarli01/xenorchestra_installer/master/xo_install.sh
                This was a few years ago at least.

                And it gets updated with sudo curl https://raw.githubusercontent.com/Jarli01/xenorchestra_updater/master/xo-update.sh | bash | tee xenupgrade##.log

                root@xoa:/home/fpcuser# cat xenupgrade23.log
                   installed : v22.20.0 (with npm 10.9.3)
                Stopping xo-server...
                Checking for Yarn package...
                Checking for Yarn update...
                Checking for missing dependencies...
                Checking for Repo change...
                Checking xen-orchestra...
                Current branch master
                Current version 5.189.0 / 5.186.0
                Current commit a0046fa19fa5f17344061e5c7709c1e02140dca4 2025-09-25 16:15:05 +0200
                95 updates available
                Updating from source...
                No local changes to save
                Updating a0046fa19..d829816f6
                Fast-forward
                 @vates/async-each/index.js                         |   28 +-
                 @vates/async-each/index.test.js                    |   14 +
                 @vates/async-each/package.json                     |    2 +-
                 @vates/fuse-vhd/package.json                       |    2 +-
                 @vates/generator-toolbox/src/throttle.mts          |    6 +-
                 @vates/generator-toolbox/tsconfig.json             |    1 +
                 @vates/nbd-client/package.json                     |    2 +-
                 @vates/types/package.json                          |    2 +-
                 @vates/types/src/lib/xen-orchestra-xapi.mts        |    5 +
                 @vates/types/src/xen-api.mts                       |   28 +-
                 @vates/types/src/xo.mts                            |   15 +-
                 @vates/types/tsconfig.json                         |    3 +-
                 @xen-orchestra/backups-cli/package.json            |    4 +-
                 @xen-orchestra/backups/_runners/VmsRemote.mjs      |    7 +-
                 @xen-orchestra/backups/_runners/VmsXapi.mjs        |    5 +-
                 .../backups/_runners/_vmRunners/FullRemote.mjs     |    2 +-
                 .../backups/_runners/_vmRunners/FullXapi.mjs       |    6 +-
                 .../_runners/_vmRunners/IncrementalRemote.mjs      |    5 +-
                 .../_runners/_vmRunners/IncrementalXapi.mjs        |    7 +-
                 .../_runners/_vmRunners/_AbstractRemote.mjs        |    2 +
                 .../backups/_runners/_vmRunners/_AbstractXapi.mjs  |    2 +
                 .../_runners/_writers/IncrementalXapiWriter.mjs    |   11 +-
                 @xen-orchestra/backups/package.json                |    4 +-
                 @xen-orchestra/disk-transform/src/Throttled.mts    |   26 +
                 @xen-orchestra/disk-transform/src/Timeout.mts      |   16 +
                 @xen-orchestra/disk-transform/src/index.mts        |    2 +
                 @xen-orchestra/disk-transform/tsconfig.json        |    1 +
                 @xen-orchestra/fs/package.json                     |    4 +-
                 @xen-orchestra/fs/src/abstract.js                  |   53 +-
                 .../immutable-backups/liftProtection.mjs           |    4 +-
                 @xen-orchestra/immutable-backups/package.json      |    2 +-
                 @xen-orchestra/lite/CHANGELOG.md                   |    3 +
                 @xen-orchestra/lite/docs/modals.md                 |  111 -
                 @xen-orchestra/lite/package.json                   |    6 +-
                 @xen-orchestra/lite/src/App.vue                    |    6 +-
                 .../lite/src/components/CollectionFilter.vue       |   33 +-
                 .../lite/src/components/CollectionFilterRow.vue    |   53 +-
                 .../lite/src/components/CollectionSorter.vue       |   20 +-
                 .../components/component-story/StoryPropParams.vue |   10 +-
                 .../lite/src/components/form/FormJson.vue          |   18 +-
                 .../src/components/modals/CodeHighlightModal.vue   |   11 +-
                 .../components/modals/CollectionFilterModal.vue    |   90 +-
                 .../components/modals/CollectionSorterModal.vue    |   51 +-
                 .../src/components/modals/InvalidFieldModal.vue    |   33 +-
                 .../lite/src/components/modals/JsonEditorModal.vue |   62 +-
                 .../components/modals/UnreachableHostsModal.vue    |   58 +-
                 .../lite/src/components/modals/VmDeleteModal.vue   |   70 +-
                 .../components/modals/VmExportBlockedUrlsModal.vue |   38 +-
                 .../lite/src/components/modals/VmExportModal.vue   |   59 +-
                 .../lite/src/components/modals/VmMigrateModal.vue  |   64 +-
                 .../components/ui/modals/ModalApproveButton.vue    |   13 -
                 .../src/components/ui/modals/ModalCloseIcon.vue    |   22 -
                 .../src/components/ui/modals/ModalContainer.vue    |   74 -
                 .../components/ui/modals/ModalDeclineButton.vue    |   16 -
                 .../lite/src/components/ui/modals/ModalList.vue    |   10 -
                 .../src/components/ui/modals/ModalListItem.vue     |   15 -
                 .../lite/src/components/ui/modals/UiModal.vue      |   55 -
                 .../ui/modals/layouts/BasicModalLayout.vue         |   26 -
                 .../ui/modals/layouts/ConfirmModalLayout.vue       |   76 -
                 .../ui/modals/layouts/FormModalLayout.vue          |   63 -
                 .../vm/VmActionItems/VmActionDeleteItem.vue        |   18 +-
                 .../vm/VmActionItems/VmActionExportItem.vue        |   23 +-
                 .../vm/VmActionItems/VmActionMigrateItem.vue       |   34 +-
                 .../lite/src/composables/context.composable.ts     |    5 +-
                 .../lite/src/composables/modal.composable.ts       |    4 -
                 .../composables/unreachable-hosts.composable.ts    |   23 +-
                 @xen-orchestra/lite/src/jobs/vm-export.job.ts      |    5 +-
                 .../src/libs/xen-api/operations/vm-operations.ts   |   14 +-
                 @xen-orchestra/lite/src/pages/settings.vue         |  305 +-
                 @xen-orchestra/lite/src/pages/xoa-deploy.vue       |   18 +-
                 @xen-orchestra/lite/src/stores/modal.store.ts      |   69 -
                 .../modals/layouts/basic-modal-layout.story.md     |    7 -
                 .../modals/layouts/basic-modal-layout.story.vue    |   17 -
                 .../modals/layouts/confirm-modal-layout.story.md   |   18 -
                 .../modals/layouts/confirm-modal-layout.story.vue  |   30 -
                 .../modals/layouts/form-modal-layout.story.md      |   30 -
                 .../modals/layouts/form-modal-layout.story.vue     |   50 -
                 .../src/stories/modals/modal-container.story.md    |   17 -
                 .../src/stories/modals/modal-container.story.vue   |   37 -
                 @xen-orchestra/lite/src/types/index.ts             |    9 -
                 @xen-orchestra/lite/src/types/injection-keys.ts    |    7 -
                 @xen-orchestra/lite/typed-router.d.ts              |    4 -
                 @xen-orchestra/proxy/package.json                  |    4 +-
                 @xen-orchestra/qcow2/tsconfig.json                 |    1 +
                 @xen-orchestra/rest-api/package.json               |    6 +-
                 .../src/abstract-classes/base-controller.mts       |   31 +-
                 .../src/abstract-classes/xapi-xo-controller.mts    |   17 +-
                 .../rest-api/src/groups/group.controller.mts       |   27 +-
                 .../rest-api/src/helpers/helper.type.mts           |   11 +
                 .../rest-api/src/hosts/host.controller.mts         |   88 +-
                 @xen-orchestra/rest-api/src/index.mts              |    7 +-
                 @xen-orchestra/rest-api/src/ioc/ioc.mts            |    6 -
                 .../rest-api/src/messages/message.controller.mts   |    2 +-
                 .../src/middlewares/authentication.middleware.mts  |   83 +-
                 .../rest-api/src/networks/network.controller.mts   |   78 +-
                 .../src/open-api/oa-examples/pbd.oa-example.mts    |   43 +
                 .../src/open-api/oa-examples/user.oa-example.mts   |   12 +
                 .../rest-api/src/pbds/pbd.controller.mts           |   50 +
                 .../rest-api/src/pifs/pif.controller.mts           |   52 +-
                 .../rest-api/src/pools/pool.controller.mts         |   78 +-
                 .../rest-api/src/rest-api/rest-api.type.mts        |   13 +-
                 .../rest-api/src/servers/server.controller.mts     |   28 +-
                 @xen-orchestra/rest-api/src/srs/sr.controller.mts  |  100 +-
                 @xen-orchestra/rest-api/src/tasks/task.service.mts |   32 -
                 .../rest-api/src/users/user.controller.mts         |  139 +-
                 .../rest-api/src/users/user.middleware.mts         |   23 +
                 .../rest-api/src/vbds/vbd.controller.mts           |   51 +-
                 .../src/vdi-snapshots/vdi-snapshot.controller.mts  |   79 +-
                 .../rest-api/src/vdis/vdi.controller.mts           |  112 +-
                 .../rest-api/src/vifs/vif.controller.mts           |   52 +-
                 .../src/vm-controller/vm-controller.controller.mts |   80 +-
                 .../src/vm-snapshots/vm-snapshot.controller.mts    |   61 +-
                 .../src/vm-templates/vm-template.controller.mts    |   78 +-
                 @xen-orchestra/rest-api/src/vms/vm.controller.mts  |   45 +-
                 @xen-orchestra/rest-api/tsconfig.json              |    1 +
                 @xen-orchestra/rest-api/tsoa.json                  |   19 +
                 @xen-orchestra/vmware-explorer/esxi.mjs            |    2 +-
                 @xen-orchestra/vmware-explorer/package.json        |    2 +-
                 @xen-orchestra/web-core/docs/index.md              |    2 +
                 @xen-orchestra/web-core/docs/modals.md             |  115 +
                 .../web-core/lib/assets/css/_colors.pcss           |    8 +
                 .../lib/components/backdrop/VtsBackdrop.vue        |   10 +-
                 .../lib/components/backup-state/VtsBackupState.vue |    3 +-
                 .../lib/components/button-group/VtsButtonGroup.vue |    6 +-
                 .../web-core/lib/components/menu/MenuList.vue      |    1 +
                 .../web-core/lib/components/modal/VtsModal.vue     |   82 +
                 .../lib/components/modal/VtsModalButton.vue        |   36 +
                 .../lib/components/modal/VtsModalCancelButton.vue  |   37 +
                 .../lib/components/modal/VtsModalConfirmButton.vue |   21 +
                 .../web-core/lib/components/modal/VtsModalList.vue |   34 +
                 .../lib/components/task/VtsQuickTaskButton.vue     |    5 +-
                 .../lib/components/task/VtsQuickTaskList.vue       |   22 +-
                 .../web-core/lib/components/tree/VtsTreeItem.vue   |    4 +-
                 .../web-core/lib/components/ui/button/UiButton.vue |   80 +-
                 .../ui/collapsible-list/UiCollapsibleList.vue      |    4 +
                 .../web-core/lib/components/ui/modal/UiModal.vue   |  164 +
                 .../web-core/lib/components/ui/panel/UiPanel.vue   |    2 +-
                 .../ui/quick-task-item/UiQuickTaskItem.vue         |    4 +-
                 .../ui/table-pagination/UiTablePagination.vue      |    4 +-
                 .../web-core/lib/composables/context.composable.ts |    8 +-
                 .../lib/composables/link-component.composable.ts   |    5 +-
                 .../lib/composables/pagination.composable.ts       |    5 +-
                 @xen-orchestra/web-core/lib/locales/cs.json        |   82 +-
                 @xen-orchestra/web-core/lib/locales/en.json        |   36 +-
                 @xen-orchestra/web-core/lib/locales/es.json        |   82 +-
                 @xen-orchestra/web-core/lib/locales/fr.json        |   40 +-
                 @xen-orchestra/web-core/lib/locales/it.json        |   11 +-
                 @xen-orchestra/web-core/lib/locales/nl.json        |   48 +-
                 @xen-orchestra/web-core/lib/locales/pt_BR.json     |   34 +-
                 @xen-orchestra/web-core/lib/locales/ru.json        |   84 +-
                 @xen-orchestra/web-core/lib/locales/uk.json        |  340 +-
                 .../lib/packages/collection/use-collection.ts      |    5 +-
                 .../form-select/use-form-option-controller.ts      |    5 +-
                 .../lib/packages/form-select/use-form-select.ts    |   15 +-
                 .../web-core/lib/packages/menu/action.ts           |    7 +-
                 @xen-orchestra/web-core/lib/packages/menu/link.ts  |    9 +-
                 .../web-core/lib/packages/menu/router-link.ts      |    5 +-
                 .../web-core/lib/packages/menu/toggle-target.ts    |    5 +-
                 .../web-core/lib/packages/modal/ModalProvider.vue  |   17 +
                 .../web-core/lib/packages/modal/README.md          |  253 ++
                 .../lib/packages/modal/create-modal-opener.ts      |  103 +
                 .../web-core/lib/packages/modal/modal.store.ts     |   22 +
                 .../web-core/lib/packages/modal/types.ts           |   92 +
                 .../web-core/lib/packages/modal/use-modal.ts       |   53 +
                 .../web-core/lib/packages/progress/use-progress.ts |    7 +-
                 .../web-core/lib/packages/table/README.md          |  336 ++
                 .../lib/packages/table/apply-extensions.ts         |   26 +
                 .../web-core/lib/packages/table/define-columns.ts  |   62 +
                 .../define-renderer/define-table-cell-renderer.ts  |   27 +
                 .../table/define-renderer/define-table-renderer.ts |   47 +
                 .../define-renderer/define-table-row-renderer.ts   |   29 +
                 .../define-table-section-renderer.ts               |   29 +
                 .../define-table/define-multi-source-table.ts      |   39 +
                 .../packages/table/define-table/define-table.ts    |   13 +
                 .../table/define-table/define-typed-table.ts       |   18 +
                 .../web-core/lib/packages/table/index.ts           |   11 +
                 .../lib/packages/table/transform-sources.ts        |   13 +
                 .../lib/packages/table/types/extensions.ts         |   16 +
                 .../web-core/lib/packages/table/types/index.ts     |   47 +
                 .../lib/packages/table/types/table-cell.ts         |   18 +
                 .../web-core/lib/packages/table/types/table-row.ts |   20 +
                 .../lib/packages/table/types/table-section.ts      |   19 +
                 .../web-core/lib/packages/table/types/table.ts     |   28 +
                 .../lib/packages/threshold/use-threshold.ts        |    7 +-
                 .../web-core/lib/types/value-matcher.d.ts          |    3 +
                 .../web-core/lib/types/vue-virtual-scroller.d.ts   |  101 +
                 .../web-core/lib/utils/injection-keys.util.ts      |    3 +
                 @xen-orchestra/web-core/lib/utils/progress.util.ts |    3 +-
                 @xen-orchestra/web-core/lib/utils/speed.util.ts    |   12 +
                 @xen-orchestra/web-core/lib/utils/time.util.ts     |   57 +
                 .../web-core/lib/utils/to-computed.util.ts         |   15 +
                 @xen-orchestra/web-core/package.json               |    5 +-
                 @xen-orchestra/web/env.d.ts                        |    1 +
                 @xen-orchestra/web/package.json                    |   12 +-
                 @xen-orchestra/web/src/App.vue                     |    2 +
                 .../{pool/dashboard => }/alarms/AlarmLink.vue      |    0
                 .../web/src/components/alarms/DashboardAlarms.vue  |   77 +
                 .../components/backups/jobs/BackupJobsTable.vue    |   16 +-
                 .../backups/jobs/panel/BackupJobsSidePanel.vue     |  112 +
                 .../panel/cards-items/BackupJobsSmartModePools.vue |   23 +
                 .../panel/cards-items/BackupJobsSmartModeTags.vue  |   23 +
                 .../panel/cards-items/BackupJobsTargetsBrItem.vue  |   19 +
                 .../panel/cards-items/BackupJobsTargetsSection.vue |   41 +
                 .../panel/cards-items/BackupJobsTargetsSrItem.vue  |   16 +
                 .../jobs/panel/cards-items/BackupRunItem.vue       |   85 +
                 .../jobs/panel/cards/BackupJobInfosCard.vue        |   69 +
                 .../backups/jobs/panel/cards/BackupJobLogsCard.vue |   41 +
                 .../jobs/panel/cards/BackupJobSchedulesCard.vue    |   92 +
                 .../jobs/panel/cards/BackupJobSettingsCard.vue     |  225 ++
                 .../panel/cards/BackupJobsBackedUpPoolsCard.vue    |   39 +
                 .../jobs/panel/cards/BackupJobsBackedUpVmsCard.vue |  173 +
                 .../jobs/panel/cards/BackupJobsTargetsCard.vue     |   48 +
                 .../panel/cards/BackupSourceRepositoryCard.vue     |   42 +
                 .../host/dashboard/HostDashboardPatches.vue        |  111 +
                 .../pool/dashboard/PoolDashboardStatus.vue         |    8 +-
                 .../pool/dashboard/alarms/PoolDashboardAlarms.vue  |   85 -
                 .../components/site/backups/BackupJobsTable.vue    |  238 --
                 .../src/components/site/dashboard/AlarmLink.vue    |   83 -
                 .../web/src/components/site/dashboard/Alarms.vue   |   80 -
                 .../web/src/components/tree/SiteTreeList.vue       |   24 +-
                 @xen-orchestra/web/src/main.ts                     |    1 +
                 @xen-orchestra/web/src/pages/(site)/backups.vue    |   32 +-
                 @xen-orchestra/web/src/pages/(site)/dashboard.vue  |    7 +-
                 .../web/src/pages/host/[id]/dashboard.vue          |   24 +
                 .../web/src/pages/pool/[id]/dashboard.vue          |   21 +-
                 @xen-orchestra/web/src/pages/vm/[id]/backups.vue   |   29 +-
                 @xen-orchestra/web/src/pages/vm/[id]/dashboard.vue |   17 +
                 @xen-orchestra/web/src/pages/vm/new.vue            |    6 +-
                 .../remote-resources/use-xo-alarm-collection.ts    |    3 +-
                 .../use-xo-backup-job-collection.ts                |   57 +-
                 .../use-xo-backup-log-collection.ts                |    2 +-
                 .../src/remote-resources/use-xo-br-collection.ts   |   13 +
                 .../use-xo-host-alarms-collection.ts               |   18 +
                 .../use-xo-host-missing-patches-collection.ts      |   11 +
                 .../use-xo-metadata-backup-job-collection.ts       |   13 -
                 .../use-xo-mirror-backup-job-collection.ts         |   13 -
                 .../remote-resources/use-xo-proxy-collection.ts    |   13 +
                 .../remote-resources/use-xo-schedule-collection.ts |    2 +-
                 .../src/remote-resources/use-xo-sr-collection.ts   |    2 +-
                 .../use-xo-vm-alarms-collection.ts                 |   18 +
                 .../use-xo-vm-backup-job-collection.ts             |   19 -
                 .../src/remote-resources/use-xo-vm-collection.ts   |    2 +-
                 @xen-orchestra/web/src/types/xo/backup-log.type.ts |    2 +
                 @xen-orchestra/web/src/types/xo/br.type.ts         |   11 +
                 @xen-orchestra/web/src/types/xo/index.ts           |    4 +
                 .../web/src/types/xo/metadata-backup-job.type.ts   |   33 +-
                 .../web/src/types/xo/mirror-backup-job.type.ts     |   33 +-
                 @xen-orchestra/web/src/types/xo/new-vm.type.ts     |    2 +-
                 @xen-orchestra/web/src/types/xo/proxy.type.ts      |   13 +
                 .../web/src/types/xo/vm-backup-job.type.ts         |   37 +-
                 @xen-orchestra/web/src/utils/pattern.util.ts       |   42 +
                 @xen-orchestra/web/vite.config.ts                  |    8 +
                 @xen-orchestra/xapi/disks/Xapi.mjs                 |   23 +-
                 @xen-orchestra/xapi/package.json                   |    2 +-
                 CHANGELOG.md                                       |   83 +-
                 CHANGELOG.unreleased.md                            |   85 +
                 docs/docs/manage_infrastructure.md                 |   78 +-
                 docs/docs/object-storage-support.md                |   37 +
                 docs/docs/users.md                                 |   11 +-
                 docs/docs/xoa.md                                   |    2 +-
                 docs/sidebars.ts                                   |    1 +
                 packages/vhd-cli/package.json                      |    2 +-
                 .../disk-consumer/DiskConsumerVhdDirectory.mjs     |    4 +-
                 packages/vhd-lib/package.json                      |    6 +-
                 packages/xo-server-auth-saml/package.json          |    4 +-
                 packages/xo-server-auth-saml/src/index.js          |   20 +-
                 packages/xo-server-sdn-controller/package.json     |    4 +-
                 packages/xo-server-sdn-controller/src/index.js     |  165 +-
                 .../src/openflow-controller.js                     |   16 +
                 .../src/openflow-plugin.js                         |  115 +
                 .../src/protocol/openflow-channel.js               |    4 +-
                 packages/xo-server/config.toml                     |    3 +
                 packages/xo-server/package.json                    |   12 +-
                 packages/xo-server/src/index.mjs                   |    2 +-
                 packages/xo-server/src/xo-mixins/rest-api.mjs      |  910 +----
                 packages/xo-server/src/xo-mixins/subjects.mjs      |   11 +-
                 packages/xo-server/src/xo-mixins/vmware/index.mjs  |    5 +-
                 packages/xo-web/package.json                       |    2 +-
                 packages/xo-web/src/common/copiable/index.css      |    2 +-
                 packages/xo-web/src/common/copiable/index.js       |   16 +-
                 packages/xo-web/src/common/form/toggle.js          |   10 +-
                 packages/xo-web/src/common/intl/messages.js        |    5 +
                 .../xo-web/src/xo-app/hub/recipes/recipe-ev.js     |    4 +
                 .../src/xo-app/hub/recipes/recipe-form-ev.js       |   31 +-
                 packages/xo-web/src/xo-app/new-vm/index.js         |    3 +-
                 packages/xo-web/src/xo-app/pool/tab-advanced.js    |   66 +-
                 packages/xo-web/src/xo-app/vm/action-bar.js        |   12 +-
                 packages/xo-web/src/xo-app/vm/tab-network.js       |    2 +-
                 yarn.lock                                          | 3606 ++++++++++----------
                 289 files changed, 9224 insertions(+), 5148 deletions(-)
                 create mode 100644 @xen-orchestra/disk-transform/src/Throttled.mts
                 create mode 100644 @xen-orchestra/disk-transform/src/Timeout.mts
                 delete mode 100644 @xen-orchestra/lite/docs/modals.md
                 delete mode 100644 @xen-orchestra/lite/src/components/ui/modals/ModalApproveButton.vue
                 delete mode 100644 @xen-orchestra/lite/src/components/ui/modals/ModalCloseIcon.vue
                 delete mode 100644 @xen-orchestra/lite/src/components/ui/modals/ModalContainer.vue
                 delete mode 100644 @xen-orchestra/lite/src/components/ui/modals/ModalDeclineButton.vue
                 delete mode 100644 @xen-orchestra/lite/src/components/ui/modals/ModalList.vue
                 delete mode 100644 @xen-orchestra/lite/src/components/ui/modals/ModalListItem.vue
                 delete mode 100644 @xen-orchestra/lite/src/components/ui/modals/UiModal.vue
                 delete mode 100644 @xen-orchestra/lite/src/components/ui/modals/layouts/BasicModalLayout.vue
                 delete mode 100644 @xen-orchestra/lite/src/components/ui/modals/layouts/ConfirmModalLayout.vue
                 delete mode 100644 @xen-orchestra/lite/src/components/ui/modals/layouts/FormModalLayout.vue
                 delete mode 100644 @xen-orchestra/lite/src/composables/modal.composable.ts
                 delete mode 100644 @xen-orchestra/lite/src/stores/modal.store.ts
                 delete mode 100644 @xen-orchestra/lite/src/stories/modals/layouts/basic-modal-layout.story.md
                 delete mode 100644 @xen-orchestra/lite/src/stories/modals/layouts/basic-modal-layout.story.vue
                 delete mode 100644 @xen-orchestra/lite/src/stories/modals/layouts/confirm-modal-layout.story.md
                 delete mode 100644 @xen-orchestra/lite/src/stories/modals/layouts/confirm-modal-layout.story.vue
                 delete mode 100644 @xen-orchestra/lite/src/stories/modals/layouts/form-modal-layout.story.md
                 delete mode 100644 @xen-orchestra/lite/src/stories/modals/layouts/form-modal-layout.story.vue
                 delete mode 100644 @xen-orchestra/lite/src/stories/modals/modal-container.story.md
                 delete mode 100644 @xen-orchestra/lite/src/stories/modals/modal-container.story.vue
                 create mode 100644 @xen-orchestra/rest-api/src/open-api/oa-examples/pbd.oa-example.mts
                 create mode 100644 @xen-orchestra/rest-api/src/pbds/pbd.controller.mts
                 delete mode 100644 @xen-orchestra/rest-api/src/tasks/task.service.mts
                 create mode 100644 @xen-orchestra/rest-api/src/users/user.middleware.mts
                 create mode 100644 @xen-orchestra/web-core/docs/modals.md
                 create mode 100644 @xen-orchestra/web-core/lib/components/modal/VtsModal.vue
                 create mode 100644 @xen-orchestra/web-core/lib/components/modal/VtsModalButton.vue
                 create mode 100644 @xen-orchestra/web-core/lib/components/modal/VtsModalCancelButton.vue
                 create mode 100644 @xen-orchestra/web-core/lib/components/modal/VtsModalConfirmButton.vue
                 create mode 100644 @xen-orchestra/web-core/lib/components/modal/VtsModalList.vue
                 create mode 100644 @xen-orchestra/web-core/lib/components/ui/modal/UiModal.vue
                 create mode 100644 @xen-orchestra/web-core/lib/packages/modal/ModalProvider.vue
                 create mode 100644 @xen-orchestra/web-core/lib/packages/modal/README.md
                 create mode 100644 @xen-orchestra/web-core/lib/packages/modal/create-modal-opener.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/modal/modal.store.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/modal/types.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/modal/use-modal.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/README.md
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/apply-extensions.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/define-columns.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/define-renderer/define-table-cell-renderer.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/define-renderer/define-table-renderer.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/define-renderer/define-table-row-renderer.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/define-renderer/define-table-section-renderer.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/define-table/define-multi-source-table.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/define-table/define-table.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/define-table/define-typed-table.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/index.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/transform-sources.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/types/extensions.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/types/index.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/types/table-cell.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/types/table-row.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/types/table-section.ts
                 create mode 100644 @xen-orchestra/web-core/lib/packages/table/types/table.ts
                 create mode 100644 @xen-orchestra/web-core/lib/types/value-matcher.d.ts
                 create mode 100644 @xen-orchestra/web-core/lib/types/vue-virtual-scroller.d.ts
                 create mode 100644 @xen-orchestra/web-core/lib/utils/speed.util.ts
                 create mode 100644 @xen-orchestra/web-core/lib/utils/to-computed.util.ts
                 rename @xen-orchestra/web/src/components/{pool/dashboard => }/alarms/AlarmLink.vue (100%)
                 create mode 100644 @xen-orchestra/web/src/components/alarms/DashboardAlarms.vue
                 create mode 100644 @xen-orchestra/web/src/components/backups/jobs/panel/BackupJobsSidePanel.vue
                 create mode 100644 @xen-orchestra/web/src/components/backups/jobs/panel/cards-items/BackupJobsSmartModePools.vue
                 create mode 100644 @xen-orchestra/web/src/components/backups/jobs/panel/cards-items/BackupJobsSmartModeTags.vue
                 create mode 100644 @xen-orchestra/web/src/components/backups/jobs/panel/cards-items/BackupJobsTargetsBrItem.vue
                 create mode 100644 @xen-orchestra/web/src/components/backups/jobs/panel/cards-items/BackupJobsTargetsSection.vue
                 create mode 100644 @xen-orchestra/web/src/components/backups/jobs/panel/cards-items/BackupJobsTargetsSrItem.vue
                 create mode 100644 @xen-orchestra/web/src/components/backups/jobs/panel/cards-items/BackupRunItem.vue
                 create mode 100644 @xen-orchestra/web/src/components/backups/jobs/panel/cards/BackupJobInfosCard.vue
                 create mode 100644 @xen-orchestra/web/src/components/backups/jobs/panel/cards/BackupJobLogsCard.vue
                 create mode 100644 @xen-orchestra/web/src/components/backups/jobs/panel/cards/BackupJobSchedulesCard.vue
                 create mode 100644 @xen-orchestra/web/src/components/backups/jobs/panel/cards/BackupJobSettingsCard.vue
                 create mode 100644 @xen-orchestra/web/src/components/backups/jobs/panel/cards/BackupJobsBackedUpPoolsCard.vue
                 create mode 100644 @xen-orchestra/web/src/components/backups/jobs/panel/cards/BackupJobsBackedUpVmsCard.vue
                 create mode 100644 @xen-orchestra/web/src/components/backups/jobs/panel/cards/BackupJobsTargetsCard.vue
                 create mode 100644 @xen-orchestra/web/src/components/backups/jobs/panel/cards/BackupSourceRepositoryCard.vue
                 create mode 100644 @xen-orchestra/web/src/components/host/dashboard/HostDashboardPatches.vue
                 delete mode 100644 @xen-orchestra/web/src/components/pool/dashboard/alarms/PoolDashboardAlarms.vue
                 delete mode 100644 @xen-orchestra/web/src/components/site/backups/BackupJobsTable.vue
                 delete mode 100644 @xen-orchestra/web/src/components/site/dashboard/AlarmLink.vue
                 delete mode 100644 @xen-orchestra/web/src/components/site/dashboard/Alarms.vue
                 create mode 100644 @xen-orchestra/web/src/remote-resources/use-xo-br-collection.ts
                 create mode 100644 @xen-orchestra/web/src/remote-resources/use-xo-host-alarms-collection.ts
                 create mode 100644 @xen-orchestra/web/src/remote-resources/use-xo-host-missing-patches-collection.ts
                 delete mode 100644 @xen-orchestra/web/src/remote-resources/use-xo-metadata-backup-job-collection.ts
                 delete mode 100644 @xen-orchestra/web/src/remote-resources/use-xo-mirror-backup-job-collection.ts
                 create mode 100644 @xen-orchestra/web/src/remote-resources/use-xo-proxy-collection.ts
                 create mode 100644 @xen-orchestra/web/src/remote-resources/use-xo-vm-alarms-collection.ts
                 delete mode 100644 @xen-orchestra/web/src/remote-resources/use-xo-vm-backup-job-collection.ts
                 create mode 100644 @xen-orchestra/web/src/types/xo/br.type.ts
                 create mode 100644 @xen-orchestra/web/src/types/xo/proxy.type.ts
                 create mode 100644 @xen-orchestra/web/src/utils/pattern.util.ts
                 create mode 100644 docs/docs/object-storage-support.md
                 create mode 100644 packages/xo-server-sdn-controller/src/openflow-controller.js
                 create mode 100644 packages/xo-server-sdn-controller/src/openflow-plugin.js
                Clearing directories...
                Installing...
                yarn install v1.22.22
                [1/5] Validating package.json...
                [2/5] Resolving packages...
                [3/5] Fetching packages...
                [4/5] Linking dependencies...
                [5/5] Building fresh packages...
                $ husky install
                husky - Git hooks installed
                Done in 40.48s.
                yarn run v1.22.22
                $ TURBO_TELEMETRY_DISABLED=1 turbo run build --filter xo-server --filter xo-server-'*' --filter xo-web
                • Packages in scope: xo-server, xo-server-audit, xo-server-auth-github, xo-server-auth-google, xo-server-auth-ldap, xo-server-auth-oidc, xo-server-auth-saml, xo-server-backup-reports, xo-server-load-balancer, xo-server-netbox, xo-server-perf-alert, xo-server-sdn-controller, xo-server-test-plugin, xo-server-transport-email, xo-server-transport-icinga2, xo-server-transport-nagios, xo-server-transport-slack, xo-server-transport-xmpp, xo-server-usage-report, xo-server-web-hooks, xo-web
                • Running build in 21 packages
                • Remote caching disabled
                
                 Tasks:    30 successful, 30 total
                Cached:    0 cached, 30 total
                  Time:    1m25.652s 
                
                Done in 86.03s.
                Updated version 5.190.1 / 5.187.0
                Updated commit d829816f62bffe16b19d8d0cfc3f08841aed10df 2025-10-16 16:47:01 +0200
                Checking plugins...
                Ignoring xo-server-test plugin
                Cleanup plugins...
                Restarting xo-server...
                
                1 Reply Last reply Reply Quote 0
                • olivierlambertO Offline
                  olivierlambert Vates 🪐 Co-Founder CEO
                  last edited by olivierlambert

                  Then I can't tell if there's any modification made, so I would ask to:

                  • Try with XOA (even XOA Free allows adding host to a pool)
                  • Make a clean source install from scratch following our doc https://docs.xen-orchestra.com/installation#from-the-sources

                  Alternatively/in parallel, you can open a ticket in the Jarli01 Github repo to report the issue.

                  J 1 Reply Last reply Reply Quote 0
                  • J Offline
                    Jonathon @olivierlambert
                    last edited by

                    @olivierlambert

                    Just tried after doing a force clean install, still getting same error. Going to look into it more if there is not any

                    root@xoa:/home/fpcuser# sudo curl https://raw.githubusercontent.com/Jarli01/xenorchestra_updater/master/xo-update.sh | bash -s -- -f | tee xenrebuild.log
                      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                                     Dload  Upload   Total   Spent    Left  Speed
                    100  6896  100  6896    0     0  39116      0 --:--:-- --:--:-- --:--:-- 39181
                       installed : v24.11.1 (with npm 11.6.2)
                    Stopping xo-server...
                    Checking for Yarn package...
                    Checking for Yarn update...
                    E: Malformed entry 1 in list file /etc/apt/sources.list.d/yarn.list (URI parse)
                    E: The list of sources could not be read.
                    E: Malformed entry 1 in list file /etc/apt/sources.list.d/yarn.list (URI parse)
                    E: The list of sources could not be read.
                    Checking for missing dependencies...
                    Checking for Repo change...
                    Checking xen-orchestra...
                    Current branch master
                    Current version 5.192.1 / 5.189.0
                    Current commit 6cfefc91e47db7fb264705bc2def1f1b70bc537b 2025-11-12 18:01:41 +0100
                    0 updates available
                    Updating from source...
                    No local changes to save
                    No stash entries found.
                    Already up to date.
                    Clearing directories...
                    Installing...
                    yarn install v1.22.22
                    (node:1226553) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
                    (Use `node --trace-deprecation ...` to show where the warning was created)
                    [1/5] Validating package.json...
                    [2/5] Resolving packages...
                    success Already up-to-date.
                    $ husky install
                    husky - Git hooks installed
                    Done in 1.57s.
                    yarn run v1.22.22
                    $ TURBO_TELEMETRY_DISABLED=1 turbo run build --filter xo-server --filter xo-server-'*' --filter xo-web
                    turbo 2.5.8
                    
                    • Packages in scope: xo-server, xo-server-audit, xo-server-auth-github, xo-server-auth-google, xo-server-auth-ldap, xo-server-auth-oidc, xo-server-auth-saml, xo-server-backup-reports, xo-server-load-balancer, xo-server-netbox, xo-server-perf-alert, xo-server-sdn-controller, xo-server-test-plugin, xo-server-transport-email, xo-server-transport-icinga2, xo-server-transport-nagios, xo-server-transport-slack, xo-server-transport-xmpp, xo-server-usage-report, xo-server-web-hooks, xo-web
                    • Running build in 21 packages
                    • Remote caching disabled
                    
                     Tasks:    30 successful, 30 total
                    Cached:    30 cached, 30 total
                      Time:    1.347s >>> FULL TURBO
                    
                    Done in 1.55s.
                    Updated version 5.192.1 / 5.189.0
                    Updated commit 6cfefc91e47db7fb264705bc2def1f1b70bc537b 2025-11-12 18:01:41 +0100
                    Checking plugins...
                    Ignoring xo-server-test plugin
                    Cleanup plugins...
                    Restarting xo-server...
                    

                    So then I updated our seperate vm for xoa that we have used in the past for requests like this, and I am getting this behavior
                    48c1fd0d-d434-4fb0-9ee0-5bc6756b3875-image.png

                    pool.mergeInto
                    {
                      "sources": [
                        "e4cf2039-3547-6574-0e10-96f9d91316f0"
                      ],
                      "target": "38aea760-cf23-927c-ccf5-90969681e04b",
                      "force": true
                    }
                    {
                      "code": "POOL_JOINING_SM_FEATURES_INCOMPATIBLE",
                      "params": [
                        "OpaqueRef:151858ec-cd9b-44f5-9cc5-f053685b1b8e",
                        ""
                      ],
                      "call": {
                        "duration": 2049,
                        "method": "pool.join_force",
                        "params": [
                          "* session id *",
                          "10.2.0.10",
                          "root",
                          "* obfuscated *"
                        ]
                      },
                      "message": "POOL_JOINING_SM_FEATURES_INCOMPATIBLE(OpaqueRef:151858ec-cd9b-44f5-9cc5-f053685b1b8e, )",
                      "name": "XapiError",
                      "stack": "XapiError: POOL_JOINING_SM_FEATURES_INCOMPATIBLE(OpaqueRef:151858ec-cd9b-44f5-9cc5-f053685b1b8e, )
                        at Function.wrap (file:///usr/local/lib/node_modules/xo-server/node_modules/xen-api/_XapiError.mjs:16:12)
                        at file:///usr/local/lib/node_modules/xo-server/node_modules/xen-api/transports/json-rpc.mjs:38:21
                        at runNextTicks (node:internal/process/task_queues:60:5)
                        at processImmediate (node:internal/timers:454:9)
                        at process.callbackTrampoline (node:internal/async_hooks:130:17)"
                    }
                    

                    5bc0b839-46d1-4387-aa73-5a1df07c9bfe-image.png

                    J 1 Reply Last reply Reply Quote 0
                    • J Offline
                      Jonathon @Jonathon
                      last edited by Jonathon

                      After installing packages: https://docs.xcp-ng.org/xostor/#how-to-add-a-new-host-or-fix-a-badly-configured-host

                      Now I am getting the following on offical

                      pool.mergeInto
                      {
                        "sources": [
                          "e4cf2039-3547-6574-0e10-96f9d91316f0"
                        ],
                        "target": "38aea760-cf23-927c-ccf5-90969681e04b",
                        "force": true
                      }
                      {
                        "code": "INTERNAL_ERROR",
                        "params": [
                          "Stunnel.Stunnel_verify_error(\"1416F086:SSL routines:tls_process_server_certificate:certificate verify failed\")"
                        ],
                        "call": {
                          "duration": 3104,
                          "method": "pool.join_force",
                          "params": [
                            "* session id *",
                            "10.2.0.10",
                            "root",
                            "* obfuscated *"
                          ]
                        },
                        "message": "INTERNAL_ERROR(Stunnel.Stunnel_verify_error(\"1416F086:SSL routines:tls_process_server_certificate:certificate verify failed\"))",
                        "name": "XapiError",
                        "stack": "XapiError: INTERNAL_ERROR(Stunnel.Stunnel_verify_error(\"1416F086:SSL routines:tls_process_server_certificate:certificate verify failed\"))
                          at Function.wrap (file:///usr/local/lib/node_modules/xo-server/node_modules/xen-api/_XapiError.mjs:16:12)
                          at file:///usr/local/lib/node_modules/xo-server/node_modules/xen-api/transports/json-rpc.mjs:38:21
                          at runNextTicks (node:internal/process/task_queues:60:5)
                          at processImmediate (node:internal/timers:454:9)
                          at process.callbackTrampoline (node:internal/async_hooks:130:17)"
                      }
                      

                      And still getting this on source install

                      pool.mergeInto
                      {
                        "sources": [
                          "e4cf2039-3547-6574-0e10-96f9d91316f0"
                        ],
                        "target": "38aea760-cf23-927c-ccf5-90969681e04b",
                        "force": true
                      }
                      {
                        "message": "app.getLicenses is not a function",
                        "name": "TypeError",
                        "stack": "TypeError: app.getLicenses is not a function
                          at enforceHostsHaveLicense (file:///opt/xen-orchestra/packages/xo-server/src/xo-mixins/pool.mjs:15:30)
                          at Pools.apply (file:///opt/xen-orchestra/packages/xo-server/src/xo-mixins/pool.mjs:80:13)
                          at Pools.mergeInto (/opt/xen-orchestra/node_modules/golike-defer/src/index.js:85:19)
                          at Xo.mergeInto (file:///opt/xen-orchestra/packages/xo-server/src/api/pool.mjs:314:15)
                          at Task.runInside (/opt/xen-orchestra/@vates/task/index.js:175:22)
                          at Task.run (/opt/xen-orchestra/@vates/task/index.js:159:20)
                          at Api.#callApiMethod (file:///opt/xen-orchestra/packages/xo-server/src/xo-mixins/api.mjs:469:18)"
                      }
                      
                      J 1 Reply Last reply Reply Quote 0
                      • J Offline
                        Jonathon @Jonathon
                        last edited by

                        Bummer
                        957a5e9d-7f52-42a6-9105-c4772cd4e6e2-image.png

                        J 1 Reply Last reply Reply Quote 0
                        • J Offline
                          Jonathon @Jonathon
                          last edited by

                          eee8bee1-ce6f-47c2-b5f0-1cd9b942db79-image.png
                          9eea1860-e725-4e3c-85ff-0c3351beff45-image.png

                          Boo

                          1 Reply Last reply Reply Quote 0
                          • A Offline
                            acebmxer
                            last edited by

                            Check out this post for cert error not sure if its related- https://xcp-ng.org/forum/topic/9083/stunnel-sdn-cert-error-when-adding-host-to-pool/7?_=1762983691777

                            J 1 Reply Last reply Reply Quote 0
                            • J Offline
                              Jonathon @acebmxer
                              last edited by Jonathon

                              I see, it also says
                              name ( RO): sdn-controller-ca.pem
                              host ( RO): <not in database>
                              Like in the issue, but the file exists.

                              [11:28 ovbh-pprod-xen05 ~]# xe certificate-list
                              uuid ( RO)           : afdd9c8e-dcae-17c7-c35c-0fd7cebd387a
                                         type ( RO): host
                                         name ( RO): 
                                         host ( RO): f0cec10f-ad05-48e4-893c-414b3a3e15be
                                   not-before ( RO): 20251110T23:15:51Z
                                    not-after ( RO): 20351108T23:15:51Z
                                  fingerprint ( RO): BF:83:23:BB:7B:E9:30:DE:86:EA:9D:AF:DF:F8:BA:34:39:D0:81:AD:34:E5:C6:AB:0C:49:41:7B:4A:3C:8B:9E
                              
                              
                              uuid ( RO)           : b8dcd1f0-ef65-e762-f189-46bb78766c6b
                                         type ( RO): ca
                                         name ( RO): sdn-controller-ca.pem
                                         host ( RO): <not in database>
                                   not-before ( RO): 20200416T00:17:31Z
                                    not-after ( RO): 20470901T00:17:31Z
                                  fingerprint ( RO): 63:1F:89:3F:0E:1F:86:52:34:95:3C:6C:3F:9C:C8:B3:5A:61:6B:4D:EE:8F:A7:11:F0:BA:79:8B:C7:15:A0:E0
                              
                              
                              uuid ( RO)           : e7daedf2-7f35-ba40-093a-e0c011d91633
                                         type ( RO): host_internal
                                         name ( RO): 
                                         host ( RO): f0cec10f-ad05-48e4-893c-414b3a3e15be
                                   not-before ( RO): 20251110T23:15:46Z
                                    not-after ( RO): 20351108T23:15:46Z
                                  fingerprint ( RO): 71:41:B0:25:88:AA:E4:56:EE:F7:A9:8E:0A:A9:FE:C5:6A:0D:D5:37:30:BF:C8:81:C2:D7:B8:20:7A:6C:7F:B7
                              
                              
                              [13:50 ovbh-pprod-xen05 ~]# ll /etc/stunnel/certs/sdn-controller-ca.pem
                              -rw-r--r-- 1 root root 1907 Nov 12 09:45 /etc/stunnel/certs/sdn-controller-ca.pem
                              

                              Removing it did not help, same error

                              [13:54 ovbh-pprod-xen05 ~]# xe certificate-list
                              uuid ( RO)           : afdd9c8e-dcae-17c7-c35c-0fd7cebd387a
                                         type ( RO): host
                                         name ( RO): 
                                         host ( RO): f0cec10f-ad05-48e4-893c-414b3a3e15be
                                   not-before ( RO): 20251110T23:15:51Z
                                    not-after ( RO): 20351108T23:15:51Z
                                  fingerprint ( RO): BF:83:23:BB:7B:E9:30:DE:86:EA:9D:AF:DF:F8:BA:34:39:D0:81:AD:34:E5:C6:AB:0C:49:41:7B:4A:3C:8B:9E
                              
                              
                              uuid ( RO)           : e7daedf2-7f35-ba40-093a-e0c011d91633
                                         type ( RO): host_internal
                                         name ( RO): 
                                         host ( RO): f0cec10f-ad05-48e4-893c-414b3a3e15be
                                   not-before ( RO): 20251110T23:15:46Z
                                    not-after ( RO): 20351108T23:15:46Z
                                  fingerprint ( RO): 71:41:B0:25:88:AA:E4:56:EE:F7:A9:8E:0A:A9:FE:C5:6A:0D:D5:37:30:BF:C8:81:C2:D7:B8:20:7A:6C:7F:B7
                              

                              I also confirmed that all the certs for the hosts are current and not expired.

                              1 Reply Last reply Reply Quote 0
                              • olivierlambertO Offline
                                olivierlambert Vates 🪐 Co-Founder CEO
                                last edited by

                                I'm not sure who to ping exactly 🤔 Maybe @Team-XAPI-Network with some experience on the cert issue?

                                psafontP 1 Reply Last reply Reply Quote 0
                                • psafontP Offline
                                  psafont Vates 🪐 XAPI & Network Team @olivierlambert
                                  last edited by psafont

                                  I see at least on a couple of instances that the pool join is being forced. Please don't do this unless you understand the checks being ignored.

                                  What's the result of a pool join without the force option?

                                  Do both hosts have tls verification enabled?
                                  If not, run xe pool-enable-tls-verification. This will set up the certificates for pool communication correctly for the hosts in that pool and turn on TLS verification for pool communication.
                                  If yes, run xe host-list --minimal | xargs -I _ xe host-param-get uuid=_ param-name=name-label | xargs -I _ xe host-refresh-server-certificate host=_. This will reset the certificates for all the hosts in the pool.

                                  Try running the normal join command after doing these steps, and report whether it went well, or report the error.

                                  J 1 Reply Last reply Reply Quote 1
                                  • J Offline
                                    Jonathon @psafont
                                    last edited by Jonathon

                                    @psafont Sorry was swamped with other things. As listed above I get the same error, forced or not, from xcp-ng center, xcp-ng host, or xoa.

                                    1fdda333-0842-4281-ae69-e6c886ec1542-image.png
                                    tls verification has always been off, and in the past we have not had issue with adding new host to pool.

                                    I have taken no other actions since my last posting.

                                    J 1 Reply Last reply Reply Quote 0
                                    • J Offline
                                      Jonathon @Jonathon
                                      last edited by

                                      xe pool-enable-tls-verification Was exactly what I needed, thanks! Worked after that.

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post