From 920158cae790855d88f87f6cf18da2f72c72fe4c Mon Sep 17 00:00:00 2001 From: wzj Date: Tue, 20 Dec 2016 10:08:44 +0800 Subject: [PATCH 01/11] add appplatform sdk --- kirksdk/account_api.go | 45 +++++++++++++++++++++++++++++++++++++++ kirksdk/account_client.go | 38 ++++++++++++++++++++++++++++++++- 2 files changed, 82 insertions(+), 1 deletion(-) diff --git a/kirksdk/account_api.go b/kirksdk/account_api.go index 953a9fa..f308a9c 100644 --- a/kirksdk/account_api.go +++ b/kirksdk/account_api.go @@ -95,6 +95,24 @@ type AccountClient interface { // GetGrantedAppKey 获取被授权应用的key GetGrantedAppKey(ctx context.Context, appURI string) (ret GrantedAppKey, err error) + + // GetAppspecs 获得应用模板信息 + GetAppspecs(ctx context.Context, specURI string) (ret SpecInfo, err error) + + // ListPublicspecs 列出公开应用的模板 + ListPublicspecs(ctx context.Context) (ret []SpecInfo, err error) + + // ListTrialspecs 列出被授权应用的模板 + ListTrialspecs(ctx context.Context) (ret []SpecInfo, err error) + + // GetVendorManagedAppStatus 获得VendorManaged应用运行状态 + GetVendorManagedAppStatus(ctx context.Context, appURI string) (ret VendorManagedAppStatus, err error) + + // GetVendorManagedAppEntry 获得VendorManaged应用入口地址 + GetVendorManagedAppEntry(ctx context.Context, appURI string) (ret VendorManagedAppEntry, err error) + + // VendorManagedAppRepair 尝试修复VendorManaged应用 + VendorManagedAppRepair(ctx context.Context, appURI string) (err error) } // AccountConfig 包含创建 AccountClient 所需的信息 @@ -205,3 +223,30 @@ type GrantedAppKey struct { Ak string `json:"ak"` Sk string `json:"sk"` } + +// SpecInfo 包含 Spec 的相关信息 +type SpecInfo struct { + URI string `json:"uri"` + Owner string `json:"owner"` + Title string `json:"title"` + Ver uint32 `json:"ver"` + Verstr string `json:"verstr"` + Desc string `json:"desc,omitempty"` + Brief string `json:"brief"` + Icon string `json:"icon"` + Seedimg string `json:"seedimg"` + Entryport uint16 `json:"entryport"` + Ctime time.Time `json:"ctime"` + Mtime time.Time `json:"mtime"` +} + +// VendorManagedAppStatus 包含应用运行状态信息 +type VendorManagedAppStatus struct { + Status string `json:"status"` + Details string `json:"details"` +} + +// VendorManagedAppEntry 包含应用入口地址 +type VendorManagedAppEntry struct { + Entry string `json:"entry"` +} diff --git a/kirksdk/account_client.go b/kirksdk/account_client.go index 02d6d72..673dbcc 100644 --- a/kirksdk/account_client.go +++ b/kirksdk/account_client.go @@ -167,7 +167,43 @@ func (p *accountClientImp) GetGrantedAppKey(ctx context.Context, appURI string) return } -func (p *accountClientImp) GetIndexClient(ctx context.Context) (client IndexClient, err error) { +func (p *accountClientImp) GetAppspecs(ctx context.Context, specURI string) (ret SpecInfo, err error) { + url := fmt.Sprintf("%s%s/appspecs/%s", p.host, appVersionPrefix, specURI) + err = p.client.Call(ctx, &ret, "GET", url) + return +} + +func (p *accountClientImp) ListPublicSpecs(ctx context.Context) (ret []SpecInfo, err error) { + url := fmt.Sprintf("%s%s/publicspecs", p.host, appVersionPrefix) + err = p.client.Call(ctx, &ret, "GET", url) + return +} + +func (p *accountClientImp) ListTrialspecs(ctx context.Context) (ret []SpecInfo, err error) { + url := fmt.Sprintf("%s%s/trialspecs", p.host, appVersionPrefix) + err = p.client.Call(ctx, &ret, "GET", url) + return +} + +func (p *accountClientImp) GetVendorManagedAppStatus(ctx context.Context, appURI string) (ret VendorManagedAppStatus, err error) { + url := fmt.Sprintf("%s%s/apps/%s/status", p.host, appVersionPrefix, appURI) + err = p.client.Call(ctx, &ret, "GET", url) + return +} + +func (p *accountClientImp) GetVendorManagedAppEntry(ctx context.Context, appURI string) (ret VendorManagedAppEntry, err error) { + url := fmt.Sprintf("%s%s/apps/%s/entry", p.host, appVersionPrefix, appURI) + err = p.client.Call(ctx, &ret, "GET", url) + return +} + +func (p *accountClientImp) VendorManagedAppRepair(ctx context.Context, appURI string) (err error) { + url := fmt.Sprintf("%s%s/apps/%s/repair", p.host, appVersionPrefix, appURI) + err = p.client.Call(ctx, nil, "PUT", url) + return +} + +func (p *accountClientImp) GetIndexClient(ctx context.Context, appURI string) (client IndexClient, err error) { accountInfo, err := p.GetAccountInfo(ctx) if err != nil { return From 4a1fc064293a511ee522416c8961ef9ac56db553 Mon Sep 17 00:00:00 2001 From: wzj Date: Wed, 21 Dec 2016 11:47:29 +0800 Subject: [PATCH 02/11] modify ListGrantedspecs --- kirksdk/account_api.go | 4 ++-- kirksdk/account_client.go | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/kirksdk/account_api.go b/kirksdk/account_api.go index f308a9c..9a53493 100644 --- a/kirksdk/account_api.go +++ b/kirksdk/account_api.go @@ -102,8 +102,8 @@ type AccountClient interface { // ListPublicspecs 列出公开应用的模板 ListPublicspecs(ctx context.Context) (ret []SpecInfo, err error) - // ListTrialspecs 列出被授权应用的模板 - ListTrialspecs(ctx context.Context) (ret []SpecInfo, err error) + // ListGrantedspecs 列出被授权应用的模板 + ListGrantedspecs(ctx context.Context) (ret []SpecInfo, err error) // GetVendorManagedAppStatus 获得VendorManaged应用运行状态 GetVendorManagedAppStatus(ctx context.Context, appURI string) (ret VendorManagedAppStatus, err error) diff --git a/kirksdk/account_client.go b/kirksdk/account_client.go index 673dbcc..0cc08b4 100644 --- a/kirksdk/account_client.go +++ b/kirksdk/account_client.go @@ -173,14 +173,14 @@ func (p *accountClientImp) GetAppspecs(ctx context.Context, specURI string) (ret return } -func (p *accountClientImp) ListPublicSpecs(ctx context.Context) (ret []SpecInfo, err error) { +func (p *accountClientImp) ListPublicspecs(ctx context.Context) (ret []SpecInfo, err error) { url := fmt.Sprintf("%s%s/publicspecs", p.host, appVersionPrefix) err = p.client.Call(ctx, &ret, "GET", url) return } -func (p *accountClientImp) ListTrialspecs(ctx context.Context) (ret []SpecInfo, err error) { - url := fmt.Sprintf("%s%s/trialspecs", p.host, appVersionPrefix) +func (p *accountClientImp) ListGrantedspecs(ctx context.Context) (ret []SpecInfo, err error) { + url := fmt.Sprintf("%s%s/grantedspecs", p.host, appVersionPrefix) err = p.client.Call(ctx, &ret, "GET", url) return } @@ -203,7 +203,7 @@ func (p *accountClientImp) VendorManagedAppRepair(ctx context.Context, appURI st return } -func (p *accountClientImp) GetIndexClient(ctx context.Context, appURI string) (client IndexClient, err error) { +func (p *accountClientImp) GetIndexClient(ctx context.Context) (client IndexClient, err error) { accountInfo, err := p.GetAccountInfo(ctx) if err != nil { return From fb37f8bbaedea2dbbf6778b80ffe44a76c98c12c Mon Sep 17 00:00:00 2001 From: wzj Date: Wed, 21 Dec 2016 11:56:44 +0800 Subject: [PATCH 03/11] modify get to put --- kirksdk/account_client.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kirksdk/account_client.go b/kirksdk/account_client.go index 0cc08b4..ccc77fe 100644 --- a/kirksdk/account_client.go +++ b/kirksdk/account_client.go @@ -187,13 +187,13 @@ func (p *accountClientImp) ListGrantedspecs(ctx context.Context) (ret []SpecInfo func (p *accountClientImp) GetVendorManagedAppStatus(ctx context.Context, appURI string) (ret VendorManagedAppStatus, err error) { url := fmt.Sprintf("%s%s/apps/%s/status", p.host, appVersionPrefix, appURI) - err = p.client.Call(ctx, &ret, "GET", url) + err = p.client.Call(ctx, &ret, "PUT", url) return } func (p *accountClientImp) GetVendorManagedAppEntry(ctx context.Context, appURI string) (ret VendorManagedAppEntry, err error) { url := fmt.Sprintf("%s%s/apps/%s/entry", p.host, appVersionPrefix, appURI) - err = p.client.Call(ctx, &ret, "GET", url) + err = p.client.Call(ctx, &ret, "PUT", url) return } From f8f7821fa7e2d188dbe244acab3d6be5f441d104 Mon Sep 17 00:00:00 2001 From: wzj Date: Wed, 21 Dec 2016 13:34:22 +0800 Subject: [PATCH 04/11] add changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f0aa51..93f2d7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,10 @@ # vNext +- 新增应用平台user权限的接口 # Release 2.0.0 - 新增app授权和撤销授权功能 - Service SCALING 状态拆分为 SCALING-UP SCALING-DOWN -- 日志搜索结果添加CollectedAtNano字段 +- 日志搜索结果添加CollectedAtNano字段 - 添加 GetWebProxy 方法 # Release 1.2.0 From cacc52ff8cd377628352f22deb6e9d5d7a3a4d3f Mon Sep 17 00:00:00 2001 From: Ru5her Date: Fri, 23 Dec 2016 13:49:06 +0800 Subject: [PATCH 05/11] =?UTF-8?q?QCOS-3420=20kirk=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E4=BF=AE=E6=94=B9=E8=AE=BF=E9=97=AE=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kirksdk/qcos_api.go | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/kirksdk/qcos_api.go b/kirksdk/qcos_api.go index 1abcbf3..915bd0d 100644 --- a/kirksdk/qcos_api.go +++ b/kirksdk/qcos_api.go @@ -752,13 +752,38 @@ type LogsSearchResult struct { } type Hit struct { - Log string `json:"log"` - CollectedAt time.Time `json:"collectedAt"` - CollectedAtNano int64 `json:"collectedAtNano"` - PodIP string `json:"podIp"` - ProcessName string `json:"processName"` - GateID string `json:"gateId"` - Domain string `json:"domain"` + CollectedAt time.Time `json:"collectedAt" repo:"pod,access"` + CollectedAtNano int64 `json:"collectedAtNano" repo:"pod,access"` + Host string `json:"host" repo:"pod,access"` + + Log string `json:"log" repo:"pod"` + Path string `json:"path" repo:"pod"` + Pattern string `json:"pattern" repo:"pod"` + ContainerId string `json:"containerId" repo:"pod"` + ContainerName string `json:"containerName" repo:"pod"` + JobInstance string `json:"jobInstance" repo:"pod"` + JobTask string `json:"jobTask" repo:"pod"` + PodIp string `json:"podIp" repo:"pod"` + PodName string `json:"podName" repo:"pod"` + PodVer string `json:"podVer" repo:"pod"` + ProcessName string `json:"processName" repo:"pod"` + Sip string `json:"sip" repo:"pod"` + Source string `json:"source" repo:"pod"` + + Type string `json:"type" repo:"access"` + RequestApp string `json:"requestApp" repo:"access"` + GateId string `json:"gateId" repo:"access"` + StartAt time.Time `json:"startAt" repo:"access"` + Method string `json:"method" repo:"access"` + Url string `json:"url" repo:"access"` + ReqId string `json:"reqId" repo:"access"` + StatusCode int64 `json:"statusCode" repo:"access"` + ElapsedNano int64 `json:"elapsedNano" repo:"access"` + RequestHeader string `json:"requestHeader" repo:"access"` + RequestParams string `json:"requestParams" repo:"access"` + RequestBody string `json:"requestBody" repo:"access"` + ResponseHeader string `json:"responseHeader" repo:"access"` + ResponseBody string `json:"responseBody" repo:"access"` } var ( From 516f6ee9b1896200b1be1644bd4b65d2e2406e6e Mon Sep 17 00:00:00 2001 From: Ru5her Date: Fri, 23 Dec 2016 14:29:52 +0800 Subject: [PATCH 06/11] =?UTF-8?q?QCOS-3420=20=E4=BF=AE=E6=94=B9CHANGELOG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 93f2d7f..bf28967 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # vNext - 新增应用平台user权限的接口 +- 修改日志搜索返回结果字段及其Tag # Release 2.0.0 - 新增app授权和撤销授权功能 From 1a6c652efc65485a84006ca555fd90260a2d9504 Mon Sep 17 00:00:00 2001 From: Ru5her Date: Fri, 23 Dec 2016 17:41:36 +0800 Subject: [PATCH 07/11] QCOS-3418 add search container logs example for kirk sdk --- kirksdk/example/search_container_logs.go | 169 +++++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 kirksdk/example/search_container_logs.go diff --git a/kirksdk/example/search_container_logs.go b/kirksdk/example/search_container_logs.go new file mode 100644 index 0000000..26d6ec7 --- /dev/null +++ b/kirksdk/example/search_container_logs.go @@ -0,0 +1,169 @@ +package example + +import ( + "fmt" + "io" + "os" + "strings" + "time" + + "golang.org/x/net/context" + "qiniupkg.com/kirk/kirksdk" +) + +func SearchContainerLogsExample() { + client := kirksdk.NewQcosClient(kirksdk.QcosConfig{ + AccessKey: "test_fake_ak", + SecretKey: "test_fake_sk", + Host: "test_fake_host", + }) + + err := SearchContainerLogs(client, "access", "", time.Now().Add(time.Hour*time.Duration(-72)), time.Now(), true, 25000, os.Stdout) + if err != nil { + fmt.Println(err) + } +} + +func SearchContainerLogs(client kirksdk.QcosClient, repoType, queryString string, fromTime, toTime time.Time, tail bool, size int, out io.Writer) (err error) { + + args := kirksdk.SearchContainerLogsArgs{ + RepoType: repoType, + } + + var query string + if tail { + query = addClause(query, fmt.Sprintf("collectedAtNano:[%d TO %%d]", fromTime.UnixNano())) + } else { + query = addClause(query, fmt.Sprintf("collectedAtNano:[%%d TO %d]", toTime.UnixNano())) + } + + if len(queryString) > 0 { + // we will use fmt.Sprintf to format the query string later, + // so the raw % should be replaced into %% to prevent BADPREC MISSING error from fmt.Sprintf + query = addClause(query, strings.NewReplacer("%", "%%").Replace(queryString)) + } + + if tail { + args.Sort = "collectedAtNano:desc" + args.Query = fmt.Sprintf(query, toTime.UnixNano()) + } else { + args.Sort = "collectedAtNano:asc" + args.Query = fmt.Sprintf(query, fromTime.UnixNano()) + } + + expectedSize := size + maxSizePerRequest := 10000 + if expectedSize > maxSizePerRequest { + args.Size = maxSizePerRequest + } else { + args.Size = expectedSize + } + + result, err := client.SearchContainerLogs(context.TODO(), args) + if err != nil { + return err + } + + total := result.Total + logs := make([]string, 0) + logs = append(logs, formatLogs(result.Data, repoType)...) + + // We cannot get logs more than total. + if total < expectedSize { + expectedSize = total + } + + for { + expectedSize -= len(result.Data) + if expectedSize <= 0 { + break + } + + if expectedSize > maxSizePerRequest { + args.Size = maxSizePerRequest + } else { + args.Size = expectedSize + } + if tail { + args.Query = fmt.Sprintf(query, result.Data[len(result.Data)-1].CollectedAtNano-1) + } else { + args.Query = fmt.Sprintf(query, result.Data[len(result.Data)-1].CollectedAtNano+1) + } + result, err = client.SearchContainerLogs(context.TODO(), args) + if err != nil { + return err + } + if len(result.Data) <= 0 { + break + } + logs = append(logs, formatLogs(result.Data, repoType)...) + } + + count := len(logs) + + if err != nil { + fmt.Printf("search container logs err: %s\n", err) + } else { + if tail { + for i := len(logs) - 1; i >= 0; i-- { + fmt.Fprintln(out, logs[i]) + } + } else { + for _, log := range logs { + fmt.Fprintln(out, log) + } + } + fmt.Fprintf(out, "\nSummary: %d/%d\n", count, total) + } + + return +} + +func formatLogs(hits []kirksdk.Hit, repoType string) (logs []string) { + var log string + logs = make([]string, 0) + for _, hit := range hits { + if repoType == "access" { + log = formatAccessLogField(hit) + } else { + log = hit.Log + } + logs = append(logs, log) + } + return +} + +func formatAccessLogField(hit kirksdk.Hit) string { + if hit.Method == "" { + hit.Method = "-" + } + if hit.Url == "" { + hit.Url = "-" + } + if hit.RequestHeader == "" { + hit.RequestHeader = "-" + } + if hit.RequestParams == "" { + hit.RequestParams = "-" + } + if hit.RequestBody == "" { + hit.RequestBody = "-" + } + if hit.ResponseHeader == "" { + hit.ResponseHeader = "-" + } + if hit.ResponseBody == "" { + hit.ResponseBody = "-" + } + return fmt.Sprintf("%s\t%s\t%s\t%s\t%s\t%s\t%d\t%s\t%s\t%gms", hit.StartAt.Format("2006-01-02 15:04:05.000000Z07:00"), hit.Method, hit.Url, hit.RequestHeader, hit.RequestParams, hit.RequestBody, hit.StatusCode, hit.ResponseHeader, hit.ResponseBody, float64(hit.ElapsedNano)/1e6) +} + +func addClause(q string, clause string) string { + if q == "" { + return clause + } + if clause == "" { + return q + } + return fmt.Sprintf("%s AND %s", q, clause) +} From 6173f2cea118844961e7bb8746f7ff432ccabdb4 Mon Sep 17 00:00:00 2001 From: Ru5her Date: Fri, 23 Dec 2016 17:59:05 +0800 Subject: [PATCH 08/11] QCOS-3418 add comments in search container logs example for kirk sdk --- kirksdk/example/search_container_logs.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/kirksdk/example/search_container_logs.go b/kirksdk/example/search_container_logs.go index 26d6ec7..e684740 100644 --- a/kirksdk/example/search_container_logs.go +++ b/kirksdk/example/search_container_logs.go @@ -11,6 +11,11 @@ import ( "qiniupkg.com/kirk/kirksdk" ) +// A simple example of how to use the sdk to search logs, including container logs and access logs. +// In addition, this example shows how to search more than 10,000 logs in a single search. +// Because the logs search api limits the maximum search size as 10,000, so we will use the field +// collectedAtNano to achieve this goal. + func SearchContainerLogsExample() { client := kirksdk.NewQcosClient(kirksdk.QcosConfig{ AccessKey: "test_fake_ak", @@ -31,6 +36,7 @@ func SearchContainerLogs(client kirksdk.QcosClient, repoType, queryString string } var query string + // query is a string template, but not the final query string in SearchContainerLogsArgs if tail { query = addClause(query, fmt.Sprintf("collectedAtNano:[%d TO %%d]", fromTime.UnixNano())) } else { @@ -124,6 +130,7 @@ func formatLogs(hits []kirksdk.Hit, repoType string) (logs []string) { logs = make([]string, 0) for _, hit := range hits { if repoType == "access" { + // access log does not have log field, so we need to format access log by using other fields log = formatAccessLogField(hit) } else { log = hit.Log From 2977c08ee89df0fc15351ef215548d920514987b Mon Sep 17 00:00:00 2001 From: Ru5her Date: Fri, 23 Dec 2016 20:39:57 +0800 Subject: [PATCH 09/11] QCOS-3420 modify the Hit struct tags to change the output information for users --- kirksdk/qcos_api.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/kirksdk/qcos_api.go b/kirksdk/qcos_api.go index 915bd0d..46b3361 100644 --- a/kirksdk/qcos_api.go +++ b/kirksdk/qcos_api.go @@ -752,22 +752,22 @@ type LogsSearchResult struct { } type Hit struct { - CollectedAt time.Time `json:"collectedAt" repo:"pod,access"` - CollectedAtNano int64 `json:"collectedAtNano" repo:"pod,access"` - Host string `json:"host" repo:"pod,access"` + Time time.Time `json:"collectedAt" repo:"pod,access"` + CollectedAtNano int64 `json:"collectedAtNano"` + Host string `json:"-"` Log string `json:"log" repo:"pod"` Path string `json:"path" repo:"pod"` Pattern string `json:"pattern" repo:"pod"` - ContainerId string `json:"containerId" repo:"pod"` - ContainerName string `json:"containerName" repo:"pod"` + ContainerId string `json:"-"` + ContainerName string `json:"-"` JobInstance string `json:"jobInstance" repo:"pod"` JobTask string `json:"jobTask" repo:"pod"` - PodIp string `json:"podIp" repo:"pod"` - PodName string `json:"podName" repo:"pod"` - PodVer string `json:"podVer" repo:"pod"` - ProcessName string `json:"processName" repo:"pod"` - Sip string `json:"sip" repo:"pod"` + Container string `json:"podIp" repo:"pod"` + Service string `json:"podName" repo:"pod"` + PodVer string `json:"-"` + ProcessName string `json:"-"` + Sip string `json:"-"` Source string `json:"source" repo:"pod"` Type string `json:"type" repo:"access"` From b65f5034e299c9961b6de1e8687abb9a90e6a956 Mon Sep 17 00:00:00 2001 From: Ru5her Date: Sat, 24 Dec 2016 00:19:23 +0800 Subject: [PATCH 10/11] QCOS-3420 modify the Hit struct tags to change the output information for users --- kirksdk/qcos_api.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/kirksdk/qcos_api.go b/kirksdk/qcos_api.go index 46b3361..cc75a7a 100644 --- a/kirksdk/qcos_api.go +++ b/kirksdk/qcos_api.go @@ -752,22 +752,22 @@ type LogsSearchResult struct { } type Hit struct { - Time time.Time `json:"collectedAt" repo:"pod,access"` + CollectedAt time.Time `json:"collectedAt" repo:"pod,access"` CollectedAtNano int64 `json:"collectedAtNano"` - Host string `json:"-"` + Host string `json:"host"` Log string `json:"log" repo:"pod"` Path string `json:"path" repo:"pod"` Pattern string `json:"pattern" repo:"pod"` - ContainerId string `json:"-"` - ContainerName string `json:"-"` + ContainerId string `json:"containerId"` + ContainerName string `json:"containerName"` JobInstance string `json:"jobInstance" repo:"pod"` JobTask string `json:"jobTask" repo:"pod"` - Container string `json:"podIp" repo:"pod"` - Service string `json:"podName" repo:"pod"` - PodVer string `json:"-"` - ProcessName string `json:"-"` - Sip string `json:"-"` + PodIp string `json:"podIp" repo:"pod"` + PodName string `json:"podName" repo:"pod"` + PodVer string `json:"podVer"` + ProcessName string `json:"processName"` + Sip string `json:"sip"` Source string `json:"source" repo:"pod"` Type string `json:"type" repo:"access"` From 445b51ace7aad3474354d063587bb5dec8c2461d Mon Sep 17 00:00:00 2001 From: "longwenlu@gmail.com" Date: Mon, 26 Dec 2016 20:08:26 +0800 Subject: [PATCH 11/11] QCOS-0 Prepare for release 2.1.0 --- CHANGELOG.md | 2 ++ kirksdk/kirksdk.go | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bf28967..062ff03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,6 @@ # vNext + +# 2.1.0 - 新增应用平台user权限的接口 - 修改日志搜索返回结果字段及其Tag diff --git a/kirksdk/kirksdk.go b/kirksdk/kirksdk.go index a4cf6fd..314fa8a 100644 --- a/kirksdk/kirksdk.go +++ b/kirksdk/kirksdk.go @@ -1,3 +1,3 @@ package kirksdk -const Version = "2.0.0" +const Version = "2.1.0"