Skip to content

Commit 6ce52b9

Browse files
author
Naoki Kanazawa
committed
projectとzoneに対応した
1 parent 8246884 commit 6ce52b9

File tree

5 files changed

+57
-5
lines changed

5 files changed

+57
-5
lines changed

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,32 @@ mapping.example.yaml
99
```yaml
1010
- problem_id: 89bc780e-7a54-4015-8327-125564a7da50
1111
machine_image_name: image-aki
12+
project: networkcontest
13+
zone: asia-northeast1-b
1214
- problem_id: d14ccfff-6410-4aea-a31d-d323f8050214
1315
machine_image_name: image-kit
16+
project: networkcontest
17+
zone: asia-northeast1-b
1418
- problem_id: 6b0b1605-9021-4848-a4ab-246f22ffcb61
1519
machine_image_name: image-kny
20+
project: networkcontest
21+
zone: asia-northeast1-b
1622
- problem_id: 8b8082f6-d7df-4555-ae25-feb07f857987
1723
machine_image_name: image-nas
24+
project: networkcontest
25+
zone: asia-northeast1-b
1826
- problem_id: 968fd81d-d511-4ab5-84db-13fc756f3d7c
1927
machine_image_name: image-pea
28+
project: networkcontest
29+
zone: asia-northeast1-b
2030
- problem_id: 227803fb-2fe1-4b89-a805-79e7679bf030
2131
machine_image_name: image-sc0
32+
project: networkcontest
33+
zone: asia-northeast1-b
2234
- problem_id: 561d9876-7568-4096-b164-126cba6e4eb7
2335
machine_image_name: image-sc1
36+
project: networkcontest
37+
zone: asia-northeast1-b
2438
```
2539
2640
```bash

mapping.example.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,28 @@
11
- problem_id: 89bc780e-7a54-4015-8327-125564a7da50
22
machine_image_name: image-aki
3+
project: networkcontest
4+
zone: asia-northeast1-b
35
- problem_id: d14ccfff-6410-4aea-a31d-d323f8050214
46
machine_image_name: image-kit
7+
project: networkcontest
8+
zone: asia-northeast1-b
59
- problem_id: 6b0b1605-9021-4848-a4ab-246f22ffcb61
610
machine_image_name: image-kny
11+
project: networkcontest
12+
zone: asia-northeast1-b
713
- problem_id: 8b8082f6-d7df-4555-ae25-feb07f857987
814
machine_image_name: image-nas
15+
project: networkcontest
16+
zone: asia-northeast1-b
917
- problem_id: 968fd81d-d511-4ab5-84db-13fc756f3d7c
1018
machine_image_name: image-pea
19+
project: networkcontest
20+
zone: asia-northeast1-b
1121
- problem_id: 227803fb-2fe1-4b89-a805-79e7679bf030
1222
machine_image_name: image-sc0
23+
project: networkcontest
24+
zone: asia-northeast1-b
1325
- problem_id: 561d9876-7568-4096-b164-126cba6e4eb7
1426
machine_image_name: image-sc1
27+
project: networkcontest
28+
zone: asia-northeast1-b

pkg/command/contest.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ func NewContestInitCommand() *cobra.Command {
4444
type mapping struct {
4545
ProblemID string `yaml:"problem_id"`
4646
MachineImageName string `yaml:"machine_image_name"`
47+
Project string `yaml:"project"`
48+
Zone string `yaml:"zone"`
4749
}
4850

4951
func contestInitCommandFunc(cmd *cobra.Command, args []string) error {
@@ -85,7 +87,13 @@ func contestInitCommandFunc(cmd *cobra.Command, args []string) error {
8587
xerrors.New("problem_id が空になっている場所があります")
8688
}
8789
if m.MachineImageName == "" {
88-
xerrors.New("machine-image-name が空になっている場所にあります")
90+
xerrors.New("machine-image-name が空になっている場所があります")
91+
}
92+
if m.Project == "" {
93+
xerrors.New("project が空になっている場所があります")
94+
}
95+
if m.Zone == "" {
96+
xerrors.New("zone が空になっている場所があります")
8997
}
9098
}
9199

@@ -98,8 +106,8 @@ func contestInitCommandFunc(cmd *cobra.Command, args []string) error {
98106
c := count
99107
for c > 0 {
100108

101-
fmt.Printf("[INFO] creating... problemID: %s, machineImageName: %s\n", m.ProblemID, m.MachineImageName)
102-
i, err := cli.CreateInstance(m.ProblemID, m.MachineImageName)
109+
fmt.Printf("[INFO] creating... problemID: %s, machineImageName: %s, project: %s, zone: %s\n", m.ProblemID, m.MachineImageName, m.Project, m.Zone)
110+
i, err := cli.CreateInstance(m.ProblemID, m.MachineImageName, m.Project, m.Zone)
103111
if err != nil {
104112
fmt.Println("[ERROR] failed to create instance.")
105113
return err

pkg/command/vmms.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,13 @@ func NewVmmsInstanceCreateCommand() *cobra.Command {
4646
flags := cmd.Flags()
4747
flags.StringP("problem-id", "", "", "Problem ID")
4848
flags.StringP("machine-image-name", "", "", "Machine Image Name")
49+
flags.StringP("project", "", "", "Project")
50+
flags.StringP("zone", "", "", "Zone")
4951

5052
cmd.MarkFlagRequired("problem-id")
5153
cmd.MarkFlagRequired("machine-image-name")
54+
cmd.MarkFlagRequired("project")
55+
cmd.MarkFlagRequired("zone")
5256

5357
return cmd
5458
}
@@ -72,9 +76,17 @@ func vmmsInstanceCreateCommandFunc(cmd *cobra.Command, args []string) error {
7276
if err != nil {
7377
return err
7478
}
79+
project, err := flags.GetString("project")
80+
if err != nil {
81+
return err
82+
}
83+
zone, err := flags.GetString("zone")
84+
if err != nil {
85+
return err
86+
}
7587

7688
cli := vmms.NewClient(endpoint, credential)
77-
pes, err := cli.CreateInstance(problemID, machineImageName)
89+
pes, err := cli.CreateInstance(problemID, machineImageName, project, zone)
7890
if err != nil {
7991
return err
8092
}

pkg/vmms/vmms.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ func NewClient(endpoint, credential string) *client {
2828
type createInstanceRequestBody struct {
2929
ProblemID string `json:"problem_id" validate:"required,uuid"`
3030
MachineImageName string `json:"machine_image_name" validate:"required" example:"problem-sc0"`
31+
Project string `json:"project" validate:"required" example:"networkcontest"`
32+
Zone string `json:"zone" validate:"required" zone:"asia-northeast1-b"`
3133
}
3234

3335
type createInstanceResponseBody struct {
@@ -46,12 +48,14 @@ type createInstanceErrorResponseBody struct {
4648
}
4749

4850
// CreateInstance VMを作成する
49-
func (c *client) CreateInstance(problemID, machineImageName string) (*types.Instance, error) {
51+
func (c *client) CreateInstance(problemID, machineImageName, project, zone string) (*types.Instance, error) {
5052
u := fmt.Sprintf("%s/instance", c.Endpoint)
5153

5254
reqBody := createInstanceRequestBody{
5355
ProblemID: problemID,
5456
MachineImageName: machineImageName,
57+
Project: project,
58+
Zone: zone,
5559
}
5660

5761
if err := validate.Struct(reqBody); err != nil {

0 commit comments

Comments
 (0)