Add api to get cluster nodes' resources (#260)

This commit is contained in:
Cesar N
2020-08-28 21:06:45 -07:00
committed by GitHub
parent 412ac0a603
commit 30f5943f8a
13 changed files with 1172 additions and 0 deletions

View File

@@ -0,0 +1,97 @@
// Code generated by go-swagger; DO NOT EDIT.
// This file is part of MinIO Console Server
// Copyright (c) 2020 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
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 (
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
)
// ClusterResources cluster resources
//
// swagger:model clusterResources
type ClusterResources struct {
// nodes
Nodes []*NodeInfo `json:"nodes"`
}
// Validate validates this cluster resources
func (m *ClusterResources) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateNodes(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ClusterResources) validateNodes(formats strfmt.Registry) error {
if swag.IsZero(m.Nodes) { // not required
return nil
}
for i := 0; i < len(m.Nodes); i++ {
if swag.IsZero(m.Nodes[i]) { // not required
continue
}
if m.Nodes[i] != nil {
if err := m.Nodes[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("nodes" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
// MarshalBinary interface implementation
func (m *ClusterResources) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ClusterResources) UnmarshalBinary(b []byte) error {
var res ClusterResources
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

97
models/node_info.go Normal file
View File

@@ -0,0 +1,97 @@
// Code generated by go-swagger; DO NOT EDIT.
// This file is part of MinIO Console Server
// Copyright (c) 2020 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
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/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
)
// NodeInfo node info
//
// swagger:model nodeInfo
type NodeInfo struct {
// Represents the resources of a node that are available for scheduling.
AllocatableResources map[string]int64 `json:"allocatable_resources,omitempty"`
// name
Name string `json:"name,omitempty"`
// taints
Taints *NodeTaints `json:"taints,omitempty"`
// Represents the total resources of a node.
TotalResources map[string]int64 `json:"total_resources,omitempty"`
}
// Validate validates this node info
func (m *NodeInfo) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateTaints(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *NodeInfo) validateTaints(formats strfmt.Registry) error {
if swag.IsZero(m.Taints) { // not required
return nil
}
if m.Taints != nil {
if err := m.Taints.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("taints")
}
return err
}
}
return nil
}
// MarshalBinary interface implementation
func (m *NodeInfo) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *NodeInfo) UnmarshalBinary(b []byte) error {
var res NodeInfo
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

66
models/node_taints.go Normal file
View File

@@ -0,0 +1,66 @@
// Code generated by go-swagger; DO NOT EDIT.
// This file is part of MinIO Console Server
// Copyright (c) 2020 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
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"
)
// NodeTaints node taints
//
// swagger:model nodeTaints
type NodeTaints struct {
// no execute
NoExecute []string `json:"no_execute"`
// no schedule
NoSchedule []string `json:"no_schedule"`
// prefer no schedule
PreferNoSchedule []string `json:"prefer_no_schedule"`
}
// Validate validates this node taints
func (m *NodeTaints) Validate(formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *NodeTaints) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *NodeTaints) UnmarshalBinary(b []byte) error {
var res NodeTaints
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}