VirtualBox

Ignore:
Timestamp:
May 18, 2018 10:22:17 AM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
122706
Message:

testboxscript: introduce a way to specify custom mount options

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/testboxscript/testboxscript_real.py

    r70660 r72259  
    248248        self._mountShare(self._oOptions.sBuildsPath, self._oOptions.sBuildsServerType, self._oOptions.sBuildsServerName,
    249249                         self._oOptions.sBuildsServerShare,
    250                          self._oOptions.sBuildsServerUser, self._oOptions.sBuildsServerPasswd, 'builds');
     250                         self._oOptions.sBuildsServerUser, self._oOptions.sBuildsServerPasswd,
     251                         self._oOptions.sBuildsServerMountOpt, 'builds');
    251252        self._mountShare(self._oOptions.sTestRsrcPath, self._oOptions.sTestRsrcServerType, self._oOptions.sTestRsrcServerName,
    252253                         self._oOptions.sTestRsrcServerShare,
    253                          self._oOptions.sTestRsrcServerUser, self._oOptions.sTestRsrcServerPasswd, 'testrsrc');
     254                         self._oOptions.sTestRsrcServerUser, self._oOptions.sTestRsrcServerPasswd,
     255                         self._oOptions.sTestRsrcServerMountOpt, 'testrsrc');
    254256        return True;
    255257
    256     def _mountShare(self, sMountPoint, sType, sServer, sShare, sUser, sPassword, sWhat):
     258    def _mountShare(self, sMountPoint, sType, sServer, sShare, sUser, sPassword, sMountOpt, sWhat):
    257259        """
    258260        Mounts the specified share if needed.
     
    273275        sHostOs = utils.getHostOs()
    274276        if sHostOs in ('darwin', 'freebsd'):
     277            if sMountOpt != '':
     278                sMountOpt = ',' + sMountOpt
    275279            utils.sudoProcessCall(['/sbin/umount', sMountPoint]);
    276280            utils.sudoProcessCall(['/bin/mkdir', '-p', sMountPoint]);
     
    278282            if sType == 'cifs':
    279283                # Note! no smb://server/share stuff here, 10.6.8 didn't like it.
    280                 utils.processOutputChecked(['/sbin/mount_smbfs', '-o', 'automounted,nostreams,soft,noowners,noatime,rdonly',
     284                utils.processOutputChecked(['/sbin/mount_smbfs',
     285                                            '-o',
     286                                            'automounted,nostreams,soft,noowners,noatime,rdonly' + sMountOpt,
    281287                                            '-f', '0555', '-d', '0555',
    282288                                            '//%s:%s@%s/%s' % (sUser, sPassword, sServer, sShare),
     
    286292
    287293        elif sHostOs == 'linux':
     294            if sMountOpt != '':
     295                sMountOpt = ',' + sMountOpt
    288296            utils.sudoProcessCall(['/bin/umount', sMountPoint]);
    289297            utils.sudoProcessCall(['/bin/mkdir', '-p', sMountPoint]);
     
    296304                                                + ',uid=' + str(os.getuid()) # pylint: disable=E1101
    297305                                                + ',gid=' + str(os.getgid()) # pylint: disable=E1101
    298                                                 + ',nounix,file_mode=0555,dir_mode=0555,soft,ro',
     306                                                + ',nounix,file_mode=0555,dir_mode=0555,soft,ro'
     307                                                + sMountOpt,
    299308                                                '//%s/%s' % (sServer, sShare),
    300309                                                sMountPoint]);
    301310            elif sType == 'nfs':
    302311                utils.sudoProcessOutputChecked(['/bin/mount', '-t', 'nfs',
    303                                                 '-o', 'soft,ro',
     312                                                '-o', 'soft,ro' + sMountOpt,
    304313                                                '%s:%s' % (sServer, sShare if sShare.find('/') >= 0 else ('/export/' + sShare)),
    305314                                                sMountPoint]);
     
    309318
    310319        elif sHostOs == 'solaris':
     320            if sMountOpt != '':
     321                sMountOpt = ',' + sMountOpt
    311322            utils.sudoProcessCall(['/sbin/umount', sMountPoint]);
    312323            utils.sudoProcessCall(['/bin/mkdir', '-p', sMountPoint]);
     
    321332                                                + ',uid=' + str(os.getuid()) # pylint: disable=E1101
    322333                                                + ',gid=' + str(os.getgid()) # pylint: disable=E1101
    323                                                 + ',fileperms=0555,dirperms=0555,noxattr,ro',
     334                                                + ',fileperms=0555,dirperms=0555,noxattr,ro'
     335                                                + sMountOpt,
    324336                                                '//%s/%s' % (sServer, sShare),
    325337                                                sMountPoint],
     
    328340            elif sType == 'nfs':
    329341                utils.sudoProcessOutputChecked(['/sbin/mount', '-F', 'nfs',
    330                                                 '-o', 'noxattr,ro',
     342                                                '-o', 'noxattr,ro' + sMountOpt,
    331343                                                '%s:%s' % (sServer, sShare if sShare.find('/') >= 0 else ('/export/' + sShare)),
    332344                                                sMountPoint]);
     
    950962                              dest=sPrefix + 'ServerPasswd', metavar='<password>', default='guestr',
    951963                              help='The password to use when accessing the ' + sDesc + ' share.');
     964            parser.add_option('--' + sLower + '-server-mountopt',
     965                              dest=sPrefix + 'ServerMountOpt', metavar='<mountopt>', default='',
     966                              help='The mount options to use when accessing the ' + sDesc + ' share.');
    952967
    953968        parser.add_option("--test-manager", metavar="<url>",
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette