New bundle mysql_resore_conditional
This commit is contained in:
parent
ee82bafb47
commit
1b3ac8039e
46
mysql.cf
46
mysql.cf
|
@ -9,7 +9,8 @@ vars:
|
|||
"default_cfg" data => '{
|
||||
"bind_address":"127.0.0.1",
|
||||
"user":"mysql",
|
||||
"port":"3306"
|
||||
"port":"3306",
|
||||
"backup_dir":"/var/backups"
|
||||
}';
|
||||
|
||||
"cfg" data => mergedata(@(default_cfg),@(cfg_param));
|
||||
|
@ -71,10 +72,11 @@ files:
|
|||
|
||||
|
||||
"$(cfg_file)"
|
||||
create => "true",
|
||||
#create => "true",
|
||||
perms => m("644"),
|
||||
edit_template => "$(sys.workdir)/inputs/$(def.wmde_libdir)/templates/my.cnf.mustache",
|
||||
template_method => "mustache",
|
||||
copy_from => seed_cp("$(sys.workdir)/inputs/$(def.wmde_libdir)/templates/my.cnf.mustache"),
|
||||
# edit_template => "$(sys.workdir)/inputs/$(def.wmde_libdir)/templates/my.cnf.mustache",
|
||||
# template_method => "mustache",
|
||||
handle => "mysql_cfg_created",
|
||||
depends_on => {"mysql_cfg_dir_created"},
|
||||
classes => if_repaired("mysql_repaired");
|
||||
|
@ -123,6 +125,7 @@ vars:
|
|||
|
||||
"j" string => storejson(@(cfg));
|
||||
methods:
|
||||
"any" usebundle => mysql(@(cfg));
|
||||
"any" usebundle => wmde_install_packages(@(mysql.server_pkgs),"mysql_server");
|
||||
|
||||
files:
|
||||
|
@ -315,25 +318,38 @@ bundle agent create_mysql_db(cfg)
|
|||
{
|
||||
classes:
|
||||
"type_$(mysql.type)" ;
|
||||
# "do_restore" expression => isvariable("cfg[restore]");
|
||||
"do_restore" expression => strcmp("$(cfg[restore])","true");
|
||||
vars:
|
||||
"db_name" string => "$(cfg[db_name])";
|
||||
"db_user" string => "$(cfg[db_user])";
|
||||
"host" string => "$(cfg[db_user_host])";
|
||||
"db_pass" string => "$(cfg[db_pass])";
|
||||
|
||||
|
||||
type_mariadb::
|
||||
"args" string => "-e \"CREATE DATABASE IF NOT EXISTS $(db_name); GRANT ALL PRIVILEGES ON $(db_name).* TO '$(db_user)'@'$(host)' IDENTIFIED BY '$(db_pass)'; \" ";
|
||||
|
||||
type_mysql8::
|
||||
"args" string => "-e \"CREATE DATABASE IF NOT EXISTS $(db_name); CREATE USER IF NOT EXISTS '$(db_user)'@'$(host)'; ALTER USER '$(db_user)'@'$(host)' IDENTIFIED BY '$(db_pass)'; GRANT RELOAD ON *.* to '$(db_user)'@'$(host)'; GRANT ALL PRIVILEGES ON $(db_name).* TO '$(db_user)'@'$(host)';\" ";
|
||||
|
||||
methods:
|
||||
do_restore::
|
||||
"any" usebundle => restore_mysql_db_conditional(@(cfg),"$(mysql.cfg[backup_dir])/$(cfg[db_name])-dmp.sql"),
|
||||
depends_on => {"mysql_$(cfg[db_name])_created"};
|
||||
|
||||
commands:
|
||||
|
||||
"$(mysql.mysql_cmd)"
|
||||
args => "$(args)",
|
||||
handle => "mysql_$(cfg[db_name])_created",
|
||||
inform => "false";
|
||||
|
||||
reports:
|
||||
do_restore::
|
||||
"DO RESTORE";
|
||||
!do_restore::
|
||||
"DO_NOT_RESTORE";
|
||||
}
|
||||
|
||||
|
||||
|
@ -346,3 +362,25 @@ commands:
|
|||
contain => wmde_cmd_useshell;
|
||||
}
|
||||
|
||||
|
||||
bundle agent restore_mysql_db_conditional(cfg,file)
|
||||
{
|
||||
classes:
|
||||
"backup_exists" expression => fileexists("$(file)");
|
||||
vars:
|
||||
"table_exists" string => "mysql_$(cfg[db_name])_$(cfg[check_table])_exists";
|
||||
methods:
|
||||
"any" usebundle => mysql_table_exists(@(cfg),"$(cfg[check_table])");
|
||||
"!$(table_exists)&backup_exists"::
|
||||
"any" usebundle => restore_mysql_db(@(cfg),"$(file)");
|
||||
reports:
|
||||
"conditional $(cfg[check_table])_exists";
|
||||
"FILE: $(file)";
|
||||
|
||||
"$(table_exists)"::
|
||||
"$(table_exists) exists";
|
||||
"!$(table_exists)&backup_exists"::
|
||||
"$(table_exists) does not existsi, can restore";
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue