12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package metadata
- import (
- "github.com/packethost/packngo"
- )
- const (
- metadataBasePath = "/metadata"
- )
- type Metadata struct {
- ApiUrl string `json:"api_url"`
- Id string `json:"id"`
- Hostname string `json:"hostname"`
- Iqn string `json:"iqn"`
- OperatingSystem OperatingSystem `json:"operating_system"`
- Plan string `json:"plan"`
- Facility string `json:"facility"`
- SshKeys []string `json:"ssh_keys"`
- Network Network `json:"network"`
- }
- type Network struct {
- Addresses []Address `json:"addresses"`
- Interfaces []Interface `json:"interfaces"`
- }
- type Address struct {
- Href string `json:"href"`
- Gateway string `json:"gateway"`
- Address string `json:"address"`
- Network string `json:"network"`
- Id string `json:"id"`
- AddressFamily int `json:"address_family"`
- Netmask string `json:"netmask"`
- Public bool `json:"public"`
- Cidr int `json:"cidr"`
- Management bool `json:"management"`
- Manageable bool `json:"manageable"`
- AssignedTo Reference `json:"assigned_to"`
- }
- type Reference struct {
- Href string `json:"href"`
- }
- type OperatingSystem struct {
- Version string `json:"version"`
- Distro string `json:"distro"`
- Slug string `json:"slug"`
- }
- type Interface struct {
- Mac string `json:"mac"`
- Name string `json:"name"`
- }
- type MetadataServiceOp struct {
- client *packngo.Client
- }
- func (s *MetadataServiceOp) Get() (Metadata, error) {
- metadata := Metadata{}
- req, err := s.client.NewRequest("GET", metadataBasePath, nil)
- if err != nil {
- return metadata, err
- }
- _, err = s.client.Do(req, &metadata)
- return metadata, err
- }
|