From b2c0a68d0abf7457d18c89b634265087758b63fd Mon Sep 17 00:00:00 2001 From: Manjunath Ranganathaiah Date: Mon, 16 Mar 2020 20:27:26 +0000 Subject: Add update interface to run time context library Issue-ID: MULTICLOUD-1005 Change-Id: Ie6a8f5d83f56ea12107fdf81fe6819b1637b252a Signed-off-by: Manjunath Ranganathaiah --- src/orchestrator/pkg/rtcontext/rtcontext.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/orchestrator/pkg/rtcontext/rtcontext.go') 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 + +} -- cgit