1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
|
// +build acceptance metric measures
package v1
import (
"testing"
"github.com/gophercloud/utils/acceptance/clients"
"github.com/gophercloud/utils/gnocchi/metric/v1/measures"
)
func TestMeasuresCRUD(t *testing.T) {
client, err := clients.NewGnocchiV1Client()
if err != nil {
t.Fatalf("Unable to create a Gnocchi client: %v", err)
}
// Create a single metric to test Create measures request.
metric, err := CreateMetric(t, client)
if err != nil {
t.Fatalf("Unable to create a Gnocchi metric: %v", err)
}
defer DeleteMetric(t, client, metric.ID)
// Test Create measures request.
if err := CreateMeasures(t, client, metric.ID); err != nil {
t.Fatalf("Unable to create measures inside the Gnocchi metric: %v", err)
}
// Check created measures.
listOpts := measures.ListOpts{
Refresh: true,
}
allPages, err := measures.List(client, metric.ID, listOpts).AllPages()
if err != nil {
t.Fatalf("Unable to list measures of the metric %s: %v", metric.ID, err)
}
metricMeasures, err := measures.ExtractMeasures(allPages)
if err != nil {
t.Fatalf("Unable to extract measures: %v", metricMeasures)
}
t.Log(metricMeasures)
}
func TestMeasuresBatchCreateMetrics(t *testing.T) {
client, err := clients.NewGnocchiV1Client()
if err != nil {
t.Fatalf("Unable to create a Gnocchi client: %v", err)
}
// Create a couple of metrics to test BatchCreateMetrics requets.
metricToBatchOne, err := CreateMetric(t, client)
if err != nil {
t.Fatalf("Unable to create a Gnocchi metric: %v", err)
}
defer DeleteMetric(t, client, metricToBatchOne.ID)
metricToBatchTwo, err := CreateMetric(t, client)
if err != nil {
t.Fatalf("Unable to create a Gnocchi metric: %v", err)
}
defer DeleteMetric(t, client, metricToBatchTwo.ID)
// Test create batch request based on metrics IDs.
if err := MeasuresBatchCreateMetrics(t, client, metricToBatchOne.ID, metricToBatchTwo.ID); err != nil {
t.Fatalf("Unable to create measures inside Gnocchi metrics: %v", err)
}
// Check measures of each metric after the BatchMetrics request.
listOpts := measures.ListOpts{
Refresh: true,
}
allPagesMetricOne, err := measures.List(client, metricToBatchOne.ID, listOpts).AllPages()
if err != nil {
t.Fatalf("Unable to list measures of the metric %s: %v", metricToBatchOne.ID, err)
}
metricOneMeasures, err := measures.ExtractMeasures(allPagesMetricOne)
if err != nil {
t.Fatalf("Unable to extract measures: %v", metricOneMeasures)
}
t.Logf("Measures for the metric: %s, %v", metricToBatchOne.ID, metricOneMeasures)
allPagesMetricTwo, err := measures.List(client, metricToBatchTwo.ID, listOpts).AllPages()
if err != nil {
t.Fatalf("Unable to list measures of the metric %s: %v", metricToBatchTwo.ID, err)
}
metricTwoMeasures, err := measures.ExtractMeasures(allPagesMetricTwo)
if err != nil {
t.Fatalf("Unable to extract measures: %v", metricTwoMeasures)
}
t.Logf("Measures for the metric: %s, %v", metricToBatchTwo.ID, metricTwoMeasures)
}
func TestMeasuresBatchCreateResourcesMetrics(t *testing.T) {
client, err := clients.NewGnocchiV1Client()
if err != nil {
t.Fatalf("Unable to create a Gnocchi client: %v", err)
}
// Create a couple of resources with metrics to test BatchCreateResourcesMetrics requets.
batchResourcesMetrics, err := CreateResourcesToBatchMeasures(t, client)
if err != nil {
t.Fatalf("Unable to create Gnocchi resources and metrics: %v", err)
}
// Test create batch request based on resource IDs.
if err := MeasuresBatchCreateResourcesMetrics(t, client, batchResourcesMetrics); err != nil {
t.Fatalf("Unable to create measures inside Gnocchi metrics: %v", err)
}
// Delete resources.
for resourceID := range batchResourcesMetrics {
DeleteResource(t, client, "generic", resourceID)
}
}
|