scripts

package module
v2.0.0 Latest Latest
Warning

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

Go to latest
Published: Dec 18, 2018 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Credential

type Credential struct {
	ID    int    `json:"id,omitempty"`
	Type  string `json:"type,omitempty"`
	Name  string `json:"name"`
	Value string `json:"value"`
}

Credential is currently a ssh key, but may be a password hash in the future

type Input

type Input struct {
	// StateTarget is the state which is to be reached by this deployment task
	// StateTarget is either Deployed or NotDeployed
	StateTarget State `json:"state_target"`

	// User describes the user of this deployment task
	User User `json:"user"`

	// Answers is an answered questionnaire
	// Maps a question name to the answer of the user
	// The keys (question names) *must* be identical to those of the Output.Questionnaire
	// containing the questions
	Answers map[string]string `json:"answers,omitempty"`
}

Input of the deployment script

func UnmarshalInput

func UnmarshalInput(inputBytes []byte) (i Input, err error)

UnmarshalInput decodes a json encoded input

func (Input) Marshal

func (i Input) Marshal() (iBytes []byte, err error)

Marshal encodes an Input as json

func (Input) String

func (i Input) String() string

type Output

type Output struct {
	// State describes the state of the deployment, after the script execution.
	// When State == Questionnaire then Output.Questionnaire *must* be set.
	// When State == Deployed then Output.Credentials *can* be set.
	State State `json:"state"`

	// Msg is a message for the user.
	Msg string `json:"message"`

	// Questionnaire requested by the script
	// This field is Ignored when Output.State is not Questionnaire.
	// Questionnaire maps a question name to a question.
	Questionnaire map[string]string `json:"questionnaire,omitempty"`

	// Credentials are additionnal credentials for the user.
	// Examples are additional passwords.
	// This field is ignored by the client when Output.State is not Deployed.
	// Credentials maps a credential name to a credential value.
	Credentials map[string]string `json:"credentials,omitempty"`

	// UserCredentialStates are the State s of the credentials found in Input.User.Credentials.
	// This field is not mandatory. The client will assume that all credentials have the State
	// Output.State if this field is not given.
	UserCredentialStates UserCredentialStates `json:"user_credential_states,omitempty"`
}

Output of the deployment script

func UnmarshalOutput

func UnmarshalOutput(inputBytes []byte) (i Output, err error)

UnmarshalOutput decodes a json encoded output

func (Output) Marshal

func (o Output) Marshal() (oBytes []byte, err error)

Marshal encodes an Output as json

func (Output) String

func (o Output) String() string

type State

type State string

State is a string enum The enum values for State are listed below

const (
	// Deployed value for State
	Deployed State = "deployed"

	// NotDeployed value for State
	NotDeployed State = "not_deployed"

	// Rejected value for State
	// the user can never be deployed
	Rejected State = "rejected"

	// Failed value for State
	// the deployment can be retried
	Failed State = "failed"

	// Questionnaire value for State
	// the user has to fill the questionnaire
	// with the questionnaire data the deployment can be retried
	Questionnaire State = "questionnaire"
)

type User

type User struct {
	UserInfo    UserInfo        `json:"userinfo"`
	Credentials UserCredentials `json:"credentials"`
}

User contains information concerning the user of a deployment

func (User) String

func (u User) String() string

type UserCredentialStates

type UserCredentialStates map[string]map[string]State

UserCredentialStates serves to inform the backend about the per credential states after the script run This maps a credential type like "ssh_key" to a map of the states of credentials of this type.

type UserCredentials

type UserCredentials map[string][]Credential

UserCredentials maps a credential type to the credentials of this type

type UserInfo

type UserInfo map[string]interface{}

UserInfo info about the user

Jump to

Keyboard shortcuts

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