Formatted code with 'go fmt'

Change-Id: I5361f3388a1fb8da1ef3222d51bc58355a804137
diff --git a/adaptercore/olt_state_transitions.go b/adaptercore/olt_state_transitions.go
index 45e5f5e..5d53fee 100644
--- a/adaptercore/olt_state_transitions.go
+++ b/adaptercore/olt_state_transitions.go
@@ -1,184 +1,184 @@
-/*

- * Copyright 2018-present Open Networking Foundation

-

- * Licensed under the Apache License, Version 2.0 (the "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

-

- * http://www.apache.org/licenses/LICENSE-2.0

-

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-package adaptercore

-

-import (

-    "reflect"

-    "runtime"

-

-    "github.com/opencord/voltha-go/common/log"

-)

-

-// DeviceState OLT Device state

-type DeviceState int

-

-const (

-    // deviceStateNull OLT is not instantiated

-    deviceStateNull DeviceState = iota

-    // deviceStateInit OLT is instantiated

-    deviceStateInit

-    // deviceStateConnected Grpc session established with OLT

-    deviceStateConnected

-    // deviceStateUp Admin state of OLT is UP

-    deviceStateUp

-    // deviceStateDown Admin state of OLT is down

-    deviceStateDown

-)

-

-// Trigger for changing the state

-type Trigger int

-

-const (

-    // DeviceInit Go to Device init state

-    DeviceInit Trigger = iota

-    // GrpcConnected Go to connected state

-    GrpcConnected

-    // DeviceUpInd Go to Device up state

-    DeviceUpInd

-    // DeviceDownInd Go to Device down state

-    DeviceDownInd

-    // GrpcDisconnected Go to Device init state

-    GrpcDisconnected

-)

-

-// TransitionHandler function type for handling transition

-type TransitionHandler func() error

-

-// Transition to store state machine

-type Transition struct {

-    previousState []DeviceState

-    currentState  DeviceState

-    before        []TransitionHandler

-    after         []TransitionHandler

-}

-

-// TransitionMap to store all the states and current device state

-type TransitionMap struct {

-    transitions        map[Trigger]Transition

-    currentDeviceState DeviceState

-}

-

-//    OpenoltDevice state machine:

-//

-//        null ----> init ------> connected -----> up -----> down

-//                   ^ ^             |             ^         | |

-//                   | |             |             |         | |

-//                   | +-------------+             +---------+ |

-//                   |                                         |

-//                   +-----------------------------------------+

-

-// NewTransitionMap create a new state machine with all the transitions

-func NewTransitionMap(dh *DeviceHandler) *TransitionMap {

-    var transitionMap TransitionMap

-    transitionMap.currentDeviceState = deviceStateNull

-    transitionMap.transitions = make(map[Trigger]Transition)

-    // In doInit establish the grpc session

-    transitionMap.transitions[DeviceInit] =

-        Transition{

-            previousState: []DeviceState{deviceStateNull},

-            currentState:  deviceStateInit,

-            before:        []TransitionHandler{dh.doStateInit},

-            after:         []TransitionHandler{dh.postInit}}

-    // If gRpc session fails, re-establish the grpc session

-    transitionMap.transitions[GrpcDisconnected] =

-        Transition{

-            previousState: []DeviceState{deviceStateConnected, deviceStateDown},

-            currentState:  deviceStateInit,

-            before:        []TransitionHandler{dh.doStateInit},

-            after:         []TransitionHandler{dh.postInit}}

-    // in doConnected, create logical device and read the indications

-    transitionMap.transitions[GrpcConnected] =

-        Transition{

-            previousState: []DeviceState{deviceStateInit},

-            currentState:  deviceStateConnected,

-            before:        []TransitionHandler{dh.doStateConnected}}

-

-    // Once the olt UP is indication received, then do state up

-    transitionMap.transitions[DeviceUpInd] =

-        Transition{

-            previousState: []DeviceState{deviceStateConnected, deviceStateDown},

-            currentState:  deviceStateUp,

-            before:        []TransitionHandler{dh.doStateUp}}

-    // If olt DOWN indication comes then do sate down

-    transitionMap.transitions[DeviceDownInd] =

-        Transition{

-            previousState: []DeviceState{deviceStateUp},

-            currentState:  deviceStateDown,

-            before:        []TransitionHandler{dh.doStateDown}}

-

-    return &transitionMap

-}

-

-// funcName gets the handler function name

-func funcName(f interface{}) string {

-    p := reflect.ValueOf(f).Pointer()

-    rf := runtime.FuncForPC(p)

-    return rf.Name()

-}

-

-// isValidTransition checks for the new state transition is valid from current state

-func (tMap *TransitionMap) isValidTransition(trigger Trigger) bool {

-    // Validate the state transition

-    for _, state := range tMap.transitions[trigger].previousState {

-        if tMap.currentDeviceState == state {

-            return true

-        }

-    }

-    return false

-}

-

-// Handle moves the state machine to next state based on the trigger and invokes the before and

-//         after handlers

-func (tMap *TransitionMap) Handle(trigger Trigger) {

-

-    // Check whether the transtion is valid from current state

-    if !tMap.isValidTransition(trigger) {

-        log.Errorw("Invalid transition triggered ", log.Fields{"CurrentState": tMap.currentDeviceState, "Trigger": trigger})

-        return

-    }

-

-    // Invoke the before handlers

-    beforeHandlers := tMap.transitions[trigger].before

-    if beforeHandlers != nil {

-        for _, handler := range beforeHandlers {

-            log.Debugw("running-before-handler", log.Fields{"handler": funcName(handler)})

-            if err := handler(); err != nil {

-                // TODO handle error

-                return

-            }

-        }

-    } else {

-        log.Debugw("No handlers for before", log.Fields{"trigger": trigger})

-    }

-

-    // Update the state

-    tMap.currentDeviceState = tMap.transitions[trigger].currentState

-    log.Debugw("Updated device state ", log.Fields{"CurrentDeviceState": tMap.currentDeviceState})

-

-    // Invoke the after handlers

-    afterHandlers := tMap.transitions[trigger].after

-    if afterHandlers != nil {

-        for _, handler := range afterHandlers {

-            log.Debugw("running-after-handler", log.Fields{"handler": funcName(handler)})

-            if err := handler(); err != nil {

-                // TODO handle error

-                return

-            }

-        }

-    } else {

-        log.Debugw("No handlers for after", log.Fields{"trigger": trigger})

-    }

-}

+/*
+ * Copyright 2018-present Open Networking Foundation
+
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+
+ * http://www.apache.org/licenses/LICENSE-2.0
+
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package adaptercore
+
+import (
+	"reflect"
+	"runtime"
+
+	"github.com/opencord/voltha-go/common/log"
+)
+
+// DeviceState OLT Device state
+type DeviceState int
+
+const (
+	// deviceStateNull OLT is not instantiated
+	deviceStateNull DeviceState = iota
+	// deviceStateInit OLT is instantiated
+	deviceStateInit
+	// deviceStateConnected Grpc session established with OLT
+	deviceStateConnected
+	// deviceStateUp Admin state of OLT is UP
+	deviceStateUp
+	// deviceStateDown Admin state of OLT is down
+	deviceStateDown
+)
+
+// Trigger for changing the state
+type Trigger int
+
+const (
+	// DeviceInit Go to Device init state
+	DeviceInit Trigger = iota
+	// GrpcConnected Go to connected state
+	GrpcConnected
+	// DeviceUpInd Go to Device up state
+	DeviceUpInd
+	// DeviceDownInd Go to Device down state
+	DeviceDownInd
+	// GrpcDisconnected Go to Device init state
+	GrpcDisconnected
+)
+
+// TransitionHandler function type for handling transition
+type TransitionHandler func() error
+
+// Transition to store state machine
+type Transition struct {
+	previousState []DeviceState
+	currentState  DeviceState
+	before        []TransitionHandler
+	after         []TransitionHandler
+}
+
+// TransitionMap to store all the states and current device state
+type TransitionMap struct {
+	transitions        map[Trigger]Transition
+	currentDeviceState DeviceState
+}
+
+//    OpenoltDevice state machine:
+//
+//        null ----> init ------> connected -----> up -----> down
+//                   ^ ^             |             ^         | |
+//                   | |             |             |         | |
+//                   | +-------------+             +---------+ |
+//                   |                                         |
+//                   +-----------------------------------------+
+
+// NewTransitionMap create a new state machine with all the transitions
+func NewTransitionMap(dh *DeviceHandler) *TransitionMap {
+	var transitionMap TransitionMap
+	transitionMap.currentDeviceState = deviceStateNull
+	transitionMap.transitions = make(map[Trigger]Transition)
+	// In doInit establish the grpc session
+	transitionMap.transitions[DeviceInit] =
+		Transition{
+			previousState: []DeviceState{deviceStateNull},
+			currentState:  deviceStateInit,
+			before:        []TransitionHandler{dh.doStateInit},
+			after:         []TransitionHandler{dh.postInit}}
+	// If gRpc session fails, re-establish the grpc session
+	transitionMap.transitions[GrpcDisconnected] =
+		Transition{
+			previousState: []DeviceState{deviceStateConnected, deviceStateDown},
+			currentState:  deviceStateInit,
+			before:        []TransitionHandler{dh.doStateInit},
+			after:         []TransitionHandler{dh.postInit}}
+	// in doConnected, create logical device and read the indications
+	transitionMap.transitions[GrpcConnected] =
+		Transition{
+			previousState: []DeviceState{deviceStateInit},
+			currentState:  deviceStateConnected,
+			before:        []TransitionHandler{dh.doStateConnected}}
+
+	// Once the olt UP is indication received, then do state up
+	transitionMap.transitions[DeviceUpInd] =
+		Transition{
+			previousState: []DeviceState{deviceStateConnected, deviceStateDown},
+			currentState:  deviceStateUp,
+			before:        []TransitionHandler{dh.doStateUp}}
+	// If olt DOWN indication comes then do sate down
+	transitionMap.transitions[DeviceDownInd] =
+		Transition{
+			previousState: []DeviceState{deviceStateUp},
+			currentState:  deviceStateDown,
+			before:        []TransitionHandler{dh.doStateDown}}
+
+	return &transitionMap
+}
+
+// funcName gets the handler function name
+func funcName(f interface{}) string {
+	p := reflect.ValueOf(f).Pointer()
+	rf := runtime.FuncForPC(p)
+	return rf.Name()
+}
+
+// isValidTransition checks for the new state transition is valid from current state
+func (tMap *TransitionMap) isValidTransition(trigger Trigger) bool {
+	// Validate the state transition
+	for _, state := range tMap.transitions[trigger].previousState {
+		if tMap.currentDeviceState == state {
+			return true
+		}
+	}
+	return false
+}
+
+// Handle moves the state machine to next state based on the trigger and invokes the before and
+//         after handlers
+func (tMap *TransitionMap) Handle(trigger Trigger) {
+
+	// Check whether the transtion is valid from current state
+	if !tMap.isValidTransition(trigger) {
+		log.Errorw("Invalid transition triggered ", log.Fields{"CurrentState": tMap.currentDeviceState, "Trigger": trigger})
+		return
+	}
+
+	// Invoke the before handlers
+	beforeHandlers := tMap.transitions[trigger].before
+	if beforeHandlers != nil {
+		for _, handler := range beforeHandlers {
+			log.Debugw("running-before-handler", log.Fields{"handler": funcName(handler)})
+			if err := handler(); err != nil {
+				// TODO handle error
+				return
+			}
+		}
+	} else {
+		log.Debugw("No handlers for before", log.Fields{"trigger": trigger})
+	}
+
+	// Update the state
+	tMap.currentDeviceState = tMap.transitions[trigger].currentState
+	log.Debugw("Updated device state ", log.Fields{"CurrentDeviceState": tMap.currentDeviceState})
+
+	// Invoke the after handlers
+	afterHandlers := tMap.transitions[trigger].after
+	if afterHandlers != nil {
+		for _, handler := range afterHandlers {
+			log.Debugw("running-after-handler", log.Fields{"handler": funcName(handler)})
+			if err := handler(); err != nil {
+				// TODO handle error
+				return
+			}
+		}
+	} else {
+		log.Debugw("No handlers for after", log.Fields{"trigger": trigger})
+	}
+}