<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<STYLE>
BLOCKQUOTE {
        MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
}
OL {
        MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
UL {
        MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
BODY {
        LINE-HEIGHT: 1.5; FONT-FAMILY: 宋体; COLOR: #000000; FONT-SIZE: 10.5pt
}
P {
        MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
</STYLE>

<META name=GENERATOR content="MSHTML 9.00.8112.16447"></HEAD>
<BODY style="MARGIN: 10px">
<DIV>Hi,all.</DIV>
<DIV style="TEXT-INDENT: 2em">we use libvirt to manage some host and vms on 
vmware 
hypervisor.I have found the libvirt there are some shortcomings 
.</DIV>
<DIV style="TEXT-INDENT: 2em">Such as virsh 
domxml-to-native and domxml-from-native 
.I have reviewed the libvirt source --src/vmx/vmx.c, 
code as follows :</DIV>
<DIV style="TEXT-INDENT: 2em">
<DIV style="TEXT-INDENT: 2em">
<TABLE 
style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; FONT-SIZE: 10pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none" 
border=1 cellSpacing=0 borderColor=#000000 cellPadding=2 width="50%">
  <CAPTION><FONT style="COLOR: #ff0000" color=#000001 size=2 
  face=Verdana>libvirt0.9.13源码</FONT></CAPTION>
  <TBODY>
  <TR>
    <TD 
    style="BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-RIGHT: #000000 1px solid" 
    width="50%" noWrap><FONT size=2 face=Verdana>
      <DIV style="COLOR: #ff0000">xml 转化成vmx</DIV></FONT></TD>
    <TD 
    style="BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-RIGHT: #000000 1px solid" 
    width="50%" noWrap><FONT size=2 face=Verdana>
      <DIV style="COLOR: #ff0000">vmx转化成xml</DIV></FONT></TD></TR>
  <TR>
    <TD 
    style="BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-RIGHT: #000000 1px solid" 
    width="50%" noWrap><FONT size=2 face=Verdana>
      <DIV>
      <DIV style="TEXT-INDENT: 2em; COLOR: #ff0000">/* def:os.arch -> 
      vmx:guestOS */</DIV>
      <DIV style="TEXT-INDENT: 2em">
      <DIV style="COLOR: #ff0000">if (def->os.arch == NULL || 
      STRCASEEQ(def->os.arch, "i686")) {</DIV>
      <DIV style="COLOR: #ff0000">virBufferAddLit(&buffer, "guestOS = 
      \"other\"\n");</DIV>
      <DIV style="COLOR: #ff0000">} else if (STRCASEEQ(def->os.arch, 
      "x86_64")) {</DIV>
      <DIV style="COLOR: #ff0000">virBufferAddLit(&buffer, "guestOS = 
      \"other-64\"\n");</DIV>
      <DIV style="COLOR: #ff0000">} else {</DIV>
      <DIV style="COLOR: #ff0000">VMX_ERROR(VIR_ERR_INTERNAL_ERROR,</DIV>
      <DIV style="COLOR: #ff0000">_("Expecting domain XML attribute 'arch' of 
      entry 'os/type' "</DIV>
      <DIV style="COLOR: #ff0000">"to be 'i686' or 'x86_64' but found '%s'"), 
      def->os.arch);</DIV>
      <DIV style="COLOR: #ff0000">goto cleanup;</DIV>
      <DIV style="COLOR: #ff0000">}</DIV></DIV></DIV></FONT></TD>
    <TD 
    style="BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; COLOR: #ff0000; BORDER-TOP: #000000 1px solid; BORDER-RIGHT: #000000 1px solid" 
    width="50%" noWrap>/* vmx:guestOS -> def:os.arch */ 
      <DIV style="COLOR: #ff0000">if (virVMXGetConfigString(conf, "guestOS", 
      &guestOS, true) < 0) {</DIV>
      <DIV style="COLOR: #ff0000">goto cleanup;</DIV>
      <DIV style="COLOR: #ff0000">}</DIV>
      <DIV style="COLOR: #ff0000"></DIV>
      <DIV style="COLOR: #ff0000">if (guestOS != NULL && 
      virFileHasSuffix(guestOS, "-64")) {</DIV>
      <DIV style="COLOR: #ff0000">def->os.arch = strdup("x86_64");</DIV>
      <DIV style="COLOR: #ff0000">} else {</DIV>
      <DIV style="COLOR: #ff0000">def->os.arch = strdup("i686");</DIV>
      <DIV style="COLOR: #ff0000">}</DIV>
      <DIV style="COLOR: #ff0000"></DIV>
      <DIV style="COLOR: #ff0000">if (def->os.arch == NULL) {</DIV>
      <DIV style="COLOR: #ff0000">virReportOOMError();</DIV>
      <DIV style="COLOR: #ff0000">goto cleanup;</DIV>
      <DIV style="COLOR: #ff0000">}</DIV><FONT size=2 face=Verdana>
      <DIV style="COLOR: #ff0000"></DIV></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV style="TEXT-INDENT: 2em"> </DIV>
<DIV 
style="TEXT-INDENT: 2em">Vmware support many guestOS types 
like "windows7srv-64 
",If I use 64-bit Windows virtual machine, other-64 this type is not correct. 
NIC e1000 system can not be used .</DIV>
<DIV style="TEXT-INDENT: 2em">So 
I suggest to The libvirt improve the vmware support, especially the mutual transformation of the xml and vmx format guestOS only one parameter. 
</DIV>
<DIV style="TEXT-INDENT: 2em">Thanks all.</DIV></DIV>
<HR style="WIDTH: 210px; HEIGHT: 1px" align=left color=#b5c4df SIZE=1>

<DIV><SPAN>
<DIV>
<DIV>张光鹏</DIV>
<DIV>tel:  13718913184</DIV>
<DIV>mail: <A href="mailto:zhanggp@neusoft.com">zhanggp@neusoft.com</A></DIV>
<DIV>移动互联网事业部</DIV>
<DIV><IMG src="cid:_Foxmail.0@992B760B-07CD-4D46-9A30-E59F5C0C3697"></DIV>
<DIV>东软集团股份有限公司</DIV>
<DIV><A href="http://www.neusoft.com">http://www.neusoft.com</A></DIV>
<DIV> </DIV></DIV></SPAN></DIV><p>---------------------------------------------------------------------------------------------------<br>
Confidentiality Notice: The information contained in this e-mail and any accompanying attachment(s) <br>
is intended only for the use of the intended recipient and may be confidential and/or privileged of <br>
Neusoft Corporation, its subsidiaries and/or its affiliates. If any reader of this communication is <br>
not the intended recipient, unauthorized use, forwarding, printing,  storing, disclosure or copying <br>
is strictly prohibited, and may be unlawful.If you have received this communication in error,please <br>
immediately notify the sender by return e-mail, and delete the original message and all copies from <br>
your system. Thank you. <br>
---------------------------------------------------------------------------------------------------</p></BODY></HTML>