Skip to content

Commit 8103c8a

Browse files
committed
controller: get and describe apps/components/vmspecs
1 parent ab7ea84 commit 8103c8a

9 files changed

Lines changed: 549 additions & 512 deletions

File tree

cmd/cli/get.go

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
v1 "cloudstackctl/apis/v1"
55
"cloudstackctl/pkg/handlers"
66
"encoding/json"
7+
"fmt"
78
"log"
89
"net/url"
910

@@ -72,7 +73,34 @@ var getCmd = &cobra.Command{
7273
}
7374
}
7475

75-
tryDecodeAndPrint(resourceType, body)
76+
if tryDecodeAndPrint(resourceType, body) {
77+
return
78+
}
79+
80+
// Controller may return DB-backed resources; print them in-table when possible
81+
switch resourceType {
82+
case "Component":
83+
var comps []v1.Component
84+
if err := json.Unmarshal(body, &comps); err == nil {
85+
handlers.PrintComponents(comps)
86+
return
87+
}
88+
case "VirtualMachineSpec":
89+
var specs []v1.VirtualMachineSpecResource
90+
if err := json.Unmarshal(body, &specs); err == nil {
91+
handlers.PrintVMSpecs(specs)
92+
return
93+
}
94+
case "Application":
95+
var apps []v1.Application
96+
if err := json.Unmarshal(body, &apps); err == nil {
97+
handlers.PrintApplications(apps)
98+
return
99+
}
100+
}
101+
102+
// Fallback: print raw body
103+
fmt.Println(string(body))
76104
},
77105
}
78106

controller/cmd_delete.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ func DeleteApplication(name string) {
1515
log.Fatalf("Database unavailable: %v", err)
1616
}
1717
}
18-
if err := db.DB.Where("metadata_name = ?", name).First(&app).Error; err != nil {
18+
if err := db.DB.Where("name = ?", name).First(&app).Error; err != nil {
1919
log.Fatalf("Application %s not found: %v", name, err)
2020
}
2121

@@ -38,7 +38,7 @@ func DeleteComponent(name string) {
3838
log.Fatalf("Database unavailable: %v", err)
3939
}
4040
}
41-
if err := db.DB.Where("metadata_name = ?", name).First(&comp).Error; err != nil {
41+
if err := db.DB.Where("name = ?", name).First(&comp).Error; err != nil {
4242
log.Fatalf("Component %s not found: %v", name, err)
4343
}
4444

@@ -67,7 +67,7 @@ func DeleteVM(name string) {
6767
}
6868

6969
var vm v1.VirtualMachine
70-
if err := db.DB.Where("metadata_name = ?", name).First(&vm).Error; err != nil {
70+
if err := db.DB.Where("name = ?", name).First(&vm).Error; err != nil {
7171
// Fallback: try CloudStack delete by name
7272
csClient, cerr := cloudstack.NewClient()
7373
if cerr != nil {
@@ -134,7 +134,7 @@ func DeleteNetwork(name string) {
134134
}
135135

136136
var n v1.Network
137-
if err := db.DB.Where("metadata_name = ?", name).First(&n).Error; err != nil {
137+
if err := db.DB.Where("name = ?", name).First(&n).Error; err != nil {
138138
log.Fatalf("Network %s not found: %v", name, err)
139139
}
140140

controller/cmd_describe.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ func DescribeApplication(name string) {
1616
}
1717

1818
var app v1.Application
19-
if err := db.DB.Where("metadata_name = ?", name).First(&app).Error; err != nil {
19+
if err := db.DB.Where("name = ?", name).First(&app).Error; err != nil {
2020
log.Fatalf("Application %s not found: %v", name, err)
2121
}
2222
data, _ := json.MarshalIndent(app, "", " ")
@@ -32,7 +32,7 @@ func DescribeComponent(name string) {
3232
}
3333

3434
var comp v1.Component
35-
if err := db.DB.Where("metadata_name = ?", name).First(&comp).Error; err != nil {
35+
if err := db.DB.Where("name = ?", name).First(&comp).Error; err != nil {
3636
log.Fatalf("Component %s not found: %v", name, err)
3737
}
3838
data, _ := json.MarshalIndent(comp, "", " ")
@@ -48,7 +48,7 @@ func DescribeVM(name string) {
4848
}
4949

5050
var vm v1.VirtualMachine
51-
if err := db.DB.Where("metadata_name = ?", name).First(&vm).Error; err != nil {
51+
if err := db.DB.Where("name = ?", name).First(&vm).Error; err != nil {
5252
log.Fatalf("VM %s not found: %v", name, err)
5353
}
5454
data, _ := json.MarshalIndent(vm, "", " ")

controller/cmd_get.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func ListApplications(name string) {
2222

2323
if name != "" {
2424
var app v1.Application
25-
if err := db.DB.Where("metadata_name = ?", name).First(&app).Error; err != nil {
25+
if err := db.DB.Where("name = ?", name).First(&app).Error; err != nil {
2626
log.Fatalf("Application %s not found: %v", name, err)
2727
}
2828
b, _ := json.MarshalIndent(app, "", " ")
@@ -62,7 +62,7 @@ func ListComponents(name string) {
6262

6363
if name != "" {
6464
var comp v1.Component
65-
if err := db.DB.Where("metadata_name = ?", name).First(&comp).Error; err != nil {
65+
if err := db.DB.Where("name = ?", name).First(&comp).Error; err != nil {
6666
log.Fatalf("Component %s not found: %v", name, err)
6767
}
6868
b, _ := json.MarshalIndent(comp, "", " ")
@@ -101,7 +101,7 @@ func ListVirtualMachineSpec(name string) {
101101

102102
if name != "" {
103103
var vs v1.VirtualMachineSpecResource
104-
if err := db.DB.Where("metadata_name = ?", name).First(&vs).Error; err != nil {
104+
if err := db.DB.Where("name = ?", name).First(&vs).Error; err != nil {
105105
log.Fatalf("VirtualMachineSpec %s not found: %v", name, err)
106106
}
107107
b, _ := json.MarshalIndent(vs, "", " ")
@@ -144,7 +144,7 @@ func ListVMs(name string) {
144144

145145
if name != "" {
146146
var vm v1.VirtualMachine
147-
if err := db.DB.Where("metadata_name = ?", name).First(&vm).Error; err != nil {
147+
if err := db.DB.Where("name = ?", name).First(&vm).Error; err != nil {
148148
log.Fatalf("VirtualMachine %s not found: %v", name, err)
149149
}
150150
b, _ := json.MarshalIndent(vm, "", " ")

0 commit comments

Comments
 (0)