Skip to content

Commit 9e4884e

Browse files
feat: Ingress
1 parent 3e9ad57 commit 9e4884e

File tree

6 files changed

+337
-134
lines changed

6 files changed

+337
-134
lines changed

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 18
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fhypeman-ab6e971141b5e1f4e16583c5a17a9b30c488105b86cd2f06ded8930c1d3fe76e.yml
3-
openapi_spec_hash: bc58aaa77f9944435c91eb9129a3f105
4-
config_hash: b4e65d240d7bca1ba6162ee2098c8ac2
1+
configured_endpoints: 22
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fhypeman-e5d271673921ab0a71b2c28bb60722b459bf94c927d0c41680b27db5b8f6d977.yml
3+
openapi_spec_hash: 89781fbe4b5bac8f45d8584c6aaf7b33
4+
config_hash: ea71f062b8803c872089ec60c46478be

pkg/cmd/cmd.go

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,21 +86,21 @@ func init() {
8686
Category: "API RESOURCE",
8787
Commands: []*cli.Command{
8888
&imagesCreate,
89-
&imagesRetrieve,
9089
&imagesList,
90+
&imagesGet,
9191
},
9292
},
9393
{
9494
Name: "instances",
9595
Category: "API RESOURCE",
9696
Commands: []*cli.Command{
9797
&instancesCreate,
98-
&instancesRetrieve,
9998
&instancesList,
100-
&instancesPutInStandby,
101-
&instancesRestoreFromStandby,
99+
&instancesGet,
100+
&instancesRestore,
102101
&instancesLogs,
103102
&instancesDelete,
103+
&instancesStandby,
104104
},
105105
},
106106
{
@@ -116,8 +116,17 @@ func init() {
116116
Category: "API RESOURCE",
117117
Commands: []*cli.Command{
118118
&volumesCreate,
119-
&volumesRetrieve,
120119
&volumesList,
120+
&volumesGet,
121+
},
122+
},
123+
{
124+
Name: "ingresses",
125+
Category: "API RESOURCE",
126+
Commands: []*cli.Command{
127+
&ingressesCreate,
128+
&ingressesList,
129+
&ingressesGet,
121130
},
122131
},
123132
{

pkg/cmd/image.go

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,6 @@ var imagesCreate = cli.Command{
3030
HideHelpCommand: true,
3131
}
3232

33-
var imagesRetrieve = cli.Command{
34-
Name: "retrieve",
35-
Usage: "Get image details",
36-
Flags: []cli.Flag{
37-
&requestflag.StringFlag{
38-
Name: "name",
39-
},
40-
},
41-
Action: handleImagesRetrieve,
42-
HideHelpCommand: true,
43-
}
44-
4533
var imagesList = cli.Command{
4634
Name: "list",
4735
Usage: "List images",
@@ -62,6 +50,18 @@ var imagesDelete = cli.Command{
6250
HideHelpCommand: true,
6351
}
6452

53+
var imagesGet = cli.Command{
54+
Name: "get",
55+
Usage: "Get image details",
56+
Flags: []cli.Flag{
57+
&requestflag.StringFlag{
58+
Name: "name",
59+
},
60+
},
61+
Action: handleImagesGet,
62+
HideHelpCommand: true,
63+
}
64+
6565
func handleImagesCreate(ctx context.Context, cmd *cli.Command) error {
6666
client := hypeman.NewClient(getDefaultRequestOptions(cmd)...)
6767
unusedArgs := cmd.Args().Slice()
@@ -96,13 +96,9 @@ func handleImagesCreate(ctx context.Context, cmd *cli.Command) error {
9696
return ShowJSON("images create", json, format, transform)
9797
}
9898

99-
func handleImagesRetrieve(ctx context.Context, cmd *cli.Command) error {
99+
func handleImagesList(ctx context.Context, cmd *cli.Command) error {
100100
client := hypeman.NewClient(getDefaultRequestOptions(cmd)...)
101101
unusedArgs := cmd.Args().Slice()
102-
if !cmd.IsSet("name") && len(unusedArgs) > 0 {
103-
cmd.Set("name", unusedArgs[0])
104-
unusedArgs = unusedArgs[1:]
105-
}
106102
if len(unusedArgs) > 0 {
107103
return fmt.Errorf("Unexpected extra arguments: %v", unusedArgs)
108104
}
@@ -117,24 +113,24 @@ func handleImagesRetrieve(ctx context.Context, cmd *cli.Command) error {
117113
}
118114
var res []byte
119115
options = append(options, option.WithResponseBodyInto(&res))
120-
_, err = client.Images.Get(
121-
ctx,
122-
requestflag.CommandRequestValue[string](cmd, "name"),
123-
options...,
124-
)
116+
_, err = client.Images.List(ctx, options...)
125117
if err != nil {
126118
return err
127119
}
128120

129121
json := gjson.Parse(string(res))
130122
format := cmd.Root().String("format")
131123
transform := cmd.Root().String("transform")
132-
return ShowJSON("images retrieve", json, format, transform)
124+
return ShowJSON("images list", json, format, transform)
133125
}
134126

135-
func handleImagesList(ctx context.Context, cmd *cli.Command) error {
127+
func handleImagesDelete(ctx context.Context, cmd *cli.Command) error {
136128
client := hypeman.NewClient(getDefaultRequestOptions(cmd)...)
137129
unusedArgs := cmd.Args().Slice()
130+
if !cmd.IsSet("name") && len(unusedArgs) > 0 {
131+
cmd.Set("name", unusedArgs[0])
132+
unusedArgs = unusedArgs[1:]
133+
}
138134
if len(unusedArgs) > 0 {
139135
return fmt.Errorf("Unexpected extra arguments: %v", unusedArgs)
140136
}
@@ -147,20 +143,14 @@ func handleImagesList(ctx context.Context, cmd *cli.Command) error {
147143
if err != nil {
148144
return err
149145
}
150-
var res []byte
151-
options = append(options, option.WithResponseBodyInto(&res))
152-
_, err = client.Images.List(ctx, options...)
153-
if err != nil {
154-
return err
155-
}
156-
157-
json := gjson.Parse(string(res))
158-
format := cmd.Root().String("format")
159-
transform := cmd.Root().String("transform")
160-
return ShowJSON("images list", json, format, transform)
146+
return client.Images.Delete(
147+
ctx,
148+
requestflag.CommandRequestValue[string](cmd, "name"),
149+
options...,
150+
)
161151
}
162152

163-
func handleImagesDelete(ctx context.Context, cmd *cli.Command) error {
153+
func handleImagesGet(ctx context.Context, cmd *cli.Command) error {
164154
client := hypeman.NewClient(getDefaultRequestOptions(cmd)...)
165155
unusedArgs := cmd.Args().Slice()
166156
if !cmd.IsSet("name") && len(unusedArgs) > 0 {
@@ -179,9 +169,19 @@ func handleImagesDelete(ctx context.Context, cmd *cli.Command) error {
179169
if err != nil {
180170
return err
181171
}
182-
return client.Images.Delete(
172+
var res []byte
173+
options = append(options, option.WithResponseBodyInto(&res))
174+
_, err = client.Images.Get(
183175
ctx,
184176
requestflag.CommandRequestValue[string](cmd, "name"),
185177
options...,
186178
)
179+
if err != nil {
180+
return err
181+
}
182+
183+
json := gjson.Parse(string(res))
184+
format := cmd.Root().String("format")
185+
transform := cmd.Root().String("transform")
186+
return ShowJSON("images get", json, format, transform)
187187
}

pkg/cmd/ingress.go

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
package cmd
4+
5+
import (
6+
"context"
7+
"fmt"
8+
9+
"github.com/onkernel/hypeman-cli/internal/apiquery"
10+
"github.com/onkernel/hypeman-cli/internal/requestflag"
11+
"github.com/onkernel/hypeman-go"
12+
"github.com/onkernel/hypeman-go/option"
13+
"github.com/tidwall/gjson"
14+
"github.com/urfave/cli/v3"
15+
)
16+
17+
var ingressesCreate = cli.Command{
18+
Name: "create",
19+
Usage: "Create ingress",
20+
Flags: []cli.Flag{
21+
&requestflag.StringFlag{
22+
Name: "name",
23+
Usage: "Human-readable name (lowercase letters, digits, and dashes only; cannot start or end with a dash)",
24+
Config: requestflag.RequestConfig{
25+
BodyPath: "name",
26+
},
27+
},
28+
&requestflag.YAMLSliceFlag{
29+
Name: "rule",
30+
Usage: "Routing rules for this ingress",
31+
Config: requestflag.RequestConfig{
32+
BodyPath: "rules",
33+
},
34+
},
35+
},
36+
Action: handleIngressesCreate,
37+
HideHelpCommand: true,
38+
}
39+
40+
var ingressesList = cli.Command{
41+
Name: "list",
42+
Usage: "List ingresses",
43+
Flags: []cli.Flag{},
44+
Action: handleIngressesList,
45+
HideHelpCommand: true,
46+
}
47+
48+
var ingressesDelete = cli.Command{
49+
Name: "delete",
50+
Usage: "Delete ingress",
51+
Flags: []cli.Flag{
52+
&requestflag.StringFlag{
53+
Name: "id",
54+
},
55+
},
56+
Action: handleIngressesDelete,
57+
HideHelpCommand: true,
58+
}
59+
60+
var ingressesGet = cli.Command{
61+
Name: "get",
62+
Usage: "Get ingress details",
63+
Flags: []cli.Flag{
64+
&requestflag.StringFlag{
65+
Name: "id",
66+
},
67+
},
68+
Action: handleIngressesGet,
69+
HideHelpCommand: true,
70+
}
71+
72+
func handleIngressesCreate(ctx context.Context, cmd *cli.Command) error {
73+
client := hypeman.NewClient(getDefaultRequestOptions(cmd)...)
74+
unusedArgs := cmd.Args().Slice()
75+
if len(unusedArgs) > 0 {
76+
return fmt.Errorf("Unexpected extra arguments: %v", unusedArgs)
77+
}
78+
params := hypeman.IngressNewParams{}
79+
80+
options, err := flagOptions(
81+
cmd,
82+
apiquery.NestedQueryFormatBrackets,
83+
apiquery.ArrayQueryFormatComma,
84+
ApplicationJSON,
85+
)
86+
if err != nil {
87+
return err
88+
}
89+
var res []byte
90+
options = append(options, option.WithResponseBodyInto(&res))
91+
_, err = client.Ingresses.New(
92+
ctx,
93+
params,
94+
options...,
95+
)
96+
if err != nil {
97+
return err
98+
}
99+
100+
json := gjson.Parse(string(res))
101+
format := cmd.Root().String("format")
102+
transform := cmd.Root().String("transform")
103+
return ShowJSON("ingresses create", json, format, transform)
104+
}
105+
106+
func handleIngressesList(ctx context.Context, cmd *cli.Command) error {
107+
client := hypeman.NewClient(getDefaultRequestOptions(cmd)...)
108+
unusedArgs := cmd.Args().Slice()
109+
if len(unusedArgs) > 0 {
110+
return fmt.Errorf("Unexpected extra arguments: %v", unusedArgs)
111+
}
112+
options, err := flagOptions(
113+
cmd,
114+
apiquery.NestedQueryFormatBrackets,
115+
apiquery.ArrayQueryFormatComma,
116+
ApplicationJSON,
117+
)
118+
if err != nil {
119+
return err
120+
}
121+
var res []byte
122+
options = append(options, option.WithResponseBodyInto(&res))
123+
_, err = client.Ingresses.List(ctx, options...)
124+
if err != nil {
125+
return err
126+
}
127+
128+
json := gjson.Parse(string(res))
129+
format := cmd.Root().String("format")
130+
transform := cmd.Root().String("transform")
131+
return ShowJSON("ingresses list", json, format, transform)
132+
}
133+
134+
func handleIngressesDelete(ctx context.Context, cmd *cli.Command) error {
135+
client := hypeman.NewClient(getDefaultRequestOptions(cmd)...)
136+
unusedArgs := cmd.Args().Slice()
137+
if !cmd.IsSet("id") && len(unusedArgs) > 0 {
138+
cmd.Set("id", unusedArgs[0])
139+
unusedArgs = unusedArgs[1:]
140+
}
141+
if len(unusedArgs) > 0 {
142+
return fmt.Errorf("Unexpected extra arguments: %v", unusedArgs)
143+
}
144+
options, err := flagOptions(
145+
cmd,
146+
apiquery.NestedQueryFormatBrackets,
147+
apiquery.ArrayQueryFormatComma,
148+
ApplicationJSON,
149+
)
150+
if err != nil {
151+
return err
152+
}
153+
return client.Ingresses.Delete(
154+
ctx,
155+
requestflag.CommandRequestValue[string](cmd, "id"),
156+
options...,
157+
)
158+
}
159+
160+
func handleIngressesGet(ctx context.Context, cmd *cli.Command) error {
161+
client := hypeman.NewClient(getDefaultRequestOptions(cmd)...)
162+
unusedArgs := cmd.Args().Slice()
163+
if !cmd.IsSet("id") && len(unusedArgs) > 0 {
164+
cmd.Set("id", unusedArgs[0])
165+
unusedArgs = unusedArgs[1:]
166+
}
167+
if len(unusedArgs) > 0 {
168+
return fmt.Errorf("Unexpected extra arguments: %v", unusedArgs)
169+
}
170+
options, err := flagOptions(
171+
cmd,
172+
apiquery.NestedQueryFormatBrackets,
173+
apiquery.ArrayQueryFormatComma,
174+
ApplicationJSON,
175+
)
176+
if err != nil {
177+
return err
178+
}
179+
var res []byte
180+
options = append(options, option.WithResponseBodyInto(&res))
181+
_, err = client.Ingresses.Get(
182+
ctx,
183+
requestflag.CommandRequestValue[string](cmd, "id"),
184+
options...,
185+
)
186+
if err != nil {
187+
return err
188+
}
189+
190+
json := gjson.Parse(string(res))
191+
format := cmd.Root().String("format")
192+
transform := cmd.Root().String("transform")
193+
return ShowJSON("ingresses get", json, format, transform)
194+
}

0 commit comments

Comments
 (0)