示例#1
0
 function evt__ejecutar($item, $opcion, $atributos)
 {
     if (isset($this->progreso)) {
         $this->progreso->cerrar();
     }
     try {
         $param_extra = null;
         //---- Ejecución de dialogos particulares
         if (isset($atributos['tags']['gtk_param_extra'])) {
             $clase = 'toba_gtk_' . $atributos['tags']['gtk_param_extra'];
             require_once "instalacion/{$clase}.php";
             $parametros_comando = $this->determinar_comando($this->seleccion);
             $dialogo = new $clase($this->toba_instalador, $parametros_comando);
             $param_extra = $dialogo->show();
             if (!isset($param_extra)) {
                 return;
             }
         }
         //--------------------------------------
         $this->progreso = new inst_dlg_progreso($this, false);
         $this->comp['frame']->set_visible(true);
         $this->comp['frame_contenido']->add($this->progreso->get_widget());
         $this->progreso->set_cant_pasos_general(1);
         $this->progreso->set_cant_pasos_internos(100);
         $objeto_com = $this->get_objeto_comando($this->seleccion);
         $info = $objeto_com->get_nombre() . " {$opcion} " . $objeto_com->get_argumentos_string();
         $this->comp['frame_label']->set_markup("<b>Comando</b>: " . $info);
         $objeto_com->procesar('opcion__' . $opcion, $param_extra);
         if (isset($this->progreso)) {
             $this->progreso->finalizar();
         }
     } catch (Exception $e) {
         inst_fact::logger()->error($e->__toString());
         inst_fact::gtk()->mostrar_excepcion($e);
         $this->evt__progreso__cancelar();
     }
 }
示例#2
0
 function crear_instancia($nombre_instancia, $datos_motor)
 {
     $nombre_toba = 'toba_' . toba_modelo_instalacion::get_version_actual()->get_string_partes();
     //--- Agrega la fuente de datos de la instancia
     $datos_motor['base'] = $nombre_toba . '_' . $nombre_instancia;
     $confirmado = false;
     do {
         $this->get_instalacion()->agregar_db($nombre_instancia, $datos_motor);
         //--- Si la base existe, pregunta por un nombre alternativo, por si no quiere pisarla
         if ($this->get_instalacion()->existe_base_datos($nombre_instancia)) {
             $mensaje = "La base <b>{$datos_motor['base']}</b> ya está siendo utiliza en este servidor.";
             $confirmado = inst_fact::gtk()->confirmar_pisar_base($mensaje);
             if ($confirmado !== true) {
                 $datos_motor['base'] = $confirmado;
                 $confirmado = false;
             }
         } else {
             $confirmado = true;
         }
     } while ($confirmado === false);
     //--- Crea la instancia
     $proyectos = toba_modelo_proyecto::get_lista();
     if (isset($proyectos['toba_testing'])) {
         //--- Elimina el proyecto toba_testing
         unset($proyectos['toba_testing']);
     }
     toba_modelo_instancia::crear_instancia($nombre_instancia, $nombre_instancia, $proyectos);
     $instancia = $this->get_instancia($nombre_instancia);
     $instancia->cargar(true);
     //--- Vincula un usuario a todos los proyectos
     $instancia->agregar_usuario('toba', 'Usuario Toba', 'toba');
     foreach ($instancia->get_lista_proyectos_vinculados() as $id_proyecto) {
         $proyecto = $instancia->get_proyecto($id_proyecto);
         $grupo_acceso = $proyecto->get_grupo_acceso_admin();
         $proyecto->vincular_usuario('toba', $grupo_acceso);
     }
     $instancia->exportar_local();
     //--- Crea los nuevos alias
     $instancia->crear_alias_proyectos();
     //--- Ejecuta instalaciones particulares de cada proyecto
     foreach ($instancia->get_lista_proyectos_vinculados() as $id_proyecto) {
         $instancia->get_proyecto($id_proyecto)->instalar();
     }
 }