add process with node API key added
This commit is contained in:
@ -234,3 +234,66 @@ func (r *NodeRepository) RetriveApiKeyList() ([]models.ApiKey, error) {
|
||||
|
||||
return apiKeys, nil
|
||||
}
|
||||
|
||||
func addServiceToNode(node *models.NodeInfo, service *models.Service, nodeApiKey string) error {
|
||||
|
||||
apiURL := node.Address + "/add"
|
||||
|
||||
bodyData := map[string]string{
|
||||
"name": service.Name,
|
||||
"command": service.Command,
|
||||
}
|
||||
|
||||
jsonData, err := json.Marshal(bodyData)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
log.Printf("Node api key: %v", nodeApiKey)
|
||||
|
||||
req, err := http.NewRequest(http.MethodPost, apiURL, bytes.NewBuffer(jsonData))
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
req.Header.Set("X-Node-API-Key", nodeApiKey)
|
||||
|
||||
if err != nil {
|
||||
return fmt.Errorf("Erreur lors de la création de la requête POST : %v", err)
|
||||
}
|
||||
|
||||
client := http.Client{
|
||||
Timeout: 10 * time.Second,
|
||||
}
|
||||
|
||||
resp, err := client.Do(req)
|
||||
|
||||
if err != nil {
|
||||
return fmt.Errorf("Erreur lors de l'exécution de la requête POST : %v", err)
|
||||
}
|
||||
|
||||
defer resp.Body.Close()
|
||||
|
||||
if resp.StatusCode != http.StatusNoContent && resp.StatusCode != http.StatusOK {
|
||||
return fmt.Errorf("Requête POST échouée pour %s. Statut : %s", apiURL, resp.Status)
|
||||
}
|
||||
|
||||
log.Printf("Service %v ajouté avec succès. Réponse : %s", service.Name, resp.Status)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *NodeRepository) AddServiceToNode(service *models.Service, node *models.NodeInfo, nodeApiKey string) error {
|
||||
|
||||
//tx, err := r.DB.Begin()
|
||||
|
||||
//r.RegisterService(*service, node.Id)
|
||||
|
||||
log.Printf("add service name %v, on nodeId %v", service.Name, node.Id)
|
||||
|
||||
err := addServiceToNode(node, service, nodeApiKey)
|
||||
if err != nil {
|
||||
//tx.Rollback()
|
||||
return fmt.Errorf("échec sur le node, annulation du changement en base de données : %w", err)
|
||||
}
|
||||
|
||||
//return tx.Commit()
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user