1. 25 6月, 2015 22 次提交
    • P
      test: Refactor vcpu pinning and vcpu info retrieval · 3dd859c0
      Peter Krempa 提交于
      Drop internal data structures and use the proper fields in virDomainDef.
      
      This allows to greatly simplify the code and allows to remove the
      private data structure that was holding just redundant data.
      
      This patch also fixes the bogous output where we'd report that a fresh
      VM without vCPU pinning would not run on all vcpus.
      3dd859c0
    • P
      test: Refactor testDomainSetVcpusFlags · b69ffc57
      Peter Krempa 提交于
      Remove the bogus flag check and refactor the code by using
      virDomainObjGetDefs instead of virDomainObjGetPersistentDef.
      b69ffc57
    • P
      test: Refactor test driver domain object retrieval · d7356130
      Peter Krempa 提交于
      Reuse testDomObjFromDomain to retrieve domain objects in the rest of
      the test driver instead of open-coding it in every API.
      d7356130
    • P
      test: Drop locked access to testDriver->domains · 21be8e8e
      Peter Krempa 提交于
      Only self-locking APIs are used and the pointer is immutable so there's
      no need to lock the driver to access the domain list.
      
      This patch removes locking partially for everything that will not be
      converted to testDomObjFromDomain in the next patch.
      21be8e8e
    • P
      test: Finalize removal of locking from driver->eventState · caf5aef4
      Peter Krempa 提交于
      Don't lock the driver when registering event callbacks.
      caf5aef4
    • P
      test: Refactor test driver event sending · 678059c0
      Peter Krempa 提交于
      Make testObjectEventQueue tolerant to NULL @event and move it so that it
      does not require a prototype. Additionally we are now able to remove
      locking when accessing driver->eventState, since it's using self-locking
      APIs and the pointer is immutable.
      678059c0
    • P
      c1a34c87
    • P
      test: Annotate few fields of testDriver structure · beba6a0e
      Peter Krempa 提交于
      Some of the fields are either immutable or self locking, so make a note
      of that for future reference.
      beba6a0e
    • P
      test: Drop unused attribute @path from testDriver struct · 64eaac81
      Peter Krempa 提交于
      It's filled and then freed, but not used anywhere else.
      64eaac81
    • P
      81be2261
    • P
      test: Extract code to free testDriver into testDriverFree · 8b43335a
      Peter Krempa 提交于
      Avoid reimplementing it 3 times.
      8b43335a
    • P
      test: turn 'defaultConn' into a pointer · c54cfc45
      Peter Krempa 提交于
      c54cfc45
    • P
      test: Drop useless forward declaration · 2d0d07fe
      Peter Krempa 提交于
      2d0d07fe
    • P
      test: Rename testConn to testDriver · d0782da9
      Peter Krempa 提交于
      d0782da9
    • L
      qemu: Avoid removing persistent config if migration fails · 09444724
      Luyao Huang 提交于
      When migration fails in qemuMigrationPrepareAny, we unconditionally call
      qemuDomainRemoveInactive, which should only be called for transient
      domains. The check for !vm->persistent was accidentally removed by
      commit 540c339a.
      Signed-off-by: NLuyao Huang <lhuang@redhat.com>
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      09444724
    • M
      vz: Adapt to driver rename · 84d0286e
      Michal Privoznik 提交于
      In the e6d180f0 commit the parallels driver was renamed to vz.
      However, there was a commit merged later, which was sent to the list
      before the rename. The other commit is 6de12b02. Fix all the
      missing renames.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      84d0286e
    • E
      json: enhance parser test · cb005533
      Eric Blake 提交于
      We already enable the parser option to detect invalid UTF-8, but
      didn't test it.  Also, JSON states that behavior of an object
      with a duplicated key is undefined; we chose to reject it, but
      were not testing it.
      
      With the enhanced tests in place, we can simplify yajl2
      initialization by relying on parser defaults being sane.
      
      * src/util/virjson.c (virJSONValueFromString): Simplify.
      * tests/jsontest.c (mymain): Test more bad usage.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      cb005533
    • E
      json: even stricter trailing garbage detection · 7e191fd9
      Eric Blake 提交于
      Since older yajl ignores trailing garbage, a client can cause
      problems by intentionally ending the wrapper array early. Since
      we already track nesting, it's not too much harder to reject
      invalid nesting pops.
      
      * src/util/virjson. (_virJSONParser): Add field.
      (virJSONValueFromString): Set witness.
      (virJSONParserHandleEndArray): Use it to catch abuse.
      * tests/jsontest.c (mymain): Test it.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      7e191fd9
    • E
      json: reject trailing garbage · 7cd991b7
      Eric Blake 提交于
      Yajl 2 has a nice feature that it can be configured whether to
      allow multiple JSON objects parsed from a single stream, defaulting
      to off.  And yajl 1.0.12 at least provided a way to tell if all
      input bytes were parsed, or if trailing bytes remained after a
      valid JSON object was parsed.  But we target RHEL 6 yajl 1.0.7,
      which has neither of these.  So fake it by always parsing '[...]'
      instead, so that trailing garbage either trips up the array parse,
      or is easily detected when unwrapping the result.
      
      * src/util/virjson.c (virJSONValueFromString): With older json,
      wrap text to avoid trailing garbage.
      * tests/jsontest.c (mymain): Add tests for this.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      7cd991b7
    • E
      json: reject javascript comments · 54dbba5b
      Eric Blake 提交于
      We have been allowing javascript style comments in JSON ever
      since commit 9428f2ce (v0.7.5), but qemu doesn't send them, and
      they are not strict JSON.  Reject them for now; if we can later
      prove that it is worthwhile, we can reinstate it at that point
      (or even make it conditional, by adding a bool parameter to
      the libvirt entry point).
      
      * src/util/virjson.c (virJSONValueFromString): Don't enable
      comment parsing.
      * tests/jsontest.c (mymain): Test it.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      54dbba5b
    • E
      json: cope with older yajl semantics · f2acaebd
      Eric Blake 提交于
      Commit ceb496e5 fails on RHEL 6, with yajl 1.0.7, because that
      version of yajl returns yajl_status_insufficient_data when the
      parser is waiting for the rest of a token (this enum value was
      dropped in yajl 2, so we have to wrap it).  It also exposes a
      problem where older yajl silently ignores trailing garbage after
      a successful parse, so this patch works around that by changing
      the testsuite.  Another more invasive patch can add tighter
      semantics to json parsing, but this is sufficient for a minimal
      clean backport.
      
      While touching this, fix up our error message cleanup. Yajl
      documents that error messages produced by yajl_get_error()
      MUST be cleaned with yajl_free_error(); this is certainly
      true if we were to pass non-NULL allocator callbacks during
      yajl_alloc(), but probably harmless in our usage of passing
      NULL.  But better safe than sorry.
      
      * src/util/virjson.c (virJSONValueFromString): Allow different
      error code.  Use canonical cleanup of error message.
      (VIR_YAJL_STATUS_OK): New helper macro.
      * tests/jsontest.c (mymain): Wrap text to avoid difference in
      trailing garbage handling
      Signed-off-by: NEric Blake <eblake@redhat.com>
      f2acaebd
    • D
      vz: fix syntax-check errors · 39618d40
      Dmitry Guryanov 提交于
      Remove braces around single-statement blocks in vz_sdk.c
      39618d40
  2. 24 6月, 2015 12 次提交
  3. 23 6月, 2015 6 次提交
    • M
      docs: Properly mark acl.html dependencies · 1310b135
      Michal Privoznik 提交于
      The acl.html file includes aclperms.htmlinc which is generated.
      However, acl.html is generated too from acl.html.tmp. And in fact,
      this is the place where the aclperms file is needed. Fix the
      dependency in Makefile.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      1310b135
    • J
      storage: Force setting of disk format type · 31d3af6f
      John Ferlan 提交于
      Commit id '832a9256' adjusted the code to recognize when the default
      type of "unknown" was provided as the format type and to use "dos" if
      found. Since the pool is built with "dos" and it could cause some
      confusion when formatting the XML after building by seeing "unknown"
      in the output, let's just adjust the pool's setting to "dos" so that
      subsequent formats will see the value.
      31d3af6f
    • J
      docs: Adjust Disk storage rng · f1538322
      John Ferlan 提交于
      Currently the grammar uses "none" for a "valid" Disk Storage Pool
      format type; however, virStoragePoolFormatDisk uses "unknown" so
      virt-xml-validate will fail to validate when "unknown" is found
      f1538322
    • M
      admin: Fix mingw build by reordering includes · 976abdf6
      Martin Kletzander 提交于
      By trying to lead the way of clean includes, I sorted the lines
      alphabetically and that is a problem for mingw builds with gnulib.
      As 'configmake.h' defines DATADIR and 'datatypes.h' transitively
      includes 'winsock.h' that uses 'DATADIR' as a name for a struct,
      it's enough to reorder those.
      
      Even though this might be worked around in gnulib later on, this
      fixes the build for now.
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      976abdf6
    • E
      docs: Correct typos in scsi hostdev and address elements · d10a5f58
      Eric Farman 提交于
      The type='scsi' parameter of an address element is ignored
      if placed within a hostdev section, and rejected by the XML
      schema used by virt-xml-validate. Remove it from the doc,
      and correct a typo in the remaining address arguments.
      Signed-off-by: NEric Farman <farman@linux.vnet.ibm.com>
      Reviewed-by: NMatthew Rosato <mjrosato@linux.vnet.ibm.com>
      Reviewed-by: NStefan Zimmermann <stzi@linux.vnet.ibm.com>
      Reviewed-by: NBoris Fiuczynski <fiuczy@linux.vnet.ibm.com>
      d10a5f58
    • E
      docs: Fix XML schema handling of LUN address in hostdev tag · c733e973
      Eric Farman 提交于
      Defining a domain with a SCSI disk attached via a hostdev
      tag and a source address unit value longer than two digits
      causes an error when editing the domain with virsh edit,
      even if no changes are made to the domain definition.
      The error suggests invalid XML, somewhere:
      
        # virsh edit lmb_guest
        error: XML document failed to validate against schema:
        Unable to validate doc against /usr/local/share/libvirt/schemas/domain.rng
        Extra element devices in interleave
        Element domain failed to validate content
      
      The virt-xml-validate tool fails with a similar error:
      
        # virt-xml-validate lmb_guest.xml
        Relax-NG validity error : Extra element devices in interleave
        lmb_guest.xml:17: element devices: Relax-NG validity error :
        Element domain failed to validate content
        lmb_guest.xml fails to validate
      
      The hostdev tag requires a source address to be specified,
      which includes bus, target, and unit address attributes.
      According to the SCSI Architecture Model spec (section
      4.9 of SAM-2), a LUN address is 64 bits and thus could be
      up to 20 decimal digits long.  Unfortunately, the XML
      schema limits this string to just two digits.  Similarly,
      the target field can be up to 32 bits in length, which
      would be 10 decimal digits.
      
        # lsscsi -xx
        [0:0:19:0x4022401100000000]  disk    IBM      2107900          3.44 /dev/sda
        # lsscsi
        [0:0:19:1074872354]disk    IBM      2107900          3.44  /dev/sda
        # cat lmb_guest.xml
        <domain type='kvm'>
          <name>lmb_guest</name>
          <memory unit='MiB'>1024</memory>
        ...trimmed...
          <devices>
            <controller type='scsi' model='virtio-scsi' index='0'/>
            <hostdev mode='subsystem' type='scsi'>
              <source>
                <adapter name='scsi_host0'/>
                <address bus='0' target='19' unit='1074872354'/>
              </source>
            </hostdev>
        ...trimmed...
      
      Since the reference unit and target fields are used in
      several places in the XML schema, create a separate one
      specific for SCSI Logical Units that will permit the
      greater length.  This permits both the validation utility
      and the virsh edit command to succeed when a hostdev
      tag is included.
      Signed-off-by: NEric Farman <farman@linux.vnet.ibm.com>
      Reviewed-by: NMatthew Rosato <mjrosato@linux.vnet.ibm.com>
      Reviewed-by: NStefan Zimmermann <stzi@linux.vnet.ibm.com>
      Reviewed-by: NBoris Fiuczynski <fiuczy@linux.vnet.ibm.com>
      c733e973