@@ -232,7 +232,7 @@ func updateMetrics(provider *gophercloud.ProviderClient, eo gophercloud.Endpoint
232
232
var errs []error
233
233
scrapeStart := time .Now ()
234
234
235
- cinderClient , neutronClient , loadbalancerClient , err := getClients (provider , eo )
235
+ cinderClient , neutronClient , loadbalancerClient , computeClient , err := getClients (provider , eo )
236
236
if err != nil {
237
237
err := logError ("creating openstack clients failed: %v" , err )
238
238
errs = append (errs , err )
@@ -252,6 +252,11 @@ func updateMetrics(provider *gophercloud.ProviderClient, eo gophercloud.Endpoint
252
252
errs = append (errs , err )
253
253
}
254
254
255
+ if err := metrics .PublishServerMetrics (computeClient , tenantID ); err != nil {
256
+ err := logError ("scraping server metrics failed: %v" , err )
257
+ errs = append (errs , err )
258
+ }
259
+
255
260
// check if Neutron is using FWaaS v1
256
261
// if FWaaS v2 is enabled, the extension alias is fwaas_v2 (the directories are the extension names)
257
262
// https://godoc.org/github.com/gophercloud/gophercloud/acceptance/openstack/networking/v2/extensions
@@ -292,27 +297,32 @@ func updateMetrics(provider *gophercloud.ProviderClient, eo gophercloud.Endpoint
292
297
return nil
293
298
}
294
299
295
- func getClients (provider * gophercloud.ProviderClient , endpointOpts gophercloud.EndpointOpts ) (cinder , neutron , loadbalancer * gophercloud.ServiceClient , err error ) {
300
+ func getClients (provider * gophercloud.ProviderClient , endpointOpts gophercloud.EndpointOpts ) (cinder , neutron , loadbalancer , compute * gophercloud.ServiceClient , err error ) {
296
301
cinderClient , err := openstack .NewBlockStorageV2 (provider , endpointOpts )
297
302
if err != nil {
298
- return nil , nil , nil , fmt .Errorf ("unable to get cinder client: %v" , err )
303
+ return nil , nil , nil , nil , fmt .Errorf ("unable to get cinder client: %v" , err )
299
304
}
300
305
301
306
neutronClient , err := openstack .NewNetworkV2 (provider , endpointOpts )
302
307
if err != nil {
303
- return nil , nil , nil , fmt .Errorf ("unable to get neutron client: %v" , err )
308
+ return nil , nil , nil , nil , fmt .Errorf ("unable to get neutron client: %v" , err )
309
+ }
310
+
311
+ computeClient , err := openstack .NewComputeV2 (provider , endpointOpts )
312
+ if err != nil {
313
+ return nil , nil , nil , nil , fmt .Errorf ("unable to get compute client: %v" , err )
304
314
}
305
315
306
316
if _ , err := provider .EndpointLocator (gophercloud.EndpointOpts {Type : "load-balancer" , Availability : gophercloud .AvailabilityPublic }); err != nil {
307
317
// we can use the neutron client to access lbaas because no octavia is available
308
- return cinderClient , neutronClient , neutronClient , nil
318
+ return cinderClient , neutronClient , neutronClient , computeClient , nil
309
319
}
310
320
311
321
loadbalancerClient , err := openstack .NewLoadBalancerV2 (provider , endpointOpts )
312
322
if err != nil {
313
- return nil , nil , nil , fmt .Errorf ("failed to create loadbalancer service client: %v" , err )
323
+ return nil , nil , nil , nil , fmt .Errorf ("failed to create loadbalancer service client: %v" , err )
314
324
}
315
- return cinderClient , neutronClient , loadbalancerClient , nil
325
+ return cinderClient , neutronClient , loadbalancerClient , computeClient , nil
316
326
}
317
327
318
328
func min (a , b time.Duration ) time.Duration {
0 commit comments