diff --git a/gosa-core/include/class_gosaSupportDaemon.inc b/gosa-core/include/class_gosaSupportDaemon.inc
index 95f81c9de533119d5fdfd1ce934c65c9bcb16556..7d8a4f494c94a1a8a041f0909cff547805d6fbcf 100644 (file)
}
- public function FAI_get_packages($release,$attrs, $package = array())
+ public function FAI_get_kernels($release)
+ {
+ $xml_msg =
+ "<xml>".
+ "<header>gosa_get_available_kernel</header>".
+ "<source>GOSA</source>".
+ "<target>GOSA</target>".
+ "<release>".$release."</release>".
+ "</xml>";
+
+ $ret = array();
+ if($this->connect()){
+ $this->o_sock->write($xml_msg);
+ $str = trim($this->o_sock->read());
+
+ /* Check if something went wrong while reading */
+ if($this->o_sock->is_error()){
+ $this->set_error($this->o_sock->get_error());
+ return($ret);
+ }
+
+ $entries = $this->xml_to_array($str);
+ if(isset($entries['XML']) && is_array($entries['XML'])){
+
+ /* Check if returned values represent a valid answer */
+ if(isset($entries['XML'])){
+ if(isset($entries['XML']['ERROR_STRING'])) {
+ $this->set_error($entries['XML']['ERROR_STRING']);
+ new log("debug","GOsa-si",
+ get_class($this)."::".__FUNCTION__, array(),
+ "FAILED error was ".$this->get_error());
+ return($ret);
+ }
+
+ /* Unset header tags */
+ $ret = $entries['XML'];
+ foreach($ret as $key => $entry){
+ if(!preg_match("/^answer/i",$key)){
+ unset($ret[$key]);
+ }
+ }
+ }
+ }
+ }
+ return($ret);
+ }
+
+
+ public function FAI_get_package_sections($release)
+ {
+ $xml_msg = "<xml><header>gosa_query_packages_list</header><target>GOSA</target><source>GOSA</source>".
+ "<select>distinct section</select>".
+ "<where><clause><phrase><distribution>".$release."</distribution></phrase></clause></where></xml>";
+
+ if($this->connect()){
+ $this->o_sock->write($xml_msg);
+ $str = trim($this->o_sock->read());
+
+ /* Check if something went wrong while reading */
+ if($this->o_sock->is_error()){
+ $this->set_error($this->o_sock->get_error());
+ return($ret);
+ }
+
+ $entries = $this->xml_to_array($str);
+ if(isset($entries['XML']) && is_array($entries['XML'])){
+
+ /* Check if returned values represent a valid answer */
+ if(isset($entries['XML'])){
+ if(isset($entries['XML']['ERROR_STRING'])) {
+ $this->set_error($entries['XML']['ERROR_STRING']);
+ new log("debug","GOsa-si",
+ get_class($this)."::".__FUNCTION__, array(),
+ "FAILED error was ".$this->get_error());
+ return($ret);
+ }
+
+ /* Unset header tags */
+ foreach(array("HEADER","SOURCE","TARGET","SESSION_ID") as $type){
+ if(isset($entries['XML'][$type])){
+ unset($entries['XML'][$type]);
+ }
+ }
+ $ret = $entries['XML'];
+ }
+ }
+ }
+ return($ret);
+ }
+
+
+ public function FAI_get_packages($release,$attrs,$package,$from=-1,$to=-1)
{
$this->reset_error();
$ret = array();
}
/* Check Parameter */
- if(!is_array($package) || !count($package)){
+ if(!is_array($package)){
trigger_error("Third parameter must be an array. With at least one attribute name.");
return($ret);
}
$attr.= "<select>".$at."</select>";
}
+ /* If no package is given, search for all */
+ if(!count($package)) $package = array("%");
+
+ /* Create limit tag */
+ if($from == -1){
+ $limit ="";
+ }else{
+ $limit = "<limit><from>".$from."</from><to>".$to."</to></limit>";
+ }
+
/* Create list of attributes to fetch */
$pkgs = "";
foreach($package as $pkg){
- $pkgs .="
- <phrase>
- <operator>like</operator>
- <package>".$pkg."</package>
- </phrase>
- ";
-
+ $pkgs .="<phrase><operator>like</operator><package>".$pkg."</package></phrase>";
}
- /* Create Daemon query */
- if(!count($package)){
- $xml_msg = "<xml><header>gosa_query_packages_list</header><target>GOSA</target><source>GOSA</source>".
- $attr.
- "<where><clause><phrase><distribution>".$release."</distribution></phrase></clause></where>
- </xml>";
- }else{
- $xml_msg = "<xml><header>gosa_query_packages_list</header><target>GOSA</target><source>GOSA</source>".
- $attr.
- "<where>
- <clause>
- <connector>AND</connector>
- <phrase><distribution>".$release."</distribution></phrase>
- <clause>
- <connector>OR</connector>
- ".$pkgs."
- </clause>
- </clause>
- </where>
- <limit><from>0</from><to>100</to></limit>
- </xml>";
- }
+ $xml_msg = "<xml><header>gosa_query_packages_list</header><target>GOSA</target><source>GOSA</source>".
+ $attr.
+ "<where>
+ <clause><phrase><distribution>".$release."</distribution></phrase></clause>
+ <clause><connector>OR</connector>
+ ".$pkgs."
+ </clause>
+ </where>".
+ $limit.
+ "</xml>";
if($this->connect()){
$this->o_sock->write($xml_msg);
}
$xml_msg =
-"<xml>
+ "<xml>
<header>gosa_query_jobdb</header>
<target>GOSA</target>
<source>GOSA</source>
".$tags."
<orderby>".$sort."</orderby>";
-if($from != -1 && $to != -1){
-$xml_msg.= "
- <limit>
- <from>".$from."</from>
- <to>".$to."</to>
- </limit>";
-}
-$xml_msg.= "
+ if($from != -1 && $to != -1){
+ $xml_msg.= "
+ <limit>
+ <from>".$from."</from>
+ <to>".$to."</to>
+ </limit>";
+ }
+ $xml_msg.= "
</xml>";
if($this->connect()){
/*! \brief Returns the number of currently queued objects.
@return Integer
*/
- public function number_of_queued_entries()
+ public function number_of_queued_entries($event_types)
{
+ $tags = "";
+ foreach($event_types as $type){
+ $tags .= "<phrase><headertag>".$type."</headertag></phrase>";
+ }
+ if(count($event_types) > 1){
+ $tags = "<connector>or</connector>".$tags;
+ }
+ if(count($event_types)){
+ $tags = "<where><clause>".$tags."</clause></where>";
+ }
+
+
+ $xml_msg =
+ "<xml>".
+ "<header>gosa_query_jobdb</header>".
+ "<target>GOSA</target>".
+ "<source>GOSA</source>".
+ "<select> count ID</select>".
+ $tags.
+ "</xml>";
+
$xml_msg ="<xml><header>gosa_count_jobdb</header><target>GOSA</target><source>GOSA</source></xml>";
$this->connect();
if($this->connect()){