def _PlainVolumeAction(self, *unused_args): try: credentials = self._Authenticate(self._EncryptAuth) except glue.Error: return try: username, password = credentials[0:2] # In case username is actually an email: username = username.split('@', 1)[0] except TypeError: return self._PrepTop() Tkinter.Label(self.top_frame, text='Applying encryption...').pack(fill=Tkinter.BOTH, expand=True) self.root.update() try: volume_uuid, recovery_token = glue.ApplyEncryption( self.fvclient, username, password) except glue.Error: return self.ShowFatalError(glue.ENCRYPTION_FAILED_MESSAGE) try: self.fvclient.UploadPassphrase(volume_uuid, recovery_token) except base_client.Error: return self.ShowFatalError(glue.ESCROW_FAILED_MESSAGE) self._PrepTop() # 8 is a magic number ... Tkinter.Label(self.top_frame, text=glue.ENCRYPTION_SUCCESS_MESSAGE).pack( fill=Tkinter.Y, expand=True) cmd = ['ps', 'auwx'] process_list, unused_err, ret = RunProcess(cmd) finder = '/System/Library/CoreServices/Finder.app/Contents/MacOS/Finder\n' if (ret == 0 and process_list and finder in process_list) or ret != 0: btn = Tkinter.Button(self.top_frame, text='Restart now', command=self._RestartNow) btn.pack() countdown = Countdown(label=btn, termination_callback=self._RestartNow) countdown.start() else: btn = Tkinter.Button(self.top_frame, text='OK', command=self.root.quit, default=Tkinter.ACTIVE) btn.bind('<Return>', lambda _: self.root.quit()) btn.pack() btn.focus() countdown = Countdown(label=btn, termination_callback=self.root.quit) countdown.start()
def testOk(self, _): pl = plistlib.readPlistFromString(self.OUTPUT) util.GetPlistFromExec.return_value = pl self.mock_fvclient.SetOwner(self.mock_user) result = glue.ApplyEncryption(self.mock_fvclient, self.mock_user, self.mock_pass) self.assertEqual(('217CEC95-018C-4CA5-964F-4E7235CA2937', 'DLEV-ZYT9-ODLA-PVML-66DV-HZ8R'), result) self._CommonAsserts()
def testOk(self): pl = plistlib.readPlistFromString(self.OUTPUT) glue.util.GetPlistFromExec(mox.IsA(tuple), stdin=mox.StrContains( self.mock_pass)).AndReturn(pl) self.mock_fvclient.SetOwner(self.mock_user) self.mox.ReplayAll() result = glue.ApplyEncryption(self.mock_fvclient, self.mock_user, self.mock_pass) self.assertEquals(('217CEC95-018C-4CA5-964F-4E7235CA2937', 'DLEV-ZYT9-ODLA-PVML-66DV-HZ8R'), result) self.mox.VerifyAll()
def _PlainVolumeAction(self, *unused_args): """Action to encrypt an unencrypted volume.""" user, passwd = self.input_user.get(), self.input_pass.get() try: client_ = self._Authenticate(self._EncryptAuth) if not client_: return except glue.Error: return self._PrepTop('Applying encryption...') try: volume_uuid, recovery_token = glue.ApplyEncryption( client_, user, passwd) except glue.Error: return self.ShowFatalError(glue.ENCRYPTION_FAILED_MESSAGE) try: client_.UploadPassphrase(volume_uuid, recovery_token) except base_client.Error: return self.ShowFatalError(glue.ESCROW_FAILED_MESSAGE) self._PrepTop(glue.ENCRYPTION_SUCCESS_MESSAGE) cmd = ['ps', 'auwx'] process_list, unused_err, ret = RunProcess(cmd) finder = '/System/Library/CoreServices/Finder.app/Contents/MacOS/Finder\n' if (ret == 0 and process_list and finder in process_list) or ret != 0: btn = Tkinter.Button(self.top_frame, text='Restart now', command=self._RestartNow) btn.pack() countdown = Countdown(label=btn, termination_callback=self._RestartNow) countdown.start() else: btn = Tkinter.Button(self.top_frame, text='OK', command=self.root.quit, default=Tkinter.ACTIVE) btn.bind('<Return>', lambda _: self.root.quit()) btn.pack() btn.focus() countdown = Countdown(label=btn, termination_callback=self.root.quit) countdown.start()