def wmDeleteKeyPair(self): try: sKeypairID = uiCommon.getAjaxArg("sKeypairID") sSQL = "delete from cloud_account_keypair where keypair_id = '" + sKeypairID + "'" if not self.db.exec_db_noexcep(sSQL): uiCommon.log(self.db.error) return self.db.error return "" except Exception: uiCommon.log(traceback.format_exc())
def wmSaveCloud(self): sMode = uiCommon.getAjaxArg("sMode") sCloudID = uiCommon.getAjaxArg("sCloudID") sCloudName = uiCommon.getAjaxArg("sCloudName") sProvider = uiCommon.getAjaxArg("sProvider") sAPIUrl = uiCommon.getAjaxArg("sAPIUrl") sAPIProtocol = uiCommon.getAjaxArg("sAPIProtocol") c = None try: if sMode == "add": c, sErr = cloud.Cloud.DBCreateNew(sCloudName, sProvider, sAPIUrl, sAPIProtocol) if sErr: return "{\"error\" : \"" + sErr + "\"}" if c == None: return "{\"error\" : \"Unable to create Cloud.\"}" uiCommon.WriteObjectAddLog(uiGlobals.CatoObjectTypes.Cloud, c.ID, c.Name, "Cloud Created") elif sMode == "edit": c = cloud.Cloud() c.FromID(sCloudID) if c == None: return "{\"error\" : \"Unable to get Cloud using ID [" + sCloudID + "].\"}" c.Name = sCloudName c.APIProtocol = sAPIProtocol c.APIUrl = sAPIUrl #get a new provider by name c.Provider = providers.Provider.FromName(sProvider) result, msg = c.DBUpdate() if not result: uiCommon.log(msg, 2) return "{\"info\" : \"%s\"}" % msg uiCommon.WriteObjectPropertyChangeLog( uiGlobals.CatoObjectTypes.Cloud, c.ID, c.Name, sCloudName, c.Name) if c: return c.AsJSON() else: return "{\"error\" : \"Unable to save Cloud using mode [" + sMode + "].\"}" except Exception: uiCommon.log_nouser(traceback.format_exc(), 0) return traceback.format_exc()
def wmSaveCloud(self): sMode = uiCommon.getAjaxArg("sMode") sCloudID = uiCommon.getAjaxArg("sCloudID") sCloudName = uiCommon.getAjaxArg("sCloudName") sProvider = uiCommon.getAjaxArg("sProvider") sAPIUrl = uiCommon.getAjaxArg("sAPIUrl") sAPIProtocol = uiCommon.getAjaxArg("sAPIProtocol") c = None try: if sMode == "add": c, sErr = cloud.Cloud.DBCreateNew(sCloudName, sProvider, sAPIUrl, sAPIProtocol) if sErr: return "{\"error\" : \"" + sErr + "\"}" if c == None: return "{\"error\" : \"Unable to create Cloud.\"}" uiCommon.WriteObjectAddLog(uiGlobals.CatoObjectTypes.Cloud, c.ID, c.Name, "Cloud Created") elif sMode == "edit": c = cloud.Cloud() c.FromID(sCloudID) if c == None: return "{\"error\" : \"Unable to get Cloud using ID [" + sCloudID + "].\"}" c.Name = sCloudName c.APIProtocol = sAPIProtocol c.APIUrl = sAPIUrl #get a new provider by name c.Provider = providers.Provider.FromName(sProvider) result, msg = c.DBUpdate() if not result: uiCommon.log(msg, 2) return "{\"info\" : \"%s\"}" % msg uiCommon.WriteObjectPropertyChangeLog(uiGlobals.CatoObjectTypes.Cloud, c.ID, c.Name, sCloudName, c.Name) if c: return c.AsJSON() else: return "{\"error\" : \"Unable to save Cloud using mode [" + sMode + "].\"}" except Exception: uiCommon.log_nouser(traceback.format_exc(), 0) return traceback.format_exc()
def wmSaveKeyPair(self): try: sKeypairID = uiCommon.getAjaxArg("sKeypairID") sAccountID = uiCommon.getAjaxArg("sAccountID") sName = uiCommon.getAjaxArg("sName") sPK = uiCommon.getAjaxArg("sPK") sPP = uiCommon.getAjaxArg("sPP") if not sName: return "KeyPair Name is Required." sPK = uiCommon.unpackJSON(sPK) bUpdatePK = False if sPK: bUpdatePK = True bUpdatePP = False if sPP and sPP != "!2E4S6789O": bUpdatePP = True if not sKeypairID: # empty id, it's a new one. sPKClause = "" if bUpdatePK: sPKClause = "'" + catocommon.cato_encrypt(sPK) + "'" sPPClause = "null" if bUpdatePP: sPPClause = "'" + catocommon.cato_encrypt(sPP) + "'" sSQL = "insert into cloud_account_keypair (keypair_id, account_id, keypair_name, private_key, passphrase)" \ " values ('" + catocommon.new_guid() + "'," \ "'" + sAccountID + "'," \ "'" + sName.replace("'", "''") + "'," \ + sPKClause + "," \ + sPPClause + \ ")" else: sPKClause = "" if bUpdatePK: sPKClause = ", private_key = '" + catocommon.cato_encrypt( sPK) + "'" sPPClause = "" if bUpdatePP: sPPClause = ", passphrase = '" + catocommon.cato_encrypt( sPP) + "'" sSQL = "update cloud_account_keypair set" \ " keypair_name = '" + sName.replace("'", "''") + "'" \ + sPKClause + sPPClause + \ " where keypair_id = '" + sKeypairID + "'" if not self.db.exec_db_noexcep(sSQL): uiCommon.log(self.db.error) return self.db.error return "" except Exception: uiCommon.log_nouser(traceback.format_exc(), 0) return traceback.format_exc()
def wmSaveAccount(self): try: sMode = uiCommon.getAjaxArg("sMode") sAccountID = uiCommon.getAjaxArg("sAccountID") sAccountName = uiCommon.getAjaxArg("sAccountName") sAccountNumber = uiCommon.getAjaxArg("sAccountNumber") sProvider = uiCommon.getAjaxArg("sProvider") sLoginID = uiCommon.getAjaxArg("sLoginID") sLoginPassword = uiCommon.getAjaxArg("sLoginPassword") sLoginPasswordConfirm = uiCommon.getAjaxArg( "sLoginPasswordConfirm") sIsDefault = uiCommon.getAjaxArg("sIsDefault") #sAutoManageSecurity = uiCommon.getAjaxArg("sAutoManageSecurity") if sLoginPassword != sLoginPasswordConfirm: return "{\"info\" : \"Passwords must match.\"}" if sMode == "add": ca, sErr = cloud.CloudAccount.DBCreateNew( sAccountName, sAccountNumber, sProvider, sLoginID, sLoginPassword, sIsDefault) if sErr: return "{\"error\" : \"" + sErr + "\"}" if ca is None: return "{\"error\" : \"Unable to create Cloud Account.\"}" else: uiCommon.WriteObjectAddLog( uiGlobals.CatoObjectTypes.CloudAccount, ca.ID, ca.Name, "Account Created") elif sMode == "edit": ca = cloud.CloudAccount() ca.FromID(sAccountID) if ca is None: return "{\"error\" : \"Unable to get Cloud Account using ID [" + sAccountID + "].\"}" else: ca.ID = sAccountID ca.Name = sAccountName ca.AccountNumber = sAccountNumber ca.LoginID = sLoginID ca.LoginPassword = sLoginPassword ca.IsDefault = (True if sIsDefault == "1" else False) # note: we must reassign the whole provider # changing the name screws up the CloudProviders object in the session, which is writable! (oops) ca.Provider = providers.Provider.FromName(sProvider) result, msg = ca.DBUpdate() if not result: uiCommon.log(msg, 2) return "{\"info\" : \"%s\"}" % msg # # what's the original name? # sSQL = "select account_name from cloud_account where account_id = '" + self.ID + "'" # sOriginalName = db.select_col_noexcep(sSQL) # if db.error: # return None, "Error getting original Cloud Account Name:" + db.error uiCommon.WriteObjectPropertyChangeLog( uiGlobals.CatoObjectTypes.CloudAccount, ca.ID, ca.Name, "", ca.Name) if ca: return ca.AsJSON() else: return "{\"error\" : \"Unable to save Cloud Account using mode [" + sMode + "].\"}" except Exception: uiCommon.log("Error: General Exception: " + traceback.format_exc()) # no errors to here, so return an empty object return "{}"
def wmSaveKeyPair(self): try: sKeypairID = uiCommon.getAjaxArg("sKeypairID") sAccountID = uiCommon.getAjaxArg("sAccountID") sName = uiCommon.getAjaxArg("sName") sPK = uiCommon.getAjaxArg("sPK") sPP = uiCommon.getAjaxArg("sPP") if not sName: return "KeyPair Name is Required." sPK = uiCommon.unpackJSON(sPK) bUpdatePK = False if sPK: bUpdatePK = True bUpdatePP = False if sPP and sPP != "!2E4S6789O": bUpdatePP = True if not sKeypairID: # empty id, it's a new one. sPKClause = "" if bUpdatePK: sPKClause = "'" + catocommon.cato_encrypt(sPK) + "'" sPPClause = "null" if bUpdatePP: sPPClause = "'" + catocommon.cato_encrypt(sPP) + "'" sSQL = "insert into cloud_account_keypair (keypair_id, account_id, keypair_name, private_key, passphrase)" \ " values ('" + catocommon.new_guid() + "'," \ "'" + sAccountID + "'," \ "'" + sName.replace("'", "''") + "'," \ + sPKClause + "," \ + sPPClause + \ ")" else: sPKClause = "" if bUpdatePK: sPKClause = ", private_key = '" + catocommon.cato_encrypt(sPK) + "'" sPPClause = "" if bUpdatePP: sPPClause = ", passphrase = '" + catocommon.cato_encrypt(sPP) + "'" sSQL = "update cloud_account_keypair set" \ " keypair_name = '" + sName.replace("'", "''") + "'" \ + sPKClause + sPPClause + \ " where keypair_id = '" + sKeypairID + "'" if not self.db.exec_db_noexcep(sSQL): uiCommon.log(self.db.error) return self.db.error return "" except Exception: uiCommon.log_nouser(traceback.format_exc(), 0) return traceback.format_exc()
def wmSaveAccount(self): try: sMode = uiCommon.getAjaxArg("sMode") sAccountID = uiCommon.getAjaxArg("sAccountID") sAccountName = uiCommon.getAjaxArg("sAccountName") sAccountNumber = uiCommon.getAjaxArg("sAccountNumber") sProvider = uiCommon.getAjaxArg("sProvider") sLoginID = uiCommon.getAjaxArg("sLoginID") sLoginPassword = uiCommon.getAjaxArg("sLoginPassword") sLoginPasswordConfirm = uiCommon.getAjaxArg("sLoginPasswordConfirm") sIsDefault = uiCommon.getAjaxArg("sIsDefault") #sAutoManageSecurity = uiCommon.getAjaxArg("sAutoManageSecurity") if sLoginPassword != sLoginPasswordConfirm: return "{\"info\" : \"Passwords must match.\"}" if sMode == "add": ca, sErr = cloud.CloudAccount.DBCreateNew(sAccountName, sAccountNumber, sProvider, sLoginID, sLoginPassword, sIsDefault) if sErr: return "{\"error\" : \"" + sErr + "\"}" if ca is None: return "{\"error\" : \"Unable to create Cloud Account.\"}" else: uiCommon.WriteObjectAddLog(uiGlobals.CatoObjectTypes.CloudAccount, ca.ID, ca.Name, "Account Created") elif sMode == "edit": ca = cloud.CloudAccount() ca.FromID(sAccountID) if ca is None: return "{\"error\" : \"Unable to get Cloud Account using ID [" + sAccountID + "].\"}" else: ca.ID = sAccountID ca.Name = sAccountName ca.AccountNumber = sAccountNumber ca.LoginID = sLoginID ca.LoginPassword = sLoginPassword ca.IsDefault = (True if sIsDefault == "1" else False) # note: we must reassign the whole provider # changing the name screws up the CloudProviders object in the session, which is writable! (oops) ca.Provider = providers.Provider.FromName(sProvider) result, msg = ca.DBUpdate() if not result: uiCommon.log(msg, 2) return "{\"info\" : \"%s\"}" % msg # # what's the original name? # sSQL = "select account_name from cloud_account where account_id = '" + self.ID + "'" # sOriginalName = db.select_col_noexcep(sSQL) # if db.error: # return None, "Error getting original Cloud Account Name:" + db.error uiCommon.WriteObjectPropertyChangeLog(uiGlobals.CatoObjectTypes.CloudAccount, ca.ID, ca.Name, "", ca.Name) if ca: return ca.AsJSON() else: return "{\"error\" : \"Unable to save Cloud Account using mode [" + sMode + "].\"}" except Exception: uiCommon.log("Error: General Exception: " + traceback.format_exc()) # no errors to here, so return an empty object return "{}"