Added Get User List methods to win_client and linux_client
* Added get_user_list method to windows_client which uses the winrm remote client to run a powershell command to get user objects, parse them into dictionaries and make a list of the usernames on the target instance * Added get_user_list method to linux_client which reads the /etc/passwd file on the target instance and returns a list of the usernames. Change-Id: Ifeb408929d598fdff82a7f4f8c0f0912ff8fd1f4
This commit is contained in:
		@@ -149,6 +149,19 @@ class LinuxClient(RemoteInstanceClient):
 | 
				
			|||||||
            uptime = float(result.stdout.split(' ')[0])
 | 
					            uptime = float(result.stdout.split(' ')[0])
 | 
				
			||||||
            return uptime
 | 
					            return uptime
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_local_users(self):
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        Get a list of the local user accounts on the server
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        @return: A list of users
 | 
				
			||||||
 | 
					        @rtype: List of strings
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        command = 'cat /etc/passwd | cut -d: -f1'
 | 
				
			||||||
 | 
					        output = self.ssh_client.execute_command(command)
 | 
				
			||||||
 | 
					        if output:
 | 
				
			||||||
 | 
					            return output.stdout.split()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def create_file(self, file_name, file_content, file_path=None):
 | 
					    def create_file(self, file_name, file_content, file_path=None):
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        Creates a new file with the provided content.
 | 
					        Creates a new file with the provided content.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -146,6 +146,26 @@ class WindowsClient(RemoteInstanceClient):
 | 
				
			|||||||
        diff = now - last_boot
 | 
					        diff = now - last_boot
 | 
				
			||||||
        return diff.total_seconds()
 | 
					        return diff.total_seconds()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_local_users(self):
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        Get a list of the local user accounts on the server
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        @return: A list of users
 | 
				
			||||||
 | 
					        @rtype: List of strings
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        command = ('powershell gwmi Win32_UserAccount')
 | 
				
			||||||
 | 
					        output = self.client.execute_command(command)
 | 
				
			||||||
 | 
					        if not output:
 | 
				
			||||||
 | 
					            return None
 | 
				
			||||||
 | 
					        raw_output = output.std_out.split('\r\n\r\n')
 | 
				
			||||||
 | 
					        raw_users = [user for user in raw_output if user]
 | 
				
			||||||
 | 
					        user_list = []
 | 
				
			||||||
 | 
					        for user in raw_users:
 | 
				
			||||||
 | 
					            user_info = self._convert_powershell_list_to_dict(user)
 | 
				
			||||||
 | 
					            user_list.append(user_info.get('Name'))
 | 
				
			||||||
 | 
					        return user_list
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def create_file(self, file_name, file_content, file_path):
 | 
					    def create_file(self, file_name, file_content, file_path):
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        Creates a new file with the provided content.
 | 
					        Creates a new file with the provided content.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user