def open(self, lunName, lunSnapshotName): """ Select LUN snapshot in grid by given name, then open 'Clone a Snapshot Copy' dialog. @param name: Name of LUN snapshot which to select in grid. """ lunSnapshotsPage = LUNSnapshotsPage(driver=self.driver) lunSnapshotsPage.waitUntilOpen() lunSnapshotsPage.gridSnapshots.unselect() lunSnapshotsPage.gridSnapshots.select(name=lunSnapshotName) lunSnapshotsPage.btnClone.click() self.cloneSnapshotPage.waitUntilOpen() self.activePageNumber = 0 self.activePage = self._pages[self._pages.keys()[ self.activePageNumber]] LOG.l4("%s.open(lunName='%s', lunSnapshotName='%s')" % (self.name, lunName, lunSnapshotName))
def open(self, name): """ Select LUN sapshot in grid by given name, then open rename dialog. @param name: Name of LUN snapshot to be selected in grid. """ lunSnapshotsPage = LUNSnapshotsPage(driver=self.driver) lunSnapshotsPage.waitUntilOpen() # In LUN snapshots grid, select row with given LUN snapshot name by checking row check box. lunSnapshotsPage.gridSnapshots.unselect() lunSnapshotsPage.gridSnapshots.select(name=name) # In menu 'Edit', select item 'Name'. lunSnapshotsPage.menuEdit.select(item='Name') self.renameLUNSnapshotPage.waitUntilOpen() self.activePageNumber = 0 self.activePage = self._pages[self._pages.keys()[self.activePageNumber]] LOG.l4("%s.open(name='%s')" % (self.name, name))
def test_unicode_name(self): """ Verify error message on setting LUN snapshot name containing Unicode characters. """ lunNamePrefix = 'LuN' lunName = lunNamePrefix + '_1' snapshotName = lunName + '_snap_0' snapshotNewName = snapshotName + u'Fran\u00e7ais' LOG.step('Creating LUN') self.luns.create(count=1, size='1g', prefix=lunNamePrefix) LOG.info('LUN created:\n', self.marscluster.lun.show(json=True)) LOG.step('Creating LUN snapshot') self.marscluster.snapshot.create(luns=lunName, name=snapshotName) snapshots = self.marscluster.snapshot.show(json=True) snapshot = [ snapshot for snapshot in snapshots if (snapshot['name'] == snapshotName and snapshot['object'] == lunName) ][0] snapshotUUID = snapshot['uuid'] LOG.info('Snapshot created:\n', snapshot) LOG.step("LUN '%s': Opening Snapshots page" % lunName) lunSnapshotsPage = LUNSnapshotsPage( driver=self.driver, url=self.webUIHostName + ('/#manager/storage/allstorage/luns/%s/snapshot' % lunName)) lunSnapshotsPage.open() lunSnapshotsPage.waitUntilOpen() LOG.info('LUN Snapshots page is open.') LOG.step('Renaming LUN snapshot in dialog') wizard = RenameLUNSnapshotWizard(driver=self.driver) wizard.open(name=snapshotName) LOG.info('Old snapshot name:', snapshotName) wizard.renameLUNSnapshotPage.renameLUNSnapshot(name=snapshotNewName) LOG.info('New snapshot name:', snapshotNewName) LOG.step('Verifying LUN snapshot name error message') wizard.activePage.lblNameError.waitUntilPresent() LOG.info('Name error message:', wizard.activePage.lblNameError.getText()) self.assertFalse(wizard.activePage.btnOK.isEnabled()) LOG.info("Button 'OK' is enabled:", wizard.activePage.btnOK.isEnabled()) LOG.step('Verifying LUN snapshot has not been renamed') snapshots = self.marscluster.snapshot.show(json=True) snapshot = [ snapshot for snapshot in snapshots if snapshot['uuid'] == snapshotUUID ][0] self.assertTrue(snapshot['name'] == snapshotName) LOG.info('LUN snapshot has not been renamed:\n', snapshot)
def test_dialog_cancel(self): """ Verify LUN snapshot name remains intact on dialog cancel. """ lunNamePrefix = 'LuN' lunName = lunNamePrefix + '_1' snapshotName = lunName + '_snap_0' snapshotNewName = snapshotName + '.m' LOG.step('Creating LUN') self.luns.create(count=1, size='1g', prefix=lunNamePrefix) LOG.info('LUN created:\n', self.marscluster.lun.show(json=True)) LOG.step('Creating LUN snapshot') self.marscluster.snapshot.create(luns=lunName, name=snapshotName) snapshots = self.marscluster.snapshot.show(json=True) snapshot = [ snapshot for snapshot in snapshots if (snapshot['name'] == snapshotName and snapshot['object'] == lunName) ][0] snapshotUUID = snapshot['uuid'] LOG.info('Snapshot created:\n', snapshot) LOG.step("LUN '%s': Opening Snapshots page" % lunName) lunSnapshotsPage = LUNSnapshotsPage( driver=self.driver, url=self.webUIHostName + ('/#manager/storage/allstorage/luns/%s/snapshot' % lunName)) lunSnapshotsPage.open() lunSnapshotsPage.waitUntilOpen() LOG.info('LUN Snapshots page is open.') LOG.step('Renaming LUN snapshot in dialog') wizard = RenameLUNSnapshotWizard(driver=self.driver) wizard.open(name=snapshotName) LOG.info('Old snapshot name:', snapshotName) wizard.renameLUNSnapshotPage.renameLUNSnapshot(name=snapshotNewName) self.assertTrue(wizard.activePage.txtName.getText() == snapshotNewName) LOG.info('New snapshot name:', snapshotNewName) LOG.step('Canceling dialog without submission') wizard.cancel() LOG.info('Dialog cancelled.') LOG.step('Verifying LUN snapshot has not been renamed') snapshots = self.marscluster.snapshot.show(json=True) snapshot = [ snapshot for snapshot in snapshots if snapshot['uuid'] == snapshotUUID ][0] self.assertTrue(snapshot['name'] == snapshotName) LOG.info('LUN snapshot has not been renamed:\n', snapshot)
def testSetup(self): self.driver = self.getDriver() self.loginPage = LoginPage(driver=self.driver, url=self.webUIHostName) self.headerPage = HeaderPage(driver=self.driver) self.allStoragePage = AllStoragePage(driver=self.driver) self.lunsPage = LUNsPage(driver=self.driver) self.lunDetailsPage = LUNDetailsPage(driver=self.driver) self.lunSnapshotsPage = LUNSnapshotsPage(driver=self.driver) LOG.step('Cleaning out cluster content') snapshots = self.marscluster.snapshot.show(json=True) for snapshot in snapshots: self.marscluster.snapshot.delete(name=snapshot['name'], lun=snapshot['object']) self.assertFalse(self.marscluster.snapshot.show(json=True)) LOG.info('Snapshots destroyed.') luns = express.Luns(node=self.marscluster, cleanup=True) del luns self.assertFalse(self.marscluster.lun.show(json=True)) LOG.info('LUNs destroyed.') self.luns = express.Luns(node=self.marscluster) LOG.step('Signing in') self.loginPage.open() self.loginPage.waitUntilOpen() if self.locale is None: self.locale = self.loginPage.getRandomLocale() self.loginPage.signIn(username=self.username, password=self.password, locale=self.locale) LOG.info('Signed in with username: %s, password: %s, locale: %s.' % (self.username, self.password, self.locale)) LOG.info('Browser landed on header page.') LOG.step('Navigating to LUNs page') self.headerPage.btnManager.click() self.allStoragePage.tabLUNs.click() self.lunsPage.waitUntilOpen() LOG.info('Browser landed on LUNs page.')
def test_dialog_not_available(self): lunNamePrefix = 'LuN' lunName = lunNamePrefix + '_1' snapshotName = lunName + '_snap_0' LOG.step('Creating LUN') self.luns.create(count=1, size='1g', prefix=lunNamePrefix) LOG.info('LUN created:\n', self.marscluster.lun.show(json=True)) LOG.step('Creating LUN snapshot') self.marscluster.snapshot.create(luns=lunName, name=snapshotName) snapshots = self.marscluster.snapshot.show(json=True) snapshot = [ snapshot for snapshot in snapshots if (snapshot['name'] == snapshotName and snapshot['object'] == lunName) ][0] snapshotUUID = snapshot['uuid'] LOG.info('Snapshot created:\n', snapshot) LOG.step("LUN '%s': Opening Snapshots page" % lunName) lunSnapshotsPage = LUNSnapshotsPage( driver=self.driver, url=self.webUIHostName + ('/#manager/storage/allstorage/luns/%s/snapshot' % lunName)) lunSnapshotsPage.open() lunSnapshotsPage.waitUntilOpen() LOG.info('LUN Snapshots page is open.') LOG.step('Unselecting all LUN snapshots in grid') lunSnapshotsPage.gridSnapshots.unselect() selectedSnapshots = lunSnapshotsPage.gridSnapshots.find(selected=True) self.assertFalse(selectedSnapshots) LOG.info('LUN snapshots selected in grid:', selectedSnapshots) LOG.step("Verifying menu 'Edit' is unavailable") self.assertFalse(lunSnapshotsPage.menuEdit.isEnabled()) LOG.info("Menu 'Edit' is enabled:", lunSnapshotsPage.menuEdit.isEnabled())