summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: cd13942)
raw | patch | inline | side by side (parent: cd13942)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Mon, 21 Jan 2008 14:02:26 +0000 (14:02 +0000) | ||
committer | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Mon, 21 Jan 2008 14:02:26 +0000 (14:02 +0000) |
- Added functions : update entry, Entry Exists, Get entry..
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@8520 594d385d-05f5-0310-b6e9-bd551577e9d8
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@8520 594d385d-05f5-0310-b6e9-bd551577e9d8
diff --git a/gosa-core/include/class_gosaSupportDaemon.inc b/gosa-core/include/class_gosaSupportDaemon.inc
index 0b2e3e83f2ed30950f2006e15a0677bf3f1a3d63..14f84f7c80c33d49429093305865911d1926709a 100644 (file)
private $is_connected = FALSE;
private $s_encryption_key = "";
- private $entries = array();
- private $pointer = 0;
-
private $s_error = "";
private $b_error = FALSE;
+
+ /*! \brief Creates a new gosaSupportDaemon object.
+ @param string Host The Host where the deamon is running on.
+ @param integer Port The port which the deamon use.
+ @param string Key The encryption string.
+ @param boolean Connect Directly connect to deamon socket.
+ @param float Timeout The timelimit for all socket actions.
+ */
public function __construct($host,$port,$key="secret-gosa-password",$connect=TRUE,$timeout=0.2)
{
$this->s_host = $host;
}
}
+
+ /*! \brief Establish deamon connection.
+ @return boolean Returns true if the connection was succesfully established.
+ */
public function connect()
{
$this->o_sock = new Socket_Client($this->s_host,$this->i_port,TRUE,$this->f_timeout);
}
}
+
+ /*! \brief Disconnect from gosa deamon.
+ */
public function disconnect()
{
$this->o_sock->close();
}
- public function __reload()
+ /*! \brief Sets an error message, which can be returned with get_error().
+ @param string The Error message,
+ */
+ private function set_error($str)
+ {
+ $this->b_error = TRUE;
+ $this->s_error = $str;
+ }
+
+
+ /*! \brief Checks if an error occured.
+ @return boolean returns TRUE or FALSE, whether there is an error or not.
+ */
+ public function is_error()
+ {
+ return($this->b_error);
+ }
+
+
+ /*! \brief Returns the last error.
+ @return Returns the last error.
+ */
+ public function get_error()
+ {
+ return($this->s_error);
+ }
+
+
+ /*! \brief Returns an array containing all queued entries.
+ @return Array All queued entries as an array.
+ */
+ public function get_queued_entries()
{
- $this->entries = array();
- $this->pointer = 0;
$this->b_error = FALSE;
$this->s_error = "";
if(!isset($entries['XML'])){
$this->set_error("Couldn't parse xml.");
$this->disconnect();
- return(FALSE);
+ return;
}else{
$ret = array_values($entries['XML']);
}
- $this->entries = $ret;
+ return($ret);
+ }
+ $this->set_error("Could not establish socket connection.");
+ $this->disconnect();
+ return;
+ }
+
+
+ /*! \brief Checks if the given id is in use.
+ @param Integer The ID of the entry.
+ @return Boolean TRUE if entry exists.
+ */
+ public function id_exists($id)
+ {
+ if(!is_numeric($id)){
+ trigger_error("gosaSupportDaemon::get_entry() requires an integer value as ID parameter.");
+ return;
+ }
+
+ $this->b_error = FALSE;
+ $this->s_error = "";
+ $xml_msg = "<xml>
+ <header>gosa_query_jobdb</header>
+ <where>id</where>
+ <id>".$id."</id>
+ </xml>";
+ $this->connect();
+ if(!$this->is_connected){
+ $this->set_error("Could not establish socket connection.");
+ }else{
+ $this->o_sock->write($xml_msg);
+ $str = trim($this->o_sock->read());
+ $entries = $this->xml_to_array($str);
+ if(isset($entries['XML']['ANSWER1'])){
+ $this->disconnect();
+ return(TRUE);
+ }
+ }
+ $this->disconnect();
+ return(FALSE);
+ }
+
+
+ /*! \brief Returns an entry from the gosaSupportQueue
+ @param Integer The ID of the entry we want to return.
+ @return Array Of the requested entry.
+ */
+ public function get_entry($id)
+ {
+ if(!is_numeric($id)){
+ trigger_error("gosaSupportDaemon::get_entry() requires an integer value as ID parameter.");
+ return;
+ }
+
+ $this->b_error = FALSE;
+ $this->s_error = "";
+ $xml_msg = "<xml>
+ <header>gosa_query_jobdb</header>
+ <where>id</where>
+ <id>".$id."</id>
+ </xml>";
+ $this->connect();
+ if(!$this->is_connected){
+ $this->set_error("Could not establish socket connection.");
+ }else{
+ $this->o_sock->write($xml_msg);
+ $str = trim($this->o_sock->read());
+ $entries = $this->xml_to_array($str);
+ if(!isset($entries['XML']['ANSWER1'])){
+ $this->set_error("Entry with id (".$id.") not found.");
+ $this->disconnect();
+ }else{
+ $ret = $entries['XML']['ANSWER1'];
+ return($ret);
+ }
+ }
+ return;
+ }
+
+
+ /*! \brief Removes an entry from the GOsa support queue.
+ @param Integer The ID of the entry we want to remove.
+ @return Boolean True on success.
+ */
+ public function remove_entry($id)
+ {
+ $this->b_error = FALSE;
+ $this->s_error = "";
+
+ $xml_msg = "<xml>
+ <header>gosa_delete_jobdb_entry</header>
+ <where>id</where>
+ <id>".$id."</id>
+ </xml>";
+ $this->connect();
+ if($this->is_connected){
+ $this->o_sock->write($xml_msg);
return(TRUE);
}
$this->set_error("Could not establish socket connection.");
return(FALSE);
}
+
+ /*! \brief Parses the given xml string into an array
+ @param String XML string
+ @return Array Returns an array containing the xml structure.
+ */
function xml_to_array($xml)
{
$params = array();
return($params);
}
- public function load()
- {
- return($this->__reload());
- }
-
- public function fetch()
- {
- if(isset($this->entries[$this->pointer])){
- $p = $this->entries[$this->pointer];
- $this->pointer ++;
- return($p);
- }
- return(FALSE);
- }
- private function set_error($str)
- {
- $this->b_error = TRUE;
- $this->s_error = $str;
- }
-
- public function is_error()
- {
- return($this->b_error);
- }
-
- public function get_error()
- {
- return($this->s_error);
- }
-
- public function decrease_entry_priority($id)
- {
- }
-
- public function increase_entry_priority($id)
- {
- }
-
- public function max_entry_priority($id)
- {
- }
-
- public function min_entry_priority($id)
- {
- }
-
- public function id_exists($id)
- {
- return(TRUE);
- }
-
- public function get_entry($id)
+ /*! \brief Updates an entry with a set of new values,
+ @param Integer The ID of the entry, we want to update.
+ @param Array The variables to update.
+ @return Boolean Returns TRUE on success.
+ */
+ public function update_entry($id,$entry)
{
if(!is_numeric($id)){
- trigger_error("gosaSupportDaemon::get_entry() requires an integer value as ID parameter.");
+ trigger_error("Requires an integer value as ID parameter.");
return;
}
- $this->b_error = FALSE;
- $this->s_error = "";
-
- $xml_msg = "<xml>
- <header>gosa_query_jobdb</header>
- <where>id</where>
- <id>".$id."</id>
- </xml>";
-
- $this->connect();
- if($this->is_connected){
- $this->o_sock->write($xml_msg);
- $str = trim($this->o_sock->read());
- $entries = $this->xml_to_array($str);
- if(!isset($entries['XML']['ANSWER1'])){
- $this->set_error("Entry with id (".$id.") not found.");
- $this->disconnect();
- return(FALSE);
- }else{
- $ret = array_values($entries['XML']['ANSWER1']);
- return($ret);
- }
+ if(!is_array($entry)){
+ trigger_error("Requires an array as second parameter.");
+ return;
}
- $this->set_error("Could not establish socket connection.");
- return(FALSE);
- }
-
- public function update_entry($id,$entry)
- {
- $xml_msg = "";
- if($this->is_connected){
- #$this->o_sock->write($xml_msg);
- #$str = trim($this->o_sock->read());
- #$entries = $this->xml_to_array($str);
- #$this->disconnect();
- return(TRUE);
+ $attr = "";
+ foreach($entry as $name => $entry){
+ $attr.="<".strtolower($name).">".$entry."</".strtolower($name).">\n";
}
- $this->set_error("Could not establish socket connection.");
- return(FALSE);
- }
-
- public function add_multiple($multiple)
- {
- }
- public function remove_entry($id)
- {
$this->b_error = FALSE;
$this->s_error = "";
- $xml_msg = "<xml>
- <header>gosa_delete_jobdb_entry</header>
- <where>id</where>
- <id>".$id."</id>
+ $xml_msg = "<xml>
+ <header>gosa_update_status_jobdb_entry</header>
+ <where>
+ <id>".$id."</id>
+ </where>
+ <update>
+ ".$attr."
+ </update>
</xml>";
$this->connect();
if($this->is_connected){
+ echo $xml_msg;
$this->o_sock->write($xml_msg);
- return(TRUE);
+ $str = trim($this->o_sock->read());
+ $entries = $this->xml_to_array($str);
+ if(!empty($str)){
+ return(TRUE);
+ }
+ return(FALSE);
}
$this->set_error("Could not establish socket connection.");
return(FALSE);
diff --git a/gosa-core/plugins/addons/gotomasses/class_goto_task.inc b/gosa-core/plugins/addons/gotomasses/class_goto_task.inc
index b4d855cb5d753352c16d35563b78708a4d91fe5a..91ddf6f3fb66ec2bb8b3ec4ecabdd178321fea8e 100644 (file)
function save()
{
- return($this->data);
+ $tmp = array();
+ foreach($this->attributes as $attr){
+ if(isset($this->data[$attr])){
+ $tmp[$attr] = $this->data[$attr];
+ }
+ }
+ return($tmp);
}
}
// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
diff --git a/gosa-core/plugins/addons/gotomasses/class_gotomasses.inc b/gosa-core/plugins/addons/gotomasses/class_gotomasses.inc
index e727422aa43d8e71e0249544986133cbe3029fea..9d08ad8fb07d8e8ec4f8893660dff4eb5acce362 100644 (file)
foreach($this->ids_to_remove as $key => $id){
if($this->o_queue->id_exists($id)){
$task = $this->o_queue->get_entry($id);
- $tmp.= "\n".$task['5']." ".$task['3'];
+ $tmp.= "\n".$task['HEADERTAG']." ".$task['MACADDRESS'];
}else{
unset($this->ids_to_remove[$key]);
}
*/
function get_queue_entries()
{
- if(!$this->o_queue->load()){
+
+ $entries = $this->o_queue->get_queued_entries();
+
+ if(!is_array($entries)){
msg_dialog::display(_("Error"), sprintf(_("Cannot load queue entries: %s"), "<br><br>".$this->o_queue->get_error()), ERROR_DIALOG);
return(array());
}
+
$tasks = array();
$ret = array();
- while($entry = $this->o_queue->fetch()){
+ foreach($entries as $entry){
$task = $entry['ID'];
$ret[]= $entry;
}