Class: ForemanPackages::Sypackage

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/foreman_packages/sypackage.rb

Instance Method Summary collapse

Instance Method Details

#change_dirObject



65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'app/models/foreman_packages/sypackage.rb', line 65

def change_dir
	upload_dir = "/home/stdtnt/workspaces/foreman/public/uploads/sypackage/filename/" + self.id.to_s
	root_file_dir_name = "/home/stdtnt/app/packages/files/"
# FileUtils.cd(upload_dir, :verbose => true) 
# FileUtils.cp_r Dir.glob('*.*'), "/home/stdtnt/app/packages/files/", :noop => true, :verbose => true
			# list=Dir.entries(upload_dir) 
			# list.each_index do |x| 
			# 	puts ">>>>>>>>>>>>>>>>..>>>>>>>>>>>>>>>>..>>>>>>>>>>>>>>>>..>>>>>>>>>>>>>>>>..>>>>>>>>>>>>>>>>..>>>>>>>>>>>>>>>>..."
			# 	puts "#{list[x]}"
			# 	FileUtils.cp_r  upload_dir ,root_file_dir_name, :noop => true, :verbose => true

			# 		puts ">>>>>>>>>>>>>>>>..>>>>>>>>>>>>>>>>..>>>>>>>>>>>>>>>>..>>>>>>>>>>>>>>>>..>>>>>>>>>>>>>>>>..>>>>>>>>>>>>>>>>..."
			# end 
end

#create_contentObject



52
53
54
55
56
57
58
59
60
61
62
# File 'app/models/foreman_packages/sypackage.rb', line 52

def create_content
	user_content = "class packages {" + "\n" + "\s\s" + "package{'" + self.name + "':" + "\n\s\s\s\s" + "ensure => '" + self.ensure + "',"  + "\n\s\s" +"}" + "\n"


	file_content =  "\s\s" +  "file{'"+ self.file_path + "':" + "\n\s\s\s\s" + "ensure => '" + self.file_ensure + "'," + "\n\s\s\s\s" + "source => '" + self.file_source + "mode => '" + self.file_mode + "'," + "\n\s\s\s\s" + "onwer => '" + self.file_onwer + "group => '" + self.file_group + "'," + "\n\s\s\s\s" +  "notify=> Service['" + self.file_notify + "'],"  + "\n\s\s\s\s"   + "require=> Package['" + self.file_require + "']," + "\n\s\s" +"}" + "\n\s\s" 


	service_content =  "\s\s" +  "service{'"+ self.service_name + "':" + "\n\s\s\s\s" + "ensure => '" + self.service_ensure + "'," + "\n\s\s\s\s" + "enable => '" + self.service_enable + "hasstatus => '" + self.service_hasstatus + "'," + "\n\s\s\s\s" + "hasrestart => '" + self.service_hasrestart + "," + "\n\s\s" +"}" + "\n\s\s" 
	rs = user_content + file_content + service_content + "\n" + "}"
	return rs
end

#create_dirObject

after_destory :destory_dir



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'app/models/foreman_packages/sypackage.rb', line 10

def create_dir
		#目前用 "/home/stdtnt/app/"代替  "/etc/puppet/environments/production/modules/packages"
		#该处需要注意权限问题,当前用户是否具有该目录的操作权限
		root_dir_name = "/etc/puppet/environments/production/modules/packages/"
		self.destory_dir #默认删除该目录,然后重新创建
		dir_exist_status = File.exist?(root_dir_name) #判断该目录是否存在
		if !dir_exist_status
			#创建目录结构
	Dir::mkdir(root_dir_name)
	Dir::mkdir(root_dir_name + "files")
	Dir::mkdir(root_dir_name + "manifests")

	#生成files下welcome.conf文件
	files_welcome_File = File.new(root_dir_name + "files/welcome.conf", "w+")
			files_welcome_File.close
	#生成manifests下init.pp文件
	main_init_File = File.new(root_dir_name +"manifests/init.pp", "w+")
		if main_init_File
		   main_init_File.syswrite(self.create_content)
		else
		   puts "Unable to open file!"
		end
	main_init_File.close
		end

		#self.change_dir

end

#destory_dirObject



40
41
42
43
44
45
46
47
48
49
50
# File 'app/models/foreman_packages/sypackage.rb', line 40

def destory_dir
		 #目前用 "/home/stdtnt/app/"代替  "/etc/puppet/environments/production/modules/users"
		#该处需要注意权限问题,当前用户是否具有该目录的操作权限
		root_dir_name = "/etc/puppet/environments/production/modules/packages"
		#判断该目录是否存在
dir_exist_status = File.exist?(root_dir_name )
		if dir_exist_status
			#使用fileUtils.rm_r 删除该文件夹及其以下所有内容
			FileUtils.rm_r root_dir_name
		end
end