class Client extends Client

Client

Über den folgenden Quelltext wird ein Client erstellt und das Bauen für den Job freestyle gestartet.


$xml = <<<EOF &lt;!-- Konfiguration --&gt; EOF; $user = new Alvine\Security\Authentication\User('myLogin'); $password = new Alvine\Security\Authentication\Credential\Password('myPassword'); $credential = new \Alvine\Net\Http\Authentication\Scheme\Basic($user, $password); $client = new \Alvine\Infrastructure\Jenkins\Client(new Alvine\Net\Resource\URI('http://jenkins/')); $client->setCredential($credential); $client->createJob('freestyle',new \Alvine\Infrastructure\Jenkins\Job\Config($xml)); $client->build('freestyle');

Constants

STATUS_OK

Antwortstatus

APIPATH

Pfad auf die API mit json Ausgabe

FIELD_ERROR

Header mit der Fehlermeldung

Methods

ArrayHelper
getArrayHelperFromResponse(Response $response)

Hilfsmethode

getBuild(string $name, integer $buildNumber)

Build

Build>
getBuilds(string $name)

Builds

Job
getJob(string $name)

Job

Job>
getJobs()

Jobliste

getJobConfig(string $name)

Konfiguration auslesen

Log
getBuildLog(string $name, integer $buildNumber)

Ausgabe des Build laden

createJob(string $name, Config $config)

Job anlegen

updateJob(string $name, Config $config)

Job Konfiguration ändern

setEnableDisableModeToJob(string $name, string $mode)

Status setzen

disableJob(string $name)

Job deaktivieren

enableJob(string $name)

Job aktivieren

build(string $name)

Bauen

buildWithParameters(string $name, FormData $formdata)

Bauen mit Parametern anstoßen

deleteJob(string $name)

Job löschen

getUser(string $name)

Benutzer

deleteComputerNode(string $name)

Node entfernen

addComputerNode(Node $node)

Node hinzufügen

getComputer(string $name)

Computer laden

Computer>
getComputers()

Computerliste

addSCMCredential(string $name, SCM $credential, string $type = 'hudson.scm.SubversionSCM')

Zugangsdaten für SCM

getDomainCredentials(string $domain = '_')

Hinterlegte Zugangsdaten

getDomainCredential(string $id, string $domain = '_')

Details zu einzelnen Zugangsdaten ermitteln

quietDown()

Jenkins herunterfahren

cancelQuietDown()

Jenkins herunterfahren abbrechen

addCredentialDomain(Domain $domain)

Domain hinzufügen

addCredential(Generic $credential, string $domain = Security\Credential\Store\Domain::GLOBAL_DOMAIN)

Zugangsdaten hinzufügen

Available>
getAvailablePlugins()

Verfügbare Plugins

Installed>
getInstalledPlugins()

Installierte Plugins

boolean
isRestartRequired()

Überprüfen ob Jenkins neu gestartet werden muss.

performPluginUpdateCheck()

Prüfen ob Updates vorliegen

Plugin>
getAvailablePluginUpdates()

Verfügbare Updates

doPluginAction(string $pluginName, string $action)

Plugin-Aktion ausführen

unpinPlugin(string $pluginName)

Plugin entsperren

pinPlugin(string $pluginName)

Plugin sperren

Client
uninstallPlugin(string $pluginName)

Plugin deinstallieren

installPlugin(string $pluginName, string $version = 'latest')

Plugin installieren

configureSecurity(Security $security)

Sicherheit konfigurieren

Details

at line 84
protected ArrayHelper getArrayHelperFromResponse(Response $response)

Hilfsmethode

Erstellt aus einer Rückgabe ein ArrayHelper-Objekt.

Parameters

Response $response

Return Value

ArrayHelper

Exceptions

TypeException

at line 121
Build getBuild(string $name, integer $buildNumber)

Build

Mit dieser Methode lässt sich der Durchlauf $buildNumber im Projekt $name abrufen.

$client = new \Alvine\Infrastructure\Jenkins\Client(new Alvine\Net\Resource\URI('http://jenkins/'));
$obj = $client->getBuild('myProject',3);
echo $obj->getFullDisplayName();

Das Ergebnis ist in diesem Fall "myProject #3"

Parameters

string $name Name des Jobs
integer $buildNumber Nummer des builds

Return Value

Build

Exceptions

MIMETypeException Der MimeType entspreicht nicht den Vorgaben
ConnectionFailedException Keine Verbindung möglich
ServerException Unspezifizierter Fehler
NotFoundException URI nicht gefunden
ArgumentEmptyException Der Name darf nicht leer sein

at line 149
Build> getBuilds(string $name)

Builds

Um eine Liste mit allen verfügbaren Build von Jenkins abzurufen, kann mit getBuild eine Collection abgerufen werden. Die Collection enthält alle Informationen, die auch von (see \Alvine\Infrastructure\Jenkins\Build)

Parameters

string $name Name des Jobs

Return Value

Build>

Exceptions

MIMETypeException Der MimeType entspreicht nicht den Vorgaben
ConnectionFailedException Keine Verbindung möglich
ServerException Unspezifizierter Fehler
NotFoundException URI nicht gefunden
ArgumentEmptyException Der Name darf nicht leer sein

at line 177
Job getJob(string $name)

Job

Holen aller Daten des Jobs mit dem Namen $name vom Jenkins-Server.

Parameters

string $name Name des Jobs

Return Value

Job Job

Exceptions

MIMETypeException Der MimeType entspreicht nicht den Vorgaben
ConnectionFailedException Keine Verbindung möglich
ServerException Unspezifizierter Fehler
NotFoundException URI nicht gefunden
ArgumentEmptyException Der Name darf nicht leer sein

at line 200
Job> getJobs()

Jobliste

Auflistung alle in Jenkins mit den Zugangsdaten sichtbaren Jobs

Return Value

Job>

Exceptions

MIMETypeException Der MimeType entspreicht nicht den Vorgaben
ConnectionFailedException Keine Verbindung möglich
ServerException Unspezifizierter Fehler
NotFoundException URI nicht gefunden

at line 230
Config getJobConfig(string $name)

Konfiguration auslesen

Parameters

string $name Name des Jobs

Return Value

Config Konfiguration vom Server

Exceptions

MIMETypeException Der MimeType entspreicht nicht den Vorgaben
ConnectionFailedException Keine Verbindung möglich
ServerException Unspezifizierter Fehler
NotFoundException URI nicht gefunden
ArgumentEmptyException Der Name darf nicht leer sein

at line 255
Log getBuildLog(string $name, integer $buildNumber)

Ausgabe des Build laden

Parameters

string $name Name
integer $buildNumber Nummer

Return Value

Log

Exceptions

MIMETypeException Der MimeType entspreicht nicht den Vorgaben
ConnectionFailedException Keine Verbindung möglich
ServerException Unspezifizierter Fehler
NotFoundException URI nicht gefunden
ArgumentEmptyException Der Name darf nicht leer sein

at line 286
Client createJob(string $name, Config $config)

Job anlegen

ein Job wird über eine XML-Konfiguration angelegt.

$xml = '...'; // XML-Zeichenkette
$c = $client->createJob('freestyle', new
        \Alvine\Infrastructure\Jenkins\Job\Config($xml));

Parameters

string $name Name des Jobs
Config $config Konfiguration

Return Value

Client

Exceptions

MIMETypeException Der MimeType entspreicht nicht den Vorgaben
ConnectionFailedException Keine Verbindung möglich
ServerException Unspezifizierter Fehler
NotFoundException URI nicht gefunden
ArgumentEmptyException Der Name darf nicht leer sein

at line 328
Client updateJob(string $name, Config $config)

Job Konfiguration ändern

Die Änderung der Konfiguration erfolgt über das Einspielen einer neuen Konfigurations-XML.

$xml = '...'; // XML-Konfiguration
$config = new \Alvine\Infrastructure\Jenkins\Job\Config($xml);
$log = $client->updateJob('freestyle', $config);

Parameters

string $name Name des Jobs
Config $config Konfiguration

Return Value

Client

Exceptions

MIMETypeException Der MimeType entspreicht nicht den Vorgaben
ConnectionFailedException Keine Verbindung möglich
ServerException Unspezifizierter Fehler
NotFoundException URI nicht gefunden
ArgumentEmptyException Der Name darf nicht leer sein

at line 364
protected Client setEnableDisableModeToJob(string $name, string $mode)

Status setzen

Ein Job kann deaktiviert werden, um zum Beispiel die Ausführung in einer bestimmten zeit zu verhindern.

Parameters

string $name Name des Jobs
string $mode enable oder disable

Return Value

Client

Exceptions

MIMETypeException Der MimeType entspreicht nicht den Vorgaben
ConnectionFailedException Keine Verbindung möglich
ServerException Unspezifizierter Fehler
NotFoundException URI nicht gefunden
ArgumentEmptyException Der Name darf nicht leer sein

at line 394
Client disableJob(string $name)

Job deaktivieren

Ein Job kann deaktiviert werden, um zum Beispiel die Ausführung in einer bestimmten zeit zu verhindern. Ein deaktiverter Job führt keine SCM Abfrage durch und ist auch über die Benutzerschnittstelle nicht startbar.

Parameters

string $name Name des Jobs

Return Value

Client

Exceptions

MIMETypeException Der MimeType entspreicht nicht den Vorgaben
ConnectionFailedException Keine Verbindung möglich
ServerException Unspezifizierter Fehler
NotFoundException URI nicht gefunden
ArgumentEmptyException Der Name darf nicht leer sein

at line 413
Client enableJob(string $name)

Job aktivieren

einen vorher deaktivierten Vorgang wieder aktivieren.

Parameters

string $name Name des Jobs

Return Value

Client

Exceptions

MIMETypeException Der MimeType entspreicht nicht den Vorgaben
ConnectionFailedException Keine Verbindung möglich
ServerException Unspezifizierter Fehler
NotFoundException URI nicht gefunden
ArgumentEmptyException Der Name darf nicht leer sein

at line 436
Client build(string $name)

Bauen

Dieser Befehl startet einen Build-Durchlauf ohne Parameter. Sind für den Job Parameter definiert, so muss stattdessen (see \Alvine\Infrastructure\Jenkins\Client::buildWithParameters()) verwendet werden.

Parameters

string $name Name des Jobs

Return Value

Client

Exceptions

MIMETypeException Der MimeType entspreicht nicht den Vorgaben
ConnectionFailedException Keine Verbindung möglich
ServerException Unspezifizierter Fehler
NotFoundException URI nicht gefunden
ArgumentEmptyException Der Name darf nicht leer sein

at line 474
Client buildWithParameters(string $name, FormData $formdata)

Bauen mit Parametern anstoßen

Für das Bauen mit Parametern müssen die Parameter als Objekt der Klasse see \Alvine\Net\Http\FormData übergeben werden.

Parameters

string $name Name des Jobs
FormData $formdata Parameter

Return Value

Client

Exceptions

MIMETypeException Der MimeType entspreicht nicht den Vorgaben
ConnectionFailedException Keine Verbindung möglich
ServerException Unspezifizierter Fehler
NotFoundException URI nicht gefunden
ArgumentEmptyException Der Name darf nicht leer sein

at line 516
Client deleteJob(string $name)

Job löschen

Achtung: Nach dem Löschen sind die Daten nicht mehr verfügbar und können nicht wiederhergestellt werden.

$user = new Alvine\Security\Authentication\User('myLogin');
$password = new Alvine\Security\Authentication\Credential\Password('myPassword');
$credential = new \Alvine\Net\Http\Authentication\Scheme\Basic($user, $password);

$client = new \Alvine\Infrastructure\Jenkins\Client(new Alvine\Net\Resource\URI('http://jenkins/'));
$client->setCredential($credential);

$client->deleteJob('freestyle');

Parameters

string $name

Return Value

Client

Exceptions

MIMETypeException Der MimeType entspreicht nicht den Vorgaben
ConnectionFailedException Keine Verbindung möglich
ServerException Unspezifizierter Fehler
NotFoundException URI nicht gefunden
ArgumentEmptyException Der Name darf nicht leer sein

at line 542
User getUser(string $name)

Benutzer

Der Benutzer enhält einige wichtige Informationen zu dem User.

Parameters

string $name Benutzername

Return Value

User Benutzer

Exceptions

MIMETypeException Der MimeType entspreicht nicht den Vorgaben
ConnectionFailedException Keine Verbindung möglich
ServerException Unspezifizierter Fehler
NotFoundException URI nicht gefunden
ArgumentEmptyException Der Name darf nicht leer sein

at line 559
Client deleteComputerNode(string $name)

Node entfernen

Parameters

string $name Name der Node

Return Value

Client

at line 573
Client addComputerNode(Node $node)

Node hinzufügen

Parameters

Node $node

Return Value

Client

at line 614
Computer getComputer(string $name)

Computer laden

Jenkins kann in einem Cluster mit mehreren Rechnern betrieben werden. Über die Methoden \Alvine\Infrastructure\Jenkins\Client::getComuters() und \Alvine\Infrastructure\Jenkins\Client::getComputer() können diese Informationen abgefragt werden.

Besonders wichtig sind hier die Informationen zu Auslastung und Festplattenkapazität.

Hinweis: Beim Master ist der Name in Klammern zu setzen (master)

Parameters

string $name Name

Return Value

Computer

Exceptions

MIMETypeException Der MimeType entspreicht nicht den Vorgaben
ConnectionFailedException Keine Verbindung möglich
ServerException Unspezifizierter Fehler
NotFoundException URI nicht gefunden
ArgumentEmptyException Der Name darf nicht leer sein

at line 636
Computer> getComputers()

Computerliste

Aulistung aller Computer im Jenkins-Cluster

Return Value

Computer> Computer

Exceptions

MIMETypeException Der MimeType entspreicht nicht den Vorgaben
ConnectionFailedException Keine Verbindung möglich
ServerException Unspezifizierter Fehler
NotFoundException URI nicht gefunden

at line 660
Client addSCMCredential(string $name, SCM $credential, string $type = 'hudson.scm.SubversionSCM')

Zugangsdaten für SCM

Parameters

string $name Jobname
SCM $credential Zugangsdaten
string $type Typ

Return Value

Client

at line 684
Credentials getDomainCredentials(string $domain = '_')

Hinterlegte Zugangsdaten

$credentials = $client->getDomainCredentials('alvine');
foreach($credentials->getCredentials() as $obj) {
  $credential = $client->getDomainCredential($obj->getID(), 'alvine');
  echo $credential->getFullName()."\n";
}

Parameters

string $domain Domain

Return Value

Credentials Zugangsdatenliste der Domain

at line 705
getDomainCredential(string $id, string $domain = '_')

Details zu einzelnen Zugangsdaten ermitteln

$credentials = $client->getDomainCredentials('alvine');
foreach($credentials->getCredentials() as $obj) {
  $credential = $client->getDomainCredential($obj->getID(), 'alvine');
  echo $credential->getFullName()."\n";
}

Parameters

string $id ID ID derZugangsdaten
string $domain Domain Domain

at line 718
Client quietDown()

Jenkins herunterfahren

Return Value

Client

at line 729
Client cancelQuietDown()

Jenkins herunterfahren abbrechen

Return Value

Client

at line 742
Client addCredentialDomain(Domain $domain)

Domain hinzufügen

Parameters

Domain $domain

Return Value

Client

at line 761
Client addCredential(Generic $credential, string $domain = Security\Credential\Store\Domain::GLOBAL_DOMAIN)

Zugangsdaten hinzufügen

Parameters

Generic $credential Zugangsdaten
string $domain Domain

Return Value

Client

at line 777
Available> getAvailablePlugins()

Verfügbare Plugins

Return Value

Available>

at line 798
Installed> getInstalledPlugins()

Installierte Plugins

Return Value

Installed>

at line 819
boolean isRestartRequired()

Überprüfen ob Jenkins neu gestartet werden muss.

Return Value

boolean Neustart bei true notwendig

at line 836
Client performPluginUpdateCheck()

Prüfen ob Updates vorliegen

Falls Updates vorliegen, so können diese mittels Client::getAvailablePluginUpdates() ermittelt werden. Nach einem Neustart Client::quietDown() stehen die Plugins dann zur Verfügung.

Return Value

Client

at line 847
Plugin> getAvailablePluginUpdates()

Verfügbare Updates

Return Value

Plugin>

at line 871
protected Client doPluginAction(string $pluginName, string $action)

Plugin-Aktion ausführen

Parameters

string $pluginName Name des Plugins
string $action Aktion

Return Value

Client

at line 884
Client unpinPlugin(string $pluginName)

Plugin entsperren

Parameters

string $pluginName Name des Plugins

Return Value

Client

at line 895
Client pinPlugin(string $pluginName)

Plugin sperren

Parameters

string $pluginName Name des Plugins

Return Value

Client

at line 906
Client uninstallPlugin(string $pluginName)

Plugin deinstallieren

Parameters

string $pluginName Name des Plugins

Return Value

Client

at line 920
Client installPlugin(string $pluginName, string $version = 'latest')

Plugin installieren

Parameters

string $pluginName Name des Plugins
string $version Version

Return Value

Client

Exceptions

ServerException Fehler beim Installieren der Plugins

at line 940
Client configureSecurity(Security $security)

Sicherheit konfigurieren

Parameters

Security $security

Return Value

Client