Skip to content

Commit d101ce7

Browse files
fix: resolve xml dir for non root setup (#2434)
* fix: resolve xml dir for non root setup Signed-off-by: Yaroslav Borbat <yaroslav.borbat@flant.com> * Update images/virt-launcher/vlctl/cmd/vlctl/app/domain.go Co-authored-by: Ivan Mikheykin <ivan.mikheykin@flant.com> Signed-off-by: Yaroslav Borbat <86148689+yaroslavborbat@users.noreply.github.com> * Apply suggestion from @diafour Co-authored-by: Ivan Mikheykin <ivan.mikheykin@flant.com> Signed-off-by: Yaroslav Borbat <86148689+yaroslavborbat@users.noreply.github.com> --------- Signed-off-by: Yaroslav Borbat <yaroslav.borbat@flant.com> Signed-off-by: Yaroslav Borbat <86148689+yaroslavborbat@users.noreply.github.com> Co-authored-by: Ivan Mikheykin <ivan.mikheykin@flant.com>
1 parent 6f6b3ee commit d101ce7

1 file changed

Lines changed: 23 additions & 3 deletions

File tree

  • images/virt-launcher/vlctl/cmd/vlctl/app

images/virt-launcher/vlctl/cmd/vlctl/app/domain.go

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,10 @@ import (
2525
"github.com/spf13/cobra"
2626
)
2727

28-
const xmlDir = "/var/run/libvirt/qemu"
28+
const (
29+
xmlDir = "/var/run/libvirt/qemu"
30+
xmlDirNonRoot = "/var/run/libvirt/qemu/run"
31+
)
2932

3033
func NewDomainCommand() *cobra.Command {
3134
var fromFile bool
@@ -55,13 +58,19 @@ func runDomainCommand(opts BaseOptions, fromFile bool) error {
5558
if opts.Output != outputXml {
5659
return fmt.Errorf("output format must be xml when reading from file")
5760
}
58-
entries, err := os.ReadDir(xmlDir)
61+
62+
dir, err := resolveXMLDir()
63+
if err != nil {
64+
return fmt.Errorf("failed to resolve xml dir: %w", err)
65+
}
66+
67+
entries, err := os.ReadDir(dir)
5968
if err != nil {
6069
return fmt.Errorf("failed to read domain xml dir: %w", err)
6170
}
6271
for _, entry := range entries {
6372
if strings.HasSuffix(entry.Name(), ".xml") {
64-
b, err := os.ReadFile(filepath.Join(xmlDir, entry.Name()))
73+
b, err := os.ReadFile(filepath.Join(dir, entry.Name()))
6574
if err != nil {
6675
return fmt.Errorf("failed to read domain xml file: %w", err)
6776
}
@@ -94,6 +103,17 @@ func runDomainCommand(opts BaseOptions, fromFile bool) error {
94103
return marshalAndPrintOutput(&opts, domain.Spec)
95104
}
96105

106+
func resolveXMLDir() (string, error) {
107+
_, err := os.Stat(xmlDirNonRoot)
108+
if err == nil {
109+
return xmlDirNonRoot, nil
110+
}
111+
if os.IsNotExist(err) {
112+
return xmlDir, nil
113+
}
114+
return "", err
115+
}
116+
97117
func NewDomainStatsCommand() *cobra.Command {
98118
return &cobra.Command{
99119
Use: "stats",

0 commit comments

Comments
 (0)