This is an automated email from the ASF dual-hosted git repository.

miaoliyao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/shardingsphere-on-cloud.git


The following commit(s) were added to refs/heads/main by this push:
     new 944805f  feat: cli input parameter reception (#214)
944805f is described below

commit 944805fadb27d9b4876faece45412b175d292279
Author: lltgo <[email protected]>
AuthorDate: Mon Feb 20 16:00:35 2023 +0800

    feat: cli input parameter reception (#214)
    
    * feat: cli input parameter reception
    
    * chore:update license
---
 pitr/cli/internal/cmd/backup.go  | 65 ++++++++++++++++++++++++++++++-
 pitr/cli/internal/cmd/resotre.go | 66 +++++++++++++++++++++++++++++++-
 pitr/cli/internal/cmd/root.go    | 82 ++++++++++++++++++++++++++++++++++++++++
 pitr/cli/internal/cmd/show.go    | 66 +++++++++++++++++++++++++++++++-
 pitr/cli/main.go                 | 16 +-------
 5 files changed, 278 insertions(+), 17 deletions(-)

diff --git a/pitr/cli/internal/cmd/backup.go b/pitr/cli/internal/cmd/backup.go
index 77b643e..62a2fff 100644
--- a/pitr/cli/internal/cmd/backup.go
+++ b/pitr/cli/internal/cmd/backup.go
@@ -17,4 +17,67 @@
 
 package cmd
 
-//TODO
+import (
+       "fmt"
+
+       "github.com/spf13/cobra"
+)
+
+const (
+       dnBackupPath = "dn-backup-path"
+       dnThreadsNum = "dn-threads-num"
+)
+
+var Backup = &cobra.Command{
+       Use:   "backup",
+       Short: "Backup a database cluster",
+       Run: func(cmd *cobra.Command, args []string) {
+
+               host, err := cmd.Flags().GetString(host)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:host:%s", host))
+
+               port, err := cmd.Flags().GetUint16(port)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:port:%d", port))
+
+               un, err := cmd.Flags().GetString(username)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:username:%s", un))
+
+               pw, err := cmd.Flags().GetString(password)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:password:%s", pw))
+
+               agentPort, err := cmd.Flags().GetUint16(agentPort)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:agentPort:%d", agentPort))
+
+               backupPath, err := cmd.Flags().GetString(dnBackupPath)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:backupPath:%s", backupPath))
+
+               threadsNum, err := cmd.Flags().GetUint16(dnThreadsNum)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:threadsNum:%d", threadsNum))
+       },
+}
+
+func init() {
+       Backup.PersistentFlags().StringP(dnBackupPath, "B", "", "DataNode 
backup path")
+       Backup.PersistentFlags().Uint16P(dnThreadsNum, "j", 1, "DataNode backup 
threads nums")
+}
diff --git a/pitr/cli/internal/cmd/resotre.go b/pitr/cli/internal/cmd/resotre.go
index 77b643e..4c25d06 100644
--- a/pitr/cli/internal/cmd/resotre.go
+++ b/pitr/cli/internal/cmd/resotre.go
@@ -17,4 +17,68 @@
 
 package cmd
 
-//TODO
+import (
+       "fmt"
+
+       "github.com/spf13/cobra"
+)
+
+const (
+       backupRecordID = "id"
+       csn            = "csn"
+)
+
+var Restore = &cobra.Command{
+       Use:   "restore",
+       Short: "Restore a database cluster ",
+       Run: func(cmd *cobra.Command, args []string) {
+               host, err := cmd.Flags().GetString(host)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:host:%s", host))
+
+               port, err := cmd.Flags().GetUint16(port)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:port:%d", port))
+
+               un, err := cmd.Flags().GetString(username)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:username:%s", un))
+
+               pw, err := cmd.Flags().GetString(password)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:password:%s", pw))
+
+               agentPort, err := cmd.Flags().GetUint16(agentPort)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:agentPort:%d", agentPort))
+
+               csn, err := cmd.Flags().GetString(csn)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:csn:%s", csn))
+
+               id, err := cmd.Flags().GetString(backupRecordID)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:id:%s", id))
+
+               fmt.Println("Restore...")
+       },
+}
+
+func init() {
+       Restore.PersistentFlags().StringP(csn, "", "", "commit sequence number")
+       Restore.PersistentFlags().StringP(backupRecordID, "", "", "backup 
record id")
+}
diff --git a/pitr/cli/internal/cmd/root.go b/pitr/cli/internal/cmd/root.go
new file mode 100644
index 0000000..9232eea
--- /dev/null
+++ b/pitr/cli/internal/cmd/root.go
@@ -0,0 +1,82 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You 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 cmd
+
+import (
+       "fmt"
+
+       "github.com/spf13/cobra"
+)
+
+const (
+       host      = "host"
+       port      = "port"
+       username  = "username"
+       password  = "password"
+       agentPort = "agent-port"
+)
+
+var Root = &cobra.Command{
+       Use:   "gs_pitr",
+       Short: "PITR tools for openGauss",
+       Run: func(cmd *cobra.Command, args []string) {
+               host, err := cmd.Flags().GetString(host)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:host:%s", host))
+
+               port, err := cmd.Flags().GetUint16(port)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:port:%d", port))
+
+               un, err := cmd.Flags().GetString(username)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:username:%s", un))
+
+               pw, err := cmd.Flags().GetString(password)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:password:%s", pw))
+
+               agentPort, err := cmd.Flags().GetUint16(agentPort)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:agentPort:%d", agentPort))
+       },
+       CompletionOptions: cobra.CompletionOptions{
+               DisableDefaultCmd: true,
+               HiddenDefaultCmd:  true,
+       },
+}
+
+func init() {
+       Root.PersistentFlags().StringP(host, "H", "", "shardingsphere proxy 
server host")
+       Root.PersistentFlags().Uint16P(port, "P", 1, "shardingsphere proxy 
service port")
+       Root.PersistentFlags().StringP(username, "u", "", "shardingsphere proxy 
username")
+       Root.PersistentFlags().StringP(password, "p", "", "shardingsphere proxy 
password")
+       Root.PersistentFlags().Uint16P(agentPort, "", 443, "agent server port")
+
+       Root.AddCommand(Backup, Restore, Show)
+}
diff --git a/pitr/cli/internal/cmd/show.go b/pitr/cli/internal/cmd/show.go
index 77b643e..664fd2d 100644
--- a/pitr/cli/internal/cmd/show.go
+++ b/pitr/cli/internal/cmd/show.go
@@ -17,4 +17,68 @@
 
 package cmd
 
-//TODO
+import (
+       "fmt"
+
+       "github.com/spf13/cobra"
+)
+
+var Show = &cobra.Command{
+       Use:   "show",
+       Short: "Show backup history",
+       Run: func(cmd *cobra.Command, args []string) {
+               host, err := cmd.Flags().GetString(host)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:host:%s", host))
+
+               port, err := cmd.Flags().GetUint16(port)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:port:%d", port))
+
+               un, err := cmd.Flags().GetString(username)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:username:%s", un))
+
+               pw, err := cmd.Flags().GetString(password)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:password:%s", pw))
+
+               agentPort, err := cmd.Flags().GetUint16(agentPort)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:agentPort:%d", agentPort))
+
+               csn, err := cmd.Flags().GetString(csn)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:csn:%s", csn))
+
+               id, err := cmd.Flags().GetString(backupRecordID)
+               if err != nil {
+                       fmt.Println(err)
+               }
+               fmt.Println(fmt.Sprintf("flags:id:%s", id))
+
+               fmt.Println("Restore...")
+       },
+}
+
+func init() {
+       var (
+               csn string
+               id  string
+       )
+
+       Show.PersistentFlags().StringVarP(&csn, "csn", "", "", "commit sequence 
number")
+       Show.PersistentFlags().StringVarP(&id, "id", "", "", "backup record id")
+}
diff --git a/pitr/cli/main.go b/pitr/cli/main.go
index 1055512..1d772f4 100644
--- a/pitr/cli/main.go
+++ b/pitr/cli/main.go
@@ -20,23 +20,11 @@ package main
 import (
        "fmt"
 
-       "github.com/spf13/cobra"
+       "github.com/apache/shardingsphere-on-cloud/pitr/cli/internal/cmd"
 )
 
-var rootCmd = &cobra.Command{
-       Use:   "gs_pitr",
-       Short: "PITR tools for openGauss",
-       Run: func(cmd *cobra.Command, args []string) {
-               fmt.Println("Did nothing...")
-       },
-       CompletionOptions: cobra.CompletionOptions{
-               DisableDefaultCmd: true,
-               HiddenDefaultCmd:  true,
-       },
-}
-
 func main() {
-       if err := rootCmd.Execute(); err != nil {
+       if err := cmd.Root.Execute(); err != nil {
                fmt.Println(fmt.Sprintf("Err: %s", err))
        }
 }

Reply via email to