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