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()
+}