Skip to content

colonwq/go-virtualbmc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A go based virtbmc client

This is designed to be API compatable with the vbmc client. The command prints the JSON string returned from the server

Requirements:

  • developed on Fedora 30
  • uses golang-github-pebbe-zmq4 for messaging
  • developed against python3-virtualbmc-1.5. Should work with 1.4

Usage: List configured IPMI interfaces go run go-vbmc.go list

Add a IPMI interface go run go-vbmc.go add VM-name

Show an IPMI interface go run go-vbmc.go show VM-name

Start an IPMI interface go run go-vbmc.go start VM-name

Stop an IPMI interface go run go-vbmc.go stop VM-name

Delete an IPMI interface go run go-vbmc.go Delete VM-name

The list, add and show sub-commands support the -h parameter for additonal options

TODO:

  • add support for pretty printing the JSON reply string
  • add support for formatting options from the list and show sub-commands
  • set the return code the rc value in the JSON string

Example usage:

$ go run go-vbmc.go list
json reply( 55 ):  [{"rc": 0, "header": ["Domain name", "Status", "Address", "Port"], "rows": []}]

$ go run go-vbmc.go add -port 6230 fedora30-server
json reply( 202 ):  [{"rc": 0, "msg": []}] .

$ go run go-vbmc.go show fedora30-server
json reply( 70 ):  [{"rc": 0, "header": ["Property", "Value"], "rows": [["username", "admin"], ["password", "password"], ["address", "::"], ["port", 6230], ["domain_name", "fedora30-server"], ["libvirt_uri", "qemu:///system"], ["libvirt_sasl_username", ""], ["libvirt_sasl_password", ""], ["active", "False"], ["status", "down"]]}]

$ go run go-vbmc.go start fedora30-server
Retrun string:  [{"rc": 0, "msg": []}]

$ go run go-vbmc.go show fedora30-server
json reply( 70 ):  [{"rc": 0, "header": ["Property", "Value"], "rows": [["username", "admin"], ["password", "password"], ["address", "::"], ["port", 6230], ["domain_name", "fedora30-server"], ["libvirt_uri", "qemu:///system"], ["libvirt_sasl_username", ""], ["libvirt_sasl_password", ""], ["active", "True"], ["status", "running"]]}]

$ go run go-vbmc.go stop fedora30-server
Retrun string:  [{"rc": 0, "msg": []}]

$ go run go-vbmc.go show fedora30-server
json reply( 70 ):  [{"rc": 0, "header": ["Property", "Value"], "rows": [["username", "admin"], ["password", "password"], ["address", "::"], ["port", 6230], ["domain_name", "fedora30-server"], ["libvirt_uri", "qemu:///system"], ["libvirt_sasl_username", ""], ["libvirt_sasl_password", ""], ["active", "False"], ["status", "down"]]}]

$ go run go-vbmc.go list
json reply( 55 ):  [{"rc": 0, "header": ["Domain name", "Status", "Address", "Port"], "rows": [["fedora30-server", "down", "::", 6230]]}]

$ go run go-vbmc.go delete fedora30-server
Retrun string:  [{"rc": 0, "msg": []}]

$ go run go-vbmc.go list
json reply( 55 ):  [{"rc": 0, "header": ["Domain name", "Status", "Address", "Port"], "rows": []}]

About

A go based vbmcd client

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published