github.com/huaweicloud/golangsdk@v0.0.0-20210831081626-d823fe11ceba/openstack/blockstorage/extensions/schedulerstats/testing/fixtures.go (about)

     1  package testing
     2  
     3  import (
     4  	"fmt"
     5  	"math"
     6  	"net/http"
     7  	"testing"
     8  
     9  	"github.com/huaweicloud/golangsdk/openstack/blockstorage/extensions/schedulerstats"
    10  	"github.com/huaweicloud/golangsdk/testhelper"
    11  	"github.com/huaweicloud/golangsdk/testhelper/client"
    12  )
    13  
    14  const StoragePoolsListBody = `
    15  {
    16      "pools": [
    17          {
    18              "name": "rbd:cinder.volumes.ssd@cinder.volumes.ssd#cinder.volumes.ssd"
    19          },
    20          {
    21              "name": "rbd:cinder.volumes.hdd@cinder.volumes#cinder.volumes.hdd"
    22          }
    23      ]
    24  }
    25  `
    26  
    27  const StoragePoolsListBodyDetail = `
    28  {
    29      "pools": [
    30          {
    31              "capabilities": {
    32                  "driver_version": "1.2.0",
    33                  "filter_function": null,
    34                  "free_capacity_gb": 64765,
    35                  "goodness_function": null,
    36                  "multiattach": false,
    37                  "reserved_percentage": 0,
    38                  "storage_protocol": "ceph",
    39                  "timestamp": "2016-11-24T10:33:51.248360",
    40                  "total_capacity_gb": 787947.93,
    41                  "vendor_name": "Open Source",
    42                  "volume_backend_name": "cinder.volumes.ssd"
    43              },
    44              "name": "rbd:cinder.volumes.ssd@cinder.volumes.ssd#cinder.volumes.ssd"
    45          },
    46          {
    47              "capabilities": {
    48                  "driver_version": "1.2.0",
    49                  "filter_function": null,
    50                  "free_capacity_gb": "unknown",
    51                  "goodness_function": null,
    52                  "multiattach": false,
    53                  "reserved_percentage": 0,
    54                  "storage_protocol": "ceph",
    55                  "timestamp": "2016-11-24T10:33:43.138628",
    56                  "total_capacity_gb": "infinite",
    57                  "vendor_name": "Open Source",
    58                  "volume_backend_name": "cinder.volumes.hdd"
    59              },
    60              "name": "rbd:cinder.volumes.hdd@cinder.volumes.hdd#cinder.volumes.hdd"
    61          }
    62      ]
    63  }
    64  `
    65  
    66  var (
    67  	StoragePoolFake1 = schedulerstats.StoragePool{
    68  		Name: "rbd:cinder.volumes.ssd@cinder.volumes.ssd#cinder.volumes.ssd",
    69  		Capabilities: schedulerstats.Capabilities{
    70  			DriverVersion:     "1.2.0",
    71  			FreeCapacityGB:    64765,
    72  			StorageProtocol:   "ceph",
    73  			TotalCapacityGB:   787947.93,
    74  			VendorName:        "Open Source",
    75  			VolumeBackendName: "cinder.volumes.ssd",
    76  		},
    77  	}
    78  
    79  	StoragePoolFake2 = schedulerstats.StoragePool{
    80  		Name: "rbd:cinder.volumes.hdd@cinder.volumes.hdd#cinder.volumes.hdd",
    81  		Capabilities: schedulerstats.Capabilities{
    82  			DriverVersion:     "1.2.0",
    83  			FreeCapacityGB:    0.0,
    84  			StorageProtocol:   "ceph",
    85  			TotalCapacityGB:   math.Inf(1),
    86  			VendorName:        "Open Source",
    87  			VolumeBackendName: "cinder.volumes.hdd",
    88  		},
    89  	}
    90  )
    91  
    92  func HandleStoragePoolsListSuccessfully(t *testing.T) {
    93  	testhelper.Mux.HandleFunc("/scheduler-stats/get_pools", func(w http.ResponseWriter, r *http.Request) {
    94  		testhelper.TestMethod(t, r, "GET")
    95  		testhelper.TestHeader(t, r, "X-Auth-Token", client.TokenID)
    96  
    97  		w.Header().Add("Content-Type", "application/json")
    98  
    99  		r.ParseForm()
   100  		if r.FormValue("detail") == "true" {
   101  			fmt.Fprintf(w, StoragePoolsListBodyDetail)
   102  		} else {
   103  			fmt.Fprintf(w, StoragePoolsListBody)
   104  		}
   105  	})
   106  }