goSDN issueshttps://code.fbi.h-da.de/danet/gosdn/-/issues2024-01-22T09:15:34Zhttps://code.fbi.h-da.de/danet/gosdn/-/issues/346Discuss future of topology2024-01-22T09:15:34ZNeil-Jocelyn ScharkDiscuss future of topologyCurrently the topology implementation has at least two major bugs. As we currently don't really use it anyway and the general implementation was very specific for a singular problem, we need to discuss the future of the topology. We will...Currently the topology implementation has at least two major bugs. As we currently don't really use it anyway and the general implementation was very specific for a singular problem, we need to discuss the future of the topology. We will need one, but the path forward is not clear. We could fix the current implementation and potentially add more features to it or think of a new one.Neil-Jocelyn ScharkNeil-Jocelyn Scharkhttps://code.fbi.h-da.de/danet/gosdn/-/issues/342Implement integration tests for topology2024-02-22T10:42:00ZNeil-Jocelyn ScharkImplement integration tests for topology<!--- Provide a general summary of the issue in the Title above -->
## Description
<!--- Provide a more detailed introduction to the issue itself, and why you consider it to be a bug -->
## Expected Behavior
<!--- Tell us what should h...<!--- Provide a general summary of the issue in the Title above -->
## Description
<!--- Provide a more detailed introduction to the issue itself, and why you consider it to be a bug -->
## Expected Behavior
<!--- Tell us what should happen -->
## Actual Behavior
<!--- Tell us what happens instead -->
## Possible Fix
<!--- Not obligatory, but suggest a fix or reason for the bug -->
## Steps to Reproduce
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
<!--- reproduce this bug. Include code to reproduce, if relevant -->
1.
2.
3.
4.
## Context
<!--- How has this bug affected you? What were you trying to accomplish? -->
## Your Environment
<!--- Include as many relevant details about the environment you experienced the bug in -->
* Version used:
* Environment name and version (e.g. go v1.16.3 on FreeBSD 13.0-current):
* Server type and version:
* Operating System and version:Neil-Jocelyn ScharkNeil-Jocelyn Scharkhttps://code.fbi.h-da.de/danet/gosdn/-/issues/338Check permissions for directoy and file creations from within our code2023-12-04T07:48:54ZFabian SeidlCheck permissions for directoy and file creations from within our code<!--- Provide a general summary of the issue in the Title above -->
## Description
<!--- Provide a more detailed introduction to the issue itself, and why you consider it to be a bug -->
In a recet merge request, there was a notificati...<!--- Provide a general summary of the issue in the Title above -->
## Description
<!--- Provide a more detailed introduction to the issue itself, and why you consider it to be a bug -->
In a recet merge request, there was a notification about a (possible) weakness regarding permissions for directories created from within a running program. We should investigate [this specific case](https://code.fbi.h-da.de/danet/gosdn/-/blob/a05dfd0fe38176f4f4fc245df41168e762e432d1/controller/cmd/root.go#L155) and also look for others and see if we can limit the permissions during all these creation processes.
Please investigate all occurrences of dir/file creationhttps://code.fbi.h-da.de/danet/gosdn/-/issues/335Investigate GitLab-CI services don't reach each other2024-03-04T13:31:48ZNeil-Jocelyn ScharkInvestigate GitLab-CI services don't reach each otherAccording to the docs, services should be able to communicate with each other, if docker networks for each job are activated. But @hda11597 and me @neil.schark did not get it to work. So I implemented a workaround, so that our tests stil...According to the docs, services should be able to communicate with each other, if docker networks for each job are activated. But @hda11597 and me @neil.schark did not get it to work. So I implemented a workaround, so that our tests still run.
But it would be better to get the services running correctly, as it would mean a better test set up.
https://docs.gitlab.com/ee/ci/services/#connecting-services
https://code.fbi.h-da.de/danet/minimal-setup-docker-gitlab-ci
https://gitlab.com/gitlab-org/gitlab-runner/-/issues/1042
Typical pipeline where it didn't work:
https://code.fbi.h-da.de/danet/gosdn/-/jobs/783870
Pipeline where it ran once for whatever reason (never before and never since):
https://code.fbi.h-da.de/danet/gosdn/-/jobs/783590https://code.fbi.h-da.de/danet/gosdn/-/issues/332GetMongoConnection() doens't return error in failure state2023-11-23T14:18:27ZNeil-Jocelyn ScharkGetMongoConnection() doens't return error in failure stateFile `code.fbi.h-da.de/danet/gosdn/controller/nucleus/database/mongo-connection.go`.
Function `GetMongoConnection()` doesn't return an error if one is found, it just prints it.
Proposed solution:
```golang
// GetMongoConnection Retriev...File `code.fbi.h-da.de/danet/gosdn/controller/nucleus/database/mongo-connection.go`.
Function `GetMongoConnection()` doesn't return an error if one is found, it just prints it.
Proposed solution:
```golang
// GetMongoConnection Retrieves a client to the MongoDB.
func GetMongoConnection() (*mongo.Client, context.Context, context.CancelFunc, error) {
mongoConnection := config.DatabaseConnection
ctx, cancel := context.WithTimeout(context.Background(), connectTimeout*time.Second)
client, err := mongo.Connect(ctx, options.Client().ApplyURI(mongoConnection))
if err != nil {
log.Printf("Failed to create client: %v", err)
return client, ctx, cancel, err
}
// Force a connection to verify our connection string
err = client.Ping(ctx, nil)
if err != nil {
log.Printf("Failed to connect to database: %v\n", err)
return client, ctx, cancel, err
}
return client, ctx, cancel, nil
}
```
This leads to a lot of changes in storage code.Malte BauchNeil-Jocelyn ScharkMalte Bauchhttps://code.fbi.h-da.de/danet/gosdn/-/issues/329Create new test concept and set-up2023-12-15T12:50:51ZNeil-Jocelyn ScharkCreate new test concept and set-upNotes added below as unsorted commentsNotes added below as unsorted commentsNeil-Jocelyn ScharkNeil-Jocelyn Scharkhttps://code.fbi.h-da.de/danet/gosdn/-/issues/325Make containerlab runnable on ARM-Macs2023-10-30T10:10:04ZGhost UserMake containerlab runnable on ARM-MacsCurrently users of Macs in general and specifically ARM-Macs have to use SSH to a x86 Linux Server to really develop.
We are looking for a solution that is locally available and performant enough to work with.Currently users of Macs in general and specifically ARM-Macs have to use SSH to a x86 Linux Server to really develop.
We are looking for a solution that is locally available and performant enough to work with.https://code.fbi.h-da.de/danet/gosdn/-/issues/324Subscribe to network element on creation in controller2023-10-10T10:22:39ZFabian SeidlSubscribe to network element on creation in controller## Description
It would be useful if we can subscribe to a network element the moment it gets created in the controller.## Description
It would be useful if we can subscribe to a network element the moment it gets created in the controller.https://code.fbi.h-da.de/danet/gosdn/-/issues/323Evaluate/Prepare Repo move to different platform2023-10-31T10:16:22ZGhost UserEvaluate/Prepare Repo move to different platformTest repo for GitHub can be found here: https://github.com/gosdn/goSDN
Current findings commented below.Test repo for GitHub can be found here: https://github.com/gosdn/goSDN
Current findings commented below.Neil-Jocelyn ScharkNeil-Jocelyn Scharkhttps://code.fbi.h-da.de/danet/gosdn/-/issues/320Deadline and Cancellation for gRPC calls2023-09-07T16:20:22ZMalte BauchDeadline and Cancellation for gRPC calls<!--- Provide a general summary of the issue in the Title above -->
A grpc request sent through the CLI is currently not cancelable.
## Description
<!--- Provide a more detailed introduction to the issue itself, and why you consider it ...<!--- Provide a general summary of the issue in the Title above -->
A grpc request sent through the CLI is currently not cancelable.
## Description
<!--- Provide a more detailed introduction to the issue itself, and why you consider it to be a bug -->
Currently we do not provide a `context` with a proper deadline from the grpc client (e.g. CLI). It is also not possible to cancel a request, since there is no `context.WithCancel` in use. If this is addressed then the grpc server (controller) should also react accordingly to a cancellation and stop the current workload.
## Expected Behavior
<!--- Tell us what should happen -->
Commands within the CLI should be cancelable and/or should have a reasonable deadline.
## Actual Behavior
<!--- Tell us what happens instead -->
Current deadline for a sent command is really long and it is not possible to cancel it directly through e.g. CTRL-C
## Possible Fix
<!--- Not obligatory, but suggest a fix or reason for the bug -->
## Steps to Reproduce
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
<!--- reproduce this bug. Include code to reproduce, if relevant -->
1. Run the login command from within the cli and provide a faulty address
2. Wait
3. Wait
4. Wait
## Context
<!--- How has this bug affected you? What were you trying to accomplish? -->
## Your Environment
<!--- Include as many relevant details about the environment you experienced the bug in -->
* Version used:
* Environment name and version (e.g. go v1.16.3 on FreeBSD 13.0-current):
* Server type and version:
* Operating System and version:https://code.fbi.h-da.de/danet/gosdn/-/issues/309PostRun function in cli does not get called if an error is thrown2023-09-06T09:07:00ZFabian SeidlPostRun function in cli does not get called if an error is thrown## Description
After an error is thrown the `PostRun` function in the `gosdnc` does not get called. This leads to the issue that the set parameters like password, etc. do not get reset to their default values. Therefore, the previously ...## Description
After an error is thrown the `PostRun` function in the `gosdnc` does not get called. This leads to the issue that the set parameters like password, etc. do not get reset to their default values. Therefore, the previously set values remain and this can cause issues when trying to send new requests after a failed one.https://code.fbi.h-da.de/danet/gosdn/-/issues/302Update containerlab_slim.clab.yaml for recent changes in gNMI-Target2023-08-16T14:21:23ZFabian Emil EnglertUpdate containerlab_slim.clab.yaml for recent changes in gNMI-TargetBecause of the implementation of TLS support in the gNMI-Target, Lab00 for education is not working, so the containerlab file for containerlab-slim has to be updated.
The parameter **--insecure** must be set, because no tls file is given...Because of the implementation of TLS support in the gNMI-Target, Lab00 for education is not working, so the containerlab file for containerlab-slim has to be updated.
The parameter **--insecure** must be set, because no tls file is given for the lab.Fabian Emil EnglertFabian Emil Englert2023-08-02https://code.fbi.h-da.de/danet/gosdn/-/issues/259To improve the device watching mechanism a fetch all after time interval meth...2022-12-22T11:17:03ZFabian SeidlTo improve the device watching mechanism a fetch all after time interval method should be implemented<!--- Provide a general summary of the issue in the Title above -->
## Description
<!--- Provide a more detailed introduction to the issue itself, and why you consider it to be a bug -->
After several discussions the idea to improve th...<!--- Provide a general summary of the issue in the Title above -->
## Description
<!--- Provide a more detailed introduction to the issue itself, and why you consider it to be a bug -->
After several discussions the idea to improve the watching mechanism is to remove the stream on update or sample and replace it with some kind of polling mechanism. The controller then starts the process in a timed interval to collect the whole dataset available in the YANG model and writes it to the database. This is supposed to deal with inconsistency and scalability issues.
Alternative (probably not suitable) solution:
Make use of `allow_aggregation` field in gNMI subscribe options. This way, there are still issues with inconsistency but it already helps with the problems. So, maybe this could be used in the future.
Related to #256