doc.go 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. * This file is part of the libvirt-go-xml project
  3. *
  4. * Permission is hereby granted, free of charge, to any person obtaining a copy
  5. * of this software and associated documentation files (the "Software"), to deal
  6. * in the Software without restriction, including without limitation the rights
  7. * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  8. * copies of the Software, and to permit persons to whom the Software is
  9. * furnished to do so, subject to the following conditions:
  10. *
  11. * The above copyright notice and this permission notice shall be included in
  12. * all copies or substantial portions of the Software.
  13. *
  14. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  17. * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  18. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  19. * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  20. * THE SOFTWARE.
  21. *
  22. * Copyright (C) 2017 Red Hat, Inc.
  23. *
  24. */
  25. // Package libvirt-go-xml defines structs for parsing libvirt XML schemas
  26. //
  27. // The libvirt API uses XML schemas/documents to describe the configuration
  28. // of many of its managed objects. Thus when using the libvirt-go package,
  29. // it is often neccessary to either parse or format XML documents. This
  30. // package defines a set of Go structs which have been annotated for use
  31. // with the encoding/xml API to manage libvirt XML documents.
  32. //
  33. // Example creating a domain XML document from configuration:
  34. //
  35. // import (
  36. // "github.com/libvirt/libvirt-go-xml"
  37. // )
  38. //
  39. // domcfg := &libvirtxml.Domain{Type: "kvm", Name: "demo",
  40. // UUID: "8f99e332-06c4-463a-9099-330fb244e1b3",
  41. // ....}
  42. // xmldoc, err := domcfg.Marshal()
  43. //
  44. // Example parsing a domainXML document, in combination with libvirt-go
  45. //
  46. // import (
  47. // "github.com/libvirt/libvirt-go"
  48. // "github.com/libvirt/libvirt-go-xml"
  49. // "fmt"
  50. // )
  51. //
  52. // conn, err := libvirt.NewConnect("qemu:///system")
  53. // dom := conn.LookupDomainByName("demo")
  54. // xmldoc, err := dom.GetXMLDesc(0)
  55. //
  56. // domcfg := &libvirtxml.Domain{}
  57. // err := domcfg.Unmarshal(xmldoc)
  58. //
  59. // fmt.Printf("Virt type %s", domcfg.Type)
  60. //
  61. package libvirtxml