| /* |
| * 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 mainmenu |
| |
| import ( |
| "fmt" |
| |
| "github.com/bclicn/color" |
| "github.com/opencord/voltha-go/cli/util" |
| "google.golang.org/grpc" |
| ) |
| |
| /* |
| Conn - the grpc connection to use for making calls to voltha core |
| */ |
| var Conn *grpc.ClientConn |
| |
| /* |
| MainLoop - the loop which processes commands at the main level |
| */ |
| func MainLoop(conn *grpc.ClientConn) { |
| |
| inputPrompt := fmt.Sprint("(" + color.LightBlue("voltha") + ") ") |
| // inputPromptSize := len(inputPrompt) |
| Conn = conn |
| mainFuncTable := make(map[string]func(bool)) |
| mainFuncTable["quit"] = util.Exit |
| mainFuncTable["exit"] = nil |
| mainFuncTable["cmdenvironment"] = doCmdEnvironment |
| mainFuncTable["load"] = doLoad |
| mainFuncTable["relative_load"] = doRelativeLoad |
| mainFuncTable["reset_history"] = doResetHistory |
| mainFuncTable["log"] = doLog |
| mainFuncTable["launch"] = doLaunch |
| mainFuncTable["restart"] = doRestart |
| mainFuncTable["devices"] = doDevices |
| mainFuncTable["device"] = doDevice |
| mainFuncTable["logical_devices"] = doLogicalDevices |
| mainFuncTable["logical_device"] = doLogicalDevice |
| mainFuncTable["omci"] = doOmci |
| mainFuncTable["pdb"] = doPdb |
| mainFuncTable["version"] = doVersion |
| mainFuncTable["health"] = doHealth |
| mainFuncTable["preprovison_olt"] = doPreprovisionOlt |
| mainFuncTable["enable"] = doEnable |
| mainFuncTable["reboot"] = doReboot |
| mainFuncTable["self_test"] = doSelfTest |
| mainFuncTable["delete"] = doDelete |
| mainFuncTable["disable"] = doDisable |
| mainFuncTable["test"] = doTest |
| mainFuncTable["alarm_filters"] = doAlarmFilters |
| mainFuncTable["arrive_onus"] = doArriveOnus |
| mainFuncTable["install_eapol_flow"] = doInstallEapolFlow |
| mainFuncTable["install_all_controller_bound_flows"] = doInstallAllControllerBoundFlows |
| mainFuncTable["install_all_sample_flows"] = doInstallAllSampleFlows |
| mainFuncTable["install_dhcp_flows"] = doInstallDhcpFlows |
| mainFuncTable["delete_all_flows"] = doDeleteAllFlows |
| mainFuncTable["send_simulated_upstream_eapol"] = doSendSimulatedUpstreamEapol |
| mainFuncTable["inject_eapol_start"] = doInjectEapolStart |
| util.ProcessTable(mainFuncTable, inputPrompt) |
| } |