[why] It may add monitors field in job yaml, sched will parse the monitors field and add depends to the initrd string.
Signed-off-by: Cao Xueliang caoxl78320@163.com --- src/lib/job.cr | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-)
diff --git a/src/lib/job.cr b/src/lib/job.cr index 12d3980..00b5e68 100644 --- a/src/lib/job.cr +++ b/src/lib/job.cr @@ -396,12 +396,42 @@ class Job initrd_pkg_arr = Array(String).new initrd_http_prefix = "http://#%7BINITRD_HTTP_HOST%7D:#%7BINITRD_HTTP_PORT%7D" mount_type = os_mount == "cifs" ? "nfs" : os_mount.dup + + get_monitors_initrd(mount_type, initrd_http_prefix, initrd_deps_arr, initrd_pkg_arr) + get_pp_initrd(mount_type, initrd_http_prefix, initrd_deps_arr, initrd_pkg_arr) + + self["initrd_deps"] = initrd_deps_arr.uniq.join(" ") + self["initrd_pkg"] = initrd_pkg_arr.uniq.join(" ") + end + + private def get_monitors_initrd(mount_type, initrd_http_prefix, initrd_deps_arr, initrd_pkg_arr) + if @hash["monitors"]? + program_params = @hash["monitors"].as_h + program_params.keys.each do |program| + deps_dest_file = "#{SRV_INITRD}/deps/#{mount_type}/#{os_dir}/#{program}.cgz" + pkg_dest_file = "#{SRV_INITRD}/pkg/#{mount_type}/#{os_dir}/#{program}.cgz" + + if File.exists?("#{user_lkp_src}/monitors/#{program}") + if File.exists?(deps_dest_file) + initrd_deps_arr << "#{initrd_http_prefix}" + JobHelper.service_path(deps_dest_file) + end + + if File.exists?(pkg_dest_file) + initrd_pkg_arr << "#{initrd_http_prefix}" + JobHelper.service_path(pkg_dest_file) + end + end + end + end + end + + private def get_pp_initrd(mount_type, initrd_http_prefix, initrd_deps_arr, initrd_pkg_arr) if @hash["pp"]? program_params = @hash["pp"].as_h program_params.keys.each do |program| if program =~ /^(.*)-\d+$/ program = $1 end + deps_dest_file = "#{SRV_INITRD}/deps/#{mount_type}/#{os_dir}/#{program}.cgz" pkg_dest_file = "#{SRV_INITRD}/pkg/#{mount_type}/#{os_dir}/#{program}.cgz"
@@ -414,9 +444,6 @@ class Job end end end - - self["initrd_deps"] = initrd_deps_arr.uniq.join(" ") - self["initrd_pkg"] = initrd_pkg_arr.uniq.join(" ") end
def update_tbox_group(tbox_group)
On Wed, Oct 21, 2020 at 11:52:06AM +0800, Cao Xueliang wrote:
[why] It may add monitors field in job yaml, sched will parse the monitors field and add depends to the initrd string.
Signed-off-by: Cao Xueliang caoxl78320@163.com
src/lib/job.cr | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-)
diff --git a/src/lib/job.cr b/src/lib/job.cr index 12d3980..00b5e68 100644 --- a/src/lib/job.cr +++ b/src/lib/job.cr @@ -396,12 +396,42 @@ class Job initrd_pkg_arr = Array(String).new initrd_http_prefix = "http://#%7BINITRD_HTTP_HOST%7D:#%7BINITRD_HTTP_PORT%7D" mount_type = os_mount == "cifs" ? "nfs" : os_mount.dup
- get_monitors_initrd(mount_type, initrd_http_prefix, initrd_deps_arr, initrd_pkg_arr)
- get_pp_initrd(mount_type, initrd_http_prefix, initrd_deps_arr, initrd_pkg_arr)
- self["initrd_deps"] = initrd_deps_arr.uniq.join(" ")
- self["initrd_pkg"] = initrd_pkg_arr.uniq.join(" ")
- end
- private def get_monitors_initrd(mount_type, initrd_http_prefix, initrd_deps_arr, initrd_pkg_arr)
- if @hash["monitors"]?
return unless ...
to save one indent.
program_params = @hash["monitors"].as_h
program_params.keys.each do |program|
Is it possible to reuse code for the below chunk? monitors are not so different than other test programs.
deps_dest_file = "#{SRV_INITRD}/deps/#{mount_type}/#{os_dir}/#{program}.cgz"
pkg_dest_file = "#{SRV_INITRD}/pkg/#{mount_type}/#{os_dir}/#{program}.cgz"
if File.exists?("#{user_lkp_src}/monitors/#{program}")
if File.exists?(deps_dest_file)
initrd_deps_arr << "#{initrd_http_prefix}" + JobHelper.service_path(deps_dest_file)
end
if File.exists?(pkg_dest_file)
initrd_pkg_arr << "#{initrd_http_prefix}" + JobHelper.service_path(pkg_dest_file)
end
end
end
- end
- end
Thanks, Fengguang
On Wed, Oct 21, 2020 at 12:03:54PM +0800, Wu Fengguang wrote:
On Wed, Oct 21, 2020 at 11:52:06AM +0800, Cao Xueliang wrote:
[why] It may add monitors field in job yaml, sched will parse the monitors field and add depends to the initrd string.
Signed-off-by: Cao Xueliang caoxl78320@163.com
src/lib/job.cr | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-)
diff --git a/src/lib/job.cr b/src/lib/job.cr index 12d3980..00b5e68 100644 --- a/src/lib/job.cr +++ b/src/lib/job.cr @@ -396,12 +396,42 @@ class Job initrd_pkg_arr = Array(String).new initrd_http_prefix = "http://#%7BINITRD_HTTP_HOST%7D:#%7BINITRD_HTTP_PORT%7D" mount_type = os_mount == "cifs" ? "nfs" : os_mount.dup
- get_monitors_initrd(mount_type, initrd_http_prefix, initrd_deps_arr, initrd_pkg_arr)
- get_pp_initrd(mount_type, initrd_http_prefix, initrd_deps_arr, initrd_pkg_arr)
- self["initrd_deps"] = initrd_deps_arr.uniq.join(" ")
- self["initrd_pkg"] = initrd_pkg_arr.uniq.join(" ")
- end
- private def get_monitors_initrd(mount_type, initrd_http_prefix, initrd_deps_arr, initrd_pkg_arr)
- if @hash["monitors"]?
return unless ...
ok.
to save one indent.
add a blank line after return.
program_params = @hash["monitors"].as_h
program_params.keys.each do |program|
Is it possible to reuse code for the below chunk? monitors are not so different than other test programs.
The pp will File.exists? "distro/depends" and "pkg" program dir, but monitors will File.exists? "monitors" program dir.
If sched don't need to judge whether the program exists, we just judge the program cgz exists, then we can reuse code.
Thanks, Xueliang
deps_dest_file = "#{SRV_INITRD}/deps/#{mount_type}/#{os_dir}/#{program}.cgz"
pkg_dest_file = "#{SRV_INITRD}/pkg/#{mount_type}/#{os_dir}/#{program}.cgz"
if File.exists?("#{user_lkp_src}/monitors/#{program}")
if File.exists?(deps_dest_file)
initrd_deps_arr << "#{initrd_http_prefix}" + JobHelper.service_path(deps_dest_file)
end
if File.exists?(pkg_dest_file)
initrd_pkg_arr << "#{initrd_http_prefix}" + JobHelper.service_path(pkg_dest_file)
end
end
end
- end
- end
Thanks, Fengguang
On Wed, Oct 21, 2020 at 02:41:14PM +0800, Cao Xueliang wrote:
On Wed, Oct 21, 2020 at 12:03:54PM +0800, Wu Fengguang wrote:
On Wed, Oct 21, 2020 at 11:52:06AM +0800, Cao Xueliang wrote:
[why] It may add monitors field in job yaml, sched will parse the monitors field and add depends to the initrd string.
Signed-off-by: Cao Xueliang caoxl78320@163.com
src/lib/job.cr | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-)
diff --git a/src/lib/job.cr b/src/lib/job.cr index 12d3980..00b5e68 100644 --- a/src/lib/job.cr +++ b/src/lib/job.cr @@ -396,12 +396,42 @@ class Job initrd_pkg_arr = Array(String).new initrd_http_prefix = "http://#%7BINITRD_HTTP_HOST%7D:#%7BINITRD_HTTP_PORT%7D" mount_type = os_mount == "cifs" ? "nfs" : os_mount.dup
- get_monitors_initrd(mount_type, initrd_http_prefix, initrd_deps_arr, initrd_pkg_arr)
- get_pp_initrd(mount_type, initrd_http_prefix, initrd_deps_arr, initrd_pkg_arr)
- self["initrd_deps"] = initrd_deps_arr.uniq.join(" ")
- self["initrd_pkg"] = initrd_pkg_arr.uniq.join(" ")
- end
- private def get_monitors_initrd(mount_type, initrd_http_prefix, initrd_deps_arr, initrd_pkg_arr)
- if @hash["monitors"]?
return unless ...
ok.
to save one indent.
add a blank line after return.
program_params = @hash["monitors"].as_h
program_params.keys.each do |program|
Is it possible to reuse code for the below chunk? monitors are not so different than other test programs.
The pp will File.exists? "distro/depends" and "pkg" program dir, but monitors will File.exists? "monitors" program dir.
If sched don't need to judge whether the program exists, we just judge the program cgz exists, then we can reuse code.
OK.
Thanks, Fengguang