Skip to content
Snippets Groups Projects
Commit 4ae47f50 authored by Manuel Kieweg's avatar Manuel Kieweg
Browse files

pre checkout commit

parent 0bbf8550
No related branches found
No related tags found
2 merge requests!19Mcp client,!18Develop
......@@ -2,18 +2,15 @@ module code.fbi.h-da.de/cocsn/gosdn
go 1.14
replace github.com/go-openapi/runtime v0.19.21 => /Users/mk/go/src/github.com/go-openapi/runtime
replace github.com/go-openapi/runtime v0.19.22 => /Users/mk/go/src/github.com/go-openapi/runtime/
require (
github.com/go-openapi/errors v0.19.7
github.com/go-openapi/loads v0.19.5
github.com/go-openapi/runtime v0.19.21
github.com/go-openapi/spec v0.19.9
code.fbi.h-da.de/cocsn/swagger/apis/ciena v0.0.0-20200922140607-29b1f99d0f68
code.fbi.h-da.de/cocsn/yang-modules/generated/ciena v0.0.0-20200922150332-3e03fcde3e37
github.com/go-openapi/runtime v0.19.22
github.com/go-openapi/strfmt v0.19.5
github.com/go-openapi/swag v0.19.9
github.com/go-openapi/validate v0.19.11
github.com/jessevdk/go-flags v1.4.0
github.com/openconfig/goyang v0.0.0-20200917201611-633eccb6fa97
github.com/mattn/go-sqlite3 v1.14.3
github.com/openconfig/ygot v0.8.7
golang.org/x/net v0.0.0-20200904194848-62affa334b73
github.com/spf13/cobra v1.0.0
google.golang.org/grpc v1.32.0
)
This diff is collapsed.
package main
import (
"context"
"google.golang.org/grpc"
"log"
"os"
pb "project-beachhead/grpc_interface"
"time"
)
const (
address = "localhost:55055"
defaultName = "gosdn-cli"
)
// Based on the helloworld example of grpc.io
func main() {
// Set up a connection to the server.
conn, err := grpc.Dial(address, grpc.WithInsecure(), grpc.WithBlock())
if err != nil {
log.Fatalf("did not connect: %v", err)
}
defer conn.Close()
c := pb.NewGreeterClient(conn)
// Contact the server and print out its response.
name := defaultName
if len(os.Args) > 1 {
name = os.Args[1]
}
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()
r, err := c.SayHello(ctx, &pb.HelloRequest{Name: name})
if err != nil {
log.Fatalf("could not greet: %v", err)
}
log.Printf("Greeting: %s", r.GetMessage())
}
package main
import (
"nucleus"
"code.fbi.h-da.de/cocsn/gosdn/nucleus"
)
func main() {
......
package nucleus
import (
yangPro "code.fbi.h-da.de/cocsn/yang-modules/generated/ciena"
"fmt"
"github.com/openconfig/ygot/ygot"
"net"
yangPro "gosdn/yang-processor"
)
// This is a test function in order to see how to generate JSON encoded openconfig stuff
......@@ -17,11 +17,14 @@ func AssembleJSON() {
for _, iface := range interfaces {
fmt.Println(iface.Name)
i, err := d.NewInterface(iface.Name)
i, err := d.WaveserverInterfaces.NewLogicalInterface("en0")
if err != nil {
panic(err)
}
i.Mtu = ygot.Uint16(234)
i.State = &yangPro.CienaWaveserverInterfaces_WaveserverInterfaces_LogicalInterface_State{
AdminState: 0,
OperationalState: 0,
}
//i.Mtu = ygot.Uint16(iface.MTU)
}
......@@ -46,4 +49,4 @@ func AssembleJSON() {
panic(fmt.Sprintf("Cannot unmarshal JSON: %v", err))
}
}
\ No newline at end of file
}
......@@ -6,7 +6,6 @@ import (
"google.golang.org/grpc"
"log"
"net"
pb "project-beachhead/grpc_interface"
"time"
)
......@@ -34,7 +33,6 @@ func getCLIGoing() {
log.Fatalf("failed to listen: %v", err)
}
cliControlServer := grpc.NewServer()
pb.RegisterGreeterServer(cliControlServer, &server{})
......@@ -52,7 +50,7 @@ func getCLIGoing() {
func StartUp() {
log.Println ("This is the network superintendent...")
log.Println("This is the network superintendent...")
log.Println("Starting my ducks")
// Start the GRCP CLI
go getCLIGoing()
......@@ -64,18 +62,14 @@ func StartUp() {
* nucleus.Run() is the "main loop" of the controller
*/
func Run() {
isRunning := true
// Test ygot
AssembleJSON()
for isRunning {
time.Sleep(10*time.Second)
time.Sleep(10 * time.Second)
isRunning = false
}
......
package handler
import (
"code.fbi.h-da.de/cocsn/gosdn/restconf/api/server/operations/ciena_waveserver_interfaces"
"github.com/go-openapi/runtime/middleware"
)
func Ifh(ciena_waveserver_interfaces.GetDataWaveserverInterfacesParams) middleware.Responder {
return ciena_waveserver_interfaces.NewGetDataWaveserverInterfacesOK().WithPayload(
&ciena_waveserver_interfaces.GetDataWaveserverInterfacesOKBody{
Data: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesOKBodyData{
WaveserverInterfaces: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesOKBodyDataWaveserverInterfaces{
ACL: nil,
LogicalInterface: nil,
PhysicalInterface: []*ciena_waveserver_interfaces.GetDataWaveserverInterfacesOKBodyDataWaveserverInterfacesPhysicalInterfaceItems0{
{
ID: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesOKBodyDataWaveserverInterfacesPhysicalInterfaceItems0ID{
Description: "",
Ifindex: 2,
Name: "ifp0-ilan-1",
Type: "ILAN",
},
Name: "ifp0-ilan-1",
Properties: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesOKBodyDataWaveserverInterfacesPhysicalInterfaceItems0Properties{
Ethernet: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesOKBodyDataWaveserverInterfacesPhysicalInterfaceItems0PropertiesEthernet{
AutoNegotiation: true,
Duplex: "full",
FlowControl: true,
Speed: "1G",
},
Management: nil,
},
State: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesOKBodyDataWaveserverInterfacesPhysicalInterfaceItems0State{
AdminState: "disabled",
}},
},
},
},
},
)
}
package handler
import (
"code.fbi.h-da.de/cocsn/gosdn/restconf/api/server/operations/ciena_waveserver_interfaces"
"github.com/go-openapi/runtime/middleware"
)
func Lifh(ciena_waveserver_interfaces.GetDataWaveserverInterfacesLogicalInterfaceParams) middleware.Responder {
return ciena_waveserver_interfaces.NewGetDataWaveserverInterfacesLogicalInterfaceOK().WithPayload(
&ciena_waveserver_interfaces.GetDataWaveserverInterfacesLogicalInterfaceOKBody{
Data: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesLogicalInterfaceOKBodyData{
LogicalInterface: []*ciena_waveserver_interfaces.GetDataWaveserverInterfacesLogicalInterfaceOKBodyDataLogicalInterfaceItems0{
{
ID: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesLogicalInterfaceOKBodyDataLogicalInterfaceItems0ID{
Ifindex: 0,
Name: "en0",
},
Index: 0,
Properties: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesLogicalInterfaceOKBodyDataLogicalInterfaceItems0Properties{
IPV4: nil,
},
State: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesLogicalInterfaceOKBodyDataLogicalInterfaceItems0State{
AdminState: "disabled",
OperationalState: "disabled",
},
},
},
},
},
)
}
-----BEGIN PRIVATE KEY-----
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
Eki1r2A2/QhegKD6wDe3vebCz4ko
-----END PRIVATE KEY-----
File deleted
package main
import (
"code.fbi.h-da.de/cocsn/gosdn/restconf/api/server"
"code.fbi.h-da.de/cocsn/gosdn/restconf/api/server/operations/ciena_waveserver_interfaces"
"code.fbi.h-da.de/cocsn/gosdn/restconf/bin/server/handler"
"log"
"os"
"code.fbi.h-da.de/cocsn/gosdn/restconf/api/server/operations"
"github.com/go-openapi/loads"
flags "github.com/jessevdk/go-flags"
)
func main() {
swaggerSpec, err := loads.Embedded(server.SwaggerJSON, server.FlatSwaggerJSON)
if err != nil {
log.Fatalln(err)
}
api := operations.NewWaveserverRESTAPISwaggerDescriptionAPI(swaggerSpec)
api.CienaWaveserverInterfacesGetDataWaveserverInterfacesHandler =
ciena_waveserver_interfaces.GetDataWaveserverInterfacesHandlerFunc(handler.Ifh)
api.CienaWaveserverInterfacesGetDataWaveserverInterfacesLogicalInterfaceHandler =
ciena_waveserver_interfaces.GetDataWaveserverInterfacesLogicalInterfaceHandlerFunc(handler.Lifh)
srv := server.NewServer(api)
defer srv.Shutdown()
parser := flags.NewParser(srv, flags.Default)
parser.ShortDescription = "Waveserver REST API Swagger description"
parser.LongDescription = "\n# Welcome to the Waveserver REST API swagger interface.\n\nThis page documents the HTTPS actions supported for the objects defined in the Waveserver YANG models.\n\nSelecting a module will expand its contents and show the supported actions.\n\nEach action has a schema associated with it to help show the supported output and required input for the action. It is also possible to test out the API by filling in the required parameters and clicking the \"Try it out!\" button.\n\nNote that PATCH, POST or DELETE calls will alter the device database from its original state! \n\nFor GET request, all YANG models are wrapped in a <data> element or \"data\" object for XML or JSON content type, respectively.\n "
srv.ConfigureFlags()
for _, optsGroup := range api.CommandLineOptionsGroups {
_, err := parser.AddGroup(optsGroup.ShortDescription, optsGroup.LongDescription, optsGroup.Options)
if err != nil {
log.Fatalln(err)
}
}
if _, err := parser.Parse(); err != nil {
code := 1
if fe, ok := err.(*flags.Error); ok {
if fe.Type == flags.ErrHelp {
code = 0
}
}
os.Exit(code)
}
srv.ConfigureAPI()
if err := srv.Serve(); err != nil {
log.Fatalln(err)
}
}
-----BEGIN CERTIFICATE-----
MIIFPjCCAyYCCQDPIiV6g8O1kzANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQGEwJk
ZTELMAkGA1UECAwCZGUxCzAJBgNVBAcMAmRlMQswCQYDVQQKDAJkZTELMAkGA1UE
CwwCZGUxCzAJBgNVBAMMAmRlMREwDwYJKoZIhvcNAQkBFgJkZTAeFw0yMDA5MTYw
OTMxMTdaFw0yMTA5MTYwOTMxMTdaMGExCzAJBgNVBAYTAmRlMQswCQYDVQQIDAJk
ZTELMAkGA1UEBwwCZGUxCzAJBgNVBAoMAmRlMQswCQYDVQQLDAJkZTELMAkGA1UE
AwwCZGUxETAPBgkqhkiG9w0BCQEWAmRlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
MIICCgKCAgEAnFk5BSBfewyBsPyIIvYfB7hggJS2mghkxmUf3Oj9bPyq0irddmzS
RA3zX21fCOrjZfclKsFH8BLlucUWqWwo2zBEMlRewIp+/DgCW+1GB5gT8i7MLGQX
m/RlzXeQzuNiM+l9e+uuBk4Sjx1jFvPLOugGlE6uMdKY5XlbRW3AxYLCzLH9I7kt
2EgDXxWVt4pW9lelSQ5Of9dk2AgQzP+isKKdjNjLR4gM1KDkr7LZ5slYLmOCCkPA
4IX8l/OJPePPQWiP2ihrV4nEjfT8P0jEOAGyJrSoWStqS7/K2wZ1GDZp6HbbB+6W
6+YEpoMEmrGYpBzDW4cTaFzjxx1iP+5pa10UvqrzStmhkyHsxL7PXdoEvJw4u/iI
+wknmX3eHm+f2Z0oEIHsjo/5EPsco8cxoMg2H8b8+LqTAiYvlbBxEKipcXFkihXu
fnQz8DYe/FEiZWipYAF4lKtEWI++L80Y9r/5LfCS39lZM7Z+R30w2oHZt3aDMELU
A1i3sCGH2J+hXBP7GwGhLhIi8F+e43Nsz0cS+STRNVYgT1Cu4leig5hMalHk+YQf
UDRSgeWzXUjjYfTeFHwuT2qgqfobw9uZlCX4WlJOwXohg8sxYBANO9KlI+Qall3u
Cv8cCQqlDV6QP4lp0mytIQeCbvUFamWcso3iZG4MWTchsX+ui+vDrcMCAwEAATAN
BgkqhkiG9w0BAQsFAAOCAgEAcDT3NNGGn2YFDxP+kwp0id18AOeLKo/k7RYKs8OS
H9p7m+vQdyp3rfD3BRL3bLcEfFJZrb1PK1hrhiketb1DoGM++ybsqMPhUS3/uvtn
0ypxHuq27Xhsod+5u05/XzmeXLhJuCbc5QIfUD2U49VLAc2pscXvHgrIf19Of++x
6C+xioNCSL881x3hYIWIm5bHfyNH6Y2Y/e/VHBAq8+4eNCa5FOKMxGa+sLsHcOdz
XpD/D6xkznUnC8qcVxpChy+4t8EZ+ZYPhR18ahxDXdQIUjFeX7tk/3+D5UUQzHzM
L3AiMfux8Gkyt7ix0sSJWHp8HszGYoLkEYQmpSKnZBGDWqsR/0afL92hQw51dkFd
UfyO5Q9Q09EJmuWayM5QAB0crS+MqtqvNTD46eW1KRF2PMVOk5g8/Zgx2aDFKYJv
emef9OxABdsC8iit6LrVa3gB7mktdzIn2Egr3WAx55/KI6wIHERzolINFSHdS6Qy
79FJ1p205FFjGbu7f4GFHfrVd+pQPnJZ5RMecZPkDSCEfuxkwwsIj/jkQBOy8wHM
ljfYEKP7IsQQHrEqJ589K/h/q0AJjPBCL7IXAKG9ktV0jjC41UTqiD8HgYe4nM8p
9dCsDi3KdCfhoWbiJ4q5dtA1KZNfoj6uqBORbQmLwkhjKVb612Zy6X/IaIy+EU7Q
cX8=
-----END CERTIFICATE-----
package main
package ciena
import (
apiclient "code.fbi.h-da.de/cocsn/gosdn/restconf/api/client/ciena_waveserver_interfaces"
"code.fbi.h-da.de/cocsn/gosdn/restconf/util"
gosdnyang "code.fbi.h-da.de/cocsn/gosdn/yang-processor"
apiclient "code.fbi.h-da.de/cocsn/swagger/apis/ciena/client/ciena_waveserver_interfaces"
yang "code.fbi.h-da.de/cocsn/yang-modules/generated/ciena"
"crypto/tls"
"github.com/go-openapi/runtime"
httptransport "github.com/go-openapi/runtime/client"
......@@ -12,24 +12,21 @@ import (
"net/http"
)
// hostname or IP only. No protocol prefix and no request suffix (I'm looking at you C//)
const ENDPOINT = "developer.ciena.com"
// Ciena Emulation Cloud only
const REQUEST_PREFIX = "externalApi/o1/64/o2/58?md5=PaR-iVYPq_fTUCvlqUBoVg&expires=1600707600&path="
const USERNAME = "dev"
const PASSWORD = "dev131526"
type WaveserverClient struct {
transport *runtime.ClientTransport
client *apiclient.ClientService
}
func main() {
func NewWaveserverClient(endpoint, requestPrefix, username, password string) WaveserverClient {
// create the transport
transport := httptransport.New(ENDPOINT, REQUEST_PREFIX+"/restconf", nil)
transport := httptransport.New(endpoint, requestPrefix+"/restconf", nil)
transport.Transport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
transport.Debug = true
transport.DefaultMediaType = runtime.JSONMime
// create the API client, with the transport
client := apiclient.New(transport, strfmt.Default).(*apiclient.Client)
basicAuth := httptransport.BasicAuth(USERNAME, PASSWORD)
basicAuth := httptransport.BasicAuth(username, password)
// authenticate client
transport.DefaultAuthentication = basicAuth
......@@ -42,9 +39,13 @@ func main() {
if err != nil {
log.Fatal(err)
}
logicalInterface := gosdnyang.CienaWaveserverInterfaces_WaveserverInterfaces{}
if err = gosdnyang.Unmarshal(buf, &logicalInterface); err != nil {
logicalInterface := yang.CienaWaveserverInterfaces_WaveserverInterfaces{}
if err = yang.Unmarshal(buf, &logicalInterface); err != nil {
log.Fatal(err)
}
logicalInterface.IsYANGGoStruct()
}
func (c WaveserverClient) GetConfig() string {
return "generic client, not implemented yet"
}
package main
import (
"github.com/go-openapi/runtime"
)
// hostname or IP only. No protocol prefix and no request suffix (I'm looking at you C//)
const ENDPOINT = "developer.ciena.com"
// Ciena Emulation Cloud only
const REQUEST_PREFIX = "externalApi/o1/64/o2/58?md5=PaR-iVYPq_fTUCvlqUBoVg&expires=1600707600&path="
const USERNAME = "dev"
const PASSWORD = "dev131526"
type Client interface {
GetConfig() string
}
type GenericClient struct {
transport *runtime.ClientTransport
}
func NewClient(endpoint, requestPrefix, username, password string) GenericClient {
return GenericClient{}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment