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
    26 Posts 7 Posters 2.5k Views 11 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.
    • 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
                                          • olivierlambertO Offline
                                            olivierlambert Vates 🪐 Co-Founder CEO
                                            last edited by

                                            Note we already gave visibility on this project twice, with the last 2 XO blog post release and newsletter 🙂

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