Fixing BUG in disable OLT device

Change-Id: I297f2056163262719c904defc3cfbc89c53ce306
diff --git a/core/grpc_service.go b/core/grpc_service.go
index e647c9d..90bdf35 100644
--- a/core/grpc_service.go
+++ b/core/grpc_service.go
@@ -25,11 +25,16 @@
 	"google.golang.org/grpc"
 	"log"
 	"net"
+	"os/exec"
 )
 
 // gRPC Service
 func (s *Server) DisableOlt(c context.Context, empty *openolt.Empty) (*openolt.Empty, error) {
 	log.Printf("OLT receives DisableOLT()\n")
+	if err := sendOltIndDown(*s.EnableServer); err != nil {
+		return new(openolt.Empty), err
+	}
+	log.Println("Successfuly sent OLT DOWN indication !")
 	return new(openolt.Empty), nil
 }
 
@@ -134,15 +139,16 @@
 
 func (s *Server) Reboot(c context.Context, empty *openolt.Empty) (*openolt.Empty, error) {
 	log.Printf("OLT %d receives Reboot ().\n", s.Olt.ID)
-	log.Printf("pointer@Reboot %p", s)
 	// Initialize OLT & Env
 	if s.TestFlag == true{
-		log.Println("Initialize by Reboot")
+		log.Println("Initialized by Reboot")
 		cleanUpVeths(s.VethEnv)
 		close(s.Endchan)
 		processes := s.Processes
 		log.Println("processes:", processes)
 		killProcesses(processes)
+		exec.Command("rm", "/var/run/dhcpd.pid").Run()
+		exec.Command("touch", "/var/run/dhcpd.pid").Run()
 		s.Initialize()
 	}
 	olt := s.Olt
@@ -159,6 +165,7 @@
 	defer func() {
 		s.gRPCserver.Stop()
 	}()
+	s.EnableServer = &stream
 	log.Printf("OLT receives EnableInd.\n")
 	if err := s.activateOLT(stream); err != nil {
 		log.Printf("Failed to activate OLT: %v\n", err)