File: catalogitem.go

package info (click to toggle)
golang-github-hmrc-vmware-govcd 0.0.2%2Bgit20190404.eea2584-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 516 kB
  • sloc: sh: 32; makefile: 2
file content (49 lines) | stat: -rw-r--r-- 1,076 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
 * Copyright 2014 VMware, Inc.  All rights reserved.  Licensed under the Apache v2 License.
 */

package govcd

import (
	"fmt"
	"net/url"

	types "github.com/hmrc/vmware-govcd/types/v56"
)

type CatalogItem struct {
	CatalogItem *types.CatalogItem
	c           *Client
}

func NewCatalogItem(c *Client) *CatalogItem {
	return &CatalogItem{
		CatalogItem: new(types.CatalogItem),
		c:           c,
	}
}

func (ci *CatalogItem) GetVAppTemplate() (VAppTemplate, error) {
	url, err := url.ParseRequestURI(ci.CatalogItem.Entity.HREF)

	if err != nil {
		return VAppTemplate{}, fmt.Errorf("error decoding catalogitem response: %s", err)
	}

	req := ci.c.NewRequest(map[string]string{}, "GET", *url, nil)

	resp, err := checkResp(ci.c.Http.Do(req))
	if err != nil {
		return VAppTemplate{}, fmt.Errorf("error retreiving vapptemplate: %s", err)
	}

	cat := NewVAppTemplate(ci.c)

	if err = decodeBody(resp, cat.VAppTemplate); err != nil {
		return VAppTemplate{}, fmt.Errorf("error decoding vapptemplate response: %s", err)
	}

	// The request was successful
	return *cat, nil

}