func newCliRpcServer(outputCapture terminal.OutputCapture, terminalOutputSwitch terminal.TerminalOutputSwitch) *rpc.CliRpcService { cliServer, err := rpc.NewRpcService(outputCapture, terminalOutputSwitch, deps.Config, deps.RepoLocator, rpc.NewNonCodegangstaRunner()) if err != nil { deps.Ui.Say(T("Error initializing RPC service: ") + err.Error()) os.Exit(1) } return cliServer }
func (cmd *PluginInstall) SetDependency(deps command_registry.Dependency, pluginCall bool) command_registry.Command { cmd.ui = deps.Ui cmd.config = deps.Config cmd.pluginConfig = deps.PluginConfig cmd.pluginRepo = deps.PluginRepo cmd.checksum = deps.ChecksumUtil //reset rpc registration in case there is other running instance, //each service can only be registered once rpc.DefaultServer = rpc.NewServer() rpcService, err := rpcService.NewRpcService(deps.TeePrinter, deps.TeePrinter, deps.Config, deps.RepoLocator, rpcService.NewNonCodegangstaRunner()) if err != nil { cmd.ui.Failed("Error initializing RPC service: " + err.Error()) } cmd.rpcService = rpcService return cmd }
It("set the rpc command's Return Data", func() { var success bool err = client.Call("CliRpcCmd.SetPluginMetadata", metadata, &success) Expect(err).ToNot(HaveOccurred()) Expect(success).To(BeTrue()) Expect(rpcService.RpcCmd.PluginMetadata).To(Equal(metadata)) }) }) Describe(".GetOutputAndReset", func() { Context("success", func() { BeforeEach(func() { outputCapture := terminal.NewTeePrinter() rpcService, err = NewRpcService(nil, outputCapture, nil, nil, api.RepositoryLocator{}, cmdRunner.NewNonCodegangstaRunner()) Expect(err).ToNot(HaveOccurred()) err := rpcService.Start() Expect(err).ToNot(HaveOccurred()) pingCli(rpcService.Port()) }) AfterEach(func() { rpcService.Stop() //give time for server to stop time.Sleep(50 * time.Millisecond) })