cleaning stuff up

Change-Id: Ib7e91c6e92b6f6b3c93f4d8ca5dcbfcf74f6c671
diff --git a/models/physical/chassis.go b/models/physical/chassis.go
index 3f050aa..8f60838 100644
--- a/models/physical/chassis.go
+++ b/models/physical/chassis.go
@@ -30,6 +30,14 @@
 	Dataswitch   DataSwitch
 	Linecards    []OLT
 }
+type UnprovisionedSlotError struct {
+	CLLI       string
+	SlotNumber int
+}
+
+func (e *UnprovisionedSlotError) Error() string {
+	return fmt.Sprintf("SlotNumber %d in Chassis %s is currently unprovsioned", e.SlotNumber, e.CLLI)
+}
 
 /*
 AddOLTChassis - adds a reference to a new olt chassis
@@ -43,3 +51,10 @@
 	//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)
 }
+func (chassis *Chassis) ActivateSlot(slotNumber int) error {
+	// AT&T backend systems start at 1 and not 0 :P
+	if chassis.Linecards[slotNumber-1] == nil {
+		return &UnprovisionedSlotError{CLLI: chassis.CLLI, SlotNumber: slotNumber}
+	}
+	return chassis.Linecards[slotNumber-1].activate()
+}
diff --git a/models/physical/olt.go b/models/physical/olt.go
index beffec8..121fdac 100644
--- a/models/physical/olt.go
+++ b/models/physical/olt.go
@@ -29,6 +29,7 @@
 	GetPorts() []PONPort
 	GetParent() *Chassis
 	GetDataSwitchPort() int
+	activate() error
 }
 
 /*
@@ -73,3 +74,8 @@
 func (s *SimpleOLT) GetDataSwitchPort() int {
 	return s.DataSwitchPort
 }
+func (s *SimpleOLT) activate() error {
+	s.Active = true
+	//TODO make call to XOS to activate phyiscal OLT
+	return nil
+}