Community
    • Categories
    • Recent
    • Popular
    • Users
    • Search
    • Register
    • Login

    Events und Automatisierung

    Scheduled Pinned Locked Moved Betrieb
    2 Posts 2 Posters 386 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F Offline
      franknagel
      last edited by

      Hallo,

      hat schon jemand Erfahrung mit automatisierten Abläufen ausgelöst durch i-doit Events gemacht und kann davon berichten? Ich sehe grundsätzlich das Problem, dass der Datenbestand in i-doit sich in einem inkonsistenten Zwischenzustand befinden kann. Wenn man nun bei jeder Änderung einen bestimmten Workflow startete, dann würde sich das zwangsläufig in dem Fall als ein fehlgeschlager Prozess äußern. Dadurch wird das Auffinden von echten Problemen im Ablauf schwieriger.

      Ich spiele im Augenblick eher mit dem Gedanken, externe Prozesse explizit durch den Nutzer anstoßen zu lassen durch das Setzen bestimmter Tags oder eines bestimmten CMDB-Status bei den betroffenen Objekten.

      Für Erfahrungsberichte wäre ich dankbar.

      1 Reply Last reply Reply Quote 0
      • P Offline
        pknoll
        last edited by

        genau.

        ich lass meine user ein virtual server objekt befuellen.. mehrere kategorien..

        am schluss setzt der user den status auf 'to_deploy', und nur auf dieses event reagiere ich in einem eventhook, und stosse dann den deploy-eine-vm prozess an...

        die logik um das event zu filtern ist relativ kompliziert geworden.. weil 10mal nachbessern..

        function check_event($event)
        {
                // at idoit overview category savebutton click -> we get two events, global and overview
                // at idoit global category savebutton click -> we get only one event
        
                if ($event->categoryConst=='C__CATG__OVERVIEW')
                {
                        die (getmypid().": not reacting on events of overview category. quitting\n");
                }
                //print_r ($event);
        
                $proceed=false;
        
                if ($event->categoryConst=='C__CATG__GLOBAL')
                {
                        if (count ($event->changes)==0)
                                 die (getmypid().": no changes. quitting\n");
        
                        if (isset ($event->changes->C__OBJ__CMDB_STATUS->to))
                        {
                                if ($event->changes->C__OBJ__CMDB_STATUS->to !=STRING_DEPLOY)
                                         die (getmypid().": status didnt change to '".STRING_DEPLOY."'. quitting\n");
                                else
                                        $proceed=true;
                        }
        
                        if (isset ($event->changes->{'isys_cmdb_dao_category_g_global::cmdb_status'}->to) )
                        {
                                if ($event->changes->{'isys_cmdb_dao_category_g_global::cmdb_status'}->to!=STRING_DEPLOY)
                                        die (getmypid().": status didnt change to '".STRING_DEPLOY."'. quitting\n");
                                else
                                        $proceed=true;
                        }
                }
                if ($proceed)
                        debug( "checking server...\n");
                else
                         die (getmypid().": event didnt match categories global or cmdb_status, quitting\n");
        
        }
        
        
        function get_event()
        {
                $deploy="";
                while($l = fgets(STDIN)){
                        $deploy.=$l;
                }
        
                $event=json_decode(base64_decode($deploy));
                if (json_last_error())
                        die  (getmypid().": error json decode, quitting\n");
        
                return $event;
        }
        
        
        1 Reply Last reply Reply Quote 0
        • First post
          Last post