move refs/pman over to owncloud/ocis/ocis/pkg/runtime

This commit is contained in:
A.Unger
2021-01-25 16:06:22 +01:00
parent 1404a8beaa
commit e50ee6e002
23 changed files with 994 additions and 5 deletions
+35
View File
@@ -0,0 +1,35 @@
package cmd
import (
"fmt"
"log"
"net"
"net/rpc"
"github.com/owncloud/ocis/ocis/pkg/runtime/config"
"github.com/spf13/cobra"
)
// Kill an extension.
func Kill(cfg *config.Config) *cobra.Command {
return &cobra.Command{
Use: "kill",
Aliases: []string{"k"},
Short: "Kill a running extensions.",
Args: cobra.MinimumNArgs(1),
Run: func(cmd *cobra.Command, args []string) {
client, err := rpc.DialHTTP("tcp", net.JoinHostPort(cfg.Hostname, cfg.Port))
if err != nil {
log.Fatal("dialing:", err)
}
var arg1 int
if err := client.Call("Service.Kill", &args[0], &arg1); err != nil {
log.Fatal(err)
}
fmt.Println(arg1)
},
}
}
+34
View File
@@ -0,0 +1,34 @@
package cmd
import (
"fmt"
"log"
"net"
"net/rpc"
"github.com/owncloud/ocis/ocis/pkg/runtime/config"
"github.com/spf13/cobra"
)
// List running extensions.
func List(cfg *config.Config) *cobra.Command {
return &cobra.Command{
Use: "list",
Aliases: []string{"r"},
Short: "List running extensions",
Run: func(cmd *cobra.Command, args []string) {
client, err := rpc.DialHTTP("tcp", net.JoinHostPort(cfg.Hostname, cfg.Port))
if err != nil {
log.Fatal("dialing:", err)
}
var arg1 string
if err := client.Call("Service.List", struct{}{}, &arg1); err != nil {
log.Fatal(err)
}
fmt.Println(arg1)
},
}
}
+30
View File
@@ -0,0 +1,30 @@
package cmd
import (
"github.com/owncloud/ocis/ocis/pkg/runtime/config"
"github.com/spf13/cobra"
"github.com/spf13/viper"
)
var (
rootCmd = &cobra.Command{
Use: "pman",
Short: "RPC Process Manager",
}
)
// RootCmd returns a configured root command.
func RootCmd(cfg *config.Config) *cobra.Command {
rootCmd.PersistentFlags().StringVarP(&cfg.Hostname, "hostname", "n", "localhost", "host with a running OCIS runtime.")
rootCmd.PersistentFlags().StringVarP(&cfg.Port, "port", "p", "10666", "port to send messages to the rpc OCIS runtime.")
rootCmd.PersistentFlags().BoolVarP(&cfg.KeepAlive, "keep-alive", "k", false, "restart supervised processes that abruptly die.")
viper.BindPFlag("hostname", rootCmd.PersistentFlags().Lookup("hostname"))
viper.BindPFlag("port", rootCmd.PersistentFlags().Lookup("port"))
rootCmd.AddCommand(List(cfg))
rootCmd.AddCommand(Run(cfg))
rootCmd.AddCommand(Kill(cfg))
return rootCmd
}
+37
View File
@@ -0,0 +1,37 @@
package cmd
import (
"fmt"
"log"
"net"
"net/rpc"
"os"
"github.com/owncloud/ocis/ocis/pkg/runtime/config"
"github.com/owncloud/ocis/ocis/pkg/runtime/process"
"github.com/spf13/cobra"
)
// Run an extension.
func Run(cfg *config.Config) *cobra.Command {
return &cobra.Command{
Use: "run",
Short: "Run an extension.",
Args: cobra.MinimumNArgs(1),
Run: func(cmd *cobra.Command, args []string) {
client, err := rpc.DialHTTP("tcp", net.JoinHostPort(cfg.Hostname, cfg.Port))
if err != nil {
log.Fatal("dialing:", err)
}
proc := process.NewProcEntry(args[0], os.Environ(), []string{args[0]}...)
var res int
if err := client.Call("Service.Start", proc, &res); err != nil {
log.Fatal(err)
}
fmt.Println(res)
},
}
}