recovery

package
v0.0.0-...-9febfc8 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2025 License: BSD-3-Clause Imports: 38 Imported by: 0

README

PARIS - Recovery Library

go/fleet-recovery-developer

TL;DR - after making changes in this directory run

make trees
make test

And upload your change to gerrit with

git push origin HEAD:refs/for/main

Documentation

Overview

Package recovery provides ability to run recovery tasks against on the target units.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewLocalTLWAccess

func NewLocalTLWAccess(ufs localtlw.UFSClient) (tlw.Access, error)

NewLocalTLWAccess provides instance of local implementation of TLW Access.

func ParsedDefaultConfiguration

func ParsedDefaultConfiguration(ctx context.Context, tn buildbucket.TaskName, ds tlw.DUTSetupType) (*config.Configuration, error)

ParsedDefaultConfiguration returns parsed default configuration for requested task and setup.

func Run

func Run(ctx context.Context, args *RunArgs) (rErr error)

Run runs the recovery tasks against the provided unit. Process includes:

  • Verification of input data.
  • Set logger.
  • Collect DUTs info.
  • Load execution plan for required task with verification.
  • Send DUTs info to inventory.

Types

type RunArgs

type RunArgs struct {
	// Access to the lab TLW layer.
	Access tlw.Access
	// UnitName represents some device setup against which running some tests or task in the system.
	// The unit can be represented as a single DUT or group of the DUTs registered in inventory as single unit.
	UnitName string

	// Logger prints message to the logs.
	Logger logger.Logger
	// Option to use steps.
	ShowSteps bool
	// Metrics is the metrics sink and event search API.
	Metrics metrics.Metrics
	// TaskName used to drive the recovery process.
	TaskName buildbucket.TaskName
	// EnableRecovery tells if recovery actions are enabled.
	EnableRecovery bool
	// EnableUpdateInventory tells if update inventory after finishing the plans is enabled.
	EnableUpdateInventory bool
	// SwarmingTaskID is the ID of the swarming task.
	SwarmingTaskID string
	// BuildbucketID is the ID of the buildbucket build
	BuildbucketID string
	// LogRoot is an absolute path to a directory.
	// All logs produced by actions or verifiers must be deposited there.
	LogRoot string
	// JumpHost is the host to use as a SSH proxy between ones dev environment and the lab,
	// if necessary. An empty JumpHost means do not use a jump host.
	DevJumpHost string
	// DevHostProxyAddresses is a map of resource names to proxy addresses to use
	// for SSH connections.
	DevHostProxyAddresses map[string]string
	// contains filtered or unexported fields
}

RunArgs holds input arguments for recovery process.

Keep this type up to date with internal/execs/execs.go:RunArgs . Also update recovery.go:runDUTPlans .

func (RunArgs) GetEnableRecovery

func (a RunArgs) GetEnableRecovery() bool

GetEnableRecovery returns whether recovery is enabled.

func (*RunArgs) UseConfigBase64

func (a *RunArgs) UseConfigBase64(blob string) error

UseConfigBase64 attaches a base64 encoded string as a config reader.

func (*RunArgs) UseConfigFile

func (a *RunArgs) UseConfigFile(path string) error

UseConfigFile attaches a config file to the current recovery object. We successfully do nothing when the path is empty.

Directories

Path Synopsis
Package config implements the control low of how Paris works with different devices or purposes(plans).
Package config implements the control low of how Paris works with different devices or purposes(plans).
Package ctr represents function and interfaces to communitae with CTR CIPD.
Package ctr represents function and interfaces to communitae with CTR CIPD.
Package provides a wrapper to specify local dev options.
Package provides a wrapper to specify local dev options.
internal
adb
Package adb contains function on how to work with ADB.
Package adb contains function on how to work with ADB.
components
Provide interfaces to work with external communications.
Provide interfaces to work with external communications.
components/btpeer
Package btpeer contains utilities for accessing and managing btpeer devices.
Package btpeer contains utilities for accessing and managing btpeer devices.
components/btpeer/chameleond
Package chameleond contains utilities for managing chameleond releases on btpeers devices.
Package chameleond contains utilities for managing chameleond releases on btpeers devices.
components/btpeer/image
Package image contains utilities for managing btpeer images.
Package image contains utilities for managing btpeer images.
components/cache
Package cache provides utilities for preforming cache-related operations.
Package cache provides utilities for preforming cache-related operations.
components/cft
Package cft contains methods to work with CFT containers.
Package cft contains methods to work with CFT containers.
components/cft/adb
Package adb contains methods to work with an ADB-base container.
Package adb contains methods to work with an ADB-base container.
components/cft/crosdut
Package crosdut contains methods to work with an cros-dut-base container.
Package crosdut contains methods to work with an cros-dut-base container.
components/cft/foilprovision
Package foilprovision contains methods to work with an foil-provision container.
Package foilprovision contains methods to work with an foil-provision container.
components/cft/servonexus
Package servonexus contains methods to work with an servo-nexus container.
Package servonexus contains methods to work with an servo-nexus container.
components/cros/amt
Package amt implements just enough WS-Management to query and set the DUT's power state.
Package amt implements just enough WS-Management to query and set the DUT's power state.
components/cros/android
Package android contains functions to work with AndroidOS on ChromeOS devices.
Package android contains functions to work with AndroidOS on ChromeOS devices.
components/cros/camera
Package camera contains utilities for auditing camera on DUTs.
Package camera contains utilities for auditing camera on DUTs.
components/cros/cbi
CBI corruption detection and repair logic.
CBI corruption detection and repair logic.
components/cros/cellular
Package cellular contains utilities for repairing cellular DUTs.
Package cellular contains utilities for repairing cellular DUTs.
components/cros/cellular/starfish
Package starfish contains utilities for interacting with starfish devices.
Package starfish contains utilities for interacting with starfish devices.
components/cros/firmware
Package firmware implements logic to update firmware for chromeOS devices.
Package firmware implements logic to update firmware for chromeOS devices.
components/cros/storage
Package storage implements function to work with cros storages.
Package storage implements function to work with cros storages.
components/cros/tpm
Package tpm provides function to work with TPM.
Package tpm provides function to work with TPM.
components/cros/vpd
Package vpd provide ability to read and update VPD values.
Package vpd provide ability to read and update VPD values.
components/dolos
Package dolos is commands related to interacting with dolos, a virtual power source for DUT's.
Package dolos is commands related to interacting with dolos, a virtual power source for DUT's.
components/linux
Package linux provides utilities for preforming tasks on linux components.
Package linux provides utilities for preforming tasks on linux components.
components/mh
Package mh contains functions to work with mobileharness.
Package mh contains functions to work with mobileharness.
components/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
engine
Package engine provides struts and functionality of recovery engine.
Package engine provides struts and functionality of recovery engine.
execs
Package execs provides collection of execution functions for actions and ability to execute them.
Package execs provides collection of execution functions for actions and ability to execute them.
execs/amt
Package amt contains execs used by the AMTManager peripheral.
Package amt contains execs used by the AMTManager peripheral.
execs/btpeer
Package btpeer contains execs meant to be run on btpeer peripherals.
Package btpeer contains execs meant to be run on btpeer peripherals.
execs/cros
CBI corruption detection and repair logic.
CBI corruption detection and repair logic.
execs/ctr
Package ctr contains functions with cros-tool-runner.
Package ctr contains functions with cros-tool-runner.
execs/dolos
Package dolos implements execs for dolos devices.
Package dolos implements execs for dolos devices.
execs/dut
Package dut provides execs to work with proto data only.
Package dut provides execs to work with proto data only.
execs/env
Package env provide exec which based on environment variables.
Package env provide exec which based on environment variables.
execs/wifirouter
Package wifirouter initializes execs to be used with wifi routers.
Package wifirouter initializes execs to be used with wifi routers.
execs/wifirouter/controller
Package controller defines a common router controller class and implementations of this class per router type.
Package controller defines a common router controller class and implementations of this class per router type.
execs/wifirouter/ssh
Package ssh is a collection of ssh utilities for executing remote ssh commands on hosts.
Package ssh is a collection of ssh utilities for executing remote ssh commands on hosts.
execs/wifirouter/ssh/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
gbb
localtlw
Package localtlw provides local implementation of TLW Access.
Package localtlw provides local implementation of TLW Access.
localtlw/dutinfo
Package dutinfo provides help function to work with DUT info.
Package dutinfo provides help function to work with DUT info.
localtlw/localproxy
Package localproxy provides a temp solution to run shell commands from local environment remotely to execute recovery flows.
Package localproxy provides a temp solution to run shell commands from local environment remotely to execute recovery flows.
localtlw/servod
Package servod provides functions to manage connection and communication with servod daemon on servo-host.
Package servod provides functions to manage connection and communication with servod daemon on servo-host.
localtlw/xmlrpc
Package xmlrpc implements the XML-RPC client library.
Package xmlrpc implements the XML-RPC client library.
log
Package log provides a wrapper over logging interfaces to simplify usage in recovery lib.
Package log provides a wrapper over logging interfaces to simplify usage in recovery lib.
retry
Package retry provides retry methods.
Package retry provides retry methods.
rpm
Package rpm wraps xmlrpc communications to rpm service.
Package rpm wraps xmlrpc communications to rpm service.
tls
Package tls provides the canonical implementation of a common TLS server.
Package tls provides the canonical implementation of a common TLS server.
tlw
Package tlw is implementation of TLW service.
Package tlw is implementation of TLW service.
tlw/cache
Package cache provides functions to manage local cache of UFS data.
Package cache provides functions to manage local cache of UFS data.
Package logger provides an abstract representation of logging interfaces used by recovery lib.
Package logger provides an abstract representation of logging interfaces used by recovery lib.
metrics
The metrics implementation inside the package of the same name is a default implementation of the Metrics interface.
The metrics implementation inside the package of the same name is a default implementation of the Metrics interface.
metrics/mockmetrics
Package mockmetrics is a generated GoMock package.
Package mockmetrics is a generated GoMock package.
Package namespace contains functions to work with namespace of the context.
Package namespace contains functions to work with namespace of the context.
Package tlw provides an abstract representation of the TLW API which is used by recovery
Package tlw provides an abstract representation of the TLW API which is used by recovery
Package version provides a wrapper over version service to simplify usage in recovery lib.
Package version provides a wrapper over version service to simplify usage in recovery lib.

Jump to

Keyboard shortcuts

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