github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/networking/v2/extensions/qos/rules/rules.go (about) 1 package rules 2 3 import ( 4 "testing" 5 6 "github.com/gophercloud/gophercloud" 7 "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/qos/rules" 8 th "github.com/gophercloud/gophercloud/testhelper" 9 ) 10 11 // CreateBandwidthLimitRule will create a QoS BandwidthLimitRule associated with the provided QoS policy. 12 // An error will be returned if the QoS rule could not be created. 13 func CreateBandwidthLimitRule(t *testing.T, client *gophercloud.ServiceClient, policyID string) (*rules.BandwidthLimitRule, error) { 14 maxKBps := 3000 15 maxBurstKBps := 300 16 17 createOpts := rules.CreateBandwidthLimitRuleOpts{ 18 MaxKBps: maxKBps, 19 MaxBurstKBps: maxBurstKBps, 20 } 21 22 t.Logf("Attempting to create a QoS bandwidth limit rule with max_kbps: %d, max_burst_kbps: %d", maxKBps, maxBurstKBps) 23 24 rule, err := rules.CreateBandwidthLimitRule(client, policyID, createOpts).ExtractBandwidthLimitRule() 25 if err != nil { 26 return nil, err 27 } 28 29 t.Logf("Succesfully created a QoS bandwidth limit rule") 30 31 th.AssertEquals(t, maxKBps, rule.MaxKBps) 32 th.AssertEquals(t, maxBurstKBps, rule.MaxBurstKBps) 33 34 return rule, nil 35 } 36 37 // CreateDSCPMarkingRule will create a QoS DSCPMarkingRule associated with the provided QoS policy. 38 // An error will be returned if the QoS rule could not be created. 39 func CreateDSCPMarkingRule(t *testing.T, client *gophercloud.ServiceClient, policyID string) (*rules.DSCPMarkingRule, error) { 40 dscpMark := 26 41 42 createOpts := rules.CreateDSCPMarkingRuleOpts{ 43 DSCPMark: dscpMark, 44 } 45 46 t.Logf("Attempting to create a QoS DSCP marking rule with dscp_mark: %d", dscpMark) 47 48 rule, err := rules.CreateDSCPMarkingRule(client, policyID, createOpts).ExtractDSCPMarkingRule() 49 if err != nil { 50 return nil, err 51 } 52 53 t.Logf("Succesfully created a QoS DSCP marking rule") 54 55 th.AssertEquals(t, dscpMark, rule.DSCPMark) 56 57 return rule, nil 58 } 59 60 // CreateMinimumBandwidthRule will create a QoS MinimumBandwidthRule associated with the provided QoS policy. 61 // An error will be returned if the QoS rule could not be created. 62 func CreateMinimumBandwidthRule(t *testing.T, client *gophercloud.ServiceClient, policyID string) (*rules.MinimumBandwidthRule, error) { 63 minKBps := 1000 64 65 createOpts := rules.CreateMinimumBandwidthRuleOpts{ 66 MinKBps: minKBps, 67 } 68 69 t.Logf("Attempting to create a QoS minimum bandwidth rule with min_kbps: %d", minKBps) 70 71 rule, err := rules.CreateMinimumBandwidthRule(client, policyID, createOpts).ExtractMinimumBandwidthRule() 72 if err != nil { 73 return nil, err 74 } 75 76 t.Logf("Succesfully created a QoS minimum bandwidth rule") 77 78 th.AssertEquals(t, minKBps, rule.MinKBps) 79 80 return rule, nil 81 }