LaunchControlProvider

public class LaunchControlProvider
extends Object implements IBuildProvider, IConfigurationReceiver, IDiscoverDependencies, IInvocationContextReceiver, ITestLoggerReceiver

java.lang.Object
   ↳ com.google.android.tradefed.build.LaunchControlProvider


Es una implementación de IBuildProvider que consulta los servidores de control de lanzamiento de Google para obtener una compilación que se pueda probar.

Se desaconseja la creación de subclases. Usa extra-target-downloads y --additional-files-filter para especificar los artefactos que se descargarán.

TODO: Refactorizar el cliente de control de inicio y la lógica de descarga, y fusionarlos con la futura "One Common Device Flasher Library To Rule Them All" (tm)

Resumen

Clases anidadas

class LaunchControlProvider.DownloadFileDescriptor

 

Constantes

String BUILD_ID_PARAM

String BUILD_NAME_PARAM

String LC_BASE_URL

String MIN_BUILD_ID_PARAM

String QUERY_TYPE_PARAM

String QUERY_WINDOW_PARAM

String TEST_TAG_PARAM

Campos

protected boolean mEnableResolveSymlinks

Constructores públicos

LaunchControlProvider()

Métodos públicos

void addFileFilter(String filter)
void addOptionalFileFilter(String optionalFilter)
void addRemoteZipFilter(String fileFilter)

Agrega un filtro de un archivo ZIP remoto que se puede descargar de forma parcial.

void cleanUp(IBuildInfo info)

Limpia los archivos de compilación temporales.

void clearExtraDownloads()
IFileDownloader createLaunchControlDownloader(RemoteBuildInfo remoteBuild)

Método de fábrica para crear un descargador que se usará para los archivos de control de lanzamiento.

void decrementTestBuild(String buildId)
IBuildInfo fetchRemoteBuild(RemoteBuildInfo remoteBuild)

Convierte la respuesta de control de lanzamiento en un archivo IBuildInfo local que contenga todos los archivos necesarios.

void forceUseCas(boolean useCas)
Collection<String> getAdditionalFilesFilters()
String getBranch()

Obtén la rama especificada actualmente para la consulta

IBuildInfo getBuild()

Recupera los datos de la compilación en prueba.

String getBuildArchivePath()

Obtén la ruta de acceso al archivo de artefactos de compilación

String getBuildFlavor()

Obtén el sabor de compilación para consultar

String getBuildId()

Obtén el ID de compilación para consultar

String getBuildOs()
IConfiguration getConfiguration()

Devuelve el IConfiguration inyectado en uso.

Set<String> getContentBasedReportingDefault()
IInvocationContext getInvocationContext()
String getLcHostname()

Obtén el nombre de host de Launch Control para usarlo en la consulta

String getLcProtocol()

Obtén el protocolo de Launch Control para usar en la consulta

QueryType getQueryType()

Obtén el tipo de consulta que se usará

RemoteBuildInfo getRemoteBuild()

Obtener la respuesta del control de lanzamiento sin descargar todos los archivos

Set<String> getRemoteZipFilters()

Obtiene un conjunto de filtros para archivos ZIP que se pueden descargar de forma parcial.

boolean getReportContentBasedRollout()
boolean getReportContentInformation()
String getTestConfigOnlyZip()

Obtén el archivo ZIP de configuración solo para pruebas.

ITestLogger getTestLogger()
String getTestTag()

Obtén la etiqueta de prueba para usar en la consulta

boolean getUseSsoClient()

Obtiene si se debe usar el cliente de SSO.

static void handleExtraTargetDownloads(IBuildInfo build, List<Entry<String, File>> entries)

Los identificadores de archivos se descargan de forma dinámica para completar sus metadatos

boolean isChunkingUncompressedDisabled()
boolean isSecondaryParallelDownload()

Indica si la descarga paralela está habilitada o no.

Set<String> reportTestZipFileFilter()
void resetTestBuild()

Realiza una consulta QueryType.RESET_TEST_BUILD para solicitar el control del lanzamiento y quitar la compilación configurada del conjunto de "compilaciones probadas".

void resetTestBuild(String buildId)

Realiza una consulta de QueryType.RESET_TEST_BUILD para solicitar el control del lanzamiento y quitar la compilación determinada del conjunto de "compilaciones probadas".

void setAdditionalFilesFilters(Collection<String> additionalFilesFilters)
void setBranch(String branch)

Establece la rama para consultar

void setBuildArchivePath(String buildArchivePath)

Establece la ruta de acceso al archivo de artefactos de compilación

void setBuildFlavor(String flavor)

Establece el sabor de compilación para consultar

void setBuildId(String buildId)

Establece el ID de compilación para consultar

void setBuildOs(String os)
void setConfiguration(IConfiguration configuration)

Inserta el IConfiguration en uso.

void setContentBasedReportingDefault(Set<String> contentBasedReportingDefault)
void setEnableResolveSymlinks(boolean enableResolveSymlinks)
void setFetchSigned(boolean fetchSigned)
void setInvocationContext(IInvocationContext invocationContext)

void setLcHostname(String lcHostname)

Establece el nombre de host de Launch Control que se usará en la consulta

void setLcProtocol(String lcProtocol)

Establece el protocolo de Control de lanzamiento que se usará en la consulta.

void setMinBuildId(int minBuildId)

Establece el ID de compilación mínimo que se usará.

void setParallelSecondaryDownload(boolean parallel)
void setPartialDownloadForZip(boolean enableZipPartialDownload)
void setQueryType(QueryType queryType)

Establece el tipo de consulta que se usará

void setReportContentBasedRollout(boolean reportContentBasedRollout)
void setReportContentInformation(boolean reportContentInfo)
void setSkipCloudContent(boolean skipCloudContent)
void setTestLogger(ITestLogger testLogger)

Inyecta la instancia de ITestLogger.

void setTestTag(String tag)

Establece la etiqueta de prueba que se usará.

void setUseBuildApi(boolean useBuildApi)

Establece el valor para controlar si el proveedor de compilación debe usar la API de Android Build.

void setUseSsoClient(boolean useSsoClient)

Indica si se debe usar el cliente de SSO.

boolean shouldFetchSigned()
boolean shouldReportContentInformation()
boolean shouldUseBuildApi()

Devuelve si el proveedor de compilación debe usar la API de Android Build

Métodos protegidos

void convertBuildToSigned(RemoteBuildInfo remoteBuild)

Modifica los parámetros en este RemoteBuildInfo para describir una compilación firmada.

IHttpHelper createHttpHelper()

Método de fábrica para crear un HttpHelper.

String createSignedParameter(String param)

Modifica un solo parámetro para que represente un parámetro firmado. Si el parámetro ya está en el formato firmado, se devuelve sin cambios.

void deleteCacheEntry(String remoteFilePath)

Quita el archivo de la caché en caso de que esté dañado.

void downloadAdditionalFiles(RemoteBuildInfo remoteBuild, IFileDownloader downloader, IBuildInfo localBuild)
IBuildInfo downloadBuildFiles(RemoteBuildInfo remoteBuild, String testTargetName, String buildName, IFileDownloader downloader)

Descarga las claves de archivo necesarias, según se configuraron en --download-build-key, desde remoteBuild y almacénalas en un IBuildInfo.

final List<Entry<LaunchControlProvider.DownloadFileDescriptor, File>> downloadFilesNonBlocking(IFileDownloader downloader, List<LaunchControlProvider.DownloadFileDescriptor> toBeDownloaded)

Descarga el conjunto de rutas de acceso a archivos y aplícalas si son obligatorias.

AndroidBuildArtifactHelper getBuildArtifactHelper()
MultiMap<String, File> getExtraDownloadMap()

Devuelve el mapa de destinos adicionales descargados.

Set<String> getGlobalDownloadExclusionPatterns()
final File getWorkFolder()

Devuelve la carpeta de trabajo de la invocación actual.

final File handleDirectoryDownload(File downloadedFile)
RemoteBuildInfo performBuildApiQuery()
void performValidityCheckForBuildApi()
RemoteBuildInfo queryForBuild(MultiMap<String, String> params)

Realiza la consulta de control de lanzamiento y vuelve a intentarlo varias veces en caso de error.

RemoteBuildInfo queryForBuild()

Realiza la consulta de control de lanzamiento y vuelve a intentarlo varias veces en caso de error.

RemoteBuildInfo queryForBuildWithBuildApi()

Realiza la consulta de compilación en la API de compilación.

void replaceParamWithSigned(RemoteBuildInfo buildInfo, RemoteBuildInfo.BuildAttributeKey key)
boolean useCasDefaultRollout()

Constantes

BUILD_ID_PARAM

protected static final String BUILD_ID_PARAM

Valor de la constante: "bid"

BUILD_NAME_PARAM

protected static final String BUILD_NAME_PARAM

Valor de la constante: "id"

LC_BASE_URL

protected static final String LC_BASE_URL

Valor de la constante: "%s://%s/buildbot-update"

MIN_BUILD_ID_PARAM

protected static final String MIN_BUILD_ID_PARAM

Valor de la constante: "min_build_id"

QUERY_TYPE_PARAM

protected static final String QUERY_TYPE_PARAM

Valor de la constante: "op"

QUERY_WINDOW_PARAM

protected static final String QUERY_WINDOW_PARAM

Valor de la constante: "query_window"

TEST_TAG_PARAM

protected static final String TEST_TAG_PARAM

Valor de la constante: "test_tag"

Campos

protected boolean mEnableResolveSymlinks

Constructores públicos

LaunchControlProvider

public LaunchControlProvider ()

Métodos públicos

addFileFilter

public void addFileFilter (String filter)

Parámetros
filter String

addOptionalFileFilter

public void addOptionalFileFilter (String optionalFilter)

Parámetros
optionalFilter String

addRemoteZipFilter

public void addRemoteZipFilter (String fileFilter)

Agrega un filtro de un archivo ZIP remoto que se puede descargar de forma parcial.

Parámetros
fileFilter String

cleanUp

public void cleanUp (IBuildInfo info)

Limpia los archivos de compilación temporales.

Parámetros
info IBuildInfo

clearExtraDownloads

public void clearExtraDownloads ()

createLaunchControlDownloader

public IFileDownloader createLaunchControlDownloader (RemoteBuildInfo remoteBuild)

Método de fábrica para crear un descargador que se usará para los archivos de control de lanzamiento.

Parámetros
remoteBuild RemoteBuildInfo

Muestra
IFileDownloader

decrementTestBuild

public void decrementTestBuild (String buildId)

Parámetros
buildId String

fetchRemoteBuild

public IBuildInfo fetchRemoteBuild (RemoteBuildInfo remoteBuild)

Convierte la respuesta de control de lanzamiento en un archivo IBuildInfo local que contenga todos los archivos necesarios.

Se hizo pública para que las especializaciones fuera de este paquete puedan usarla directamente. Normalmente, se debe usar getBuild() en su lugar.

Parámetros
remoteBuild RemoteBuildInfo: La respuesta del servidor de control de lanzamiento

Muestra
IBuildInfo El IBuildInfo se completa con versiones locales de los archivos de compilación.

Arroja
BuildRetrievalError Si no se pudieron descargar los archivos de compilación

forceUseCas

public void forceUseCas (boolean useCas)

Parámetros
useCas boolean

getAdditionalFilesFilters

public Collection<String> getAdditionalFilesFilters ()

Muestra
Collection<String>

getBranch

public String getBranch ()

Obtén la rama especificada actualmente para la consulta

Muestra
String la rama

getBuild

public IBuildInfo getBuild ()

Recupera los datos de la compilación en prueba.

Muestra
IBuildInfo IBuildInfo para la compilación en prueba o null si no hay una compilación disponible para la prueba

Arroja
BuildRetrievalError

getBuildArchivePath

public String getBuildArchivePath ()

Obtén la ruta de acceso al archivo de artefactos de compilación

Muestra
String

getBuildFlavor

public String getBuildFlavor ()

Obtén el sabor de compilación para consultar

Muestra
String

getBuildId

public String getBuildId ()

Obtén el ID de compilación para consultar

Muestra
String

getBuildOs

public String getBuildOs ()

Muestra
String

getConfiguration

public IConfiguration getConfiguration ()

Devuelve el IConfiguration inyectado en uso.

Muestra
IConfiguration

getContentBasedReportingDefault

public Set<String> getContentBasedReportingDefault ()

Muestra
Set<String>

getInvocationContext

public IInvocationContext getInvocationContext ()

Muestra
IInvocationContext

getLcHostname

public String getLcHostname ()

Obtén el nombre de host de Launch Control para usarlo en la consulta

Muestra
String

getLcProtocol

public String getLcProtocol ()

Obtén el protocolo de Launch Control para usar en la consulta

Muestra
String

getQueryType

public QueryType getQueryType ()

Obtén el tipo de consulta que se usará

Muestra
QueryType

getRemoteBuild

public RemoteBuildInfo getRemoteBuild ()

Obtener la respuesta del control de lanzamiento sin descargar todos los archivos

Se hizo pública para que las especializaciones fuera de este paquete puedan usarla directamente. Normalmente, se debe usar getBuild() en su lugar.

Muestra
RemoteBuildInfo La respuesta RemoteBuildInfo del control de lanzamiento

Arroja
BuildRetrievalError Si no se pudo recuperar la información de compilación debido a un error inesperado

getRemoteZipFilters

public Set<String> getRemoteZipFilters ()

Obtiene un conjunto de filtros para archivos ZIP que se pueden descargar de forma parcial.

Muestra
Set<String>

getReportContentBasedRollout

public boolean getReportContentBasedRollout ()

Muestra
boolean

getReportContentInformation

public boolean getReportContentInformation ()

Muestra
boolean

getTestConfigOnlyZip

public String getTestConfigOnlyZip ()

Obtén el archivo ZIP de configuración solo para pruebas.

Muestra
String

getTestLogger

public ITestLogger getTestLogger ()

Muestra
ITestLogger

getTestTag

public String getTestTag ()

Obtén la etiqueta de prueba para usar en la consulta

Muestra
String

getUseSsoClient

public boolean getUseSsoClient ()

Obtiene si se debe usar el cliente de SSO.

Muestra
boolean

handleExtraTargetDownloads

public static void handleExtraTargetDownloads (IBuildInfo build, 
                List<Entry<String, File>> entries)

Los identificadores de archivos se descargan de forma dinámica para completar sus metadatos

Parámetros
build IBuildInfo

entries List

Arroja
BuildRetrievalError

isChunkingUncompressedDisabled

public boolean isChunkingUncompressedDisabled ()

Muestra
boolean

isSecondaryParallelDownload

public boolean isSecondaryParallelDownload ()

Indica si la descarga paralela está habilitada o no.

Muestra
boolean

reportTestZipFileFilter

public Set<String> reportTestZipFileFilter ()

Muestra
Set<String>

resetTestBuild

public void resetTestBuild ()

Realiza una consulta QueryType.RESET_TEST_BUILD para solicitar el control del lanzamiento y quitar la compilación configurada del conjunto de "compilaciones probadas".

Tiene mecanismos limitados de manejo de errores y reintentos. Se dejó de usar porque LCProxy dejó de estar disponible.

resetTestBuild

public void resetTestBuild (String buildId)

Realiza una consulta de QueryType.RESET_TEST_BUILD para solicitar el control del lanzamiento y quitar la compilación determinada del conjunto de "compilaciones probadas".

Tiene mecanismos limitados de manejo de errores y reintentos. Se dejó de usar porque se descontinuó LCProxy.

Parámetros
buildId String: Es el ID de compilación que se restablecerá.

setAdditionalFilesFilters

public void setAdditionalFilesFilters (Collection<String> additionalFilesFilters)

Parámetros
additionalFilesFilters Collection

setBranch

public void setBranch (String branch)

Establece la rama para consultar

setBuildArchivePath

public void setBuildArchivePath (String buildArchivePath)

Establece la ruta de acceso al archivo de artefactos de compilación

setBuildFlavor

public void setBuildFlavor (String flavor)

Establece el sabor de compilación para consultar

setBuildId

public void setBuildId (String buildId)

Establece el ID de compilación para consultar

setBuildOs

public void setBuildOs (String os)

Parámetros
os String

setConfiguration

public void setConfiguration (IConfiguration configuration)

Inserta el IConfiguration en uso.

Parámetros
configuration IConfiguration

setContentBasedReportingDefault

public void setContentBasedReportingDefault (Set<String> contentBasedReportingDefault)

Parámetros
contentBasedReportingDefault Set

setEnableResolveSymlinks

public void setEnableResolveSymlinks (boolean enableResolveSymlinks)

Parámetros
enableResolveSymlinks boolean

setFetchSigned

public void setFetchSigned (boolean fetchSigned)

Parámetros
fetchSigned boolean

setInvocationContext

public void setInvocationContext (IInvocationContext invocationContext)

Parámetros
invocationContext IInvocationContext

setLcHostname

public void setLcHostname (String lcHostname)

Establece el nombre de host de Launch Control que se usará en la consulta

Parámetros
lcHostname String

setLcProtocol

public void setLcProtocol (String lcProtocol)

Establece el protocolo de Control de lanzamiento que se usará en la consulta.

setMinBuildId

public void setMinBuildId (int minBuildId)

Establece el ID de compilación mínimo que se usará.

Parámetros
minBuildId int

setParallelSecondaryDownload

public void setParallelSecondaryDownload (boolean parallel)

Parámetros
parallel boolean

setPartialDownloadForZip

public void setPartialDownloadForZip (boolean enableZipPartialDownload)

Parámetros
enableZipPartialDownload boolean

setQueryType

public void setQueryType (QueryType queryType)

Establece el tipo de consulta que se usará

setReportContentBasedRollout

public void setReportContentBasedRollout (boolean reportContentBasedRollout)

Parámetros
reportContentBasedRollout boolean

setReportContentInformation

public void setReportContentInformation (boolean reportContentInfo)

Parámetros
reportContentInfo boolean

setSkipCloudContent

public void setSkipCloudContent (boolean skipCloudContent)

Parámetros
skipCloudContent boolean

setTestLogger

public void setTestLogger (ITestLogger testLogger)

Inyecta la instancia de ITestLogger.

Parámetros
testLogger ITestLogger

setTestTag

public void setTestTag (String tag)

Establece la etiqueta de prueba que se usará.

Parámetros
tag String

setUseBuildApi

public void setUseBuildApi (boolean useBuildApi)

Establece el valor para controlar si el proveedor de compilación debe usar la API de Android Build.

Parámetros
useBuildApi boolean

setUseSsoClient

public void setUseSsoClient (boolean useSsoClient)

Indica si se debe usar el cliente de SSO.

Parámetros
useSsoClient boolean

shouldFetchSigned

public boolean shouldFetchSigned ()

Muestra
boolean

shouldReportContentInformation

public boolean shouldReportContentInformation ()

Muestra
boolean

shouldUseBuildApi

public boolean shouldUseBuildApi ()

Devuelve si el proveedor de compilación debe usar la API de Android Build

Muestra
boolean

Métodos protegidos

convertBuildToSigned

protected void convertBuildToSigned (RemoteBuildInfo remoteBuild)

Modifica los parámetros en este RemoteBuildInfo para describir una compilación firmada.

Parámetros
remoteBuild RemoteBuildInfo: Es el RemoteBuildInfo que se modificará.

Arroja
com.android.tradefed.build.BuildRetrievalError
BuildRetrievalError

createHttpHelper

protected IHttpHelper createHttpHelper ()

Método de fábrica para crear un HttpHelper.

Se expone para que se pueda simular en pruebas de unidades.

Muestra
IHttpHelper

createSignedParameter

protected String createSignedParameter (String param)

Modifica un solo parámetro para que represente un parámetro firmado. Si el parámetro ya está en el formato firmado, se devuelve sin cambios.

Parámetros
param String: Es el parámetro inicial (puede estar sin firmar o ya firmado).

Muestra
String El parámetro signed

Arroja
BuildRetrievalError Si el parámetro tiene un formato incorrecto y no se puede procesar

deleteCacheEntry

protected void deleteCacheEntry (String remoteFilePath)

Quita el archivo de la caché en caso de que esté dañado.

Parámetros
remoteFilePath String: Es el mismo archivo remoto que se especificó en IFileDownloader.downloadFile(String).

downloadAdditionalFiles

protected void downloadAdditionalFiles (RemoteBuildInfo remoteBuild, 
                IFileDownloader downloader, 
                IBuildInfo localBuild)

Parámetros
remoteBuild RemoteBuildInfo

downloader IFileDownloader

localBuild IBuildInfo

Arroja
BuildRetrievalError

downloadBuildFiles

protected IBuildInfo downloadBuildFiles (RemoteBuildInfo remoteBuild, 
                String testTargetName, 
                String buildName, 
                IFileDownloader downloader)

Descarga las claves de archivo necesarias, según se configuraron en --download-build-key, desde remoteBuild y almacénalas en un IBuildInfo.

Parámetros
remoteBuild RemoteBuildInfo: La respuesta del servidor de control de lanzamiento

testTargetName String: Es el nombre del destino de la prueba.

buildName String: Es el nombre de la compilación, según lo define el control de lanzamiento.

downloader IFileDownloader: El IFileDownloader que se usará para descargar archivos de compilación

Muestra
IBuildInfo El IBuildInfo se completa con versiones locales de los archivos de compilación.

Arroja
BuildRetrievalError Si no se pudieron descargar los archivos de compilación

downloadFilesNonBlocking

protected final List<Entry<LaunchControlProvider.DownloadFileDescriptor, File>> downloadFilesNonBlocking (IFileDownloader downloader, 
                List<LaunchControlProvider.DownloadFileDescriptor> toBeDownloaded)

Descarga el conjunto de rutas de acceso a archivos y aplícalas si son obligatorias.

Parámetros
downloader IFileDownloader

toBeDownloaded List

Muestra
List<Entry<LaunchControlProvider.DownloadFileDescriptor, File>>

Arroja
BuildRetrievalError

getBuildArtifactHelper

protected AndroidBuildArtifactHelper getBuildArtifactHelper ()

Muestra
AndroidBuildArtifactHelper

Arroja
BuildRetrievalError

getExtraDownloadMap

protected MultiMap<String, File> getExtraDownloadMap ()

Devuelve el mapa de destinos adicionales descargados.

Muestra
MultiMap<String, File>

getGlobalDownloadExclusionPatterns

protected Set<String> getGlobalDownloadExclusionPatterns ()

Muestra
Set<String>

getWorkFolder

protected final File getWorkFolder ()

Devuelve la carpeta de trabajo de la invocación actual.

Muestra
File

handleDirectoryDownload

protected final File handleDirectoryDownload (File downloadedFile)

Parámetros
downloadedFile File

Muestra
File

performBuildApiQuery

protected RemoteBuildInfo performBuildApiQuery ()

Muestra
RemoteBuildInfo

Arroja
BuildRetrievalError

performValidityCheckForBuildApi

protected void performValidityCheckForBuildApi ()

queryForBuild

protected RemoteBuildInfo queryForBuild (MultiMap<String, String> params)

Realiza la consulta de control de lanzamiento y vuelve a intentarlo varias veces en caso de error.

Parámetros
params MultiMap: Parámetros para el control de lanzamiento

Muestra
RemoteBuildInfo El RemoteBuildInfo recuperado del control de inicio

Arroja
BuildRetrievalError

queryForBuild

protected RemoteBuildInfo queryForBuild ()

Realiza la consulta de control de lanzamiento y vuelve a intentarlo varias veces en caso de error.

Muestra
RemoteBuildInfo El RemoteBuildInfo recuperado del control de inicio

Arroja
BuildRetrievalError

queryForBuildWithBuildApi

protected RemoteBuildInfo queryForBuildWithBuildApi ()

Realiza la consulta de compilación en la API de compilación.

Nota: Los parámetros de entrada se infieren a partir de varias variables con alcance de clase.

Muestra
RemoteBuildInfo Es el RemoteBuildInfo que se analizó a partir de la respuesta.

Arroja
com.android.tradefed.build.BuildRetrievalError
BuildRetrievalError

replaceParamWithSigned

protected void replaceParamWithSigned (RemoteBuildInfo buildInfo, 
                RemoteBuildInfo.BuildAttributeKey key)

Parámetros
buildInfo RemoteBuildInfo

key RemoteBuildInfo.BuildAttributeKey

Arroja
BuildRetrievalError

useCasDefaultRollout

protected boolean useCasDefaultRollout ()

Muestra
boolean