@@ -16,6 +16,7 @@ type Service interface {
16
16
AddRepo (cluster string , create * v1Chart.RepoCreate ) error
17
17
ListCharts (cluster , repo string , num , size int , pattern string ) ([]* search.Result , int , error )
18
18
RemoveRepo (cluster string , name string ) error
19
+ GetCharts (cluster , repo , name string ) (* v1Chart.ChArrayResult , error )
19
20
}
20
21
21
22
func NewService () Service {
@@ -126,3 +127,32 @@ func (c *service) ListCharts(cluster, repo string, num, size int, pattern string
126
127
result := chartArray [(num - 1 )* size : end ]
127
128
return result , len (chartArray ), nil
128
129
}
130
+
131
+ func (c * service ) GetCharts (cluster , repo , name string ) (* v1Chart.ChArrayResult , error ) {
132
+ clu , err := c .clusterService .Get (cluster , common.DBOptions {})
133
+ if err != nil {
134
+ return nil , err
135
+ }
136
+ helmClient , err := helm .NewClient (& helm.Config {
137
+ Host : clu .Spec .Connect .Forward .ApiServer ,
138
+ BearerToken : clu .Spec .Authentication .BearerToken ,
139
+ })
140
+ if err != nil {
141
+ return nil , err
142
+ }
143
+ allVersionCharts , err := helmClient .GetCharts (repo , name )
144
+ if err != nil {
145
+ return nil , err
146
+ }
147
+ var result v1Chart.ChArrayResult
148
+ for _ , chart := range allVersionCharts {
149
+ result .Versions = append (result .Versions , chart .Chart .Version )
150
+ }
151
+ lastVersion := allVersionCharts [0 ].Chart .Metadata .Version
152
+ chart , err := helmClient .GetChartDetail (repo , allVersionCharts [0 ].Chart .Name , lastVersion )
153
+ if err != nil {
154
+ return nil , err
155
+ }
156
+ result .Chart = * chart
157
+ return & result , nil
158
+ }
0 commit comments