* [RFC PATCH 1/2] support adding module-specific parameters
@ 2012-01-10 15:19 xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w
[not found] ` <1326208786-24344-1-git-send-email-xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
0 siblings, 1 reply; 13+ messages in thread
From: xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w @ 2012-01-10 15:19 UTC (permalink / raw)
To: initramfs-u79uwXL29TY76Z2rM5mHXA; +Cc: harald-H+wXaHxf7aLQT0dZR+AlfA, Cong Wang
From: Cong Wang <xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
ssh-client module needs a specific parameter, --ssh-key, but
this parameter is totally useless for other modules. So, introduce
a way to let users to pass module-specific parameters, that is,
using colons to separate module name and its parameters, like,
--add ssh-client:sshkey=/root/.ssh/kdump_id_rsa.pub
Cc: harald-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
Signed-off-by: Cong Wang <xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
dracut | 30 ++++++++++++++++++++++++++----
dracut-functions | 14 ++++++++++++--
dracut.8.xml | 22 ++++++++++++++++++----
3 files changed, 56 insertions(+), 10 deletions(-)
diff --git a/dracut b/dracut
index 8fcdffe..f3fa257 100755
--- a/dracut
+++ b/dracut
@@ -199,6 +199,13 @@ push_arg() {
fi
}
+declare -A dracut_module_args
+read_module_args() {
+ local _key="${1%%:*}"
+ local _val="${1#*:}"
+ dracut_module_args["$_key"]="$_val"
+}
+
verbosity_mod_l=0
while (($# > 0)); do
@@ -319,13 +326,23 @@ fi
# these optins add to the stuff in the config file
if (( ${#add_dracutmodules_l[@]} )); then
while pop add_dracutmodules_l val; do
- add_dracutmodules+=" $val "
+ if [[ "$val" =~ ":" ]]; then
+ add_dracutmodules+=" ${val%%:*} "
+ read_module_args "$val"
+ else
+ add_dracutmodules+=" $val "
+ fi
done
fi
if (( ${#force_add_dracutmodules_l[@]} )); then
while pop force_add_dracutmodules_l val; do
- force_add_dracutmodules+=" $val "
+ if [[ "$val" =~ ":" ]]; then
+ force_add_dracutmodules+="${val%%:*} "
+ read_module_args "$val"
+ else
+ force_add_dracutmodules+=" $val "
+ fi
done
fi
@@ -364,7 +381,12 @@ fi
if (( ${#dracutmodules_l[@]} )); then
dracutmodules=''
while pop dracutmodules_l val; do
- dracutmodules+="$val "
+ if [[ "$val" =~ ":" ]]; then
+ dracutmodules+="${val%%:*} "
+ read_module_args "$val"
+ else
+ dracutmodules+="$val "
+ fi
done
fi
@@ -591,7 +613,7 @@ export initdir dracutbasedir dracutmodules drivers \
add_drivers mdadmconf lvmconf filesystems \
use_fstab libdir usrlibdir fscks nofscks cttyhack \
stdloglvl sysloglvl fileloglvl kmsgloglvl logfile \
- debug host_fs_types host_devs sshkey
+ debug host_fs_types host_devs sshkey dracut_module_args
# Create some directory structure first
[[ $prefix ]] && mkdir -m 0755 -p "${initdir}${prefix}"
diff --git a/dracut-functions b/dracut-functions
index 3dd72e9..00f8309 100755
--- a/dracut-functions
+++ b/dracut-functions
@@ -690,14 +690,24 @@ module_check() {
# if we do not have a check script, we are unconditionally included
[[ -x $_moddir/check ]] || return 0
[ $_forced -ne 0 ] && unset hostonly
- $_moddir/check $hostonly
+ if [ -n "${dracut_module_args["$1"]}" ]; then
+ local _l="${dracut_module_args["$1"]}"
+ eval "(${_l/:/;};$_moddir/check $hostonly;)"
+ else
+ $_moddir/check $hostonly
+ fi
_ret=$?
else
unset check depends install installkernel
. $_moddir/module-setup.sh
is_func check || return 0
[ $_forced -ne 0 ] && unset hostonly
- check $hostonly
+ if [ -n "${dracut_module_args["$1"]}" ]; then
+ local _l="${dracut_module_args["$1"]}"
+ eval "(${_l/:/;};check $hostonly;)"
+ else
+ check $hostonly
+ fi
_ret=$?
unset check depends install installkernel
fi
diff --git a/dracut.8.xml b/dracut.8.xml
index 5a5df54..ea24764 100644
--- a/dracut.8.xml
+++ b/dracut.8.xml
@@ -106,13 +106,14 @@ For a complete list of kernel command line options see
<option>-m</option>
</term>
<term>
- <option>--modules <replaceable><list of dracut modules></replaceable></option>
+ <option>--modules <replaceable><module1:para1=val1:para2=val2 module2 ...></replaceable></option>
</term>
<listitem>
<para>specify a space-separated list of dracut modules to call
when building the initramfs.
Modules are located in
-<filename>/usr/lib/dracut/modules.d</filename>. This parameter can be specified multiple times.</para>
+<filename>/usr/lib/dracut/modules.d</filename>. This parameter can be specified multiple times.
+You can also pass module specific parameters here, using colons, for example, -m ssh-client:sshkey=/root/ssh-key.</para>
</listitem>
</varlistentry>
<varlistentry>
@@ -131,7 +132,7 @@ Modules are located in
<option>-a</option>
</term>
<term>
- <option>--add <replaceable><list of dracut modules></replaceable></option>
+ <option>--add <replaceable><module1:para1=val1:para2=val2 module2 ...></replaceable></option>
</term>
<listitem>
<para>add a space-separated list of dracut modules to the default set of modules. This parameter can be specified multiple times.</para>
@@ -139,7 +140,7 @@ Modules are located in
</varlistentry>
<varlistentry>
<term>
- <option>--force-add <replaceable><list of dracut modules></replaceable></option>
+ <option>--force-add <replaceable><module1:para1=val1:para2=val2 module2 ...></replaceable></option>
</term>
<listitem>
<para>force to add a space-separated list of dracut modules to the default set of modules, when -H is specified. This parameter can be specified multiple times.</para>
@@ -539,6 +540,19 @@ TARGET directory in the final initramfs. If SOURCE is a file, it will be install
</varlistentry>
</variablelist>
</refsect2>
+ <refsect2>
+ <title>Module Specific Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>ssh-client</option>
+ </term>
+ <listitem>
+ <para>sshkey=/path/to/sshkey (specifies the path to your ssh public key which will be used by ssh-client module)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
</refsect1>
<refsect1>
<title>Files</title>
--
1.7.7.5
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 2/2] remove the global --sshkey parameter
[not found] ` <1326208786-24344-1-git-send-email-xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2012-01-10 15:19 ` xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w
[not found] ` <1326208786-24344-2-git-send-email-xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-01-11 2:30 ` [RFC PATCH 1/2] support adding module-specific parameters Dave Young
2012-01-23 11:14 ` Harald Hoyer
2 siblings, 1 reply; 13+ messages in thread
From: xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w @ 2012-01-10 15:19 UTC (permalink / raw)
To: initramfs-u79uwXL29TY76Z2rM5mHXA; +Cc: harald-H+wXaHxf7aLQT0dZR+AlfA, Cong Wang
From: Cong Wang <xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Signed-off-by: Cong Wang <xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
dracut | 4 +---
dracut.8.xml | 8 --------
2 files changed, 1 insertions(+), 11 deletions(-)
diff --git a/dracut b/dracut
index f3fa257..58c4fde 100755
--- a/dracut
+++ b/dracut
@@ -118,7 +118,6 @@ Creates initial ramdisk images for preloading modules
-M, --show-modules Print included module's name to standard output during
build.
--keep Keep the temporary initramfs for debugging purposes
- --sshkey [SSHKEY] Add ssh key to initramfs (use with ssh-client module)
--ctty Add control tty for emergency shells
EOF
}
@@ -242,7 +241,6 @@ while (($# > 0)); do
--debug) debug="yes";;
--profile) profile="yes";;
--ctty) cttyhack="yes";;
- --sshkey) read_arg sshkey "$@" || shift;;
-v|--verbose) ((verbosity_mod_l++));;
-q|--quiet) ((verbosity_mod_l--));;
-l|--local) allowlocal="yes" ;;
@@ -613,7 +611,7 @@ export initdir dracutbasedir dracutmodules drivers \
add_drivers mdadmconf lvmconf filesystems \
use_fstab libdir usrlibdir fscks nofscks cttyhack \
stdloglvl sysloglvl fileloglvl kmsgloglvl logfile \
- debug host_fs_types host_devs sshkey dracut_module_args
+ debug host_fs_types host_devs dracut_module_args
# Create some directory structure first
[[ $prefix ]] && mkdir -m 0755 -p "${initdir}${prefix}"
diff --git a/dracut.8.xml b/dracut.8.xml
index ea24764..0dc6225 100644
--- a/dracut.8.xml
+++ b/dracut.8.xml
@@ -371,14 +371,6 @@ Default:
</varlistentry>
<varlistentry>
<term>
- <option>--sshkey <replaceable><sshkey file></replaceable></option>
- </term>
- <listitem>
- <para>ssh key file used with ssh-client module.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
<option>-l</option>
</term>
<term>
--
1.7.7.5
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 1/2] support adding module-specific parameters
[not found] ` <1326208786-24344-1-git-send-email-xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-01-10 15:19 ` [PATCH 2/2] remove the global --sshkey parameter xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w
@ 2012-01-11 2:30 ` Dave Young
[not found] ` <4F0CF43E.1020901-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-01-23 11:14 ` Harald Hoyer
2 siblings, 1 reply; 13+ messages in thread
From: Dave Young @ 2012-01-11 2:30 UTC (permalink / raw)
To: xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w
Cc: initramfs-u79uwXL29TY76Z2rM5mHXA, harald-H+wXaHxf7aLQT0dZR+AlfA
Hi,
Thanks for the effort, before test it I have two comments
On 01/10/2012 11:19 PM, xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote:
> From: Cong Wang <xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
> ssh-client module needs a specific parameter, --ssh-key, but
> this parameter is totally useless for other modules. So, introduce
> a way to let users to pass module-specific parameters, that is,
> using colons to separate module name and its parameters, like,
>
> --add ssh-client:sshkey=/root/.ssh/kdump_id_rsa.pub
Seems no way to add param to modules which is not add explicitly
such as simply run
./dracut -l
So also need to find way to add params to the implicit-added modules?
>
> Cc: harald-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
> Signed-off-by: Cong Wang <xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
> dracut | 30 ++++++++++++++++++++++++++----
> dracut-functions | 14 ++++++++++++--
> dracut.8.xml | 22 ++++++++++++++++++----
> 3 files changed, 56 insertions(+), 10 deletions(-)
>
> diff --git a/dracut b/dracut
> index 8fcdffe..f3fa257 100755
> --- a/dracut
> +++ b/dracut
> @@ -199,6 +199,13 @@ push_arg() {
> fi
> }
>
> +declare -A dracut_module_args
> +read_module_args() {
> + local _key="${1%%:*}"
> + local _val="${1#*:}"
> + dracut_module_args["$_key"]="$_val"
[ -z "$_key" ] above will fail
> +}
> +
> verbosity_mod_l=0
>
> while (($# > 0)); do
> @@ -319,13 +326,23 @@ fi
> # these optins add to the stuff in the config file
> if (( ${#add_dracutmodules_l[@]} )); then
> while pop add_dracutmodules_l val; do
> - add_dracutmodules+=" $val "
> + if [[ "$val" =~ ":" ]]; then
> + add_dracutmodules+=" ${val%%:*} "
> + read_module_args "$val"
> + else
> + add_dracutmodules+=" $val "
> + fi
> done
> fi
>
> if (( ${#force_add_dracutmodules_l[@]} )); then
> while pop force_add_dracutmodules_l val; do
> - force_add_dracutmodules+=" $val "
> + if [[ "$val" =~ ":" ]]; then
> + force_add_dracutmodules+="${val%%:*} "
> + read_module_args "$val"
> + else
> + force_add_dracutmodules+=" $val "
> + fi
> done
> fi
>
> @@ -364,7 +381,12 @@ fi
> if (( ${#dracutmodules_l[@]} )); then
> dracutmodules=''
> while pop dracutmodules_l val; do
> - dracutmodules+="$val "
> + if [[ "$val" =~ ":" ]]; then
> + dracutmodules+="${val%%:*} "
> + read_module_args "$val"
> + else
> + dracutmodules+="$val "
> + fi
> done
> fi
>
> @@ -591,7 +613,7 @@ export initdir dracutbasedir dracutmodules drivers \
> add_drivers mdadmconf lvmconf filesystems \
> use_fstab libdir usrlibdir fscks nofscks cttyhack \
> stdloglvl sysloglvl fileloglvl kmsgloglvl logfile \
> - debug host_fs_types host_devs sshkey
> + debug host_fs_types host_devs sshkey dracut_module_args
>
> # Create some directory structure first
> [[ $prefix ]] && mkdir -m 0755 -p "${initdir}${prefix}"
> diff --git a/dracut-functions b/dracut-functions
> index 3dd72e9..00f8309 100755
> --- a/dracut-functions
> +++ b/dracut-functions
> @@ -690,14 +690,24 @@ module_check() {
> # if we do not have a check script, we are unconditionally included
> [[ -x $_moddir/check ]] || return 0
> [ $_forced -ne 0 ] && unset hostonly
> - $_moddir/check $hostonly
> + if [ -n "${dracut_module_args["$1"]}" ]; then
> + local _l="${dracut_module_args["$1"]}"
> + eval "(${_l/:/;};$_moddir/check $hostonly;)"
> + else
> + $_moddir/check $hostonly
> + fi
> _ret=$?
> else
> unset check depends install installkernel
> . $_moddir/module-setup.sh
> is_func check || return 0
> [ $_forced -ne 0 ] && unset hostonly
> - check $hostonly
> + if [ -n "${dracut_module_args["$1"]}" ]; then
> + local _l="${dracut_module_args["$1"]}"
> + eval "(${_l/:/;};check $hostonly;)"
> + else
> + check $hostonly
> + fi
> _ret=$?
> unset check depends install installkernel
> fi
> diff --git a/dracut.8.xml b/dracut.8.xml
> index 5a5df54..ea24764 100644
> --- a/dracut.8.xml
> +++ b/dracut.8.xml
> @@ -106,13 +106,14 @@ For a complete list of kernel command line options see
> <option>-m</option>
> </term>
> <term>
> - <option>--modules <replaceable><list of dracut modules></replaceable></option>
> + <option>--modules <replaceable><module1:para1=val1:para2=val2 module2 ...></replaceable></option>
> </term>
> <listitem>
> <para>specify a space-separated list of dracut modules to call
> when building the initramfs.
> Modules are located in
> -<filename>/usr/lib/dracut/modules.d</filename>. This parameter can be specified multiple times.</para>
> +<filename>/usr/lib/dracut/modules.d</filename>. This parameter can be specified multiple times.
> +You can also pass module specific parameters here, using colons, for example, -m ssh-client:sshkey=/root/ssh-key.</para>
> </listitem>
> </varlistentry>
> <varlistentry>
> @@ -131,7 +132,7 @@ Modules are located in
> <option>-a</option>
> </term>
> <term>
> - <option>--add <replaceable><list of dracut modules></replaceable></option>
> + <option>--add <replaceable><module1:para1=val1:para2=val2 module2 ...></replaceable></option>
> </term>
> <listitem>
> <para>add a space-separated list of dracut modules to the default set of modules. This parameter can be specified multiple times.</para>
> @@ -139,7 +140,7 @@ Modules are located in
> </varlistentry>
> <varlistentry>
> <term>
> - <option>--force-add <replaceable><list of dracut modules></replaceable></option>
> + <option>--force-add <replaceable><module1:para1=val1:para2=val2 module2 ...></replaceable></option>
> </term>
> <listitem>
> <para>force to add a space-separated list of dracut modules to the default set of modules, when -H is specified. This parameter can be specified multiple times.</para>
> @@ -539,6 +540,19 @@ TARGET directory in the final initramfs. If SOURCE is a file, it will be install
> </varlistentry>
> </variablelist>
> </refsect2>
> + <refsect2>
> + <title>Module Specific Parameters</title>
> + <variablelist>
> + <varlistentry>
> + <term>
> + <option>ssh-client</option>
> + </term>
> + <listitem>
> + <para>sshkey=/path/to/sshkey (specifies the path to your ssh public key which will be used by ssh-client module)</para>
> + </listitem>
> + </varlistentry>
> + </variablelist>
> + </refsect2>
> </refsect1>
> <refsect1>
> <title>Files</title>
--
Thanks
Dave
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] remove the global --sshkey parameter
[not found] ` <1326208786-24344-2-git-send-email-xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2012-01-11 2:59 ` Dave Young
[not found] ` <4F0CFB08.6030800-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 13+ messages in thread
From: Dave Young @ 2012-01-11 2:59 UTC (permalink / raw)
To: xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w
Cc: initramfs-u79uwXL29TY76Z2rM5mHXA, harald-H+wXaHxf7aLQT0dZR+AlfA
On 01/10/2012 11:19 PM, xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote:
> From: Cong Wang <xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
> Signed-off-by: Cong Wang <xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
> dracut | 4 +---
> dracut.8.xml | 8 --------
> 2 files changed, 1 insertions(+), 11 deletions(-)
>
> diff --git a/dracut b/dracut
> index f3fa257..58c4fde 100755
> --- a/dracut
> +++ b/dracut
> @@ -118,7 +118,6 @@ Creates initial ramdisk images for preloading modules
> -M, --show-modules Print included module's name to standard output during
> build.
> --keep Keep the temporary initramfs for debugging purposes
> - --sshkey [SSHKEY] Add ssh key to initramfs (use with ssh-client module)
> --ctty Add control tty for emergency shells
> EOF
> }
> @@ -242,7 +241,6 @@ while (($# > 0)); do
> --debug) debug="yes";;
> --profile) profile="yes";;
> --ctty) cttyhack="yes";;
> - --sshkey) read_arg sshkey "$@" || shift;;
> -v|--verbose) ((verbosity_mod_l++));;
> -q|--quiet) ((verbosity_mod_l--));;
> -l|--local) allowlocal="yes" ;;
> @@ -613,7 +611,7 @@ export initdir dracutbasedir dracutmodules drivers \
> add_drivers mdadmconf lvmconf filesystems \
> use_fstab libdir usrlibdir fscks nofscks cttyhack \
> stdloglvl sysloglvl fileloglvl kmsgloglvl logfile \
> - debug host_fs_types host_devs sshkey dracut_module_args
> + debug host_fs_types host_devs dracut_module_args
>
> # Create some directory structure first
> [[ $prefix ]] && mkdir -m 0755 -p "${initdir}${prefix}"
> diff --git a/dracut.8.xml b/dracut.8.xml
> index ea24764..0dc6225 100644
> --- a/dracut.8.xml
> +++ b/dracut.8.xml
> @@ -371,14 +371,6 @@ Default:
> </varlistentry>
> <varlistentry>
> <term>
> - <option>--sshkey <replaceable><sshkey file></replaceable></option>
> - </term>
> - <listitem>
> - <para>ssh key file used with ssh-client module.</para>
> - </listitem>
> - </varlistentry>
> - <varlistentry>
> - <term>
> <option>-l</option>
> </term>
> <term>
Hi,
After removing --sshkey we need to parse dracut_module_args for module
use. Maybe in a general function of dracut-lib will be fine.
Also need consider the multi-param case like below:
module:a=b,c=d,e=f,...
Ie. in ssh-client module we need to parse "sshkey=/root/.ssh/id_rsa" for
installing sshkey
--
Thanks
Dave
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] remove the global --sshkey parameter
[not found] ` <4F0CFB08.6030800-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2012-01-11 3:40 ` Dave Young
2012-01-11 9:54 ` Cong Wang
1 sibling, 0 replies; 13+ messages in thread
From: Dave Young @ 2012-01-11 3:40 UTC (permalink / raw)
To: xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w
Cc: initramfs-u79uwXL29TY76Z2rM5mHXA, harald-H+wXaHxf7aLQT0dZR+AlfA
On 01/11/2012 10:59 AM, Dave Young wrote:
> On 01/10/2012 11:19 PM, xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote:
>
>> From: Cong Wang <xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>>
>> Signed-off-by: Cong Wang <xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>> ---
>> dracut | 4 +---
>> dracut.8.xml | 8 --------
>> 2 files changed, 1 insertions(+), 11 deletions(-)
>>
>> diff --git a/dracut b/dracut
>> index f3fa257..58c4fde 100755
>> --- a/dracut
>> +++ b/dracut
>> @@ -118,7 +118,6 @@ Creates initial ramdisk images for preloading modules
>> -M, --show-modules Print included module's name to standard output during
>> build.
>> --keep Keep the temporary initramfs for debugging purposes
>> - --sshkey [SSHKEY] Add ssh key to initramfs (use with ssh-client module)
>> --ctty Add control tty for emergency shells
>> EOF
>> }
>> @@ -242,7 +241,6 @@ while (($# > 0)); do
>> --debug) debug="yes";;
>> --profile) profile="yes";;
>> --ctty) cttyhack="yes";;
>> - --sshkey) read_arg sshkey "$@" || shift;;
>> -v|--verbose) ((verbosity_mod_l++));;
>> -q|--quiet) ((verbosity_mod_l--));;
>> -l|--local) allowlocal="yes" ;;
>> @@ -613,7 +611,7 @@ export initdir dracutbasedir dracutmodules drivers \
>> add_drivers mdadmconf lvmconf filesystems \
>> use_fstab libdir usrlibdir fscks nofscks cttyhack \
>> stdloglvl sysloglvl fileloglvl kmsgloglvl logfile \
>> - debug host_fs_types host_devs sshkey dracut_module_args
>> + debug host_fs_types host_devs dracut_module_args
>>
>> # Create some directory structure first
>> [[ $prefix ]] && mkdir -m 0755 -p "${initdir}${prefix}"
>> diff --git a/dracut.8.xml b/dracut.8.xml
>> index ea24764..0dc6225 100644
>> --- a/dracut.8.xml
>> +++ b/dracut.8.xml
>> @@ -371,14 +371,6 @@ Default:
>> </varlistentry>
>> <varlistentry>
>> <term>
>> - <option>--sshkey <replaceable><sshkey file></replaceable></option>
>> - </term>
>> - <listitem>
>> - <para>ssh key file used with ssh-client module.</para>
>> - </listitem>
>> - </varlistentry>
>> - <varlistentry>
>> - <term>
>> <option>-l</option>
>> </term>
>> <term>
>
>
> Hi,
>
> After removing --sshkey we need to parse dracut_module_args for module
> use. Maybe in a general function of dracut-lib will be fine.
>
> Also need consider the multi-param case like below:
> module:a=b,c=d,e=f,...
>
> Ie. in ssh-client module we need to parse "sshkey=/root/.ssh/id_rsa" for
> installing sshkey
>
Seems $sshkey is only limited to check() function, so it will be not
available in install(), should add something like below:
diff --git a/modules.d/95ssh-client/module-setup.sh
b/modules.d/95ssh-client/module-setup.sh
index ef8effe..352817c 100755
--- a/modules.d/95ssh-client/module-setup.sh
+++ b/modules.d/95ssh-client/module-setup.sh
@@ -39,7 +39,10 @@ inst_sshenv()
fi
# Copy over ssh key and knowhosts if needed
+ ssharg=${dracut_module_args["ssh-client"]}
+ sshkey=`echo $ssharg|cut --fields=2 -d '='`
[[ $sshkey ]] && {
+ echo "installing sshkey"
inst $sshkey
[[ -f /root/.ssh/known_hosts ]] && inst /root/.ssh/known_hosts
[[ -f /etc/ssh/ssh_known_hosts ]] && inst /etc/ssh/ssh_known_hosts
--
Thanks
Dave
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] remove the global --sshkey parameter
[not found] ` <4F0CFB08.6030800-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-01-11 3:40 ` Dave Young
@ 2012-01-11 9:54 ` Cong Wang
[not found] ` <4F0D5C64.1080203-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
1 sibling, 1 reply; 13+ messages in thread
From: Cong Wang @ 2012-01-11 9:54 UTC (permalink / raw)
To: Dave Young
Cc: initramfs-u79uwXL29TY76Z2rM5mHXA, harald-H+wXaHxf7aLQT0dZR+AlfA
On 01/11/2012 10:59 AM, Dave Young wrote:
>
> Hi,
Hi,
>
> After removing --sshkey we need to parse dracut_module_args for module
> use. Maybe in a general function of dracut-lib will be fine.
>
> Also need consider the multi-param case like below:
> module:a=b,c=d,e=f,...
>
> Ie. in ssh-client module we need to parse "sshkey=/root/.ssh/id_rsa" for
> installing sshkey
>
It is already done by the first patch. :)
Note that, I designed to use colons to separate parameters, not commas,
even if you pass multiple parameters.
Thanks.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 1/2] support adding module-specific parameters
[not found] ` <4F0CF43E.1020901-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2012-01-11 9:58 ` Cong Wang
[not found] ` <4F0D5D57.9000804-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
0 siblings, 1 reply; 13+ messages in thread
From: Cong Wang @ 2012-01-11 9:58 UTC (permalink / raw)
To: Dave Young
Cc: initramfs-u79uwXL29TY76Z2rM5mHXA, harald-H+wXaHxf7aLQT0dZR+AlfA
On 01/11/2012 10:30 AM, Dave Young wrote:
> Hi,
>
> Thanks for the effort, before test it I have two comments
>
> On 01/10/2012 11:19 PM, xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote:
>
>> From: Cong Wang<xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>>
>> ssh-client module needs a specific parameter, --ssh-key, but
>> this parameter is totally useless for other modules. So, introduce
>> a way to let users to pass module-specific parameters, that is,
>> using colons to separate module name and its parameters, like,
>>
>> --add ssh-client:sshkey=/root/.ssh/kdump_id_rsa.pub
>
>
> Seems no way to add param to modules which is not add explicitly
> such as simply run
> ./dracut -l
>
> So also need to find way to add params to the implicit-added modules?
I think you mean -H? Yeah, for cases like -H which selects modules
automatically, I think we need to add an option in dracut.conf to let
users specify the module parameters. I will add this...
>>
>> +declare -A dracut_module_args
>> +read_module_args() {
>> + local _key="${1%%:*}"
>> + local _val="${1#*:}"
>
>> + dracut_module_args["$_key"]="$_val"
>
> [ -z "$_key" ] above will fail
>
Yeah, but only when users forget the module name, right? :)
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] remove the global --sshkey parameter
[not found] ` <4F0D5C64.1080203-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2012-01-12 2:15 ` Dave Young
[not found] ` <4F0E4247.1010501-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 13+ messages in thread
From: Dave Young @ 2012-01-12 2:15 UTC (permalink / raw)
To: Cong Wang; +Cc: initramfs-u79uwXL29TY76Z2rM5mHXA, harald-H+wXaHxf7aLQT0dZR+AlfA
On 01/11/2012 05:54 PM, Cong Wang wrote:
> On 01/11/2012 10:59 AM, Dave Young wrote:
>>
>> Hi,
>
> Hi,
>
>>
>> After removing --sshkey we need to parse dracut_module_args for module
>> use. Maybe in a general function of dracut-lib will be fine.
>>
>> Also need consider the multi-param case like below:
>> module:a=b,c=d,e=f,...
>>
>> Ie. in ssh-client module we need to parse "sshkey=/root/.ssh/id_rsa" for
>> installing sshkey
>>
>
> It is already done by the first patch. :)
During my test, the $sshkey is only available in check() function,
finally the key was not installed to initramfs. Please see my another reply
before.
>
> Note that, I designed to use colons to separate parameters, not commas,
> even if you pass multiple parameters.
I think A:b,c,d looks better, but I have no strong opinion about this
because right half of first colon can be seen as param which can be
defined and parsed by specific module.
--
Thanks
Dave
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 1/2] support adding module-specific parameters
[not found] ` <4F0D5D57.9000804-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2012-01-12 2:19 ` Dave Young
[not found] ` <4F0E434F.9080002-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 13+ messages in thread
From: Dave Young @ 2012-01-12 2:19 UTC (permalink / raw)
To: Cong Wang; +Cc: initramfs-u79uwXL29TY76Z2rM5mHXA, harald-H+wXaHxf7aLQT0dZR+AlfA
On 01/11/2012 05:58 PM, Cong Wang wrote:
> On 01/11/2012 10:30 AM, Dave Young wrote:
>> Hi,
>>
>> Thanks for the effort, before test it I have two comments
>>
>> On 01/10/2012 11:19 PM, xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote:
>>
>>> From: Cong Wang<xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>>>
>>> ssh-client module needs a specific parameter, --ssh-key, but
>>> this parameter is totally useless for other modules. So, introduce
>>> a way to let users to pass module-specific parameters, that is,
>>> using colons to separate module name and its parameters, like,
>>>
>>> --add ssh-client:sshkey=/root/.ssh/kdump_id_rsa.pub
>>
>>
>> Seems no way to add param to modules which is not add explicitly
>> such as simply run
>> ./dracut -l
>>
>> So also need to find way to add params to the implicit-added modules?
>
>
> I think you mean -H? Yeah, for cases like -H which selects modules
> automatically, I think we need to add an option in dracut.conf to let
> users specify the module parameters. I will add this...
I mean not only -H but also run dracut without any arguments
>
>
>>>
>>> +declare -A dracut_module_args
>>> +read_module_args() {
>>> + local _key="${1%%:*}"
>>> + local _val="${1#*:}"
>>
>>> + dracut_module_args["$_key"]="$_val"
>>
>> [ -z "$_key" ] above will fail
>>
>
> Yeah, but only when users forget the module name, right? :)
Yes
>
> --
> To unsubscribe from this list: send the line "unsubscribe initramfs" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Thanks
Dave
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 1/2] support adding module-specific parameters
[not found] ` <4F0E434F.9080002-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2012-01-13 9:01 ` Cong Wang
0 siblings, 0 replies; 13+ messages in thread
From: Cong Wang @ 2012-01-13 9:01 UTC (permalink / raw)
To: Dave Young
Cc: initramfs-u79uwXL29TY76Z2rM5mHXA, harald-H+wXaHxf7aLQT0dZR+AlfA
On 01/12/2012 10:19 AM, Dave Young wrote:
> On 01/11/2012 05:58 PM, Cong Wang wrote:
>
>> On 01/11/2012 10:30 AM, Dave Young wrote:
>>> Hi,
>>>
>>> Thanks for the effort, before test it I have two comments
>>>
>>> On 01/10/2012 11:19 PM, xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote:
>>>
>>>> From: Cong Wang<xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>>>>
>>>> ssh-client module needs a specific parameter, --ssh-key, but
>>>> this parameter is totally useless for other modules. So, introduce
>>>> a way to let users to pass module-specific parameters, that is,
>>>> using colons to separate module name and its parameters, like,
>>>>
>>>> --add ssh-client:sshkey=/root/.ssh/kdump_id_rsa.pub
>>>
>>>
>>> Seems no way to add param to modules which is not add explicitly
>>> such as simply run
>>> ./dracut -l
>>>
>>> So also need to find way to add params to the implicit-added modules?
>>
>>
>> I think you mean -H? Yeah, for cases like -H which selects modules
>> automatically, I think we need to add an option in dracut.conf to let
>> users specify the module parameters. I will add this...
>
>
> I mean not only -H but also run dracut without any arguments
Understand.
>
>>
>>
>>>>
>>>> +declare -A dracut_module_args
>>>> +read_module_args() {
>>>> + local _key="${1%%:*}"
>>>> + local _val="${1#*:}"
>>>
>>>> + dracut_module_args["$_key"]="$_val"
>>>
>>> [ -z "$_key" ] above will fail
>>>
>>
>> Yeah, but only when users forget the module name, right? :)
>
>
> Yes
>
Then it is invalid input. :-D But yeah, we could handle this in a better
way.
I will update the patch.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] remove the global --sshkey parameter
[not found] ` <4F0E4247.1010501-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2012-01-13 9:03 ` Cong Wang
0 siblings, 0 replies; 13+ messages in thread
From: Cong Wang @ 2012-01-13 9:03 UTC (permalink / raw)
To: Dave Young
Cc: initramfs-u79uwXL29TY76Z2rM5mHXA, harald-H+wXaHxf7aLQT0dZR+AlfA
On 01/12/2012 10:15 AM, Dave Young wrote:
> On 01/11/2012 05:54 PM, Cong Wang wrote:
>
>> On 01/11/2012 10:59 AM, Dave Young wrote:
>>>
>>> Hi,
>>
>> Hi,
>>
>>>
>>> After removing --sshkey we need to parse dracut_module_args for module
>>> use. Maybe in a general function of dracut-lib will be fine.
>>>
>>> Also need consider the multi-param case like below:
>>> module:a=b,c=d,e=f,...
>>>
>>> Ie. in ssh-client module we need to parse "sshkey=/root/.ssh/id_rsa" for
>>> installing sshkey
>>>
>>
>> It is already done by the first patch. :)
>
>
> During my test, the $sshkey is only available in check() function,
> finally the key was not installed to initramfs. Please see my another reply
> before.
Hmm, so sshkey= parameter should be passed to both check() and
install()... I think I need to redesign the command line interface.
>
>>
>> Note that, I designed to use colons to separate parameters, not commas,
>> even if you pass multiple parameters.
>
>
> I think A:b,c,d looks better, but I have no strong opinion about this
> because right half of first colon can be seen as param which can be
> defined and parsed by specific module.
>
Makes sense, I will check if this is hard to be done.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 1/2] support adding module-specific parameters
[not found] ` <1326208786-24344-1-git-send-email-xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-01-10 15:19 ` [PATCH 2/2] remove the global --sshkey parameter xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w
2012-01-11 2:30 ` [RFC PATCH 1/2] support adding module-specific parameters Dave Young
@ 2012-01-23 11:14 ` Harald Hoyer
[not found] ` <4F1D412B.1060801-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2 siblings, 1 reply; 13+ messages in thread
From: Harald Hoyer @ 2012-01-23 11:14 UTC (permalink / raw)
To: xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w; +Cc: initramfs-u79uwXL29TY76Z2rM5mHXA
Am 10.01.2012 16:19, schrieb xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org:
> From: Cong Wang <xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
> ssh-client module needs a specific parameter, --ssh-key, but
> this parameter is totally useless for other modules. So, introduce
> a way to let users to pass module-specific parameters, that is,
> using colons to separate module name and its parameters, like,
>
> --add ssh-client:sshkey=/root/.ssh/kdump_id_rsa.pub
>
> Cc: harald-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
> Signed-off-by: Cong Wang <xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
> dracut | 30 ++++++++++++++++++++++++++----
> dracut-functions | 14 ++++++++++++--
> dracut.8.xml | 22 ++++++++++++++++++----
> 3 files changed, 56 insertions(+), 10 deletions(-)
Hmm, I would envision another strategy here. Modules could provide a function
for command line parsing.
We could source each module-setup.sh and rename the functions prefixed with the
module name and store them in an array.
Function renaming could be done via:
$ theirfunc() { echo "do their thing"; }
$ eval "$(echo "orig_theirfunc()"; declare -f theirfunc | tail -n +2)"
$ theirfunc() { echo "do my thing"; orig_theirfunc; }
$ theirfunc
do my thing
do their thing
What do you think?
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 1/2] support adding module-specific parameters
[not found] ` <4F1D412B.1060801-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2012-01-24 15:23 ` Cong Wang
0 siblings, 0 replies; 13+ messages in thread
From: Cong Wang @ 2012-01-24 15:23 UTC (permalink / raw)
To: Harald Hoyer; +Cc: initramfs-u79uwXL29TY76Z2rM5mHXA
On 01/23/2012 07:14 PM, Harald Hoyer wrote:
>
> Hmm, I would envision another strategy here. Modules could provide a function
> for command line parsing.
>
> We could source each module-setup.sh and rename the functions prefixed with the
> module name and store them in an array.
Sorry, I don't quite understand. For this case, you mean ssh-client
module should provide a function like ssh-client_getopt() to parse the
command line --add ssh-client:sshkey=/root/.ssh/kdump_id_rsa.pub ?
Thanks.
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2012-01-24 15:23 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-10 15:19 [RFC PATCH 1/2] support adding module-specific parameters xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w
[not found] ` <1326208786-24344-1-git-send-email-xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-01-10 15:19 ` [PATCH 2/2] remove the global --sshkey parameter xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w
[not found] ` <1326208786-24344-2-git-send-email-xiyou.wangcong-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-01-11 2:59 ` Dave Young
[not found] ` <4F0CFB08.6030800-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-01-11 3:40 ` Dave Young
2012-01-11 9:54 ` Cong Wang
[not found] ` <4F0D5C64.1080203-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-01-12 2:15 ` Dave Young
[not found] ` <4F0E4247.1010501-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-01-13 9:03 ` Cong Wang
2012-01-11 2:30 ` [RFC PATCH 1/2] support adding module-specific parameters Dave Young
[not found] ` <4F0CF43E.1020901-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-01-11 9:58 ` Cong Wang
[not found] ` <4F0D5D57.9000804-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-01-12 2:19 ` Dave Young
[not found] ` <4F0E434F.9080002-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-01-13 9:01 ` Cong Wang
2012-01-23 11:14 ` Harald Hoyer
[not found] ` <4F1D412B.1060801-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-01-24 15:23 ` Cong Wang
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.