[NEW PATCH] BZ#736154 - Add root password configuration option in the rhevm tab (via gerrit-bot)

Yotam Oron yoron at redhat.com
Thu Sep 15 09:50:40 UTC 2011


New patch submitted by Yotam Oron (yoron at redhat.com)

You can review this change at: http://gerrit.usersys.redhat.com/913

commit 80fe5c8ea3904098df68667b128ff3ed251f9c58
Author: Yotam Oron <yoron at redhat.com>
Date:   Wed Sep 7 18:41:32 2011 +0300

    BZ#736154 - Add root password configuration option in the rhevm tab
    
    - Add root password configuration option
    - Enable remote access
    
    Change-Id: I7347afde1656713bc9a455da784aad0e76660f4b

diff --git a/vdsm_reg/rhevm.py b/vdsm_reg/rhevm.py
index 1eabf14..c86258f 100755
--- a/vdsm_reg/rhevm.py
+++ b/vdsm_reg/rhevm.py
@@ -24,9 +24,13 @@
 import os
 import sys
 from ovirtnode.ovirtfunctions import ovirt_store_config, is_valid_host_or_ip, \
-                                     is_valid_port, PluginBase, log, network_up
+                                     is_valid_port, PluginBase, log, network_up, \
+                                     password_check, augtool
+from ovirtnode.password import set_password
+
 from snack import ButtonChoiceWindow, Entry, Grid, Label, Checkbox, \
-                  FLAG_DISABLED, FLAGS_SET, customColorset
+                  FLAG_DISABLED, FLAGS_SET, customColorset, Textbox
+import subprocess
 
 sys.path.append('/usr/share/vdsm-reg')
 import deployUtil
@@ -104,7 +108,7 @@ class Plugin(PluginBase):
         PluginBase.__init__(self, "RHEV-M", ncs)
 
     def form(self):
-        elements = Grid(2, 10)
+        elements = Grid(2, 8)
         is_network_up = network_up()
         if is_network_up:
             header_message = "RHEV-M Configuration"
@@ -114,7 +118,6 @@ class Plugin(PluginBase):
         self.ncs.screen.setColor(customColorset(1), "black", "magenta")
         heading.setColors(customColorset(1))
         elements.setField(heading, 0, 0, anchorLeft = 1)
-        elements.setField(Label(""), 0, 1, anchorLeft = 1)
         rhevm_grid = Grid(2,2)
         rhevm_grid.setField(Label("Management Server:"), 0, 0, anchorLeft = 1)
         self.rhevm_server = Entry(25, "")
@@ -122,14 +125,34 @@ class Plugin(PluginBase):
         rhevm_grid.setField(Label("Management Server Port:"), 0, 1, anchorLeft = 1)
         self.rhevm_server_port = Entry(6, "", scroll = 0)
         self.rhevm_server_port.setCallback(self.valid_rhevm_server_port_callback)
-        rhevm_grid.setField(self.rhevm_server, 1, 0, anchorLeft = 1, padding=(2, 0, 0, 1))
-        rhevm_grid.setField(self.rhevm_server_port, 1, 1, anchorLeft = 1, padding=(2, 0, 0, 1))
-        elements.setField(rhevm_grid, 0, 2, anchorLeft = 1, padding = (0,1,0,0))
+        rhevm_grid.setField(self.rhevm_server, 1, 0, anchorLeft = 1, padding=(0, 0, 0, 0))
+        rhevm_grid.setField(self.rhevm_server_port, 1, 1, anchorLeft = 1, padding=(0, 0, 0, 0))
+        elements.setField(rhevm_grid, 0, 1, anchorLeft = 1, padding = (0,0,0,0))
+        elements.setField(Label(""), 0, 2, anchorLeft = 1)
         self.verify_rhevm_cert = Checkbox("Connect to RHEV Manager and Validate Certificate", isOn=True)
-        elements.setField(self.verify_rhevm_cert, 0, 3, anchorLeft = 1, padding = (0,1,0,0))
-
+        elements.setField(self.verify_rhevm_cert, 0, 3, anchorLeft = 1, padding = (0,0,0,0))
+        elements.setField(Label(""), 0, 4, anchorLeft = 1)
+
+        elements.setField(Label("Set RHEV-M Admin Password"), 0, 5, anchorLeft = 1)
+        pw_elements = Grid(3,3)
+
+        pw_elements.setField(Label("Password: "), 0, 1, anchorLeft = 1)
+        self.root_password_1 = Entry(15,password = 1)
+        self.root_password_1.setCallback(self.password_check_callback)
+        pw_elements.setField(self.root_password_1, 1, 1)
+        pw_elements.setField(Label("Confirm Password: "), 0, 2, anchorLeft = 1)
+        self.root_password_2 = Entry(15,password = 1)
+        self.root_password_2.setCallback(self.password_check_callback)
+        pw_elements.setField(self.root_password_2, 1, 2)
+        self.pw_msg = Textbox(60, 6, "", wrap=1)
+
+        elements.setField(pw_elements, 0, 6, anchorLeft=1)
+        elements.setField(self.pw_msg, 0, 7, padding = (0,0,0,0))
+
+        inputFields = [self.rhevm_server, self.rhevm_server_port, self.verify_rhevm_cert,
+                       self.root_password_1, self.root_password_2]
         if not is_network_up:
-            for field in self.rhevm_server, self.rhevm_server_port, self.verify_rhevm_cert:
+            for field in inputFields:
                 field.setFlags(FLAG_DISABLED, FLAGS_SET)
 
         try:
@@ -145,9 +168,19 @@ class Plugin(PluginBase):
             pass
         return [Label(""), elements]
 
+    def password_check_callback(self):
+        resp, msg = password_check(self.root_password_1.value(), self.root_password_2.value())
+        self.pw_msg.setText(msg)
+        return
+
     def action(self):
         self.ncs.screen.setColor("BUTTON", "black", "red")
         self.ncs.screen.setColor("ACTBUTTON", "blue", "white")
+        if self.root_password_1.value() != "" and self.root_password_2.value() != "" and self.root_password_1.value() == self.root_password_2.value():
+            set_password(self.root_password_1.value(), "root")
+            augtool("set", "/files/etc/ssh/sshd_config/PasswordAuthentication", "yes")
+            dn = file('/dev/null', 'w+')
+            subprocess.Popen(['/sbin/service', 'sshd', 'restart'], stdout=dn, stderr=dn)
         if len(self.rhevm_server.value()) > 0:
             if self.verify_rhevm_cert.selected():
                 if deployUtil.getRhevmCert(self.rhevm_server.value(),  self.rhevm_server_port.value()):




More information about the vdsm-patches mailing list