def removeServiceAccountKey(self, session_key): stanza = get_secure_password_stanza(SERVICE_KEY_USERNAME, SERVICE_KEY_REALM) self.logger.warn("About to delete service key, stanza=%s", stanza) response, _ = simpleRequest('/servicesNS/nobody/search/storage/passwords/' + quote_plus(stanza), sessionKey=session_key, method='DELETE') # Check response if response.status == 200 or response.status == 201: return True else: return False
def uploadServiceAccountKeyJSON(self, file_contents, session_key): # Parse the output service_account_email = None private_key_id = None try: service_account_email, private_key_id = self.parseServiceAccountKey(file_contents, is_base64=True) except ValueError as e: return self.render_error_json(str(e)) # Determine if the key already exists existing_key = self.retrieve_raw_key_info_from_secure_storage(session_key) # Get secure password stanza stanza = get_secure_password_stanza(SERVICE_KEY_USERNAME, SERVICE_KEY_REALM) # Make up the argument array if existing_key is None: postargs = { 'name': SERVICE_KEY_USERNAME, 'password': file_contents, 'realm': SERVICE_KEY_REALM, 'output_mode': 'json', } else: self.logger.info("Service key already exists; it wil be replaced with a new one") postargs = { 'password': file_contents, 'output_mode': 'json', } try: response, content = simpleRequest('/services/storage/passwords/' + quote_plus(stanza), postargs=postargs, sessionKey=session_key, method='POST') # Check response if response.status == 200 or response.status == 201: # Return a response return self.render_json({ 'filename' : '', 'private_key_id' : private_key_id, 'service_account_email' : service_account_email }) else: self.logger.warn("Unable to save the key file, status=%i, response=%r", response.status, content) return self.render_error_json("Unable to save the key file") except: return self.render_error_json("Unable to save the key file")
def refreshServiceAccountKey(self, session_key): stanza = get_secure_password_stanza(SERVICE_KEY_USERNAME, SERVICE_KEY_REALM) _, _ = simpleRequest('/services/storage/passwords/_reload' + quote_plus(stanza), sessionKey=session_key)