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

    New project - XenAdminQt - a cross-platform GNU/Linux, macOS, Windows native thick client

    Scheduled Pinned Locked Moved News
    24 Posts 6 Posters 2.1k Views 10 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.
    • B Offline
      benapetr @benapetr
      last edited by

      Here are some more screenshots from debian:

      df3b5fb0-c5e5-43cd-8b09-b3e78aa80b61-image.png
      255e428c-98a8-45ca-8d84-e4692e513a20-image.png
      347101c0-c303-4349-8b97-5d7ee922fbf8-image.png
      88000de7-bc1b-4137-9f5c-92960700b96e-image.png
      d822614e-603c-41a1-8bdc-ed4327bc6d35-image.png
      783a9005-c534-4c07-97c7-cefff3a59f89-image.png

      bvitnikB 1 Reply Last reply Reply Quote 4
      • bvitnikB Offline
        bvitnik @benapetr
        last edited by

        @benapetr This looks phenomenal. Will have to give it a try.

        This is a nice coincidence. Just the other day one of my younger colleagues boasted about making XCP-ng Center work under Wine... everything just works™. It would save a number of folks having to have a Windows VM on stand by just for the XCP-ng Center. Oh boy, how he was disappointed when I showed him everything that does not work 😁 ... but with this, there is still hope.

        B 1 Reply Last reply Reply Quote 2
        • B Offline
          benapetr @bvitnik
          last edited by

          @bvitnik yes I also spent years trying to get the original C# client to work, even using mono etc. I know C#, but it's just hard-wired into windows too much, it literally hooks into some Win32 .dlls and then some other (for RDP service etc.)

          This is a native client in C++ it has 0 deps on Windows. The RDP integration is one of those things that are missing now, but there is already a stub code using xrdp library, it just needs finishing and is really a low prio, I never really used that RDP integration anyway, native VNC based console is good enough.

          G 1 Reply Last reply Reply Quote 0
          • G Offline
            Greg_E @benapetr
            last edited by

            @benapetr
            Pretty cool project, might be handy to learn to work with this.

            Question: Will it run on a raspberry pi with a 1280x720 display? Specifically a Clockwork Pi uConsole with CM4 Rpi module with 8gb or ram.

            That's my emergency computing device for when things fail, only thing it is missing is a kvm to USB module to look at BIOS on a server.

            B 1 Reply Last reply Reply Quote 0
            • B Offline
              benapetr @Greg_E
              last edited by

              @Greg_E most likely yes, RAM wouldn't be problem, since it's a C++ app it only needs little of it. On macOS when connected to large cluster with many VMs and consoles it shows 110MB usage.

              It just needs X11 or wayland compatible environment to start

              G 1 Reply Last reply Reply Quote 0
              • G Offline
                Greg_E @benapetr
                last edited by

                @benapetr

                Thanks, I will have to play with this when I have time.

                B 1 Reply Last reply Reply Quote 0
                • B Offline
                  benapetr @Greg_E
                  last edited by

                  I made a first "demonstrator" preview release for macOS, will upload .deb and .rpm packages as well: https://github.com/benapetr/XenAdminQt/releases/tag/v0.0.1-alpha

                  B 1 Reply Last reply Reply Quote 1
                  • B Offline
                    benapetr @benapetr
                    last edited by benapetr

                    I just released 0.0.2 https://github.com/benapetr/XenAdminQt/releases/tag/v0.0.2-alpha

                    The first version was really just a proof-of-concept demonstration, this second version is already pretty usable. It can handle all basic stuff, including provisioning of new VMs, VM control (start / stop / suspend / pause), force actions, parallel connections to multiple clusters etc. etc.

                    Status of what is tested and works and what does:

                    # Needs work
                    * Menu items
                    * Tree view - should show Virtual Disks, Networks in objects view
                    * Pool HA tab missing
                    * Actions and commands, see actions todo
                    * Performance tab
                    * Search tab has unfinished options panel
                    * VM import / export
                    * Folder and tag views
                    * Network tab (host) - needs finish and test, especially wizards and properties
                    * New pool wizard
                    * New storage wizard
                    * New VM wizard
                    * VM deleting
                    * HA tab
                    * NIC tab - bonding
                    * Clone VM
                    * Create template from VM
                    * Create VM from template
                    
                    # Needs polish
                    * General tab - shows data, but access to data is weird (should use native XenObjects and their properties instead of scrapping QVarianMaps), overall layout is also not good
                    * Memory tabs - they already work, but could look better
                    * Console - it works most of the time, but there are random scaling issues during boot, RDP not supported
                    * UI - menus and toolbar buttons sometime don't refresh on events (unpause -> still shows force shutdown)
                    
                    # Needs testing
                    * VM disk resize
                    * VM disk move
                    * VM live migration
                    * VM cross pool migration
                    * Properties of Hosts, VMs and Pools
                    * VM deleting
                    * Options
                    * Maintenance mode
                    
                    # Finished and tested
                    * Add server
                    * Connection to pool - redirect from slave to master
                    * Connection persistence
                    * Basic VM controls (start / reboot / shutdown)
                    * Pause / Unpause
                    * Suspend / Resume
                    * Snapshots
                    * VM disk management (create / delete / attach / detach)
                    * SR attach / detach / repair stack
                    * CD management
                    * Grouping and search filtering (clicking hosts / VMs in tree view top level)
                    * Tree view (infrastructure / objects)
                    * Events history
                    * Network tab (VM)
                    * Host command -> Restart toolstack
                    
                    B 1 Reply Last reply Reply Quote 1
                    • B Offline
                      benapetr @benapetr
                      last edited by

                      I also added windows build so that people can help with testing also on windows. It's a static build, no need for installer, just single zipped .exe file. No dependencies.

                      B 1 Reply Last reply Reply Quote 0
                      • B Offline
                        benapetr @benapetr
                        last edited by

                        I just released 0.0.3 https://github.com/benapetr/XenAdminQt/releases/tag/v0.0.3-alpha it brings it even closer to the original client, with packages for macos, debian12, debian13, ubuntu 22, ubuntu 24, Fedora 43, windows

                        1 Reply Last reply Reply Quote 2
                        • Tristis OrisT Offline
                          Tristis Oris Top contributor
                          last edited by

                          Wow, great news. Tried it with my pools.
                          Connected, basic functions is working, handled pool unavailability.

                          About UI usability:

                          • templates mixed up with disabled VMs at same root directory. Without any sorting.
                            I prefer to never see them, since it not important items.

                          fce4c8e4-9532-40cd-9e5f-d1231b627676-изображение.png

                          • After app restart all icons became yellow.
                            54aa5246-3aac-4ebd-87fc-146c770563cf-изображение.png

                          • looks like this option do nothing.
                            23583254-f68a-4980-9188-a23f162bc28b-изображение.png

                          How about portable mode? App mostly required for asap situations when XO is down.

                          B 2 Replies Last reply Reply Quote 0
                          • B Offline
                            benapetr @Tristis Oris
                            last edited by

                            @Tristis-Oris hello, the app is already somewhat portable. On windows it doesn't require any installation it's just a single .exe file

                            Regarding templates and sorting of tree view - that's being worked out but you can already hide the templates using View menu (just uncheck you want to display them, they will disappear).

                            Not sure about the yellow template icons, they is a debug console, you can check logs from it for more details.

                            Save and restore using encryption / master password isn't implemented in that version you have, it just always remembers all connections, but it's already ported over, see - https://github.com/benapetr/XenAdminQt/pull/15 this option will be available in next version (+ master password encryption)

                            benapetr opened this pull request in benapetr/XenAdminQt

                            closed Feature/mpw #15

                            Tristis OrisT 2 Replies Last reply Reply Quote 0
                            • Tristis OrisT Offline
                              Tristis Oris Top contributor @benapetr
                              last edited by

                              @benapetr yes, i'm about connections and credentials export\portable mode. Got it.

                              1 Reply Last reply Reply Quote 0
                              • Tristis OrisT Offline
                                Tristis Oris Top contributor @benapetr
                                last edited by

                                @benapetr said in New project - XenAdminQt - a cross-platform GNU/Linux, macOS, Windows native thick client:

                                you can already hide the templates using View menu (just uncheck you want to display them, they will disappear).

                                What is the criterion for custom templates?

                                7eb0ec2d-1968-471f-a4ad-d137ea36e05d-изображение.png

                                by default, the usual templates are disabled, but I see them. Disabling custom ones disables all templates.

                                B 1 Reply Last reply Reply Quote 0
                                • B Offline
                                  benapetr @Tristis Oris
                                  last edited by benapetr

                                  @Tristis-Oris the logic was directly ported over from C# version, so it does the same stuff what it filters there. It just toggles this search scope:

                                  QueryScope* TreeSearch::GetTreeSearchScope()
                                  {
                                      ObjectTypes types = Search::DefaultObjectTypes();
                                      types |= ObjectTypes::Pool;
                                  
                                      SettingsManager& settings = SettingsManager::instance();
                                  
                                      if (settings.getDefaultTemplatesVisible())
                                          types |= ObjectTypes::DefaultTemplate;
                                  
                                      if (settings.getUserTemplatesVisible()) // these are custom
                                          types |= ObjectTypes::UserTemplate;
                                  
                                      if (settings.getLocalSRsVisible())
                                          types |= ObjectTypes::LocalSR;
                                  
                                      return new QueryScope(types);
                                  }
                                  

                                  I assume it matches all user-defined templates, the defaults you see are "system defined" and part of xcp-ng .rpm packages. It's possible that this logic just wasn't ported correctly, I will look into it.

                                  1 Reply Last reply Reply Quote 0
                                  • B Offline
                                    benapetr @Tristis Oris
                                    last edited by

                                    @Tristis-Oris just FYI I fixed all of those issues you had, also regarding portable stuff - I implemented CLI switch -c <path> where you can specify directory where you want to store config, so you can wrap the app in a .bat or .sh script that would start it to use local storage (like flash drive) for config files, that should achieve portability.

                                    If you expected something more sophisticated let me know

                                    Tristis OrisT 1 Reply Last reply Reply Quote 0
                                    • Tristis OrisT Offline
                                      Tristis Oris Top contributor @benapetr
                                      last edited by

                                      @benapetr Nice, great.
                                      How about to implement a launch of CR backup VMs?

                                      https://xcp-ng.org/forum/assets/uploads/files/1769679350079-677dfcbb-211b-452f-ad8f-db59e2860579-изображение.png
                                      https://xcp-ng.org/forum/assets/uploads/files/1769679584572-3e39d799-a2fd-4cb0-8e2e-6b9c4312a2e6-изображение.png

                                      B 1 Reply Last reply Reply Quote 0
                                      • B Offline
                                        benapetr @Tristis Oris
                                        last edited by

                                        @Tristis-Oris There are many features missing since it's alpha now, but you can open bug tracker request on github if you want to keep track of progress for this particular feature.

                                        1 Reply Last reply Reply Quote 0
                                        • TeddyAstieT Offline
                                          TeddyAstie Vates 🪐 XCP-ng Team Xen Guru
                                          last edited by

                                          @benapetr
                                          Consider making a PR to https://github.com/xcp-ng/xcp-ng-org (https://github.com/xcp-ng/xcp-ng-org/blob/master/docs/management/management.md) if you want to make your project more visible.

                                          B 1 Reply Last reply Reply Quote 0
                                          • B Offline
                                            benapetr @TeddyAstie
                                            last edited by

                                            @TeddyAstie good idea, thanks, I will do it once I get close to releasing first non-alpha version, right now it's still too immature for production use (although latest master version is so good and stable I already use it to manage most of my own clusters)

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