Skip to content

Commit

Permalink
Initial FOrcE implementation (#6)
Browse files Browse the repository at this point in the history
* update dependency versions

Signed-off-by: gabrik <[email protected]>

* fix in go.mod

Signed-off-by: gabrik <[email protected]>

* added missing GetNetwork to FIMAPI.Network

Signed-off-by: gabrik <[email protected]>

* Added FDU.GetCompatibleNodes

Signed-off-by: gabrik <[email protected]>

* updated dependency fog05-sdk

Signed-off-by: gabrik <[email protected]>

* small change in Onboard

Signed-off-by: gabrik <[email protected]>

* fix in GetCompatibleNodes

Signed-off-by: gabrik <[email protected]>

* fixed marshaling of evals results

Signed-off-by: gabrik <[email protected]>

* update dependency to fog05-sdk

Signed-off-by: gabrik <[email protected]>

* updated fog05 sdk dependecy

Signed-off-by: gabrik <[email protected]>

* updated fog05 sdk dependecy

Signed-off-by: gabrik <[email protected]>

* updated dependency to fog05 go sdk 0.2.2

Signed-off-by: gabrik <[email protected]>

* readded zenoh indirect dependency

Signed-off-by: gabrik <[email protected]>
  • Loading branch information
gabrik authored Oct 8, 2020
1 parent 9254684 commit 6295950
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 54 deletions.
92 changes: 41 additions & 51 deletions fog05/fim.go
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,12 @@ func (n *NetworkAPI) AddNetwork(descriptor fog05sdk.VirtualNetwork) error {
return n.connector.Global.Desired.AddNetwork(n.sysid, n.tenantid, descriptor.UUID, descriptor)
}

// GetNetwork gets a virtual network from the system catalog
func (n *NetworkAPI) GetNetwork(netid string) (*fog05sdk.VirtualNetwork, error) {
return n.connector.Global.Actual.GetNetwork(n.sysid, n.tenantid, netid)

}

// RemoveNetwork remove a virtual network from the system catalog
func (n *NetworkAPI) RemoveNetwork(netid string) error {
return n.connector.Global.Desired.RemoveNetwork(n.sysid, n.tenantid, netid)
Expand All @@ -196,12 +202,8 @@ func (n *NetworkAPI) AddNetworkToNode(nodeid string, descriptor fog05sdk.Virtual
}

var net fog05sdk.VirtualNetwork
v, err := json.Marshal(*res.Result)
if err != nil {
return nil, err
}

err = json.Unmarshal([]byte(v), &net)
err = json.Unmarshal([]byte(*res.Result), &net)
if err != nil {
return nil, err
}
Expand All @@ -224,12 +226,8 @@ func (n *NetworkAPI) RemoveNetworkFromNode(nodeid string, netid string) (*fog05s
}

var net fog05sdk.VirtualNetwork
v, err := json.Marshal(*res.Result)
if err != nil {
return nil, err
}

err = json.Unmarshal([]byte(v), &net)
err = json.Unmarshal([]byte(*res.Result), &net)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -370,12 +368,8 @@ func (n *NetworkAPI) AddRouterPort(nodeid string, routerid string, portType stri
}

var r fog05sdk.RouterRecord
v, err := json.Marshal(*res.Result)
if err != nil {
return nil, err
}

err = json.Unmarshal([]byte(v), &r)
err = json.Unmarshal([]byte(*res.Result), &r)
if err != nil {
return nil, err
}
Expand All @@ -394,12 +388,8 @@ func (n *NetworkAPI) RemoveRouterPort(nodeid string, routerid string, vnetid str
}

var r fog05sdk.RouterRecord
v, err := json.Marshal(*res.Result)
if err != nil {
return nil, err
}

err = json.Unmarshal([]byte(v), &r)
err = json.Unmarshal([]byte(*res.Result), &r)
if err != nil {
return nil, err
}
Expand All @@ -418,12 +408,8 @@ func (n *NetworkAPI) CreateFloatingIP(nodeid string) (*fog05sdk.FloatingIPRecord
}

var fip fog05sdk.FloatingIPRecord
v, err := json.Marshal(*res.Result)
if err != nil {
return nil, err
}

err = json.Unmarshal([]byte(v), &fip)
err = json.Unmarshal([]byte(*res.Result), &fip)
if err != nil {
return nil, err
}
Expand All @@ -442,12 +428,8 @@ func (n *NetworkAPI) DeleteFloatingIP(nodeid string, ipid string) (*fog05sdk.Flo
}

var fip fog05sdk.FloatingIPRecord
v, err := json.Marshal(*res.Result)
if err != nil {
return nil, err
}

err = json.Unmarshal([]byte(v), &fip)
err = json.Unmarshal([]byte(*res.Result), &fip)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -487,12 +469,8 @@ func (n *NetworkAPI) RetainFloatingIP(nodeid string, ipid string, cpid string) (
}

var fip fog05sdk.FloatingIPRecord
v, err := json.Marshal(*res.Result)
if err != nil {
return nil, err
}

err = json.Unmarshal([]byte(v), &fip)
err = json.Unmarshal([]byte(*res.Result), &fip)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -593,12 +571,7 @@ func (f *FDUAPI) Onboard(descriptor fog05sdk.FDU) (*fog05sdk.FDU, error) {
return nil, &fog05sdk.FError{*res.ErrorMessage + " ErrNo: " + string(*res.Error), nil}
}

v, err := json.Marshal(*res.Result)
if err != nil {
return nil, err
}

err = json.Unmarshal([]byte(v), &fdu)
err = json.Unmarshal([]byte(*res.Result), &fdu)
if err != nil {
return nil, err
}
Expand All @@ -611,13 +584,35 @@ func (f *FDUAPI) Offload(fduid string) (string, error) {
return fduid, err
}

// GetCompatibleNodes gets a list off compatible nodes in the system for the given fdu, node compatibility verification is decentralized each node verifies and then replies
func (f *FDUAPI) GetCompatibleNodes(fduid string) ([]string, error) {
nodes := []string{}
fdu, err := f.connector.Global.Actual.GetCatalogFDUInfo(f.sysid, f.tenantid, fduid)
if err != nil {
return nodes, err
}
res, err := f.connector.Global.Actual.CallMultiNodeCheck(f.sysid, f.tenantid, *fdu)
if err != nil {
return nodes, err
}
for _, evr := range res {
var compatibility fog05sdk.CompatibleNodeResponse

err = json.Unmarshal([]byte(*evr.Result), &compatibility)
if err != nil {
return nodes, err
}
if compatibility.IsCompatible {
nodes = append(nodes, compatibility.UUID)
}
}
return nodes, nil
}

// Define creates and FDU Instance for the specified FDU in the specified node and returns the FDURecord object associated
func (f *FDUAPI) Define(nodeid string, fduid string) (*fog05sdk.FDURecord, error) {
var fdu fog05sdk.FDURecord
_, err := f.connector.Global.Actual.GetCatalogFDUInfo(f.sysid, f.tenantid, fduid)
if err != nil {
return nil, err
}

res, err := f.connector.Global.Actual.DefineFDUInNode(f.sysid, f.tenantid, nodeid, fduid)
if err != nil {
return nil, err
Expand All @@ -627,12 +622,7 @@ func (f *FDUAPI) Define(nodeid string, fduid string) (*fog05sdk.FDURecord, error
return nil, &fog05sdk.FError{*res.ErrorMessage + " ErrNo: " + string(*res.Error), nil}
}

v, err := json.Marshal(*res.Result)
if err != nil {
return nil, err
}

err = json.Unmarshal([]byte(v), &fdu)
err = json.Unmarshal([]byte(*res.Result), &fdu)
if err != nil {
return nil, err
}
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ go 1.13
require (
github.com/atolab/yaks-go v0.3.0
github.com/atolab/zenoh-go v0.3.1 // indirect
github.com/eclipse-fog05/sdk-go v0.2.0
github.com/eclipse-fog05/sdk-go v0.2.2
github.com/google/uuid v1.1.2
)
25 changes: 23 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ github.com/atolab/zenoh-go v0.3.1 h1:Ab/2i+j05cGskkM6oswFLy6I5dhSDg+xxyZMLFN8jSw
github.com/atolab/zenoh-go v0.3.1/go.mod h1:3Ek15mksXcvo9kZiuRnJT1T5v9eXUvLYB8RLa4nctKM=
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
Expand All @@ -15,21 +16,38 @@ github.com/eclipse-fog05/sdk-go v0.1.0 h1:RjzXR4rmdZzSWaU3WtlzTZkylmkjWGOuw1pVTA
github.com/eclipse-fog05/sdk-go v0.1.0/go.mod h1:UPQANX/4L5xMOeniR2rkKZ5ARMRrN8P/F+ixl7xFrHQ=
github.com/eclipse-fog05/sdk-go v0.1.1-0.20200506091819-bd74ddb7a662 h1:5lc5YRUc0X9iZTqjvidLeOz7DTDTT3altFENPYjH4Bg=
github.com/eclipse-fog05/sdk-go v0.1.1-0.20200506091819-bd74ddb7a662/go.mod h1:UPQANX/4L5xMOeniR2rkKZ5ARMRrN8P/F+ixl7xFrHQ=
github.com/eclipse-fog05/sdk-go v0.2.0 h1:67ZwozAuOMc6Aa3nR8CyEQF8qzE5h5AuQkqkERWBzHw=
github.com/eclipse-fog05/sdk-go v0.2.0/go.mod h1:UPQANX/4L5xMOeniR2rkKZ5ARMRrN8P/F+ixl7xFrHQ=
github.com/eclipse-fog05/sdk-go v0.2.2 h1:euapEcAO2c/jd62zSxOailUzbu5Ilbk5ZBpWpBLtNjI=
github.com/eclipse-fog05/sdk-go v0.2.2/go.mod h1:ZKGOJ5VzMjQRL3NexJG6x/vz8i0YxyM07LB+jKHoLUI=
github.com/gabrik/sdk-go v0.0.0-20200428160909-34148dcdd771 h1:rBZx6b+jUjDxLkObAwwdB3wa2gpl0PdflSFPGl74xpU=
github.com/gabrik/sdk-go v0.0.0-20200428160909-34148dcdd771/go.mod h1:UPQANX/4L5xMOeniR2rkKZ5ARMRrN8P/F+ixl7xFrHQ=
github.com/gabrik/sdk-go v0.0.0-20200429142714-30fc4cbf8d70 h1:DNw+bTn1uFi7Ho4u+1t9efYJVQ7bnfMrZa2X/bBpEvo=
github.com/gabrik/sdk-go v0.0.0-20200429142714-30fc4cbf8d70/go.mod h1:UPQANX/4L5xMOeniR2rkKZ5ARMRrN8P/F+ixl7xFrHQ=
github.com/gabrik/sdk-go v0.0.0-20200429160826-8967d42465f8 h1:qkoUW2DE5HQekp8c9UyLm0U4BkjTaXsX4KW9OLJiBlQ=
github.com/gabrik/sdk-go v0.0.0-20200429160826-8967d42465f8/go.mod h1:UPQANX/4L5xMOeniR2rkKZ5ARMRrN8P/F+ixl7xFrHQ=
github.com/gabrik/sdk-go v0.0.0-20200901124809-98cbd2021c34 h1:dnXvjg+jhKAB6nyNuj1GSbDI31U1N54XLCpXnbt4mFo=
github.com/gabrik/sdk-go v0.0.0-20200901124809-98cbd2021c34/go.mod h1:UPQANX/4L5xMOeniR2rkKZ5ARMRrN8P/F+ixl7xFrHQ=
github.com/gabrik/sdk-go v0.0.0-20200904094556-0482d1f584cb h1:KQLnwl2gE21JOygT+rJTiYUIHNXeTUFJW/TvocUb6+E=
github.com/gabrik/sdk-go v0.0.0-20200904094556-0482d1f584cb/go.mod h1:ZKGOJ5VzMjQRL3NexJG6x/vz8i0YxyM07LB+jKHoLUI=
github.com/gabrik/sdk-go v0.0.0-20200907095751-b96077661869 h1:sAroa+TLZ/DdfjmRqJarODMeB3XtACWF/B/iLJAUSxM=
github.com/gabrik/sdk-go v0.0.0-20200907095751-b96077661869/go.mod h1:ZKGOJ5VzMjQRL3NexJG6x/vz8i0YxyM07LB+jKHoLUI=
github.com/gabrik/sdk-go v0.0.0-20200907124239-c92be99b23f6 h1:RDZmkP65js/Q67YexpA+2Wm8cjFp7yLMHicFBNjx5sQ=
github.com/gabrik/sdk-go v0.0.0-20200907124239-c92be99b23f6/go.mod h1:ZKGOJ5VzMjQRL3NexJG6x/vz8i0YxyM07LB+jKHoLUI=
github.com/gabrik/sdk-go v0.0.0-20200928071657-3f32dfac6025 h1:ws5ll5Y6fql6/sr7RkRGoGmXY6VHq2mUNzy1uDBg7hU=
github.com/gabrik/sdk-go v0.0.0-20200928071657-3f32dfac6025/go.mod h1:ZKGOJ5VzMjQRL3NexJG6x/vz8i0YxyM07LB+jKHoLUI=
github.com/gabrik/sdk-go v0.0.0-20200928073103-80403da827b2 h1:nHOLJRij6phycrJaW/HqFNLT6CEOOtOfScjmlZIgOSs=
github.com/gabrik/sdk-go v0.0.0-20200928073103-80403da827b2/go.mod h1:ZKGOJ5VzMjQRL3NexJG6x/vz8i0YxyM07LB+jKHoLUI=
github.com/gabrik/sdk-go v0.0.0-20200928123823-c2e8e6e99d4c h1:mND6zl9xrwra/o/aMXFJPoi+0qqcRAwa1DkMzh4cR2k=
github.com/gabrik/sdk-go v0.0.0-20200928123823-c2e8e6e99d4c/go.mod h1:ZKGOJ5VzMjQRL3NexJG6x/vz8i0YxyM07LB+jKHoLUI=
github.com/gabrik/sdk-go v0.0.0-20200929064358-2ddea14f3a2d h1:TkdMGLVNTAfq9zzuwZrSQf8dTvMvzruQaI3HYp5jHc0=
github.com/gabrik/sdk-go v0.0.0-20200929064358-2ddea14f3a2d/go.mod h1:ZKGOJ5VzMjQRL3NexJG6x/vz8i0YxyM07LB+jKHoLUI=
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s=
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
Expand All @@ -40,9 +58,12 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
github.com/stretchr/objx v0.3.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
Expand Down

0 comments on commit 6295950

Please sign in to comment.