client

package
v0.14.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 21, 2021 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const URI string = "https://app.foundries.io/oauth"

Variables

This section is empty.

Functions

This section is empty.

Types

type Api

type Api struct {
	// contains filtered or unexported fields
}

func NewApiClient

func NewApiClient(serverUrl string, config Config, caCertPath string) *Api

func (*Api) Delete

func (a *Api) Delete(url string, data []byte) (*[]byte, error)

func (*Api) DeviceCreateConfig

func (a *Api) DeviceCreateConfig(device string, cfg ConfigCreateRequest) error

func (*Api) DeviceDelete

func (a *Api) DeviceDelete(device string) error

func (*Api) DeviceDeleteConfig

func (a *Api) DeviceDeleteConfig(device, filename string) error

func (*Api) DeviceGet

func (a *Api) DeviceGet(device string) (*Device, error)

func (*Api) DeviceList

func (a *Api) DeviceList(shared bool, matchTag, byFactory, byGroup, nameIlike, uuid string) (*DeviceList, error)

func (*Api) DeviceListConfig

func (a *Api) DeviceListConfig(device string) (*DeviceConfigList, error)

func (*Api) DeviceListConfigCont

func (a *Api) DeviceListConfigCont(url string) (*DeviceConfigList, error)

func (*Api) DeviceListCont

func (a *Api) DeviceListCont(url string) (*DeviceList, error)

func (*Api) DeviceListUpdates

func (a *Api) DeviceListUpdates(device string) (*UpdateList, error)

func (*Api) DeviceListUpdatesCont

func (a *Api) DeviceListUpdatesCont(url string) (*UpdateList, error)

func (*Api) DevicePatchConfig

func (a *Api) DevicePatchConfig(device string, cfg ConfigCreateRequest, force bool) error

func (*Api) DeviceRename

func (a *Api) DeviceRename(curName, newName string) error

func (*Api) DeviceSetGroup

func (a *Api) DeviceSetGroup(device string, group string) error

func (*Api) DeviceUpdateEvents

func (a *Api) DeviceUpdateEvents(device, correlationId string) ([]UpdateEvent, error)

func (*Api) FactoryCreateCA

func (a *Api) FactoryCreateCA(factory string) (CaCerts, error)

func (*Api) FactoryCreateConfig

func (a *Api) FactoryCreateConfig(factory string, cfg ConfigCreateRequest) error

func (*Api) FactoryCreateDeviceGroup

func (a *Api) FactoryCreateDeviceGroup(factory string, name string, description *string) (*DeviceGroup, error)

func (*Api) FactoryDeleteConfig

func (a *Api) FactoryDeleteConfig(factory, filename string) error

func (*Api) FactoryDeleteDeviceGroup

func (a *Api) FactoryDeleteDeviceGroup(factory string, name string) error

func (*Api) FactoryGetCA

func (a *Api) FactoryGetCA(factory string) (CaCerts, error)

func (*Api) FactoryListConfig

func (a *Api) FactoryListConfig(factory string) (*DeviceConfigList, error)

func (*Api) FactoryListConfigCont

func (a *Api) FactoryListConfigCont(url string) (*DeviceConfigList, error)

func (*Api) FactoryListDeviceGroup

func (a *Api) FactoryListDeviceGroup(factory string) (*[]DeviceGroup, error)

func (*Api) FactoryPatchCA

func (a *Api) FactoryPatchCA(factory string, certs CaCerts) error

func (*Api) FactoryPatchConfig

func (a *Api) FactoryPatchConfig(factory string, cfg ConfigCreateRequest, force bool) error

func (*Api) FactoryPatchDeviceGroup

func (a *Api) FactoryPatchDeviceGroup(factory string, name string, new_name *string, new_desc *string) error

func (*Api) FactoryStatus

func (a *Api) FactoryStatus(factory string, inactiveThreshold int) (*FactoryStatus, error)

func (*Api) FactoryTriggers

func (a *Api) FactoryTriggers(factory string) ([]ProjectTrigger, error)

func (*Api) FactoryUpdateTrigger

func (a *Api) FactoryUpdateTrigger(factory string, t ProjectTrigger) error

func (*Api) Get

func (a *Api) Get(url string) (*[]byte, error)

func (*Api) GroupCreateConfig

func (a *Api) GroupCreateConfig(factory, group string, cfg ConfigCreateRequest) error

func (*Api) GroupDeleteConfig

func (a *Api) GroupDeleteConfig(factory, group, filename string) error

func (*Api) GroupListConfig

func (a *Api) GroupListConfig(factory, group string) (*DeviceConfigList, error)

func (*Api) GroupListConfigCont

func (a *Api) GroupListConfigCont(url string) (*DeviceConfigList, error)

func (*Api) GroupPatchConfig

func (a *Api) GroupPatchConfig(factory, group string, cfg ConfigCreateRequest, force bool) error

func (*Api) JobservRun

func (a *Api) JobservRun(runUrl string) (*JobservRun, error)

func (*Api) JobservRunArtifact

func (a *Api) JobservRunArtifact(factory string, build int, run string, artifact string) (*http.Response, error)

func (*Api) JobservRuns

func (a *Api) JobservRuns(factory string, build int) ([]JobservRun, error)

func (*Api) JobservTail

func (a *Api) JobservTail(url string)

func (*Api) Patch

func (a *Api) Patch(url string, data []byte) (*[]byte, error)

func (*Api) Post

func (a *Api) Post(url string, data []byte) (*[]byte, error)

func (*Api) Put

func (a *Api) Put(url string, data []byte) (*[]byte, error)

func (*Api) RawGet

func (a *Api) RawGet(url string, headers *map[string]string) (*http.Response, error)

func (*Api) TargetComposeApp

func (a *Api) TargetComposeApp(factory string, targetName string, app string) (*ComposeAppBundle, error)

Return a Compose App for a given Target by a Target ID and an App name

func (*Api) TargetCustom

func (a *Api) TargetCustom(target tuf.FileMeta) (*TufCustom, error)

func (*Api) TargetDeleteTargets

func (a *Api) TargetDeleteTargets(factory string, target_names []string) (string, string, error)

func (*Api) TargetImageCreate

func (a *Api) TargetImageCreate(factory string, targetName string, appShortlist string) (string, string, error)

func (*Api) TargetTestArtifact

func (a *Api) TargetTestArtifact(factory string, target int, testId string, artifact string) (*[]byte, error)

func (*Api) TargetTestResults

func (a *Api) TargetTestResults(factory string, target int, testId string) (*TargetTest, error)

func (*Api) TargetTesting

func (a *Api) TargetTesting(factory string) ([]int, error)

Return a list of Targets that have been tested

func (*Api) TargetTests

func (a *Api) TargetTests(factory string, target int) (*TargetTestList, error)

func (*Api) TargetTestsCont

func (a *Api) TargetTestsCont(url string) (*TargetTestList, error)

func (*Api) TargetUpdateTags

func (a *Api) TargetUpdateTags(factory string, target_names []string, tag_names []string) (string, string, error)

func (*Api) TargetsList

func (a *Api) TargetsList(factory string) (*tuf.SignedTargets, error)

func (*Api) TargetsListRaw

func (a *Api) TargetsListRaw(factory string) (*[]byte, error)

func (*Api) TargetsPut

func (a *Api) TargetsPut(factory string, data []byte) (string, string, error)

func (*Api) UsersList

func (a *Api) UsersList(factory string) ([]FactoryUser, error)

type CaCerts

type CaCerts struct {
	RootCrt string `json:"root-crt"`
	CaCrt   string `json:"ca-crt"`
	CaCsr   string `json:"ca-csr"`
	TlsCrt  string `json:"tls-crt"`
	TlsCsr  string `json:"tls-csr"`

	CreateCaScript       *string `json:"create_ca"`
	CreateDeviceCaScript *string `json:"create_device_ca"`
	SignCaScript         *string `json:"sign_ca_csr"`
	SignTlsScript        *string `json:"sign_tls_csr"`
}

type ClientCredentials

type ClientCredentials struct {
	Config OAuthConfig
	URL    string
}

func NewClientCredentials

func NewClientCredentials(c OAuthConfig) ClientCredentials

func (*ClientCredentials) Get

func (c *ClientCredentials) Get() error

Get a new token.

func (*ClientCredentials) HasRefreshToken

func (c *ClientCredentials) HasRefreshToken() bool

HasRefreshToken checks if a refresh token is available.

func (*ClientCredentials) IsExpired

func (c *ClientCredentials) IsExpired() (bool, error)

IsExpired checks if the OAuth token is expired.

func (*ClientCredentials) Refresh

func (c *ClientCredentials) Refresh() error

Refresh performs a refresh of the token.

type ComposeApp

type ComposeApp struct {
	Uri string `json:"uri"`
}

type ComposeAppBundle

type ComposeAppBundle struct {
	Uri      string                 `json:"uri"`
	Error    string                 `json:"error"`
	Warnings []string               `json:"warnings"`
	Manifest map[string]interface{} `json:"manifest"`
	Content  ComposeAppContent      `json:"content"`
}

type ComposeAppContent

type ComposeAppContent struct {
	Files       []string               `json:"files"`
	ComposeSpec map[string]interface{} `json:"compose_spec"`
}

type Config

type Config struct {
	Factory           string
	Token             string
	ClientCredentials OAuthConfig
	ExtraHeaders      map[string]string
}

type ConfigCreateRequest

type ConfigCreateRequest struct {
	Reason string       `json:"reason"`
	Files  []ConfigFile `json:"files"`
}

type ConfigFile

type ConfigFile struct {
	Name        string   `json:"name"`
	Value       string   `json:"value"`
	Unencrypted bool     `json:"unencrypted"`
	OnChanged   []string `json:"on-changed,omitempty"`
}

type Device

type Device struct {
	Uuid          string           `json:"uuid"`
	Name          string           `json:"name"`
	Owner         string           `json:"owner"`
	Factory       string           `json:"factory"`
	Group         *DeviceGroup     `json:"group"`
	CreatedAt     string           `json:"created-at"`
	LastSeen      string           `json:"last-seen"`
	OstreeHash    string           `json:"ostree-hash"`
	DockerApps    []string         `json:"docker-apps,omitempty"`
	Tags          []string         `json:"device-tags,omitempty"`
	Network       *NetInfo         `json:"network-info,omitempty"`
	Hardware      *json.RawMessage `json:"hardware-info,omitempty"`
	TargetName    string           `json:"target-name"`
	Status        string           `json:"status"`
	CurrentUpdate string           `json:"current-update"`
	UpToDate      bool             `json:"up-to-date"`
	PublicKey     string           `json:"public-key"`
	ActiveConfig  *DeviceConfig    `json:"active-config,omitempty"`
	AktualizrToml string           `json:"aktualizr-toml,omitempty"`
}

func (Device) Online

func (d Device) Online(inactiveHoursThreshold int) bool

type DeviceConfig

type DeviceConfig struct {
	CreatedAt string       `json:"created-at"`
	AppliedAt string       `json:"applied-at"` // This is not present in factory config
	Reason    string       `json:"reason"`
	Files     []ConfigFile `json:"files"`
}

type DeviceConfigList

type DeviceConfigList struct {
	Configs []DeviceConfig `json:"config"`
	Total   int            `json:"total"`
	Next    *string        `json:"next"`
}

type DeviceGroup

type DeviceGroup struct {
	Id          int    `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`
	CreatedAt   string `json:"created-at"`
}

type DeviceList

type DeviceList struct {
	Devices []Device `json:"devices"`
	Total   int      `json:"total"`
	Next    *string  `json:"next"`
}

type DockerApp

type DockerApp struct {
	FileName string `json:"filename"`
	Uri      string `json:"uri"`
}

type EventDetail

type EventDetail struct {
	Version    string `json:"version"`
	TargetName string `json:"targetName"`
	Success    *bool  `json:"success,omitempty"`
}

type EventType

type EventType struct {
	Id string `json:"id"`
}

type FactoryStatus

type FactoryStatus struct {
	TotalDevices int         `json:"total-devices"`
	Tags         []TagStatus `json:"tags"`
}

type FactoryUser

type FactoryUser struct {
	PolisId string `json:"polis-id"`
	Name    string `json:"name"`
	Role    string `json:"role"`
}

type HttpError

type HttpError struct {
	Message  string
	Response *http.Response
}

This is an error returned in case if we've successfully received an HTTP response which contains an unexpected HTTP status code

func AsHttpError

func AsHttpError(err error) *HttpError

This is much better than err.(HttpError) as it also accounts for wrapped errors.

func (*HttpError) Error

func (err *HttpError) Error() string

type JobservRun

type JobservRun struct {
	Name      string   `json:"name"`
	Url       string   `json:"url"`
	Artifacts []string `json:"artifacts"`
}

type NetInfo

type NetInfo struct {
	Hostname string `json:"hostname"`
	Ipv4     string `json:"local_ipv4"`
	MAC      string `json:"mac"`
}

type OAuthConfig

type OAuthConfig struct {
	ClientId     string  `mapstructure:"client_id"`
	ClientSecret string  `mapstructure:"client_secret"`
	TokenType    string  `mapstructure:"token_type"`
	AccessToken  string  `mapstructure:"access_token"`
	RefreshToken string  `mapstructure:"refresh_token"`
	ExpiresIn    float64 `mapstructure:"expires_in"`
	Created      string
	DefaultOrg   string
}

type OAuthResponse

type OAuthResponse struct {
	TokenType    string  `json:"token_type"`
	AccessToken  string  `json:"access_token"`
	RefreshToken string  `json:"refresh_token"`
	ExpiresIn    float64 `json:"expires_in"`
	Scope        string  `json:"scope"`
	Orgs         []Org   `json:"orgs"`
}

type Org

type Org struct {
	Name string `json:"name"`
}

type ProjectSecret

type ProjectSecret struct {
	Name  string  `json:"name"`
	Value *string `json:"value"`
}

type ProjectTrigger

type ProjectTrigger struct {
	Type    string          `json:"type"`
	Id      int             `json:"id,omitempty"`
	Secrets []ProjectSecret `json:"secrets"`
}

type TagStatus

type TagStatus struct {
	Name            string         `json:"name"`
	DevicesTotal    int            `json:"devices-total"`
	DevicesOnline   int            `json:"devices-online"`
	DevicesOnLatest int            `json:"devices-on-latest"`
	LatestTarget    int            `json:"latest-target"`
	Targets         []TargetStatus `json:"targets"`
}

type TargetStatus

type TargetStatus struct {
	Devices int `json:"devices"`
	Version int `json:"version"`
}

type TargetTest

type TargetTest struct {
	Name        string              `json:"name"`
	Id          string              `json:"test-id"`
	DeviceUUID  string              `json:"device-uuid"`
	DeviceName  string              `json:"device-name"`
	Status      string              `json:"status"`
	Details     string              `json:"details"`
	CreatedOn   float32             `json:"created-on"`
	CompletedOn float32             `json:"completed-on"`
	Results     []TargetTestResults `json:"results"`
	Artifacts   []string            `json:"artifacts"`
}

type TargetTestList

type TargetTestList struct {
	Tests []TargetTest `json:"tests"`
	Total int          `json:"total"`
	Next  *string      `json:"next"`
}

type TargetTestResults

type TargetTestResults struct {
	Name    string `json:"name"`
	Status  string `json:"status"`
	Details string `json:"details"`
}

type TufCustom

type TufCustom struct {
	HardwareIds    []string              `json:"hardwareIds,omitempty"`
	Tags           []string              `json:"tags,omitempty"`
	TargetFormat   string                `json:"targetFormat,omitempty"`
	Version        string                `json:"version,omitempty"`
	DockerApps     map[string]DockerApp  `json:"docker_apps,omitempty"`
	ComposeApps    map[string]ComposeApp `json:"docker_compose_apps,omitempty"`
	Name           string                `json:"name,omitempty"`
	ContainersSha  string                `json:"containers-sha,omitempty"`
	LmpManifestSha string                `json:"lmp-manifest-sha,omitempty"`
	OverridesSha   string                `json:"meta-subscriber-overrides-sha,omitempty"`
}

type Update

type Update struct {
	CorrelationId string `json:"correlation-id"`
	Target        string `json:"target"`
	Version       string `json:"version"`
	Time          string `json:"time"`
}

type UpdateEvent

type UpdateEvent struct {
	Time   string      `json:"deviceTime"`
	Type   EventType   `json:"eventType"`
	Detail EventDetail `json:"event"`
}

type UpdateList

type UpdateList struct {
	Updates []Update `json:"updates"`
	Total   int      `json:"total"`
	Next    *string  `json:"next"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL