/* Copyright (c) Citrix Systems, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, * with or without modification, are permitted provided * that the following conditions are met: * * * Redistributions of source code must retain the above * copyright notice, this list of conditions and the * following disclaimer. * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the * following disclaimer in the documentation and/or other * materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ using System.Linq; using System.Xml; namespace XenAPI { public class VM_Docker_Info { private string _NGoroutines; public string NGoroutines { get { return _NGoroutines; } set { if (value != _NGoroutines) _NGoroutines = value; } } private string _DockerRootDir; public string DockerRootDir { get { return _DockerRootDir; } set { if (value != _DockerRootDir) _DockerRootDir = value; } } private string _DriverStatus; public string DriverStatus { get { return _DriverStatus; } set { if (value != _DriverStatus) _DriverStatus = value; } } private string _OperatingSystem; public string OperatingSystem { get { return _OperatingSystem; } set { if (value != _OperatingSystem) _OperatingSystem = value; } } private string _Containers; public string Containers { get { return _Containers; } set { if (value != _Containers) _Containers = value; } } private string _MemTotal; public string MemTotal { get { return _MemTotal; } set { if (value != _MemTotal) _MemTotal = value; } } private string _Driver; public string Driver { get { return _Driver; } set { if (value != _Driver) _Driver = value; } } private string _IndexServerAddress; public string IndexServerAddress { get { return _IndexServerAddress; } set { if (value != _IndexServerAddress) _IndexServerAddress = value; } } private string _InitPath; public string InitPath { get { return _InitPath; } set { if (value != _InitPath) _InitPath = value; } } private string _ExecutionDriver; public string ExecutionDriver { get { return _ExecutionDriver; } set { if (value != _ExecutionDriver) _ExecutionDriver = value; } } private string _Name; public string Name { get { return _Name; } set { if (value != _Name) _Name = value; } } private string _NCPU; public string NCPU { get { return _NCPU; } set { if (value != _NCPU) _NCPU = value; } } private string _Debug; public string Debug { get { return _Debug; } set { if (value != _Debug) _Debug = value; } } private string _ID; public string ID { get { return _ID; } set { if (value != _ID) _ID = value; } } private string _IPv4Forwarding; public string IPv4Forwarding { get { return _IPv4Forwarding; } set { if (value != _IPv4Forwarding) _IPv4Forwarding = value; } } private string _KernelVersion; public string KernelVersion { get { return _KernelVersion; } set { if (value != _KernelVersion) _KernelVersion = value; } } private string _NFd; public string NFd { get { return _NFd; } set { if (value != _NFd) _NFd = value; } } private string _InitSha1; public string InitSha1 { get { return _InitSha1; } set { if (value != _InitSha1) _InitSha1 = value; } } private string _Labels; public string Labels { get { return _Labels; } set { if (value != _Labels) _Labels = value; } } private string _MemoryLimit; public string MemoryLimit { get { return _MemoryLimit; } set { if (value != _MemoryLimit) _MemoryLimit = value; } } private string _SwapLimit; public string SwapLimit { get { return _SwapLimit; } set { if (value != _SwapLimit) _SwapLimit = value; } } private string _Images; public string Images { get { return _Images; } set { if (value != _Images) _Images = value; } } private string _NEventsListener; public string NEventsListener { get { return _NEventsListener; } set { if (value != _NEventsListener) _NEventsListener = value; } } public VM_Docker_Info(string dockerInfo) { XmlDocument doc = new XmlDocument(); doc.LoadXml(dockerInfo); foreach (XmlNode docker_info in doc.GetElementsByTagName("docker_info")) { var propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "NGoroutines"); if (propertyNode != null) this.NGoroutines = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "DockerRootDir"); if (propertyNode != null) DockerRootDir = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "DriverStatus"); if (propertyNode != null) DriverStatus = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "OperatingSystem"); if (propertyNode != null) OperatingSystem = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "Containers"); if (propertyNode != null) Containers = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "MemTotal"); if (propertyNode != null) MemTotal = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "Driver"); if (propertyNode != null) Driver = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "IndexServerAddress"); if (propertyNode != null) IndexServerAddress = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "InitPath"); if (propertyNode != null) InitPath = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "ExecutionDriver"); if (propertyNode != null) ExecutionDriver = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "Name"); if (propertyNode != null) Name = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "NCPU"); if (propertyNode != null) NCPU = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "Debug"); if (propertyNode != null) Debug = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "ID"); if (propertyNode != null) ID = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "IPv4Forwarding"); if (propertyNode != null) IPv4Forwarding = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "KernelVersion"); if (propertyNode != null) KernelVersion = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "NFd"); if (propertyNode != null) NFd = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "InitSha1"); if (propertyNode != null) InitSha1 = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "Labels"); if (propertyNode != null) Labels = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "MemoryLimit"); if (propertyNode != null) MemoryLimit = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "SwapLimit"); if (propertyNode != null) SwapLimit = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "Images"); if (propertyNode != null) Images = propertyNode.InnerText; propertyNode = docker_info.ChildNodes.Cast().FirstOrDefault(node => node.Name == "NEventsListener"); if (propertyNode != null) NEventsListener = propertyNode.InnerText; } } } }