SEBA-122
bin/client is now cmdline app, tosca is sent to xos
Change-Id: I7bbf59569b5c96062aa1c7681708a4cf39532ae2
diff --git a/models/physical/chassis.go b/models/physical/chassis.go
index 705de80..4e0c4da 100644
--- a/models/physical/chassis.go
+++ b/models/physical/chassis.go
@@ -19,6 +19,10 @@
import (
"fmt"
"net"
+ "net/http"
+ "strings"
+
+ "gerrit.opencord.org/abstract-olt/models/tosca"
)
/*
@@ -29,6 +33,8 @@
VCoreAddress net.TCPAddr
Dataswitch DataSwitch
Linecards []OLT
+ Rack int
+ Shelf int
}
type UnprovisionedSlotError struct {
CLLI string
@@ -46,10 +52,59 @@
chassis.Linecards = append(chassis.Linecards, olt)
//TODO - api call to add olt i.e. preprovision_olt
fmt.Printf("chassis.AddOLTChassis(%s)\n", olt.GetHostname())
+ //S>103 func NewOltProvision(name string, deviceType string, host string, port int) OltProvsion {
+ ipString := olt.GetAddress().IP.String()
+ webServerPort := olt.GetAddress().Port
+ oltStruct := tosca.NewOltProvision(chassis.CLLI, olt.GetHostname(), "openolt", ipString, webServerPort)
+ yaml, _ := oltStruct.ToYaml()
+ fmt.Printf("yaml:%s\n", yaml)
+ client := &http.Client{}
+ requestList := fmt.Sprintf("http://%s:%d/run", chassis.VCoreAddress.IP.String(), chassis.VCoreAddress.Port)
+ req, err := http.NewRequest("POST", requestList, strings.NewReader(yaml))
+ req.Header.Add("xos-username", "admin@opencord.org")
+ req.Header.Add("xos-password", "letmein")
+ resp, err := client.Do(req)
+ if err != nil {
+ fmt.Printf("ERROR :) %v\n", err)
+ // handle error
+ }
+ fmt.Printf("Response is %v\n", resp)
+
}
func (chassis *Chassis) provisionONT(ont Ont) {
//TODO - api call to provison s/c vlans and ont serial number etc
fmt.Printf("chassis.provisionONT(%s,SVlan:%d,CVlan:%d)\n", ont.SerialNumber, ont.Svlan, ont.Cvlan)
+ ponPort := ont.Parent
+ slot := ponPort.Parent
+
+ //func NewOntProvision(serialNumber string, oltIP net.IP, ponPortNumber int) OntProvision {
+ ontStruct := tosca.NewOntProvision(ont.SerialNumber, slot.Address.IP, ponPort.Number)
+ yaml, _ := ontStruct.ToYaml()
+
+ fmt.Printf("yaml:%s\n", yaml)
+ client := &http.Client{}
+ requestList := fmt.Sprintf("http://%s:%d/run", chassis.VCoreAddress.IP.String(), chassis.VCoreAddress.Port)
+ req, err := http.NewRequest("POST", requestList, strings.NewReader(yaml))
+ req.Header.Add("xos-username", "admin@opencord.org")
+ req.Header.Add("xos-password", "letmein")
+ resp, err := client.Do(req)
+ if err != nil {
+ fmt.Printf("ERROR :) %v\n", err)
+ // handle error
+ }
+ fmt.Printf("Response is %v\n", resp)
+ rgName := fmt.Sprintf("%s_%d_%d_%d_RG", chassis.CLLI, slot.Number, ponPort.Number, ont.Number)
+ subStruct := tosca.NewSubscriberProvision(rgName, ont.Cvlan, ont.Svlan, ont.SerialNumber, ont.NasPortID, ont.CircuitID, chassis.CLLI)
+ yaml, _ = subStruct.ToYaml()
+ fmt.Printf("yaml:%s\n", yaml)
+ req, err = http.NewRequest("POST", requestList, strings.NewReader(yaml))
+ req.Header.Add("xos-username", "admin@opencord.org")
+ req.Header.Add("xos-password", "letmein")
+ resp, err = client.Do(req)
+ if err != nil {
+ fmt.Printf("ERROR :) %v\n", err)
+ // handle error
+ }
}
func (chassis *Chassis) deleteONT(ont Ont) {
//TODO - api call to provison s/c vlans and ont serial number etc