1. 13 9月, 2012 18 次提交
    • D
      Add API for copying instances of the qemuCapsPtr object · 4dced75e
      Daniel P. Berrange 提交于
      To allow each VM instance to record additional capabilities
      without affecting other VMs, there needs to be a way to do
      a deep copy of the qemuCapsPtr object
      4dced75e
    • D
      Add ability to store other metadata in the qemu capabilities object · 116e2fac
      Daniel P. Berrange 提交于
      Add struct fields and APIs to allow the qemu capabilities object
      to store version, arch, machines & cpu names, etc
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      116e2fac
    • D
      Make qemuCapsProbeCommand static · c29ce35a
      Daniel P. Berrange 提交于
      The qemuCapsProbeCommand API is only used by the capabilities
      code, so can be static
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      c29ce35a
    • D
      Turn QEMU capabilities object into a full virObjectPtr · beac09fd
      Daniel P. Berrange 提交于
      The current qemu capabilities are stored in a virBitmapPtr
      object, whose type is exposed to callers. We want to store
      more data besides just the flags, so we need to move to a
      struct type. This object will also need to be reference
      counted, since we'll be maintaining a cache of data per
      binary. This change introduces a 'qemuCapsPtr' virObject
      class. Most of the change is just renaming types and
      variables in all the callers
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      beac09fd
    • D
      Allow caps to be NULL when creating virDomainObjPtr instances · f4780c12
      Daniel P. Berrange 提交于
      If no private data needs to be maintained, it can be useful
      to create virDomainObjPtr instances without having a virCapsPtr
      instance around. Adapt the virDomainObjNew() function to allow
      for a NULL caps
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      f4780c12
    • D
      Wait to receive QMP greeting before sending any monitor commands · 985a321a
      Daniel P. Berrange 提交于
      Technically speaking we should wait until we receive the QMP
      greeting message before attempting to send any QMP monitor
      commands. Mostly we've got away with this, but there is a race
      in some QEMU which cause it to SEGV if you sent it data too
      soon after startup. Waiting for the QMP greeting avoids the
      race
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      985a321a
    • D
      Add a virBitmapCopy API · d2fdeb3b
      Daniel P. Berrange 提交于
      Add an API allowing flags from one virBitmapPtr to be copied
      into another instance.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      d2fdeb3b
    • G
      203ab129
    • G
      1c9d485d
    • G
      qemu: build USB redirection filter qemu command line · 2d46f88d
      Guannan Ren 提交于
      Input XML snip:
      <redirdev bus='usb' type='spicevmc'>
         <address type='usb' bus='0' port='4'/>
       </redirdev>
      <redirfilter>
        <usbdev class='0x08' vendor='0x1234' product='0xbeef' \
                version='2.00' allow='yes'/>
        <usbdev class='-1' vendor='-1' product='-1' version='-1' allow='no'/>
      </redirfilter>
      
      will be converted to:
      -device usb-redir,chardev=charredir0,id=redir0,\
      filter=0x08:0x1234:0xBEEF:0x2000:1|-1:-1:-1:-1:0,bus=usb.0,port=4
      2d46f88d
    • G
      qemu: define and parse USB redirection filter XML · 5b35cc53
      Guannan Ren 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=795929
      http://git.qemu.org/?p=qemu.git;a=commitdiff;h=6af165892cf900291046f1d25f95416f379504c2
      
      This patch define and parse the input XML of USB redirection filter.
      <devices>
      ...
        <redirdev bus='usb' type='spicevmc'>
          <address type='usb' bus='0' port='4'/>
        </redirdev>
        <redirfilter>
          <usbdev class='0x08' vendor='0x1234' product='0xbeef' \
                  version='2.00' allow='yes'/>
          <usbdev allow='no'/>
        </redirfilter>
      ...
      </devices>
      
      There is no 1:1 mapping between ports and redirected devices and
      qemu and spicy client couldn't decide into which usbredir ports
      the client can 'plug' redirected devices. So it make sense to apply
      all of filter rules global to all existing usb redirection devices.
      class attribute is USB Class codes. version is bcdDevice value
      of USB device. vendor and product is USB vendorId and productId.
      -1 can be used to allow any value for a field. Except allow attribute
      the other four are optional, default value is -1.
      5b35cc53
    • O
      virsh: Fix version numbers in comments · aa81db3f
      Osier Yang 提交于
      And redundant error resetting.
      
      Pushed under trivial rule.
      aa81db3f
    • G
      qemu: add usb-redir.filter qemu capability flag · 16e41ab6
      Guannan Ren 提交于
      Add a qemu flag for USB redirection filter support.
      
      The output:
      usb-redir.chardev=chr
      usb-redir.debug=uint8
      usb-redir.filter=string
      usb-redir.port=string
      16e41ab6
    • O
      build: Fix typo which causes build failure · 51b708c6
      Osier Yang 提交于
      Pushed under build-breaker rule.
      51b708c6
    • E
      build: force libnl1 if netcf also used libnl1 · 9298bfbc
      Eric Blake 提交于
      Recent spec file changes ensure that in distro situations, netcf
      and libvirt will link against the same libnl in order to avoid
      dumping core.  But for every-day development, if you use F17 and
      have the libnl3-devel headers available, libvirt was blindly
      linking against libnl3 even though F17 netcf still links against
      libnl1, making testing a self-built binary on F17 impossible.
      
      By making configure a little bit smarter, we can avoid this
      situation - we merely skip the probe of libnl-3 if we can prove
      that netcf is still using libnl-1.  I intentionally wrote the
      test so that we still favor libnl-3 if netcf is not installed or
      if we couldn't use ldd to determine things.
      
      Defaults being what they are, someone will invariably complain
      that our smarts were wrong.  Never fear - in that case, just run
      ./configure LIBNL_CFLAGS=..., where the fact that you set
      LIBNL_CFLAGS (even to the empty string) will go back to probing
      for libnl-3, regardless of netcf's choice.
      
      * configure.ac (LIBNL): Don't probe libnl3 if netcf doesn't use it.
      9298bfbc
    • E
      maint: fix missing spaces in message · 2387aa26
      Eric Blake 提交于
      I got an off-list report about a bad diagnostic:
      Target network card mac 52:54:00:49:07:ccdoes not match source 52:54:00:49:07:b8
      
      True to form, I've added a syntax check rule to prevent it
      from recurring, and found several other offenders.
      
      * cfg.mk (sc_require_whitespace_in_translation): New rule.
      * src/conf/domain_conf.c (virDomainNetDefCheckABIStability): Add
      space.
      * src/esx/esx_util.c (esxUtil_ParseUri): Likewise.
      * src/qemu/qemu_command.c (qemuCollectPCIAddress): Likewise.
      * src/qemu/qemu_driver.c (qemuDomainSetMetadata)
      (qemuDomainGetMetadata): Likewise.
      * src/qemu/qemu_hotplug.c (qemuDomainChangeNetBridge): Likewise.
      * src/rpc/virnettlscontext.c
      (virNetTLSContextCheckCertDNWhitelist): Likewise.
      * src/vmware/vmware_driver.c (vmwareDomainResume): Likewise.
      * src/vbox/vbox_tmpl.c (vboxDomainGetXMLDesc, vboxAttachDrives):
      Avoid false negatives.
      * tools/virsh-domain.c (info_save_image_dumpxml): Reword.
      Based on a report by Luwen Su.
      2387aa26
    • E
      build: avoid confusing make with raw name 'undefine' · a20f06d9
      Eric Blake 提交于
      Make has a builtin operator 'undefine', and coupled with latest
      automake.git, this test name ended up confusing make into thinking
      the file name was meant to be used as the make operator.  Renaming
      the file avoids the confusion.
      
      * tests/undefine: Rename...
      * tests/virsh-undefine: ...to this.
      * tests/Makefile.am (test_scripts): Use new name.
      Reported by Jim Meyering.
      a20f06d9
    • D
      Add API for opening a QEMU monitor from a socket FD · cf5491e5
      Daniel P. Berrange 提交于
      Currently qemuMonitorOpen() requires an address of the QEMU
      monitor. When doing QMP based capabilities detection it is
      easier if a pre-opened FD can be provided, since then the
      monitor can be run on the STDIO console. Add a new API
      qemuMonitorOpenFD() for such usage
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      cf5491e5
  2. 12 9月, 2012 12 次提交
    • D
      parallels: fix parallelsDomainDefineXML for domains with VNC and autoport · 4cf4120b
      Dmitry Guryanov 提交于
      virDomainDefParseString assigns 0 to port if autoport enabled.
      So fix code, which check different between old and new
      configurations.
      4cf4120b
    • D
      parallels: fix parallelsDoCmdRun in case of command failure · 748b6d8e
      Dmitry Guryanov 提交于
      Don't try to dereferece NULL pointer.
      748b6d8e
    • L
      Backcompt for console devices in virDomainDeviceInfoIterate · babe7dad
      Li Zhang 提交于
      Historically, the first <console> element is treated as the
      alias of a <serial> device. In the virDomainDeviceInfoIterate,
      This situation is not considered. It still handles the first <console>
      element as another devices, which means that for console[0] with
      serial targetType, it calls callback function another time.
      It will cause the problem of address conflicts when assigning
      spapr-vio address for serial device on pSeries guest.
      
      For pSeries guest, the serial configuration in the xml file
      is as the following:
               <serial type='pty'>
                     <target port='0'/>
                     <address type='spapr-vio'/>
                </serial>
      
      Console configuration is default, the dumped xml file is as the following:
         <serial type='pty'>
            <source path='/dev/pts/5'/>
            <target port='0'/>
            <alias name='serial0'/>
            <address type='spapr-vio' reg='0x30000000'/>
          </serial>
          <console type='pty' tty='/dev/pts/5'>
            <source path='/dev/pts/5'/>
            <target type='serial' port='0'/>
            <alias name='serial0'/>
            <address type='spapr-vio' reg='0x30000000'/>
          </console>
      
      It shows that the <console> device is the alias of serial device.
      So its address is the same as the serial device. When detecting
      the conflicts in the qemuAssignSpaprVIOAddress the first console
      and the serial device conflicts because virDomainDeviceInfoIterate()
      still handle these as two different devices, and in the qemuAssignSpaprVIOAddress(),
      it will compare these two devices' addressed. If they have same address,
      it will report address conflict error.
      
      So this patch is to handle the first console which targetType is serial
      as the alias of serial device to avoid address conflicts error reported.
      Signed-off-by: NLi Zhang <zhlcindy@linux.vnet.ibm.com>
      babe7dad
    • O
      list: Expose virConnectListAllInterfaces to Python binding · ec448fbf
      Osier Yang 提交于
      The implementation is done manually as the generator does not support
      wrapping lists of C pointers into Python objects.
      
      python/libvirt-override-api.xml: Document
      
      python/libvirt-override-virConnect.py:
        * New file, includes implementation of listAllInterfaces.
      
      python/libvirt-override.c: Implementation for the wrapper.
      ec448fbf
    • O
      list: Use virConnectListAllInterfaces in virsh · 3c2e6472
      Osier Yang 提交于
      tools/virsh-interface.c:
        * vshInterfaceSorter to sort interfaces by name
      
        * vshInterfaceListFree to free the interface objects list.
      
        * vshInterfaceListCollect to collect the interface objects, trying
          to use new API first, fall back to older APIs if it's not supported.
      3c2e6472
    • O
      list: Implement listAllInterfaces · a3cf061c
      Osier Yang 提交于
      This is not that ideal as API for other objects, as it's still
      O(n). Because interface driver uses netcf APIs to manage the
      stuffs, instead of by itself. And netcf APIs don't return a object.
      It provides APIs like old libvirt APIs:
      
         ncf_number_of_interfaces
         ncf_list_interfaces
         ncf_lookup_by_name
         ......
      
      Perhaps we should further improve netcf to let it provide an API
      to return the object, but it could be a later patch. And anyway,
      we will still benefit from the new API for the simplification,
      and no race like the old APIs.
      
      src/interface/netcf_driver.c: Implement listAllInterfaces
      a3cf061c
    • O
      list: Implemente RPC calls for virConnectListAllInterfaces · 65741d84
      Osier Yang 提交于
      The RPC generator doesn't support returning list of object yet, this patch
      do the work manually.
      
        * daemon/remote.c:
          Implemente the server side handler remoteDispatchConnectListAllInterfaces.
      
        * src/remote/remote_driver.c:
          Add remote driver handler remoteConnectListAllInterfaces.
      
        * src/remote/remote_protocol.x:
          New RPC procedure REMOTE_PROC_CONNECT_LIST_ALL_INTERFACES and
          structs to represent the args and ret for it.
      
        * src/remote_protocol-structs: Likewise.
      65741d84
    • O
      list: Define new API virConnectListAllInterfaces · f4af202f
      Osier Yang 提交于
      This is to list the interface objects, supported filtering flags
      are: active|inactive.
      
      include/libvirt/libvirt.h.in: Declare enum virConnectListAllInterfaceFlags
                                    and virConnectListAllInterfaces.
      python/generator.py: Skip auto-generating
      src/driver.h: (virDrvConnectListAllInterfaces)
      src/libvirt.c: Implement the public API
      src/libvirt_public.syms: Export the symbol to public
      f4af202f
    • E
      docs: mention another iaas app built on libvirt · 01fa1d7a
      Eric Blake 提交于
      Reported on the libvirt-users list.
      
      * docs/apps.html.in: Add Eucalyptus.
      Reported by Eric Choi.
      01fa1d7a
    • H
      fix bug in qemuSetupCgroupForEmulator · f7e1a546
      Hu Tao 提交于
      Should not return 0 when failed to setup cgroup.
      f7e1a546
    • E
      build: avoid dirty docs on fresh bootstrap · f36fadca
      Eric Blake 提交于
      * HACKING: Regenerate.
      f36fadca
    • F
      python: Initialize new_params in virDomainSetSchedulerParameters · 984a73c0
      Federico Simoncelli 提交于
      The new_params variable must be initialized in case the
      virDomainGetSchedulerParameters call fails and we hit the cleanup
      section before actually allocating the new parameters.
      Signed-off-by: NFederico Simoncelli <fsimonce@redhat.com>
      984a73c0
  3. 11 9月, 2012 10 次提交