diff options
Diffstat (limited to 'src/orchestrator/pkg/rtcontext/rtcontext.go')
-rw-r--r-- | src/orchestrator/pkg/rtcontext/rtcontext.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/orchestrator/pkg/rtcontext/rtcontext.go b/src/orchestrator/pkg/rtcontext/rtcontext.go index 5c5bee13..e1f1c03b 100644 --- a/src/orchestrator/pkg/rtcontext/rtcontext.go +++ b/src/orchestrator/pkg/rtcontext/rtcontext.go @@ -42,6 +42,7 @@ type Rtcontext interface { RtcDeletePrefix(handle interface{}) (error) RtcGetHandles(handle interface{}) ([]interface{}, error) RtcGetValue(handle interface{}, value interface{}) (error) + RtcUpdateValue(handle interface{}, value interface{}) (error) } //Create context by assiging a new id @@ -220,3 +221,18 @@ func (rtc *RunTimeContext) RtcGetValue(handle interface{}, value interface{}) (e return nil } + +// Update the value of a given handle +func (rtc *RunTimeContext) RtcUpdateValue(handle interface{}, value interface{}) (error) { + str := fmt.Sprintf("%v", handle) + sid := fmt.Sprintf("%v", rtc.cid) + if !strings.HasPrefix(str, sid) { + return pkgerrors.Errorf("Not a valid run time context handle") + } + err := contextdb.Db.Put(str, value) + if err != nil { + return pkgerrors.Errorf("Error updating run time context value: %s", err.Error()) + } + return nil + +} |