Skip to content
This repository was archived by the owner on Mar 1, 2023. It is now read-only.

Commit c296495

Browse files
authored
snapshot resource (#9)
gcore_snapshot resource added
1 parent f50698c commit c296495

File tree

10 files changed

+438
-15
lines changed

10 files changed

+438
-15
lines changed

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ terraform {
1818
required_providers {
1919
gcore = {
2020
source = "local.gcorelabs.com/repo/gcore"
21-
version = "~>0.1.0"
21+
version = "~>0.1.1"
2222
}
2323
}
2424
}

docs/resources/gcore_snapshot.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
---
2+
# generated by https://github.com/hashicorp/terraform-plugin-docs
3+
page_title: "gcore_snapshot Resource - terraform-provider-gcorelabs"
4+
subcategory: ""
5+
description: |-
6+
7+
---
8+
9+
# gcore_snapshot (Resource)
10+
11+
12+
13+
## Example Usage
14+
15+
```terraform
16+
provider gcore {
17+
user_name = "test"
18+
password = "test"
19+
gcore_platform = "https://api.gcdn.co"
20+
gcore_api = "https://api.cloud.gcorelabs.com"
21+
}
22+
23+
resource "gcore_snapshot" "snapshot" {
24+
project_id = 1
25+
region_id = 1
26+
name = "snapshot example"
27+
volume_id = "28e9edcb-1593-41fe-971b-da729c6ec301"
28+
description = "snapshot example description"
29+
}
30+
```
31+
32+
<!-- schema generated by tfplugindocs -->
33+
## Schema
34+
35+
### Required
36+
37+
- **name** (String)
38+
- **volume_id** (String)
39+
40+
### Optional
41+
42+
- **description** (String)
43+
- **id** (String) The ID of this resource.
44+
- **last_updated** (String)
45+
- **project_id** (Number)
46+
- **project_name** (String)
47+
- **region_id** (Number)
48+
- **region_name** (String)
49+
50+
### Read-Only
51+
52+
- **size** (Number)
53+
- **status** (String)
54+
55+

examples/provider/provider.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ terraform {
33
required_providers {
44
gcore = {
55
source = "local.gcorelabs.com/repo/gcore"
6-
version = "~>0.1.0"
6+
version = "~>0.1.1"
77
}
88
}
99
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
provider gcore {
2+
user_name = "test"
3+
password = "test"
4+
gcore_platform = "https://api.gcdn.co"
5+
gcore_api = "https://api.cloud.gcorelabs.com"
6+
}
7+
8+
resource "gcore_snapshot" "snapshot" {
9+
project_id = 1
10+
region_id = 1
11+
name = "snapshot example"
12+
volume_id = "28e9edcb-1593-41fe-971b-da729c6ec301"
13+
description = "snapshot example description"
14+
}
15+
16+

gcore/provider.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ func Provider() *schema.Provider {
5050
"gcore_lbmember": resourceLBMember(),
5151
"gcore_securitygroup": resourceSecurityGroup(),
5252
"gcore_baremetal": resourceBmInstance(),
53+
"gcore_snapshot": resourceSnapshot(),
5354
},
5455
DataSourcesMap: map[string]*schema.Resource{
5556
"gcore_project": dataSourceProject(),

gcore/provider_test.go

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ var (
2626
GCORE_LB_ID = os.Getenv("GCORE_LB_ID")
2727
GCORE_LBLISTENER_ID = os.Getenv("GCORE_LBLISTENER_ID")
2828
GCORE_LBPOOL_ID = os.Getenv("GCORE_LBPOOL_ID")
29+
GCORE_VOLUME_ID = os.Getenv("GCORE_VOLUME_ID")
2930
)
3031

3132
var testAccProvider *schema.Provider
@@ -47,11 +48,11 @@ func TestProvider(t *testing.T) {
4748
}
4849

4950
func testAccPreCheck(t *testing.T) {
50-
Vars := map[string]interface{}{
51+
vars := map[string]interface{}{
5152
"GCORE_USERNAME": GCORE_USERNAME,
5253
"GCORE_PASSWORD": GCORE_PASSWORD,
5354
}
54-
for k, v := range Vars {
55+
for k, v := range vars {
5556
if v == "" {
5657
t.Fatalf("'%s' must be set for acceptance test", k)
5758
}
@@ -61,65 +62,78 @@ func testAccPreCheck(t *testing.T) {
6162
}
6263

6364
func testAccPreCheckLBListener(t *testing.T) {
64-
Vars := map[string]interface{}{
65+
vars := map[string]interface{}{
6566
"GCORE_USERNAME": GCORE_USERNAME,
6667
"GCORE_PASSWORD": GCORE_PASSWORD,
6768
"GCORE_LB_ID": GCORE_LB_ID,
6869
}
69-
for k, v := range Vars {
70+
for k, v := range vars {
7071
if v == "" {
7172
t.Fatalf("'%s' must be set for acceptance test", k)
7273
}
7374
}
7475
}
7576

7677
func testAccPreCheckLBPool(t *testing.T) {
77-
Vars := map[string]interface{}{
78+
vars := map[string]interface{}{
7879
"GCORE_USERNAME": GCORE_USERNAME,
7980
"GCORE_PASSWORD": GCORE_PASSWORD,
8081
"GCORE_LB_ID": GCORE_LB_ID,
8182
"GCORE_LBLISTENER_ID": GCORE_LBLISTENER_ID,
8283
}
83-
for k, v := range Vars {
84+
for k, v := range vars {
8485
if v == "" {
8586
t.Fatalf("'%s' must be set for acceptance test", k)
8687
}
8788
}
8889
}
8990

9091
func testAccPreCheckLBMember(t *testing.T) {
91-
Vars := map[string]interface{}{
92+
vars := map[string]interface{}{
9293
"GCORE_USERNAME": GCORE_USERNAME,
9394
"GCORE_PASSWORD": GCORE_PASSWORD,
9495
"GCORE_LBPOOL_ID": GCORE_LBPOOL_ID,
9596
}
96-
for k, v := range Vars {
97+
for k, v := range vars {
98+
if v == "" {
99+
t.Fatalf("'%s' must be set for acceptance test", k)
100+
}
101+
}
102+
}
103+
104+
func testAccPreCheckSnapshot(t *testing.T) {
105+
vars := map[string]interface{}{
106+
"GCORE_USERNAME": GCORE_USERNAME,
107+
"GCORE_PASSWORD": GCORE_PASSWORD,
108+
"GCORE_VOLUME_ID": GCORE_VOLUME_ID,
109+
}
110+
for k, v := range vars {
97111
if v == "" {
98112
t.Fatalf("'%s' must be set for acceptance test", k)
99113
}
100114
}
101115
}
102116

103117
func testAccPreCheckRouter(t *testing.T) {
104-
Vars := map[string]interface{}{
118+
vars := map[string]interface{}{
105119
"GCORE_EXT_NET": GCORE_EXT_NET,
106120
"GCORE_PRIV_SUBNET": GCORE_PRIV_SUBNET,
107121
}
108-
for k, v := range Vars {
122+
for k, v := range vars {
109123
if v == "" {
110124
t.Fatalf("'%s' must be set for acceptance test", k)
111125
}
112126
}
113127
}
114128

115129
func testAccPreCheckInstance(t *testing.T) {
116-
Vars := map[string]interface{}{
130+
vars := map[string]interface{}{
117131
"GCORE_IMAGE": GCORE_IMAGE,
118132
"GCORE_SECGROUP": GCORE_SECGROUP,
119133
"GCORE_PRIV_NET": GCORE_PRIV_NET,
120134
"GCORE_PRIV_SUBNET": GCORE_PRIV_SUBNET,
121135
}
122-
for k, v := range Vars {
136+
for k, v := range vars {
123137
if v == "" {
124138
t.Fatalf("'%s' must be set for acceptance test", k)
125139
}

0 commit comments

Comments
 (0)