Exemplo n.º 1
0
    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())
Exemplo n.º 2
0
    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())
Exemplo n.º 3
0
    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()
Exemplo n.º 4
0
    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()
Exemplo n.º 5
0
    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()
Exemplo n.º 6
0
    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 "{}"
Exemplo n.º 7
0
    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()
Exemplo n.º 8
0
    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 "{}"