Skip to content

Commit b50b85d

Browse files
cesv2
1 parent f784407 commit b50b85d

File tree

15 files changed

+1115
-0
lines changed

15 files changed

+1115
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package v2
2+
3+
import (
4+
"testing"
5+
6+
"github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients"
7+
"github.com/opentelekomcloud/gophertelekomcloud/openstack/ces/v2/records"
8+
th "github.com/opentelekomcloud/gophertelekomcloud/testhelper"
9+
)
10+
11+
func TestAlarmRecordsList(t *testing.T) {
12+
client, err := clients.NewCesV2Client()
13+
th.AssertNoErr(t, err)
14+
15+
t.Log("Attempting to list alarm records")
16+
listResp, err := records.List(client, records.ListOpts{
17+
Limit: 10,
18+
})
19+
th.AssertNoErr(t, err)
20+
21+
t.Logf("Found %d alarm records", listResp.Count)
22+
for _, record := range listResp.AlarmHistories {
23+
t.Logf("Record ID: %s, Name: %s, Status: %s, Level: %d",
24+
record.RecordId, record.Name, record.Status, record.Level)
25+
}
26+
}
27+
28+
func TestAlarmRecordsListWithFilters(t *testing.T) {
29+
client, err := clients.NewCesV2Client()
30+
th.AssertNoErr(t, err)
31+
32+
t.Log("Attempting to list alarm records with status filter")
33+
listResp, err := records.List(client, records.ListOpts{
34+
Status: "alarm",
35+
Limit: 10,
36+
})
37+
th.AssertNoErr(t, err)
38+
39+
t.Logf("Found %d alarm records with status 'alarm'", listResp.Count)
40+
for _, record := range listResp.AlarmHistories {
41+
th.AssertEquals(t, record.Status, "alarm")
42+
}
43+
}
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
package v2
2+
3+
import (
4+
"testing"
5+
6+
"github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients"
7+
"github.com/opentelekomcloud/gophertelekomcloud/openstack/ces/v2/resourcegroups"
8+
th "github.com/opentelekomcloud/gophertelekomcloud/testhelper"
9+
)
10+
11+
func TestResourceGroupsCRUD(t *testing.T) {
12+
client, err := clients.NewCesV2Client()
13+
th.AssertNoErr(t, err)
14+
15+
t.Log("Attempting to create resource group")
16+
createOpts := resourcegroups.CreateOpts{
17+
GroupName: "test-rg-acc",
18+
Type: "Manual",
19+
}
20+
21+
groupId, err := resourcegroups.Create(client, createOpts)
22+
th.AssertNoErr(t, err)
23+
t.Logf("Created resource group: %s", groupId)
24+
25+
t.Cleanup(func() {
26+
t.Log("Attempting to delete resource group")
27+
_, err := resourcegroups.Delete(client, resourcegroups.DeleteOpts{
28+
GroupIds: []string{groupId},
29+
})
30+
th.AssertNoErr(t, err)
31+
})
32+
33+
t.Log("Attempting to get resource group details")
34+
group, err := resourcegroups.Get(client, groupId)
35+
th.AssertNoErr(t, err)
36+
th.AssertEquals(t, group.GroupName, "test-rg-acc")
37+
th.AssertEquals(t, group.Type, "Manual")
38+
39+
t.Log("Attempting to list resource groups")
40+
listResp, err := resourcegroups.List(client, resourcegroups.ListOpts{
41+
GroupName: "test-rg-acc",
42+
})
43+
th.AssertNoErr(t, err)
44+
th.AssertEquals(t, listResp.Count >= 1, true)
45+
46+
t.Log("Attempting to update resource group")
47+
err = resourcegroups.Update(client, groupId, resourcegroups.UpdateOpts{
48+
GroupName: "test-rg-acc-updated",
49+
})
50+
th.AssertNoErr(t, err)
51+
52+
t.Log("Attempting to verify resource group was updated")
53+
group, err = resourcegroups.Get(client, groupId)
54+
th.AssertNoErr(t, err)
55+
th.AssertEquals(t, group.GroupName, "test-rg-acc-updated")
56+
}
57+
58+
func TestResourceGroupsWithTags(t *testing.T) {
59+
client, err := clients.NewCesV2Client()
60+
th.AssertNoErr(t, err)
61+
62+
t.Log("Attempting to create resource group with tags")
63+
createOpts := resourcegroups.CreateOpts{
64+
GroupName: "test-rg-tag-acc",
65+
Type: "TAG",
66+
Tags: []resourcegroups.ResourceGroupTag{
67+
{
68+
Key: "Environment",
69+
Value: "Test",
70+
},
71+
{
72+
Key: "Project",
73+
Value: "Acceptance",
74+
},
75+
},
76+
}
77+
78+
groupId, err := resourcegroups.Create(client, createOpts)
79+
th.AssertNoErr(t, err)
80+
t.Logf("Created resource group with tags: %s", groupId)
81+
82+
t.Cleanup(func() {
83+
t.Log("Attempting to delete resource group")
84+
_, err := resourcegroups.Delete(client, resourcegroups.DeleteOpts{
85+
GroupIds: []string{groupId},
86+
})
87+
th.AssertNoErr(t, err)
88+
})
89+
90+
t.Log("Attempting to get resource group details")
91+
group, err := resourcegroups.Get(client, groupId)
92+
th.AssertNoErr(t, err)
93+
th.AssertEquals(t, group.GroupName, "test-rg-tag-acc")
94+
th.AssertEquals(t, group.Type, "TAG")
95+
th.AssertEquals(t, len(group.Tags), 2)
96+
97+
t.Log("Attempting to update resource group tags")
98+
err = resourcegroups.Update(client, groupId, resourcegroups.UpdateOpts{
99+
GroupName: "test-rg-tag-acc-updated",
100+
Tags: []resourcegroups.ResourceGroupTag{
101+
{
102+
Key: "Environment",
103+
Value: "Production",
104+
},
105+
},
106+
})
107+
th.AssertNoErr(t, err)
108+
109+
t.Log("Attempting to verify resource group was updated")
110+
group, err = resourcegroups.Get(client, groupId)
111+
th.AssertNoErr(t, err)
112+
th.AssertEquals(t, group.GroupName, "test-rg-tag-acc-updated")
113+
}
114+
115+
func TestResourceGroupsList(t *testing.T) {
116+
client, err := clients.NewCesV2Client()
117+
th.AssertNoErr(t, err)
118+
119+
t.Log("Attempting to list all resource groups")
120+
listResp, err := resourcegroups.List(client, resourcegroups.ListOpts{
121+
Limit: 10,
122+
})
123+
th.AssertNoErr(t, err)
124+
125+
t.Logf("Found %d resource groups", listResp.Count)
126+
for _, rg := range listResp.ResourceGroups {
127+
t.Logf("Resource Group ID: %s, Name: %s, Type: %s",
128+
rg.GroupId, rg.GroupName, rg.Type)
129+
}
130+
}
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
package v2
2+
3+
import (
4+
"testing"
5+
6+
"github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients"
7+
"github.com/opentelekomcloud/gophertelekomcloud/openstack/ces/v2/templates"
8+
th "github.com/opentelekomcloud/gophertelekomcloud/testhelper"
9+
)
10+
11+
func TestAlarmTemplatesCRUD(t *testing.T) {
12+
client, err := clients.NewCesV2Client()
13+
th.AssertNoErr(t, err)
14+
15+
t.Log("Attempting to create alarm template")
16+
createOpts := templates.CreateOpts{
17+
TemplateName: "test-template-acc",
18+
TemplateDescription: "Test alarm template for acceptance tests",
19+
Policies: []templates.Policy{
20+
{
21+
Namespace: "SYS.ECS",
22+
DimensionName: "instance_id",
23+
MetricName: "cpu_util",
24+
Period: 300,
25+
Filter: "average",
26+
ComparisonOperator: ">",
27+
Value: 80,
28+
Unit: "%",
29+
Count: 3,
30+
AlarmLevel: 2,
31+
SuppressDuration: 300,
32+
},
33+
},
34+
}
35+
36+
templateId, err := templates.Create(client, createOpts)
37+
th.AssertNoErr(t, err)
38+
t.Logf("Created alarm template: %s", templateId)
39+
40+
t.Cleanup(func() {
41+
t.Log("Attempting to delete alarm template")
42+
_, err := templates.Delete(client, templates.DeleteOpts{
43+
TemplateIds: []string{templateId},
44+
DeleteAssociateAlarm: false,
45+
})
46+
th.AssertNoErr(t, err)
47+
})
48+
49+
t.Log("Attempting to get alarm template details")
50+
template, err := templates.Get(client, templateId)
51+
th.AssertNoErr(t, err)
52+
th.AssertEquals(t, template.TemplateName, "test-template-acc")
53+
th.AssertEquals(t, template.TemplateDescription, "Test alarm template for acceptance tests")
54+
th.AssertEquals(t, len(template.Policies), 1)
55+
th.AssertEquals(t, template.Policies[0].MetricName, "cpu_util")
56+
57+
t.Log("Attempting to list alarm templates")
58+
listResp, err := templates.List(client, templates.ListOpts{
59+
TemplateName: "test-template-acc",
60+
TemplateType: "custom",
61+
})
62+
th.AssertNoErr(t, err)
63+
th.AssertEquals(t, listResp.Count >= 1, true)
64+
65+
t.Log("Attempting to update alarm template")
66+
err = templates.Update(client, templateId, templates.UpdateOpts{
67+
TemplateName: "test-template-acc-updated",
68+
TemplateDescription: "Updated description",
69+
Policies: []templates.Policy{
70+
{
71+
Namespace: "SYS.ECS",
72+
DimensionName: "instance_id",
73+
MetricName: "cpu_util",
74+
Period: 300,
75+
Filter: "average",
76+
ComparisonOperator: ">=",
77+
Value: 90,
78+
Unit: "%",
79+
Count: 5,
80+
AlarmLevel: 1,
81+
SuppressDuration: 600,
82+
},
83+
},
84+
})
85+
th.AssertNoErr(t, err)
86+
87+
t.Log("Attempting to verify template was updated")
88+
template, err = templates.Get(client, templateId)
89+
th.AssertNoErr(t, err)
90+
th.AssertEquals(t, template.TemplateName, "test-template-acc-updated")
91+
th.AssertEquals(t, template.TemplateDescription, "Updated description")
92+
th.AssertEquals(t, template.Policies[0].ComparisonOperator, ">=")
93+
th.AssertEquals(t, template.Policies[0].Value, float64(90))
94+
th.AssertEquals(t, template.Policies[0].AlarmLevel, 1)
95+
}
96+
97+
func TestAlarmTemplatesList(t *testing.T) {
98+
client, err := clients.NewCesV2Client()
99+
th.AssertNoErr(t, err)
100+
101+
t.Log("Attempting to list system alarm templates")
102+
listResp, err := templates.List(client, templates.ListOpts{
103+
TemplateType: "system",
104+
Limit: 10,
105+
})
106+
th.AssertNoErr(t, err)
107+
108+
t.Logf("Found %d system alarm templates", listResp.Count)
109+
for _, tmpl := range listResp.AlarmTemplates {
110+
t.Logf("Template ID: %s, Name: %s, Type: %s",
111+
tmpl.TemplateId, tmpl.TemplateName, tmpl.TemplateType)
112+
}
113+
}
114+
115+
func TestAlarmTemplateAssociationAlarms(t *testing.T) {
116+
client, err := clients.NewCesV2Client()
117+
th.AssertNoErr(t, err)
118+
119+
t.Log("Attempting to create alarm template")
120+
createOpts := templates.CreateOpts{
121+
TemplateName: "test-template-assoc-acc",
122+
TemplateDescription: "Test template for association alarms",
123+
Policies: []templates.Policy{
124+
{
125+
Namespace: "SYS.ECS",
126+
DimensionName: "instance_id",
127+
MetricName: "cpu_util",
128+
Period: 300,
129+
Filter: "average",
130+
ComparisonOperator: ">",
131+
Value: 80,
132+
Unit: "%",
133+
Count: 3,
134+
AlarmLevel: 2,
135+
SuppressDuration: 300,
136+
},
137+
},
138+
}
139+
140+
templateId, err := templates.Create(client, createOpts)
141+
th.AssertNoErr(t, err)
142+
143+
t.Cleanup(func() {
144+
t.Log("Attempting to delete alarm template")
145+
_, err := templates.Delete(client, templates.DeleteOpts{
146+
TemplateIds: []string{templateId},
147+
DeleteAssociateAlarm: true,
148+
})
149+
th.AssertNoErr(t, err)
150+
})
151+
152+
t.Log("Attempting to list association alarms")
153+
listResp, err := templates.ListAssociationAlarms(client, templateId, templates.ListAssociationAlarmsOpts{
154+
Limit: 10,
155+
})
156+
th.AssertNoErr(t, err)
157+
158+
t.Logf("Found %d associated alarm rules", listResp.Count)
159+
for _, alarm := range listResp.Alarms {
160+
t.Logf("Alarm ID: %s, Name: %s", alarm.AlarmId, alarm.Name)
161+
}
162+
}

0 commit comments

Comments
 (0)