From 10218512ede919b7b4c33cb1132ce1d256b2f9eb Mon Sep 17 00:00:00 2001 From: mbongard Date: Thu, 25 Nov 2021 09:05:14 +0100 Subject: [PATCH 1/3] added support for coordinates (mocked data only) --- arango/document-types.go | 8 ++++++++ arango/fetch.go | 21 +++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/arango/document-types.go b/arango/document-types.go index e888cfe..4633259 100644 --- a/arango/document-types.go +++ b/arango/document-types.go @@ -97,3 +97,11 @@ type LSNode_Edge struct { To string `json:"_to,omitempty"` Link string `json:"link,omitempty"` } + +type LSNode_Coordinates struct { + Key string `json:"_key,omitempty"` + ID string `json:"_id,omitempty"` + LsNodeKey string `json:"lsnode_key,omitempty"` + Latitude float64 `json:"latitude,omitempty"` + Longitude float64 `json:"longitude,omitempty"` +} diff --git a/arango/fetch.go b/arango/fetch.go index 49341db..bdb465e 100644 --- a/arango/fetch.go +++ b/arango/fetch.go @@ -15,6 +15,13 @@ func FetchLsNode(ctx context.Context, key string) LSNode { return document } +func FetchLsNodeCoordinates(ctx context.Context, key string) LSNode_Coordinates { + cursor := queryArangoDbDatabase(ctx, "FOR d IN LSNode_Coordinates FILTER d._key == \"" + key + "\" RETURN d"); + var document LSNode_Coordinates + readDocument(cursor.ReadDocument(ctx, &document)) + return document +} + func FetchLsLink(ctx context.Context, key string) LSLink { cursor := queryArangoDbDatabase(ctx, "FOR d IN LSLink FILTER d._key == \"" + key + "\" RETURN d"); var document LSLink @@ -60,6 +67,20 @@ func FetchAllLsNodes(ctx context.Context) []LSNode { return documents } +func FetchAllLsNodeCoordinates(ctx context.Context) []LSNode_Coordinates { + cursor := queryArangoDbDatabase(ctx, "FOR d IN LSNode_Coordinates RETURN d"); + var documents []LSNode_Coordinates + for { + var document LSNode_Coordinates + if (!readDocument(cursor.ReadDocument(ctx, &document))) { + break + } + documents = append(documents, document) + } + return documents +} + + func FetchAllLsLinks(ctx context.Context) []LSLink { cursor := queryArangoDbDatabase(ctx, "FOR d IN LSLink RETURN d"); var documents []LSLink From c56dd39a1ad57856ef9d9721e86b1c1ae6d591ce Mon Sep 17 00:00:00 2001 From: mbongard Date: Thu, 25 Nov 2021 09:11:21 +0100 Subject: [PATCH 2/3] added lsnode coordinates to model --- model/class/class.go | 1 + model/property/class-properties.go | 8 ++++++++ model/property/property.go | 3 +++ model/topology/document-converters.go | 10 ++++++++++ model/topology/documents.go | 8 ++++++++ model/topology/marshalling.go | 4 ++++ 6 files changed, 34 insertions(+) diff --git a/model/class/class.go b/model/class/class.go index e159bf8..ad04dc8 100644 --- a/model/class/class.go +++ b/model/class/class.go @@ -8,6 +8,7 @@ const ( LsPrefix Class = "LSPrefix" LsSrv6Sid Class = "LSSRv6SID" LsNodeEdge Class = "LSNode_Edge" + LsNodeCoordinates Class = "LSNode_Coordinates" PhysicalInterface Class = "PhysicalInterface" LoopbackInterface Class = "LoopbackInterface" ) \ No newline at end of file diff --git a/model/property/class-properties.go b/model/property/class-properties.go index afeef5f..660aa87 100644 --- a/model/property/class-properties.go +++ b/model/property/class-properties.go @@ -97,6 +97,14 @@ var AllLsNodeEdgeProperties = []string{ Link, } +var AllLsNodeCoordinatesProperties = []string{ + Key, + Id, + LsNodeKey, + Latitude, + Longitude, +} + var AllPhysicalInterfaceProperties = []string{ DataRate, PacketsSent, diff --git a/model/property/property.go b/model/property/property.go index 2cb9dcb..25985d9 100644 --- a/model/property/property.go +++ b/model/property/property.go @@ -40,4 +40,7 @@ const ( From = "From" To = "To" Link = "Link" + LsNodeKey = "LsNodeKey" + Latitude = "Latitude" + Longitude = "Longitude" ) \ No newline at end of file diff --git a/model/topology/document-converters.go b/model/topology/document-converters.go index 30fd896..e02a492 100644 --- a/model/topology/document-converters.go +++ b/model/topology/document-converters.go @@ -25,6 +25,16 @@ func ConvertLsNode(doc arango.LSNode) LsNode { } } +func ConvertLsNodeCoordinates(doc arango.LSNode_Coordinates) LsNodeCoordinates { + return LsNodeCoordinates{ + Id: doc.ID, + Key: doc.Key, + LsNodeKey: doc.LsNodeKey, + Latitude: doc.Latitude, + Longitude: doc.Longitude, + } +} + func ConvertLsLink(doc arango.LSLink) LsLink { return LsLink{ Id: doc.ID, diff --git a/model/topology/documents.go b/model/topology/documents.go index 3af34f7..8be450f 100644 --- a/model/topology/documents.go +++ b/model/topology/documents.go @@ -21,6 +21,14 @@ type LsNode struct { IsAdjRibIn bool } +type LsNodeCoordinates struct { + Id string + Key string + LsNodeKey string + Latitude float64 + Longitude float64 +} + type LsLink struct { Id string Key string diff --git a/model/topology/marshalling.go b/model/topology/marshalling.go index 4d364eb..93f59c2 100644 --- a/model/topology/marshalling.go +++ b/model/topology/marshalling.go @@ -6,6 +6,10 @@ func (doc LsNode) MarshalBinary() ([]byte, error) { return json.Marshal(doc) } +func (doc LsNodeCoordinates) MarshalBinary() ([]byte, error) { + return json.Marshal(doc) +} + func (doc LsLink) MarshalBinary() ([]byte, error) { return json.Marshal(doc) } From 4cff05bd76fbafd6d9deaf2ad61816dc107f099d Mon Sep 17 00:00:00 2001 From: Michel Bongard Date: Thu, 25 Nov 2021 19:41:26 +0100 Subject: [PATCH 3/3] updated document-types.go --- arango/document-types.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arango/document-types.go b/arango/document-types.go index 4633259..6d4ea6f 100644 --- a/arango/document-types.go +++ b/arango/document-types.go @@ -101,7 +101,7 @@ type LSNode_Edge struct { type LSNode_Coordinates struct { Key string `json:"_key,omitempty"` ID string `json:"_id,omitempty"` - LsNodeKey string `json:"lsnode_key,omitempty"` + LsNodeKey string `json:"ls_node_key,omitempty"` Latitude float64 `json:"latitude,omitempty"` Longitude float64 `json:"longitude,omitempty"` }