示例#1
0
def main_setup_fixture(request, parser_of_client_password,
                       dir_on_server_creation, dir_on_serv_permis_change,
                       session_creation, dir_on_client_creation,
                       etc_exports_on_serv_clean, perm_for_export_creation,
                       file_perm_for_export_creation, file_perm_export_copy,
                       update_etc_exports, mount_dir):
    """Manage the order of setup fixtures."""
    log.info("I am in main_setup_fixture")

    def main_teardown_finalizer():
        """Clean the environment which was created."""
        log.info("I am in main_teardown_finalizer")
        ServerCmdExecution().run_cmd("sudo rm -rf {}".format(global_path))
        log.info("/home/polina/dirForTest/ is removed on server")
        stdin, stdout, stderr = \
            session_creation.exec_command('echo {} | sudo -S rm -rf'
                                          ' /home/$USER/dirForMount/'.
                                          format(parser_of_client_password))
        log.info("{}".format(stderr.read()))
        log.info("/home/$USER/dirForMount/ is removed on client")
        log.info("client {}".format(session_creation))

    def unmount_dir():
        """Unmount a directory on a client."""
        log.info("I am in unmount_dir")
        stdin, stdout, stderr = \
            session_creation.exec_command("echo {} | sudo -S umount"
                                          " /home/$USER/dirForMount/".
                                          format(parser_of_client_password))
        log.info("{}".format(stderr.read()))

    request.addfinalizer(main_teardown_finalizer)
    request.addfinalizer(unmount_dir)
    return 0
示例#2
0
def perm_for_export_creation(request, parser_of_client_ip):
    """Create a variable with permissions on import on a server."""
    dir_for_export_name = global_path
    log.info("I am in perm_for_export_creation")
    perm_for_export = "".\
        join([dir_for_export_name, " ", parser_of_client_ip, request.param])
    var = request.param
    return perm_for_export, var
示例#3
0
 def unmount_dir():
     """Unmount a directory on a client."""
     log.info("I am in unmount_dir")
     stdin, stdout, stderr = \
         session_creation.exec_command("echo {} | sudo -S umount"
                                       " /home/$USER/dirForMount/".
                                       format(parser_of_client_password))
     log.info("{}".format(stderr.read()))
示例#4
0
def mount_dir(session_creation, parser_of_client_password,
              parser_of_server_ip):
    """Mount of a directory on a client."""
    log.info("I am in mount_dir")
    session_creation.exec_command("echo {} | sudo -S mount {}:{} "
                                  "/home/$USER/dirForMount/".format(
                                      parser_of_client_password,
                                      parser_of_server_ip, global_path))
    sleep(1)
示例#5
0
def session_creation(parser_of_client_ip, parser_of_client_port,
                     parser_of_client_name, parser_of_client_password):
    """Create a session with a client."""
    log.info("I am in session_creation")
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(hostname=parser_of_client_ip,
                   port=int(parser_of_client_port),
                   username=parser_of_client_name,
                   password=parser_of_client_password)
    return client
示例#6
0
 def main_teardown_finalizer():
     """Clean the environment which was created."""
     log.info("I am in main_teardown_finalizer")
     ServerCmdExecution().run_cmd("sudo rm -rf {}".format(global_path))
     log.info("/home/polina/dirForTest/ is removed on server")
     stdin, stdout, stderr = \
         session_creation.exec_command('echo {} | sudo -S rm -rf'
                                       ' /home/$USER/dirForMount/'.
                                       format(parser_of_client_password))
     log.info("{}".format(stderr.read()))
     log.info("/home/$USER/dirForMount/ is removed on client")
     log.info("client {}".format(session_creation))
示例#7
0
def test_file_creation(parser_of_client_ip, parser_of_client_port,
                       parser_of_client_name, parser_of_client_password,
                       parser_of_server_ip, main_setup_fixture,
                       perm_for_export_creation, session_creation):
    """Test function: creation of a file."""
    log.info("I am in a test_file_creation: file creation")
    log.info("Here is what now is in /etc/exports {}".format(
        perm_for_export_creation[0]))
    stdin, stdout, stderr = session_creation.\
        exec_command("echo {} | sudo -S touch /home/$USER"
                     "/dirForMount/cinema".format(parser_of_client_password))
    log.info("{}".format(stderr.read()))
    log.info("permForExportCreation[1] in test_file_creation: {}".format(
        perm_for_export_creation[1]))
    if "(ro)" == perm_for_export_creation[1]:
        log.info("exit status of creation a file with RO: {}".format(
            stdout.channel.recv_exit_status()))
        assert stdout.channel.recv_exit_status() == 1
    else:
        log.info("exit status of creation a file with RW: {}".format(
            stdout.channel.recv_exit_status()))
        assert stdout.channel.recv_exit_status() == 0
示例#8
0
def etc_exports_on_serv_clean():
    """Clean /etc/exports on a server."""
    log.info("I am in etc_exports_on_serv_clean")
    return ServerCmdExecution().run_cmd("sudo cp /dev/null /etc/exports")
示例#9
0
def dir_on_client_creation(session_creation):
    """Create a directory on a client."""
    log.info("I am in dir_on_client_creation")
    log.info("client {}".format(session_creation))
    session_creation.exec_command('mkdir -p /home/$USER/dirForMount/')
示例#10
0
def dir_on_serv_permis_change():
    """Change permissions of a directory on a server."""
    log.info("I am in dir_on_serv_permis_change")
    ServerCmdExecution().run_cmd("sudo chmod ugo+rwx {}".format(global_path))
示例#11
0
def dir_on_server_creation():
    """Create a directory on a server."""
    log.info("I am in dir_on_server_creation")
    ServerCmdExecution().run_cmd("sudo mkdir -p {}".format(global_path))
示例#12
0
def update_etc_exports():
    """Update of a NFS-export table."""
    log.info("I am in update_etc_exports")
    ServerCmdExecution().run_cmd("sudo exportfs -a")
示例#13
0
def file_perm_export_copy():
    """Copy permissions on import to /etc/exports."""
    log.info("I am in file_perm_export_copy")
    ServerCmdExecution().run_cmd("sudo cp {} /etc/exports".format(
        os.path.join(global_path, "fileWithPermForExport")))
示例#14
0
def file_perm_for_export_creation(perm_for_export_creation):
    """Create a file with permissions on import."""
    log.info("I am in file_perm_for_export_creation")
    with open(os.path.join(global_path, "fileWithPermForExport"), "w") as f:
        f.write(perm_for_export_creation[0])
    return f