domainmgr vs vmadm
this text is related to file domainmgr.go
|
function | xl/rkt command | used in |
|---|---|---|
| rktRun(domainName, ContainerImageID, xenCfgFilename, imageHash string) (int, string, error) | cmd := "rkt" args := []string{ "--dir=" + types.PersistRktDataDir, "--insecure-options=image", "run", imageHash, "--stage1-path=/usr/sbin/stage1-xen.aci", "--uuid-file-save=" + uuidFile, } stage1XlOpts := "STAGE1_XL_OPTS=-p" stage1XlCfg := "STAGE1_SEED_XL_CFG=" + xenCfgFilename |
DomainCreate |
rktStatus(podUUID string) string |
cmd := "rkt" args := []string{ "--dir=" + types.PersistRktDataDir, "status", podUUID, "--format=json", } |
rktRun |
| xlCreate(domainName string, xenCfgFilename string) (int, error) | cmd := "xl" args := []string{ "create", xenCfgFilename, "-p", } |
DomainCreate |
| xlStatus(domainName string, domainID int) error | cmd := "xl" args := []string{ "list", "-l", domainName, } |
doActiavteTail waitForDomainGone handleDelete |
|
xlDomid(domainName string, domainID int) (int, error) |
cmd := "xl" args := []string{ "domid", domainName, } |
verifyStatus doActiavteTail doInactivate |
| xlDisableVifOffload(domainName string, domainID int, vifCount int) error // Perform xenstore write to disable all of these for all VIFs |
pref := "/local/domain" for i := 0; i < vifCount; i += 1 { varNames := []string{ fmt.Sprintf("%s/0/backend/vif/%d/%d/feature-sg", pref, domainID, i), ….. for _, varName := range varNames { cmd := "xenstore" args := []string{ "write", varName, "0", } |
doActivateTail |
| xlUnpause(domainName string, domainID int) error | cmd := "xl" args := []string{ "unpause", domainName, } |
doActivateTail
|
| rktStop(PodUUID string, force bool) error | cmd := "rkt" var args []string if force { // rkt --dir=<RKT_DATA_DIR> stop PodUUID --force=true args = []string{ "--dir=" + types.PersistRktDataDir, "stop", PodUUID, "--force=true", } } else { // rkt --dir=<RKT_DATA_DIR> stop PodUUID args = []string{ "--dir=" + types.PersistRktDataDir, "stop", PodUUID, } |
DomainShutdown doStopDestroyDomain |
| xlShutdown(domainName string, domainID int, force bool) error | cmd := "xl" var args []string if force { args = []string{ "shutdown", "-F", domainName, } } else { args = []string{ "shutdown", domainName, } |
DomainShutdown |
| rktRm(PodUUID string) error | // rkt --dir=<RKT_DATA_DIR> rm PodUUID cmd := "rkt" args := []string{ "--dir=" + types.PersistRktDataDir, "rm", PodUUID, } |
DomainDestroy handleDelete |
| xlDestroy(domainName string, domainID int) error | cmd := "xl" args := []string{ "destroy", domainName, } |
DomainDestroy |
| isQemuRunning(domid int) bool { |
// create pgrep command to see if dataplane is running match := fmt.Sprintf("domid %d", domid) cmd := wrap.Command("pgrep", "-f", match) |
verifyStatus |
| func pciAssignableAdd(long string) error { |
cmd := "xl" args := []string{ "pci-assignable-add", long, } |
|
| func pciAssignableRemove(long string) error { | cmd := "xl" args := []string{ "pci-assignable-rem", "-r", long, } |
| function | calls | vmadm | comments |
|---|---|---|---|
// doStopDestroyDomain will destroy the domain of an instance if qemu is crashed doStopDestroyDomain |
rktStop DomainDestroy |
vmadm delete {uuid} | |
| // Check if it is still running // XXX would xen state be useful? verifyStatus |
xlDomid publishDomainStatus isQemuRunning doStopDestroyDomain |
vmadm get {uuid} (field "state") |
|
| func doActivate(ctx *domainContext, config types.DomainConfig, status *types.DomainStatus) { |
DomainCreate publishDomainStatus doActivateTail |
vmadm create |
|
| doActivateTail(ctx *domainContext, status *types.DomainStatus, domainID int) |
publishDomainStatus xlDisableVifOffload xlUnpause xlDomid |
vmadm create ?? vmadm run?? |
Разобраться зачем создание ВМ разделено на две части. |
| // shutdown and wait for the domain to go away; if that fails destroy and wait doInactivate(ctx *domainContext, status *types.DomainStatus) |
xlDomid publishDomainStatus DomainShutdown waitForDomainGone DomainDestroy delImageStatus pciUnassign |
vmadm stop {uuid} | |
| // Used to wait both after shutdown and destroy func waitForDomainGone(status types.DomainStatus, maxDelay time.Duration) bool |
xlStatus |
vmadm get {uuid} field status |
|
| func handleDelete(ctx *domainContext, key string, status *types.DomainStatus) |
doInactivate |
vmadm delete {uuid} |
чем отличается от destroy? |
| // DomainCreate is a wrapper for domain creation thru xlCreate or rktRun // returns domainID, PodUUID and error func DomainCreate(status types.DomainStatus) (int, string, error) |
rktRun |
vmadm create |
как в vmadm создать машину в состоянии paused? |
| // DomainShutdown is a wrapper for domain shutdown thru xlShutdown or rktStop func DomainShutdown(status types.DomainStatus, force bool) error |
rktStop xlShutdown |
vmadm stop {uuid} | |
| // DomainDestroy is a wrapper for domain Destroy thru xlDestroy or rktRm func DomainDestroy(status types.DomainStatus) error |
rktRm xlDestroy |
vmadm delete {uuid} | |
| handleModify | vmadm update?? | ||
| vmadm list | |||
| vmadm console |
