Retrieve current process from leader, clone metadata, introduce new state 'deploying'

This commit is contained in:
Ingo Oppermann
2024-07-22 16:58:57 +02:00
parent 9e52f19a66
commit 879819f10f
19 changed files with 282 additions and 192 deletions

View File

@@ -2,6 +2,7 @@ package store
import (
"fmt"
"maps"
"time"
"github.com/datarhei/core/v16/restream/app"
@@ -219,36 +220,32 @@ func (s *store) ProcessList() []Process {
return processes
}
func (s *store) ProcessGet(id app.ProcessID) (Process, error) {
func (s *store) ProcessGet(id app.ProcessID) (Process, string, error) {
s.lock.RLock()
defer s.lock.RUnlock()
process, ok := s.data.Process[id.String()]
if !ok {
return Process{}, fmt.Errorf("not found%w", ErrNotFound)
return Process{}, "", fmt.Errorf("not found%w", ErrNotFound)
}
nodeid := s.data.ProcessNodeMap[id.String()]
return Process{
CreatedAt: process.CreatedAt,
UpdatedAt: process.UpdatedAt,
Config: process.Config.Clone(),
Order: process.Order,
Metadata: process.Metadata,
Metadata: maps.Clone(process.Metadata),
Error: process.Error,
}, nil
}, nodeid, nil
}
func (s *store) ProcessGetNodeMap() map[string]string {
s.lock.RLock()
defer s.lock.RUnlock()
m := map[string]string{}
for key, value := range s.data.ProcessNodeMap {
m[key] = value
}
return m
return maps.Clone(s.data.ProcessNodeMap)
}
func (s *store) ProcessGetNode(id app.ProcessID) (string, error) {