| 269 | } |
| 270 | |
| 271 | func buildPackageVersionBaseline(opts *CreateOptions, runbookTemplate *runbooks.RunbookSnapshotTemplate) []*packages.StepPackageVersion { |
| 272 | feedPackageVersions := make(map[string]string) |
| 273 | pkgs := make([]*packages.StepPackageVersion, 0, len(runbookTemplate.Packages)) |
| 274 | for _, p := range runbookTemplate.Packages { |
| 275 | { |
| 276 | key := fmt.Sprintf("%s/%s", p.FeedID, p.PackageID) |
| 277 | if _, ok := feedPackageVersions[key]; !ok { |
| 278 | packageVersion, err := feeds.SearchPackageVersions(opts.Client, opts.Client.GetSpaceID(), p.FeedID, p.PackageID, "", 1) |
| 279 | if err == nil && packageVersion != nil && !util.Empty(packageVersion.Items) { |
| 280 | feedPackageVersions[key] = packageVersion.Items[0].Version |
| 281 | } |
| 282 | } |
| 283 | } |
| 284 | } |
| 285 | |
| 286 | for _, p := range runbookTemplate.Packages { |
| 287 | pkg := &packages.StepPackageVersion{ |
| 288 | PackageID: p.PackageID, |
| 289 | ActionName: p.ActionName, |
| 290 | PackageReferenceName: p.PackageReferenceName} |
| 291 | if !p.IsResolvable { |
| 292 | pkg.Version = "" |
| 293 | } else { |
| 294 | key := fmt.Sprintf("%s/%s", p.FeedID, p.PackageID) |
| 295 | pkg.Version = feedPackageVersions[key] |
| 296 | } |
| 297 | pkgs = append(pkgs, pkg) |
| 298 | } |
| 299 | |
| 300 | return pkgs |
| 301 | } |
| 302 | |
| 303 | func getSnapshotName(opts *CreateOptions, template *runbooks.RunbookSnapshotTemplate) string { |
| 304 | if opts.Name.Value != "" { |