Coder Social home page Coder Social logo

xenserver / xenadmin Goto Github PK

View Code? Open in Web Editor NEW
238.0 43.0 230.0 183.05 MB

XenCenter, the Windows management console for XenServer

License: BSD 2-Clause "Simplified" License

C# 98.25% JavaScript 0.01% PowerShell 0.23% Batchfile 0.01% VBScript 0.07% HTML 1.45%

xenadmin's Introduction

XenCenter

Please note that as of December 2023 this copy of the XenCenter repository is considered archived. As such it will not reflect the latest state of XenCenter development, and any pull requests will not be reviewed/merged. If you have any feedback regarding XenCenter, please send it to [email protected].


Overview

XenCenter is a Windows-based management tool for XenServer and Citrix Hypervisor environments, which enables users to manage and monitor server and resource pools, and to deploy, monitor, manage, and migrate virtual machines.

XenCenter is written in C#.

License

This code is licensed under the BSD 2-Clause license. Please see the LICENSE file for more information.

How to build XenCenter

To build XenCenter, you need

  • the source from xenadmin repository
  • Visual Studio 2022
  • .NET Framework 4.8

and also some libraries which we do not store in the source tree:

  • CookComputing.XmlRpcV2.dll
  • Newtonsoft.Json.dll
  • DiscUtils.dll
  • ICSharpCode.SharpZipLib.dll
  • log4net.dll

You can find the source code of these libraries (along with some patches) in dotnet-packages repository.

To run the NUnit tests you will need the following libraries:

  • nunit.framework.dll
  • Moq.dll

which can be obtained from http://www.nuget.org/.

Note that the build script assumes that you have added MSBuild's location (usually C:\Program Files\Microsoft Visual Studio\2022\<edition>\MSBuild\Current\Bin) to your PATH environment variable.

xenadmin's People

Contributors

aaronrobson avatar anoobs avatar bengangy avatar cheng-z avatar chrish4rding avatar citrixchris avatar danilo-delbusso avatar frezzle avatar gaborapatinagy avatar huizh avatar jijiang avatar jishengx avatar katshann avatar kc284 avatar kcvvel avatar letsboogey avatar makunterry avatar mcintyre94 avatar mfilippov avatar michael2012z avatar mihaelastoica avatar minli1 avatar robhoes avatar serencorbett1 avatar sriharshak avatar ssbarnea avatar stephen-turner avatar timliu55 avatar ushamandya avatar zhengchai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xenadmin's Issues

Split proxy configuration

I would like the ability to define the proxy separately for connecting to hosts vs the updates site. My management system can connect directly (no proxy) to my hosts, but must connect through a proxy to get to the internet to check for updates. My proxy server cannot connect to my Xen hosts so I can't use it for both.

Copy/move vm offline between pools

Hello,

I have seen this feature in a perl script that makes some kind of export/import operation between 2 independent pools/server.

I think it would be a great addition to xencenter

I am not a developer and I thing I would be in over my head to try to implement this kind of change by myself.

Can you please look in to implementing this kind of feature?

Make XenCenter compile / run with mono

XenCenter is a great tool unfortunately it's windows only. It would be greate if it could compile and run on mono so it can be used on OS X and Linux.

(I tried during the weekend and with Mono 3.0.12 + a few modifications I got the source to compile but didn't succeeed in getting the binary running)

Compiling Resx error with non english VS

Just a short note if anybody should have the same problem, so this could be closed directly.

If one is using a Visual Studio (I was using VS 2017, 15.4.3) in another language than english it fails to compile some ResX because the shortcuts like "ctrl+n" (XenAdmin\MainWindow.resx Line: 2309) are expected to be translated to that language.

One workaround: to compile it using english language pack

Microsoft: https://connect.microsoft.com/VisualStudio/feedback/details/361798/switching-visual-studio-2008-ide-language-from-english-to-german-produces-compiler-errors-on-resx-file

View Consoles when XenCenter is connected by SSH tunnel

When I'm at work and I want to connect to my XenServer I'm using an SSH tunnel.
With XenCenter I can do everything instead of view console.
I find the the way changing the Console.location with the console.Connection.HostnameWithPort.
I will do a branch with this.

Another way can be implement Socks Proxy into XenCenter, but is more

Live VCpu addition

Hello,

It would be nice to add VCpu's live to vm's.

I am not a developer, but I managed to make it work, I did not have the courage to submit the patches because I am not familiar with git.

My ideea was to set the max cpu's for a vm on creation to the maximum allowed for the template and the start-up cpu's to the configured one in the vm creation dialog.

If I can help in getting the feature implemented, please let me know

Snapshot Schedules, run history incorrect time

Problem

The Snapshot Schedules History shows inncorrect timestamps.

Cause

code uses msg.timestamp but should use msg.TimestampLocal() in function RefreshHistoryGrid()

var alert = new PolicyAlert(msg.priority, msg.name, msg.timestamp, msg.body, vmss.Name());


var alert = new PolicyAlert(msg.priority, msg.name, msg.timestamp, msg.body, vmss.Name());

Background

xcp-ng#96

Can't move VDISK within Local SR

Dear developers,
Relatively straight forward problem. I can't move VDISK between Local SRs.
No idea if this was intention to disable in higher versions or a bug.
This behavior is not observed in Version 7.6.1.
I can observe this in version 7.6.3 upwards till latest release.

Screenshot 2019-06-18 at 09 24 31

Thank you very much for your support and for making this amazing project possible!

Possible deprecated access

I am trying to build XenAdmin for Linux and the build process breaks on an issue that has been around for some time. Not being a C# expert (my expertise lies in Java) I did think at first this was a Mono implementation issue and logged it as such, but it might be that my initial analysis was incorrect. The following build error prevents the project to be build by Mono:

Target GenerateResources:
	Tool /usr/lib/mono/4.5/resgen.exe execution started with arguments: /useSourcePath /compile "Dialogs/ConfirmVMDeleteDialog.resx,obj/Debug/XenAdmin.Dialogs.ConfirmVMDeleteDialog.resources" 

/usr/lib/mono/4.5/Microsoft.Common.targets: error : Tool exited with code: 1. Output: Error: Exception has been thrown by the target of an invocation.
Inner exception: Member 'ListViewItemCount' was not found.

Task "GenerateResource" execution -- FAILED
Done building target "GenerateResources" in project "/data/projects/build/xenadmin/XenAdmin/XenAdmin.csproj".-- FAILED

I have commented out references to ConfirmVMDeleteDialog in DeleteVMCommand.cs as well as in XenAdmin.csproj and then the build completes successfully. It might be that access to ListViewItem count should be replaced by a different property / function. My reason for saying this is if it was a bug in Mono, the Xamarin team should have fixed the bug by now (since I logged it more than 6 months ago if I remember correctly).

If I am wrong, there may be a different way to resolve the issue - is there is a way to use compiler flags to replace access to ListViewItemCount with some other property or function that does the same in Mono as a temporary solution?

different color/notification icons

Hi, I would like to have different colors/notification icons down at the "notification tab" in XCP-ng Center. Now it's a red circle with a number in it. That kinda feels like an error message to me. It would be nice to see green ones when there are informal and maybe yellow with warnings and red when something is wrong.

Edit: Today I got the yellow icon when one of my hosts used to much memory. But the notification down at the "Notifications" showed a red one. Not a major thing but I would prefer same color there as in the "message view". Just to be able to see fast/easy if there is something I need to check now or if it can wait.

Put libxenserver on Github

There is an SDK for XenServer which contains a 'libxenserver' which looks like a nice interface to XenServer. A real C / C++ / etc gui could be developed with this as a base... however it doesn't seem to exist anywhere easily accessible.

Lets put libxenserver on github so people can use it? Hidden in some "SDK zip file" really doesn't help anyone put it to good use :-)

in some scenarios, control domains (like dom0) can balloon

In a XenServer .iso configuration we keep domain 0 small and don't include it in DMC (ballooning/squeezed) calculations. We do this by setting VM.memory_dynamic_min = VM.memory_dynamic_max like this:

[root@st28 ~]# xe vm-list uuid=3a8b724e-8fb7-4679-921f-c404b27f7307 params=all | grep memory
             memory-static-max ( RW): 777256960
            memory-dynamic-max ( RW): 777256960
            memory-dynamic-min ( RW): 777256960
             memory-static-min ( RW): 307232768

In a typical xenserver-core configuration we give all (or at least lots of) host memory to domain 0, and use ballooning to make space for starting VMs. In this case domain 0 has memory settings like this:

[root@st20 ~]# xe vm-list uuid=a1fb665d-b0b0-d257-e3b2-ff36f3974106 params=all | grep memory
             memory-static-max ( RW): 8345174016
            memory-dynamic-max ( RW): 8345174016
            memory-dynamic-min ( RW): 1073741824
             memory-static-min ( RW): 1073741824

-- note that VM.memory_dynamic_min <> VM.memory_dynamic_max; this indicates that ballooning domain 0 is possible.

Everything seems to work fine in this second "xenserver-core" configuration except the new VM wizard warns that the host has not enough memory free. It arrives at this conclusion because the following property hard-wires domain 0 memory to static_max:

        /// <summary>
        /// The total of all the dynamic_minimum memories of all resident VMs ot
her than the control domain.
        /// For non-ballonable VMs, we use the static_maximum instead, because t
he dynamic_minimum has no effect.
        /// </summary>
        public long tot_dyn_min
        {
            get
            {
                long ans = 0;
                foreach (VM vm in Connection.ResolveAll(resident_VMs))
                {
                    if (!vm.is_control_domain)
                        ans += vm.has_ballooning ? vm.memory_dynamic_min : vm.memory_static_max;
                }
                return ans;
           }
        }

I think it would be better if the client always used the vm.memory_dynamic_min value, without overriding the value for the control domain. If there's a problem with the value provided for the control domain, then I think we should change it server-side.

Can't connect to XCP-ng Server V. 8.2

Hello,

I did an upgrade from XCP-ng server 7.6.1 -> 8.2.0 - everything went fine. But when I try to connect via XCP Center, it says:

"This version of XCP-g Center is outdated..."

xcp

What also makes me wonder: The server is running XCP-ng 8.2, not V. 7.6.1. Server was restarted after upgrade aund shows V. 8.2. Why does XCP-ng center still recognize V. 7.6.1? I also removed this server from XCP-ng Center and added him again - still the same message.

Thanks!

Regards

Cyclic dependency

I am trying to compile XenAdmin for Linux using Mono. One thing that Mono does not allow is cyclic dependencies. This currently seems to be the only cyclic dependency that prevents a build:
XenOvfTransport/Export.cs depends on XenModel/XenRef.cs as well as XenModel/Session.cs
XenModel/ExportVmAction.cs depends on XenOvfTransport/Export.cs

By commenting out all references to code which directly or indirectly references Export class in ExportVmAction.cs, the build can complete without other cyclic dependencies.

Screen-Scaling breaks tree-view

Describe the bug
When Windows is not used in native resolution, but scaled Xen Center tree view pane does not stick to it's outer frame

To Reproduce

  1. Set Windows Custom Scaling to 125% (seen on different Machines, especially when using RDP)
  2. Start XenCenter

Expected behavior
The tree-view in the left pane uses the whole pane.

xencenter

Needs xencenter code in java (its not an issue just question)

I am importing .ovf file via xencenter, its working fine, i am gona automate this process but i am using java and xencenter code is in c#. I have converted some of the code in java but I have stuck on some .dll, how to get .jar for those .dll. Need yours support.

Support openSUSE

In XenCenter for XenServer 7.0, openSUSE is not as well supported as many other distros. With the recent push of openSUSE Leap (being related to SLE 12), would it be possible to add support for openSUSE like we have support for Ubuntu?

I'm mainly thinking of having support in the install.sh script for the guest utilities and also showing up as an OS within XenCenter when viewing information about a VM.

Thanks!

Windows 10 Share: Creating SR error

Hello All,

I have setup XCP-ng on a system (192.168.0.26) and am able to connect from a Windows 10 system (192.168.0.17) with no problem.

On the Windows 10 Pro system, I created a share for iso's for "Everyone" and in the Windows file explorer I can easily access the share with no problems.

The share on the Windows 10 machine is: \192.168.0.17\iso

The problem is that when I try to setup the share through the "XCP-ng Center (20.04.01 Build 20.04.01.33) 64-bit" version that I have installed.

When I try to add the "Windows File sharing (SMB/CIFS)" for \192.168.0.17\iso

Then I get and error message:

Creating SR

SM has thrown a general python exception
Check your settings and try again

Any ideas as to what may be happening here and how to resolve it?
Thanks in advance

Distribute the program via. Chocolatey

Distribute xencenter via. Chocolatey. This will allow myself and others to maintain installations of and updates to the program via that tool. The process is not overly complicated, as shown in my repo below.

It could be added as part of the release cycle (building the nupkg and uploading it using the cli).

I've gone ahead and added XenCenter to Chocolatey (currently under review - possibly not visible):
https://chocolatey.org/packages/xencenter

The build repo is here:
https://github.com/LordMike/xencenter-chocolatey

Integration of Spice

Xen 4.4 (which is included next xenserver) includes improved support for spice protocol.

Will XenCenter integrate the spice protocol for console as an alternative to VNC ?

XenCenter on Linux

Hello,

Sorry to ask this question here as I did not know where else to ask it, but as XenCenter is C# then I am wondering if it would also run on Linux under Mono perhaps?

Thanks

documenting the build environment, eventualy a prepare script

It seems that there is a real need for a script that would prepare a machine so it can perform a build. At this point the README.md file contains only few references but not even what version of the compiler you need in order to perform a build.

Shared vdi between vm's

Hello,

It would be nice if we could set the "shared" flag of a new vdi in the NewDisk dialog

I am not a developer, but I managed to make it work, I did not have the courage to submit the patches because I am not familiar with git and I am not sure I did not add unnecesary code in the process.

My ideea was to set a drop down in the NewDisk dialog with the "Shared: True/False bulean" and set the "vdi.shareble" to true or false

If I can help in getting the feature implemented, please let me know

want core version..

xenmodel use CSharp_XmlRpc_CookComputing.XmlRpc
but it has no .net core verison
sad..

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.