[virt-tools-list] [vort-manager PATCH v2] cloudinit: Add cli option root-password-file=/path/to/file

Fabiano Fidêncio fidencio at redhat.com
Tue Jul 16 12:58:22 UTC 2019


On Tue, Jul 16, 2019 at 2:18 PM Athina Plaskasoviti
<athina.plaskasoviti at gmail.com> wrote:
>
> Signed-off-by: Athina Plaskasoviti <athina.plaskasoviti at gmail.com>
> ---
>  tests/clitest.py              | 3 ++-
>  virtinst/cli.py               | 1 +
>  virtinst/install/cloudinit.py | 7 +++++++
>  3 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/tests/clitest.py b/tests/clitest.py
> index 38a6805e..36844573 100644
> --- a/tests/clitest.py
> +++ b/tests/clitest.py
> @@ -872,7 +872,8 @@ c.add_compare("--connect %s --os-variant fedora26" % (utils.URIs.test_suite), "o
>  c.add_compare("--connect %s --os-variant fedora26 --pxe --print-xml" % (utils.URIs.test_suite), "osvariant-defaults-pxe", use_default_args=False)  # No arguments
>  c.add_compare("--disk %(EXISTIMG1)s --os-variant fedora28 --cloud-init", "cloud-init-default")  # default --cloud-init behavior is root-password=generate,disable=yes
>  c.add_compare("--disk %(EXISTIMG1)s --os-variant fedora28 --cloud-init root-password=generate,disable=no", "cloud-init-options")  # --cloud-init options
> -c.add_compare("--disk %(EXISTIMG1)s --os-variant fedora28 --cloud-init root-password=a1b2c3d4,disable=no", "cloud-init-options")  #--cloud-init-options
> +c.add_compare("--disk %(EXISTIMG1)s --os-variant fedora28 --cloud-init root-password=a1b2c3d4,disable=no", "cloud-init-options")  # --cloud-init-options

This change here is not related to this patch.
Please, drop it before merging.

> +c.add_compare("--disk %(EXISTIMG1)s --os-variant fedora28 --cloud-init root-password-file=%(ADMIN-PASSWORD-FILE)s,disable=no", "cloud-init-options")  # --cloud-init-options
>  c.add_valid("--panic help --disk=? --check=help", grep="path_in_use")  # Make sure introspection doesn't blow up
>  c.add_valid("--connect test:///default --test-stub-command", use_default_args=False)  # --test-stub-command
>  c.add_valid("--nodisks --pxe", grep="VM performance may suffer")  # os variant warning
> diff --git a/virtinst/cli.py b/virtinst/cli.py
> index bed83c73..5cbe67db 100644
> --- a/virtinst/cli.py
> +++ b/virtinst/cli.py
> @@ -1614,6 +1614,7 @@ class ParserCloudInit(VirtCLIParser):
>      def _init_class(cls, **kwargs):
>          VirtCLIParser._init_class(**kwargs)
>          cls.add_arg("root-password", "root_password")
> +        cls.add_arg("root-password-file", "root_password_file")
>          cls.add_arg("disable", "disable", is_onoff=True)
>
>
> diff --git a/virtinst/install/cloudinit.py b/virtinst/install/cloudinit.py
> index 92b29515..dd43a9e6 100644
> --- a/virtinst/install/cloudinit.py
> +++ b/virtinst/install/cloudinit.py
> @@ -7,6 +7,7 @@ from ..logger import log
>  class CloudInitData():
>      disable = None
>      root_password = None
> +    root_password_file = None
>      generated_root_password = None
>
>      def generate_password(self):
> @@ -15,9 +16,15 @@ class CloudInitData():
>              self.generated_root_password += random.choice(string.ascii_letters + string.digits)
>          return self.generated_root_password
>
> +    def _get_password(self, pwdfile):
> +        with open(pwdfile, "r") as fobj:
> +            return fobj.readline().rstrip("\n\r")
> +

Not for now, but later on we can have this together with the one used
for unattended-installations.

>      def get_root_password(self):
>          if self.root_password == "generate":
>              return self.generate_password()
> +        elif self.root_password_file:
> +            return self._get_password(self.root_password_file)
>          else:
>              return self.root_password
>
> --
> 2.20.1
>
> _______________________________________________
> virt-tools-list mailing list
> virt-tools-list at redhat.com
> https://www.redhat.com/mailman/listinfo/virt-tools-list

Reviewed-by: Fabiano Fidêncio <fidencio at redhat.com>




More information about the virt-tools-list mailing list