diff options
Diffstat (limited to 'Libraries/GlusterCommands/ATFGlusterVolume.py')
-rwxr-xr-x | Libraries/GlusterCommands/ATFGlusterVolume.py | 230 |
1 files changed, 230 insertions, 0 deletions
diff --git a/Libraries/GlusterCommands/ATFGlusterVolume.py b/Libraries/GlusterCommands/ATFGlusterVolume.py new file mode 100755 index 0000000..20bfd4f --- /dev/null +++ b/Libraries/GlusterCommands/ATFGlusterVolume.py @@ -0,0 +1,230 @@ +#!/usr/bin/env python +import ATFUtils +import ATFTestEnv +import re + +def create_volume(volumekey, *exportdirs, **arguments): + """ + Description: + Create a new Volume of specified type with mentioned bricks + + Parameters: + volumekey: Name of the Volume + + exportdirs: List of exportdirs to be used to create Volume + + arguments: Key=Value pair for "Volume Type" and "Transport Type". + 'voltype' = stripe|replica|distribute + 'transport' = tcp|rdma|tcp,rdma + 'host' = Server_IP + 'user' = User + + Return: + Success: 0 + Failure: 1 + + Example: + create('Replicate', + 'host1:export1', + 'host2:export1, + voltype='replica 2', + transport='transport tcp' + host = 'host(1..n)' + server = 'server(1..n)' + ) + """ + + command = "gluster volume create" + + volumename = ATFUtils.TestEnvObj.get_volume(volumekey) + if ( volumename == ''): + ATFUtils.Logger.error("Volume %s Not defined in GlobalParam File" % + volumekey) + return 1 + else: + command = command + " " + volumename + + if (arguments.has_key('voltype')): + command = command + " " + arguments.pop('voltype') + + if (arguments.has_key('transport')): + command = command + " " + arguments.pop('transport') + + exportdirlist = [] + for exportdir in exportdirs: + hostkey, exportkey = re.split(':', exportdir) + + host = ATFUtils.TestEnvObj.get_host(hostkey) + if ( host == '' ): + ATFUtils.Logger.error("Host %s Not defined in GlobalParam File" % + hostkey) + return 1 + + export = ATFUtils.TestEnvObj.get_exportdir(exportkey) + if (export == '' ): + ATFUtils.Logger.error( + "ExportDir %s Not defined in GlobalParam File" % exportkey) + return 1 + + exportdirlist.append(host + ":" +export) + + for exportdir in exportdirlist: + command = command + " " + exportdir + + arguments['user'] = 'root' + status, stdin, stdout, stderr = ATFUtils.execute_command(command, + **arguments) + + if (status == 1): + return 1 + else: + return ATFUtils.parse_output(stdout, stderr) + +def start_volume(volumekey, force='', **arguments): + """ + Description: + Start volume specified by volumename + + Parameters: + volumekey: Name of the Volume + + Returns: + Success: 0 + Failure: 1 + """ + + command = "gluster volume start" + + volumename = ATFUtils.TestEnvObj.get_volume(volumekey) + if ( volumename == ''): + ATFUtils.Logger.error("Volume %s Not defined in GlobalParam File" % + volumekey) + return 1 + else: + command = command + " " + volumename + " " + force + + arguments['user'] = 'root' + status, stdin, stdout, stderr = ATFUtils.execute_command(command, + **arguments) + + if (status == 1): + return 1 + else: + return ATFUtils.parse_output(stdout, stderr) + +def stop_volume(volumekey, force='', **arguments): + """ + Description: + Stop volume specified by volumename + + Parameters: + volumekey: Name of the Volume + force: force stop Gluster Volume + + Returns: + Success: 0 + Failure: 1 + """ + + command = "gluster volume stop" + + volumename = ATFUtils.TestEnvObj.get_volume(volumekey) + if ( volumename == ''): + ATFUtils.Logger.error("Volume %s Not defined in GlobalParam File" % + volumekey) + return 1 + else: + command = command + " " + volumename + " " + force + + arguments['user'] = 'root' + status, stdin, stdout, stderr = ATFUtils.execute_command(command, + **arguments) + + if (status == 1): + return 1 + else: + stdin.write("y\n") + return ATFUtils.parse_output(stdout, stderr) + + +def delete_volume(volumekey, **arguments): + """ + Description: + Delete volume specified by volumename + + Parameters: + volumekey: Name of the Volume + + Returns: + Success: 0 + Failure: 1 + """ + + command = "gluster volume delete" + + volumename = ATFUtils.TestEnvObj.get_volume(volumekey) + if ( volumename == ''): + ATFUtils.Logger.error("Volume %s Not defined in GlobalParam File" % + volumekey) + return 1 + else: + command = command + " " + volumename + + arguments['user'] = 'root' + status, stdin, stdout, stderr = ATFUtils.execute_command(command, + **arguments) + + if (status == 1): + return 1 + else: + stdin.write("y\n") + return ATFUtils.parse_output(stdout, stderr) + +def create_exportdirs(*exportdirs, **arguments): + """ + Description: + Create Bricks on the Server 'server' + + Parameters: + server: IP Address of Server where bricks has to be created + username: User on Server 'server' + bricks: List of Bricks to be created + + Return: + Success: 0 + Failure: 1 + """ + + command = "mkdir -p" + cleanup_command = "rm -rf" + exportdirlist = [] + + for exportkey in exportdirs: + exportdir = ATFUtils.TestEnvObj.get_exportdir(exportkey) + if (exportdir == '' ): + ATFUtils.Logger.error( + "ExportDir %s Not defined in GlobalParam File" % exportkey) + return 1 + else: + exportdirlist.append(exportdir) + + for exportdir in exportdirlist: + command = command + " " + exportdir + cleanup_command = cleanup_command + " " + exportdir + + arguments['user'] = 'root' + status, stdin, stdout, stderr = ATFUtils.execute_command(cleanup_command, + **arguments) + status, stdin, stdout, stderr = ATFUtils.execute_command(command, + **arguments) + + if (status == 1): + return 1 + else: + return ATFUtils.parse_output(stdout, stderr) + + + + + + |