Code

Added wake action to gotomasses
[gosa.git] / plugins / addons / gotomasses / class_gotomasses.inc
index 88a3e1b267762c9eb51f6cce5e1e85adb0854ab4..dc2bb580ed7f0e843595837c1fd5797729f52536 100644 (file)
@@ -3,7 +3,7 @@
 class gotomasses extends plugin
 {
   /* Definitions */
-  var $plHeadline     = "System mass deployment";
+  var $plHeadline     = "System deployment";
   var $plDescription  = "This does something";
 
   /* attribute list for save action */
@@ -25,12 +25,10 @@ class gotomasses extends plugin
   
     /* Include config object */
     $this->config= $config;
-
     $this->load_gotomasses_data();
   }
 
 
-
   function execute()
   {
     $smarty = get_smarty();
@@ -154,7 +152,7 @@ class gotomasses extends plugin
     $divlist->AddHeader(array("string"=>"<a href='?plug=".$plug."&amp;sort=schedule'>"._("Schedule")."</a>",
                                       "attach"=>"style='width:100px;'"));
     $divlist->AddHeader(array("string"=>"<a href='?plug=".$plug."&amp;sort=action'>"._("Type")."</a>",
-                                      "attach"=>"style='width:60px;'"));
+                                      "attach"=>"style='width:80px;'"));
     $divlist->AddHeader(array("string"=>_("Action"),
                                       "attach"=>"style='border-right:0px;width:40px;'"));
 
@@ -166,7 +164,7 @@ class gotomasses extends plugin
         }
         $field1 = array("string" => "<div style='width:100%;overflow:hidden;'><nobr>".$this->target_to_string($task)."</nobr></div>");
         $field2 = array("string" => $this->time_to_string($task),"attach" => "style='width:100px;'");
-        $field3 = array("string" => $this->action_to_string($task),"attach" => "style='width:60px;'");
+        $field3 = array("string" => $this->action_to_string($task),"attach" => "style='width:80px;'");
         $field4 = array("string" => $action,"attach" => "style='text-align:right;width:40px;border-right:0px;'");
         $divlist->AddElement(array($field1,$field2,$field3,$field4));
       }
@@ -179,9 +177,15 @@ class gotomasses extends plugin
   function target_to_string($data)
   {
     $ret = "";
-    foreach($data['Target'] as $target){
-      $ret .= $target.", ";
-    } 
+    if($data['Action'] == "initial_install"){
+      foreach($data['Initial_Target'] as $target){
+        $ret .= $target['MAC'].", ";
+      } 
+    }else{
+      foreach($data['Target'] as $target){
+        $ret .= $target.", ";
+      } 
+    }
     return(preg_replace("/, $/","",$ret));
   }
 
@@ -194,13 +198,11 @@ class gotomasses extends plugin
   
   function action_to_string($data)
   {
-    switch($data['Action']){
-
-      case 'reinstall' : return("Reinstall");break;
-      case 'install' : return("Install");break;
-      case 'reboot' : return("Restart");break;
-      case 'update' : return("Update");break;
-      default : return("Unknown");
+    $tmp = $this->get_actions();
+    if(isset($tmp[$data['Action']])){
+      return($tmp[$data['Action']]);
+    }else{
+      return(_("Unknown"));
     }
   }
 
@@ -265,7 +267,17 @@ class gotomasses extends plugin
         $entry['Weekday'] = $parts[4];  
         $entry['Action']  = $parts[5];  
         $entry['OGroup']  = $parts[6];  
-        $entry['Target']  = split(",",$parts[7]);  
+        if($entry['Action'] == "initial_install"){
+          $tmp2 = split(";",$parts[7]);
+          foreach($tmp2 as $target){
+            $tmp = split(",",$target);
+            $entry['Initial_Target'][]  = array("MAC" => $tmp[0],"IP"=>$tmp[1],"NAME" => $tmp[2]);
+          }
+          $entry['Target']  = array();
+        }else{
+          $entry['Initial_Target']  = array();
+          $entry['Target']  = split(";",$parts[7]);
+        }
         $entry['Comment'] = $comment;  
         $this->tasks []   = $entry;
       }
@@ -279,17 +291,27 @@ class gotomasses extends plugin
     foreach($this->tasks as $task){
       $str .= "\n#".trim($task['Comment']);
       $str .= "\n";
-      $str .= str_pad($task['Minute'] ,5," ")." ";
-      $str .= str_pad($task['Hour']   ,5," ")." ";
-      $str .= str_pad($task['Day']    ,5," ")." ";
-      $str .= str_pad($task['Month']  ,5," ")." ";
-      $str .= str_pad($task['Weekday'],5," ")." ";
+      if($task['Action'] == "initial_install"){
+        $str .= "*     *     *     *     *     ";
+      }else{
+        $str .= str_pad($task['Minute'] ,5," ")." ";
+        $str .= str_pad($task['Hour']   ,5," ")." ";
+        $str .= str_pad($task['Day']    ,5," ")." ";
+        $str .= str_pad($task['Month']  ,5," ")." ";
+        $str .= str_pad($task['Weekday'],5," ")." ";
+      }
       $str .= str_pad($task['Action'] ,5," ")." ";
       $str .= str_pad($task['OGroup'] ,5," ")." ";
-      foreach($task['Target'] as $target){
-        $str .= $target.",";
+      if($task['Action'] == "initial_install"){
+        foreach($task['Initial_Target'] as $target){
+          $str .= $target['MAC'].",".$target['IP'].",".$target['NAME'].";";
+        }
+      }else{
+        foreach($task['Target'] as $target){
+          $str .= $target.";";
+        }
       }
-      $str = preg_replace("/,$/","",$str);
+      $str = preg_replace("/;$/","",$str);
     }
 
     /* check file existence*/
@@ -341,12 +363,14 @@ class gotomasses extends plugin
   function get_actions()
   {
     /* Prepare list of available actions */
-    $actions = array( "reboot"          => _("Reboot"),
+    $actions = array(       "reboot"          => _("Reboot"),
                             "localboot"       => _("Localboot"),
                             "halt"            => _("Halt system"),
+                            "initial_install" => _("Initial installation"),
                             "update"          => _("Update"),
                             "reinstall"       => _("(Re)Install"),
                             "rescan"          => _("Rescan"),
+                            "wake"            => _("Wake"),
                             "memcheck"        => _("Memory check"));
     return($actions);
   }