add process with node API key added

This commit is contained in:
Blomios
2026-01-18 22:22:00 +01:00
parent b69c69e11a
commit e8e2a4a01e
17 changed files with 390 additions and 156 deletions

View File

@ -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
}