...

Source file src/scheduler/faas_openfaas/services_utils_generic.go

Documentation: scheduler/faas_openfaas

     1  /*
     2   * P2PFaaS - A framework for FaaS Load Balancing
     3   * Copyright (c) 2019 - 2022. Gabriele Proietti Mattia <pm.gabriele@outlook.com>
     4   *
     5   * This program is free software: you can redistribute it and/or modify
     6   * it under the terms of the GNU General Public License as published by
     7   * the Free Software Foundation, either version 3 of the License, or
     8   * (at your option) any later version.
     9   *
    10   * This program is distributed in the hope that it will be useful,
    11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
    12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13   * GNU General Public License for more details.
    14   *
    15   * You should have received a copy of the GNU General Public License
    16   * along with this program.  If not, see <https://www.gnu.org/licenses/>.
    17   */
    18  
    19  package faas_openfaas
    20  
    21  // GetCurrentLoad parse the current load from OpenFaas
    22  func GenGetCurrentLoad(host string) (*CurrentLoad, error) {
    23  	services, _, err := GenFunctionsGet(host)
    24  	if err != nil {
    25  		return nil, err
    26  	}
    27  
    28  	replicas := uint(0)
    29  	avReplicas := uint(0)
    30  	nServices := uint(0)
    31  	for _, service := range services {
    32  		replicas += service.Replicas
    33  		avReplicas += service.AvailableReplicas
    34  		nServices += uint(1)
    35  	}
    36  
    37  	load := CurrentLoad{
    38  		TotalReplicas:          replicas,
    39  		TotalAvailableReplicas: avReplicas,
    40  		NumberOfServices:       nServices,
    41  	}
    42  
    43  	return &load, nil
    44  }
    45  
    46  func GenFunctionGetAvailableReplicas(host string, serviceName string) (uint, error) {
    47  	service, _, err := GenFunctionGet(host, serviceName)
    48  	if err != nil {
    49  		return 0, err
    50  	}
    51  	return service.AvailableReplicas, nil
    52  }
    53  
    54  func GenFunctionGetReplicas(host string, serviceName string) (uint, error) {
    55  	service, _, err := GenFunctionGet(host, serviceName)
    56  	if err != nil {
    57  		return 0, err
    58  	}
    59  	return service.Replicas, nil
    60  }
    61  

View as plain text