diff --git a/demo_test/cmd_client/Makefile b/demo_test/cmd_client/Makefile
deleted file mode 100644
index c9f9579..0000000
--- a/demo_test/cmd_client/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-# 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.
-
-cmd_cl: cmd_cl.go
-	go build -i -v -o $@
-
diff --git a/demo_test/cmd_client/Note b/demo_test/cmd_client/Note
deleted file mode 100644
index 4e2a6ba..0000000
--- a/demo_test/cmd_client/Note
+++ /dev/null
@@ -1,111 +0,0 @@
-// Copyright 2018 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.
-
-At the root of the device-management source tree
-1. cd demotest
-   make demotest
-   ./demotest
-2. Create another ssh session
-   cd ./demotest/cmd_cleint
-   make cmd_cl
-   ./cmd_cl
-
-   then it will have "CMD to send:" prompt
-   You can use the following "client cmd" to test.
-
-   Example:
-
-   Attach a device will subscribe default 3 types events into the server.  
-   You can use the following wget to check if any events subscriptions on the device.
-
-   wget --no-check-certificate  \
-   -qO- https://RFSERVERIP:8888/redfish/v1/EventService/Subscriptions/ \
-   | python -m json.tool
-
-   You can also use "unsub:add:rm:alert" to unsubscribe all 3 types of event subscriptions on the device.
-
-   And use "QUIT" to leave test.
-
---------------------------------------------------------------------------------------
-Test items								client cmd
---------------------------------------------------------------------------------------
-register one device								Example:
-
-Set IP 192.168.4.27 port 8888 freq 180
-									attach 192.168.4.27:8888:180
---------------------------------------------------------------------------------------
-register multiple devices							Example:
-
-Set "IP 192.168.4.27 port 8888 freq 180" and "IP 192.168.4.26 port 8888 freq 120"
-									attach 192.168.4.27:8888:180 192.168.4.26:8888:120
-
---------------------------------------------------------------------------------------
-delete devices									Example:
-
-Delete "IP 192.168.4.27" and "IP 192.168.3.34"
-
-									delete 192.168.4.27:8888 192.168.4.26:8888
---------------------------------------------------------------------------------------
-Get Current List of Devices monitored					showdevices
-									Return from server: 192.168.4.26:8888 192.168.4.27:8888
---------------------------------------------------------------------------------------
-UnSubscribe all events(ResourceAdded/ResourceRemoved/Alert)		unsub:192.168.4.27:8888:add:rm:alert
-=======
-UnSubscribe all events(ResourceAdded/ResourceRemoved/Alert)		unsub 192.168.4.27:8888:add:rm:alert
->>>>>>> SEBA-841 importer to parse all status from redfish server for data collection purpose / remove demotest binary
---------------------------------------------------------------------------------------
-Subscribe all events(ResourceAdded/ResourceRemoved/Alert) 		sub 192.168.4.27:8888:add:rm:alert
---------------------------------------------------------------------------------------
-Subscribe and unsubscribe an event					Example:	
-
-Subscribe ResourceAdded event 						sub 192.168.4.27:8888:add
-Subscribe ResourceRemoved event						sub 192.168.4.27:8888:rm
-Subscribe Alert event							sub 192.168.4.27:8888:alert
-Unsubscribe ResourceAdded event						unsub 192.168.4.27:8888:add
-Unsubscribe ResourceRemoved event					unsub 192.168.4.27:8888:rm
-Unsubscribe Alert event							unsub 192.168.4.27:8888:alert
---------------------------------------------------------------------------------------
-Subscribe and unsubscribe multiple events, out of order			Use the above commands to do test.
---------------------------------------------------------------------------------------
-Subscribe an unsupported event						sub 192.168.4.27:8888:update
---------------------------------------------------------------------------------------
-Subscribe to an already subscribed event				Example:
-
-									sub 192.168.4.27:8888:add
-									sub 192.168.4.27:8888:add
---------------------------------------------------------------------------------------
-Unsubscribe  an unsupported event					unsub 192.168.4.27:8888:update
---------------------------------------------------------------------------------------
-Unsubscribe a supported but not-subscribed event			Example:
-
-									unsub 192.168.4.27:8888:add:rm:alert
-									unsub 192.168.4.27:8888:add
-									unsub 192.168.4.27:8888:rm
-									unsub 192.168.4.27:8888:alert
---------------------------------------------------------------------------------------
-Change polling interval 						Example: 
-
-Set frequecny to 30 seconds
-									period 192.168.4.27:8888:30
---------------------------------------------------------------------------------------
-Show list of supported event						showeventlist 192.168.4.27:8888
------------------------------------------------------------------------------------------------
-Show current events subscribed by device                               showdeviceeventlist 192.168.4.27:8888
------------------------------------------------------------------------------------------------------------- 
-Clear all current events subscribed by device                          cleardeviceeventlist 192.168.4.27:8888
--------------------------------------------------------------------------------------------------------------
-* During and after each test, verify the list of events subscribed	wget --no-check-certificate  \
-									-qO- https://192.168.4.27:8888/redfish/v1/EventService/Subscriptions/ \
-									| python -m json.tool
---------------------------------------------------------------------------------------
diff --git a/demo_test/cmd_client/cmd_cl.go b/demo_test/cmd_client/cmd_cl.go
deleted file mode 100644
index ea704bd..0000000
--- a/demo_test/cmd_client/cmd_cl.go
+++ /dev/null
@@ -1,43 +0,0 @@
-// 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 main
-
-import "net"
-import "fmt"
-import "bufio"
-import "os"
-import "strings"
-
-func main() {
-	// connect to this socket
-	conn, _ := net.Dial("tcp", "127.0.0.1:9999")
-	reader := bufio.NewReader(os.Stdin)
-	for {
-		// read in input from stdin
-		fmt.Print("CMD to send : ")
-		text, _ := reader.ReadString(';')
-		text = strings.TrimSuffix(text, ";")
-		// send to socket
-		fmt.Fprintf(conn, text+"\n")
-
-		// listen for reply
-		message, _ := bufio.NewReader(conn).ReadString('\n')
-		fmt.Print("Return from server: " + message)
-
-		if message == "QUIT\n" {
-			break
-		}
-	}
-}
