change metrics model
This commit is contained in:
parent
8994e57bdc
commit
7432c54254
|
@ -409,8 +409,8 @@ func (a *apic) SendMetrics() error {
|
||||||
version := cwversion.VersionStr()
|
version := cwversion.VersionStr()
|
||||||
metric := &models.Metrics{
|
metric := &models.Metrics{
|
||||||
ApilVersion: &version,
|
ApilVersion: &version,
|
||||||
Machines: make([]*models.MetricsSoftInfo, 0),
|
Machines: make([]*models.MetricsAgentInfo, 0),
|
||||||
Bouncers: make([]*models.MetricsSoftInfo, 0),
|
Bouncers: make([]*models.MetricsBouncerInfo, 0),
|
||||||
}
|
}
|
||||||
machines, err := a.dbClient.ListMachines()
|
machines, err := a.dbClient.ListMachines()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -421,17 +421,20 @@ func (a *apic) SendMetrics() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, machine := range machines {
|
for _, machine := range machines {
|
||||||
m := &models.MetricsSoftInfo{
|
m := &models.MetricsAgentInfo{
|
||||||
Version: machine.Version,
|
Version: machine.Version,
|
||||||
Name: machine.MachineId,
|
Name: machine.MachineId,
|
||||||
|
LastUpdate: machine.UpdatedAt.String(),
|
||||||
}
|
}
|
||||||
metric.Machines = append(metric.Machines, m)
|
metric.Machines = append(metric.Machines, m)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, bouncer := range bouncers {
|
for _, bouncer := range bouncers {
|
||||||
m := &models.MetricsSoftInfo{
|
m := &models.MetricsBouncerInfo{
|
||||||
Version: bouncer.Version,
|
Version: bouncer.Version,
|
||||||
Name: bouncer.Type,
|
Name: bouncer.Name,
|
||||||
|
Type: bouncer.Type,
|
||||||
|
LastPull: bouncer.LastPull.String(),
|
||||||
}
|
}
|
||||||
metric.Bouncers = append(metric.Bouncers, m)
|
metric.Bouncers = append(metric.Bouncers, m)
|
||||||
}
|
}
|
||||||
|
|
|
@ -767,17 +767,34 @@ definitions:
|
||||||
bouncers:
|
bouncers:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
$ref: '#/definitions/MetricsSoftInfo'
|
$ref: '#/definitions/MetricsBouncerInfo'
|
||||||
machines:
|
machines:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
$ref: '#/definitions/MetricsSoftInfo'
|
$ref: '#/definitions/MetricsAgentInfo'
|
||||||
required:
|
required:
|
||||||
- apil_version
|
- apil_version
|
||||||
- bouncers
|
- bouncers
|
||||||
- machines
|
- machines
|
||||||
MetricsSoftInfo:
|
MetricsBouncerInfo:
|
||||||
title: MetricsSoftInfo
|
title: MetricsBouncerInfo
|
||||||
|
description: Software version info (so we can warn users about out-of-date software). The software name and the version are "guessed" from the user-agent
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
description: name of the component
|
||||||
|
type:
|
||||||
|
type: string
|
||||||
|
description: bouncer type (firewall, php ...)
|
||||||
|
version:
|
||||||
|
type: string
|
||||||
|
description: software version
|
||||||
|
last_pull:
|
||||||
|
type: string
|
||||||
|
description: last bouncer pull date
|
||||||
|
MetricsAgentInfo:
|
||||||
|
title: MetricsAgentInfo
|
||||||
description: Software version info (so we can warn users about out-of-date software). The software name and the version are "guessed" from the user-agent
|
description: Software version info (so we can warn users about out-of-date software). The software name and the version are "guessed" from the user-agent
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
@ -787,6 +804,12 @@ definitions:
|
||||||
version:
|
version:
|
||||||
type: string
|
type: string
|
||||||
description: software version
|
description: software version
|
||||||
|
last_update:
|
||||||
|
type: string
|
||||||
|
description: last agent update date
|
||||||
|
last_push:
|
||||||
|
type: string
|
||||||
|
description: last agent push date
|
||||||
Decision:
|
Decision:
|
||||||
title: Decision
|
title: Decision
|
||||||
type: object
|
type: object
|
||||||
|
|
|
@ -6,6 +6,7 @@ package models
|
||||||
// Editing this file might prove futile when you re-run the swagger generate command
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"github.com/go-openapi/errors"
|
"github.com/go-openapi/errors"
|
||||||
|
@ -25,11 +26,11 @@ type Metrics struct {
|
||||||
|
|
||||||
// bouncers
|
// bouncers
|
||||||
// Required: true
|
// Required: true
|
||||||
Bouncers []*MetricsSoftInfo `json:"bouncers"`
|
Bouncers []*MetricsBouncerInfo `json:"bouncers"`
|
||||||
|
|
||||||
// machines
|
// machines
|
||||||
// Required: true
|
// Required: true
|
||||||
Machines []*MetricsSoftInfo `json:"machines"`
|
Machines []*MetricsAgentInfo `json:"machines"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate validates this metrics
|
// Validate validates this metrics
|
||||||
|
@ -113,6 +114,60 @@ func (m *Metrics) validateMachines(formats strfmt.Registry) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ContextValidate validate this metrics based on the context it is used
|
||||||
|
func (m *Metrics) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.contextValidateBouncers(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.contextValidateMachines(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *Metrics) contextValidateBouncers(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
for i := 0; i < len(m.Bouncers); i++ {
|
||||||
|
|
||||||
|
if m.Bouncers[i] != nil {
|
||||||
|
if err := m.Bouncers[i].ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("bouncers" + "." + strconv.Itoa(i))
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *Metrics) contextValidateMachines(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
for i := 0; i < len(m.Machines); i++ {
|
||||||
|
|
||||||
|
if m.Machines[i] != nil {
|
||||||
|
if err := m.Machines[i].ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("machines" + "." + strconv.Itoa(i))
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// MarshalBinary interface implementation
|
// MarshalBinary interface implementation
|
||||||
func (m *Metrics) MarshalBinary() ([]byte, error) {
|
func (m *Metrics) MarshalBinary() ([]byte, error) {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
// Code generated by go-swagger; DO NOT EDIT.
|
|
||||||
|
|
||||||
package models
|
|
||||||
|
|
||||||
// This file was generated by the swagger tool.
|
|
||||||
// Editing this file might prove futile when you re-run the swagger generate command
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/go-openapi/strfmt"
|
|
||||||
"github.com/go-openapi/swag"
|
|
||||||
)
|
|
||||||
|
|
||||||
// MetricsSoftInfo MetricsSoftInfo
|
|
||||||
//
|
|
||||||
// Software version info (so we can warn users about out-of-date software). The software name and the version are "guessed" from the user-agent
|
|
||||||
//
|
|
||||||
// swagger:model MetricsSoftInfo
|
|
||||||
type MetricsSoftInfo struct {
|
|
||||||
|
|
||||||
// name of the component
|
|
||||||
Name string `json:"name,omitempty"`
|
|
||||||
|
|
||||||
// software version
|
|
||||||
Version string `json:"version,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validate validates this metrics soft info
|
|
||||||
func (m *MetricsSoftInfo) Validate(formats strfmt.Registry) error {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalBinary interface implementation
|
|
||||||
func (m *MetricsSoftInfo) MarshalBinary() ([]byte, error) {
|
|
||||||
if m == nil {
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
return swag.WriteJSON(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalBinary interface implementation
|
|
||||||
func (m *MetricsSoftInfo) UnmarshalBinary(b []byte) error {
|
|
||||||
var res MetricsSoftInfo
|
|
||||||
if err := swag.ReadJSON(b, &res); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
*m = res
|
|
||||||
return nil
|
|
||||||
}
|
|
Loading…
Reference in a new issue