| <?php |
| /******************************************************************************* |
| * Copyright (c) 2014-2015 Eclipse Foundation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Denis Roy (Eclipse Foundation) - initial API and implementation |
| * Christopher Guindon (Eclipse Foundation) |
| *******************************************************************************/ |
| require_once(realpath(dirname(__FILE__) . "/../../system/app.class.php")); |
| |
| class Hipp { |
| |
| #***************************************************************************** |
| # |
| # hipp.class.php |
| # |
| # Author: Denis Roy |
| # Date: 2013-11-06 |
| # |
| # Description: Functions and modules related to Hudson HIPP |
| # |
| # HISTORY: |
| # |
| # mysql> select * from ProjectServices; |
| # +-----+-------------------+-------------+----------------+------------------------+--------------------+------------+----------+-----------+---------+ |
| # | ID | ProjectID | ServiceType | ServiceVersion | ServicePreviousVersion | ServerHost | ServerPort | XvncBase | OtherData | State | |
| # +-----+-------------------+-------------+----------------+------------------------+--------------------+------------+----------+-----------+---------+ |
| # | 1 | technology.babel | hipp | 3.2.2 | 3.0.1-b2 | hipp6.eclipse.org | 8215 | 360 | NULL | running | |
| # |
| #***************************************************************************** |
| |
| var $ID = 0; |
| |
| var $ProjectID = ""; |
| |
| var $ServiceType = ""; |
| |
| var $ServiceVersion = ""; |
| |
| var $ServicePreviousVersion = ""; |
| |
| var $ServiceLatestVersion = ""; |
| |
| var $ServerHost = ""; |
| |
| var $ServerPort = 0; |
| |
| var $XvncBase = 0; |
| |
| var $OtherData = ""; |
| |
| var $State = ""; |
| |
| # Path to HIPP images |
| private $HIPPImagePath = "/opt/public/hipp/homes/hudson-wars"; |
| |
| private $VersionRegexp = '/[^\w\.-]/'; |
| |
| /** |
| * Create HTML for hipp control panel link |
| * |
| * @param string $id |
| * Project id (technology.cbi) |
| * |
| * @param string $shortname |
| * Project shortname (cbi) |
| * |
| * @return string |
| */ |
| public function getControlLink($id, $shortname){ |
| $state = $this->getState(); |
| $str = "<span id='" . $shortname . "_state' class='" . $state . "'>" . ucfirst($state) . "</span>   <span id='" . $shortname . "_instance'>"; |
| |
| # Examine Service status to determine control knobs to place |
| if ($state == "running") { |
| # Add RESTART button |
| $str .= '<a title="restart" href="#ct" data-action="restart" data-projectid="' . $id . '" data-shortname="' . $shortname . '" class="hipp-control-action-link" ><i class="fa fa-refresh"></i></a>'; |
| } |
| |
| if ($state == "stopped") { |
| # Add START button |
| $str .= '<a title="start" href="#ct" data-action="start" data-projectid="' . $id . '" data-shortname="' . $shortname . '" class="hipp-control-action-link" ><i class="fa fa-power-off"></i></a>'; |
| } |
| |
| return $str . "</span>"; |
| } |
| |
| function getID() { |
| return $this->ID; |
| } |
| |
| function getProjectID() { |
| return $this->ProjectID; |
| } |
| |
| function getServiceType() { |
| return $this->ServiceType; |
| } |
| |
| function getServiceVersion() { |
| return $this->ServiceVersion; |
| } |
| |
| function getServicePreviousVersion() { |
| return $this->ServicePreviousVersion; |
| } |
| |
| function getServiceLatestVersion() { |
| return $this->ServiceLatestVersion; |
| } |
| function getServerHost() { |
| return $this->ServerHost; |
| } |
| |
| function getServerPort() { |
| return $this->ServerPort; |
| } |
| |
| function getXvncBase() { |
| return $this->XvncBase; |
| } |
| |
| function getOtherData() { |
| return $this->OtherData; |
| } |
| |
| function getState() { |
| return $this->State; |
| } |
| |
| function setID($_ID) { |
| $this->ID = $_ID; |
| } |
| |
| function setProjectID($_ProjectID) { |
| $this->ProjectID = $_ProjectID; |
| } |
| |
| function setServiceType($_ServiceType) { |
| $this->ServiceType = $_ServiceType; |
| } |
| |
| function setServiceVersion($_ServiceVersion) { |
| $this->ServiceVersion = $_ServiceVersion; |
| } |
| |
| function setServicePreviousVersion($_ServicePreviousVersion) { |
| $this->ServicePreviousVersion = $_ServicePreviousVersion; |
| } |
| |
| function setServiceLatestVersion($_ServiceLatestVersion) { |
| # this regexp also in admintools.git:create_hipp |
| $this->ServiceLatestVersion = preg_replace($this->VersionRegexp, '', $_ServiceLatestVersion); |
| } |
| |
| function setServerHost($_ServerHost) { |
| $this->ServerHost = $_ServerHost; |
| } |
| |
| function setServerPort($_ServerPort) { |
| $this->ServerPort = $_ServerPort; |
| } |
| |
| function setXvncBase($_XvncBase) { |
| $this->XvncBase = $_XvncBase; |
| } |
| |
| function setOtherData($_OtherData) { |
| $this->OtherData = $_OtherData; |
| } |
| |
| function setState($_State) { |
| $this->State = $_State; |
| } |
| |
| function selectHIPP($_ProjectID) { |
| $App = new App(); |
| $WHERE = ""; |
| |
| if ($_ProjectID != "") { |
| $WHERE .= " WHERE SRV.ProjectID = " . $App->returnQuotedString($App->sqlSanitize($_ProjectID)) . " |
| AND SRV.ServiceType LIKE '_ipp'"; |
| $sql = "SELECT /* hipp.class.php */ |
| SRV.ID, |
| SRV.ProjectID, |
| SRV.ServiceType, |
| SRV.ServiceVersion, |
| SRV.ServicePreviousVersion, |
| SRV.ServerHost, |
| SRV.ServerPort, |
| SRV.XvncBase, |
| SRV.OtherData, |
| SRV.State |
| FROM |
| ProjectServices AS SRV " |
| . $WHERE; |
| |
| $result = $App->foundation_sql($sql); |
| |
| if ($myrow = mysql_fetch_array($result)) { |
| $this->setID($myrow["ID"]); |
| $this->setProjectID($myrow["ProjectID"]); |
| $this->setServiceType($myrow["ServiceType"]); |
| $this->setServiceVersion($myrow["ServiceVersion"]); |
| $this->setServicePreviousVersion($myrow["ServicePreviousVersion"]); |
| $this->setServerHost($myrow["ServerHost"]); |
| $this->setServerPort($myrow["ServerPort"]); |
| $this->setXvncBase($myrow["XvncBase"]); |
| $this->setOtherData($myrow["OtherData"]); |
| $this->setState($myrow["State"]); |
| } |
| $result = NULL; |
| $myrow = NULL; |
| |
| $this->getLatestVersionFromFile("hipp"); |
| } |
| } |
| |
| /** |
| * getLatestVersionFromFile - read latest version from file |
| * @param string - Servicetype (HIPP) |
| * @return none |
| * @since 2015-02-26 |
| * @author droy |
| */ |
| function getLatestVersionFromFile($_ServiceType="hipp") { |
| if(is_readable($this->HIPPImagePath . "/latest")) { |
| $this->setServiceLatestVersion(file_get_contents($this->HIPPImagePath. "/latest")); |
| } |
| } |
| |
| } |