未验证 提交 5cc8fc29 编写于 作者: A Avi Aryan

open app query view, implemented #70

doesnt work now
上级 59374b84
// +build !oss
package importer
package app
import (
"errors"
"fmt"
"github.com/appbaseio/abc/appbase/app"
"github.com/appbaseio/abc/appbase/common"
"github.com/appbaseio/abc/appbase/login"
// "github.com/appbaseio/abc/log"
"github.com/appbaseio/abc/appbase/spinner"
"strings"
)
// OpenAppDataView ...
func OpenAppDataView(app string) error {
spinner.StartText("Making Dejavu URL")
defer spinner.Stop()
url, err := GetAppURL(app)
if err != nil {
return err
}
djURL, err := common.MakeDejavuURL(url)
if err != nil {
return err
}
spinner.Stop()
fmt.Printf("Opening url %s\n", djURL)
err = common.OpenURL(djURL)
if err != nil {
return err
}
return nil
}
// GetAppURL returns the full url of an app
func GetAppURL(appName string) (string, error) {
if !login.IsUserAuthenticated() {
return "", errors.New("User not logged in. Unable to fetch app url")
}
appID, err := app.EnsureAppID(appName)
appID, err := EnsureAppID(appName)
if err != nil {
return "", err
}
perms, err := app.GetAppPerms(appID)
perms, err := GetAppPerms(appID)
if err != nil {
return "", err
}
......
package common
import (
"fmt"
"github.com/appbaseio/abc/log"
"strings"
)
// MakeDejavuURL ...
func MakeDejavuURL(appURL string) (string, error) {
idx := strings.LastIndex(appURL, "/")
hostURL := appURL[:idx]
appName := appURL[idx+1:]
jsonStr := fmt.Sprintf("{\"appname\":\"%s\",\"url\":\"%s\",\"selectedType\":[]}", appName, hostURL)
url := "https://opensource.appbase.io/dejavu/live/#?app=" + jsonStr
log.Debugln(url)
return url, nil
}
......@@ -32,16 +32,20 @@ func runApps(args []string) error {
// runApp runs `app` command
func runApp(args []string) error {
flagset := baseFlagSet("app")
basicUsage := "abc app [-c|--creds] [-m|--metrics] [ID|Appname]"
basicUsage := "abc app [-c|--creds] [-m|--metrics] [--data-view] [ID|Appname]"
flagset.Usage = usageFor(flagset, basicUsage)
creds := flagset.BoolP("creds", "c", false, "show app credentials")
metrics := flagset.BoolP("metrics", "m", false, "show app metrics")
dataView := flagset.Bool("data-view", false, "open app data view using Dejavu")
if err := flagset.Parse(args); err != nil {
return err
}
args = flagset.Args()
if len(args) == 1 {
if *dataView {
return app.OpenAppDataView(args[0])
}
return app.ShowAppDetails(args[0], *creds, *metrics)
}
showShortHelp(basicUsage)
......
......@@ -5,8 +5,8 @@ package main
import (
"encoding/json"
"fmt"
"github.com/appbaseio/abc/appbase/app"
"github.com/appbaseio/abc/appbase/common"
"github.com/appbaseio/abc/appbase/importer"
"github.com/appbaseio/abc/imports/adaptor"
"github.com/appbaseio/abc/log"
"github.com/joho/godotenv"
......@@ -151,14 +151,14 @@ func writeConfigFile(srcConfig map[string]interface{}, destConfig map[string]int
// check appname as destination uri
if !strings.Contains(destConfig["uri"].(string), "/") {
destConfig["uri"], err = importer.GetAppURL(destConfig["uri"].(string))
destConfig["uri"], err = app.GetAppURL(destConfig["uri"].(string))
if err != nil {
return "", err
}
}
// check appname as source uri
if (!strings.Contains(srcConfig["uri"].(string), "/")) && srcConfig["_name_"].(string) == "elasticsearch" {
srcConfig["uri"], err = importer.GetAppURL(srcConfig["uri"].(string))
srcConfig["uri"], err = app.GetAppURL(srcConfig["uri"].(string))
if err != nil {
return "", err
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册