class ServerHelper

Constants

CI

Public Class Methods

new(appContext) click to toggle source
# File lib/cloudmunch_Ruby_sdk_v2/ServerHelper.rb, line 23
def initialize(appContext)
    @appContext = appContext
    @cloudmunchDataService = CloudmunchService.new 
end

Public Instance Methods

addServer(server, serverStatus, docker) click to toggle source

This method can be used to add or register a server to cloudmunch data . @param CloudMunchServer server @param string docker

# File lib/cloudmunch_Ruby_sdk_v2/ServerHelper.rb, line 101
def addServer(server, serverStatus, docker)
    
    if serverStatus.empty? then
        log("ERROR", "Server status need to be provided")
        return false
    end

    statusArray = [::STATUS_RUNNING, ::STATUS_STOPPED, ::STATUS_NIL]
    if !statusArray.include?(serverStatus) then
        log("ERROR", "Invalid status")
        return false
    end

    paramHash = {}
    paramHash["description"] = server.description
    paramHash["dnsName"] = server.dns
    paramHash["domainName"] = server.domainName
    paramHash["emailID"] = server.emailID
    paramHash["CI"] = server.CI ? "y" : "n"
    paramHash["deploymentStatus"] = server.deploymentStatus
    paramHash["instanceId"] = server.instanceId
    paramHash["amiID"] = server.imageID
    paramHash["username"] = server.username
    paramHash["build"] = server.build
    paramHash["appName"] = server.appName
    paramHash["deployTempLoc"] = server.deployTempLoc
    paramHash["buildLoc"] = server.buildLocation
    paramHash["privateKeyLoc"] = server.privateKeyLoc
    paramHash["publicKeyLoc"] = server.publicKeyLoc
    paramHash["loginUser"] = server.loginUser
    paramHash["serverType"] = server.serverType
    paramHash["type"] = "server"
    paramHash["status"] = server.status
    paramHash["starttime"] = server.startTime
    paramHash["provider"] = server.provider
    paramHash["region"] = server.region
    paramHash["cmserver"] = server.cmserver
    paramHash["name"] = server.serverName
    paramHash["instancesize"] = server.instanceSize
    paramHash["password"] = server.password
    paramHash["sshport"] = server.sshport
    paramHash["tier"] = server.tier
  
    if server.instance_of?(ElasticBeanStalkServer) then
        paramHash["applicationName"] = server.applicationName
        paramHash["templateName"] = server.templateName
        paramHash["environmentName"] = server.environmentName
        paramHash["bucketName"] = server.bucketName
    end

    paramHash["status"] = serverStatus

    if docker then
        dataInnerHash = {}
        dataInnerHash["buildNo"] = server.build
        dataServerNode = {}
        dataServerNode[server.appName] = dataInnerHash
        paramHash["projects"] = dataServerNode
    end

    serverUrl = @appContext.getMasterURL() + "/applications/" + @appContext.getProject() + "/assets/"
    @cloudmunchDataService.updateDataForContext(serverUrl, @appContext.getAPIKey(), paramHash)
end
checkConnect(dns, sshport) click to toggle source

Checks if server is up and running

@param string dns : dns of target server @param number sshport : ssh port (22) to be used to check for connection @return string Success : displays an appropriate message

Failure  :   exits with a failure status with an appropriate message
# File lib/cloudmunch_Ruby_sdk_v2/ServerHelper.rb, line 244
def checkConnect(dns, sshport)
    connectionTimeout = Time.now 
    connectionTimeout = connectionTimeout + (10 * 10)
    connection = false

    while ((connection == false) && ( Time.now <  connectionTimeout )) do 
        if dns.nil? || dns.empty? then
            log("ERROR", "Invalid dns" + dns)
            return false
        end
        log("INFO", "Checking connectivity to: " + dns)

        connection = ssh2_connect(dns, sshport)
        if connection == false then
            sleep(10)
        end
    end

    if connection == false then
        log("ERROR", "Failed to connect to " + dns )
        return false
    else
        return true
    end
end
checkConnectionToServer(servername) click to toggle source
# File lib/cloudmunch_Ruby_sdk_v2/ServerHelper.rb, line 270
def checkConnectionToServer(servername)
end
checkServerExists(serverName) click to toggle source

This method checks if server exists or is registered in cloudmunch data. @param $servername Name of server. @return boolean

# File lib/cloudmunch_Ruby_sdk_v2/ServerHelper.rb, line 218
def checkServerExists(serverName)
    serverUrl = @appContext.getMasterURL() + "/applications/" + @appContext.getProject() + "/assets/" + serverName

    serverResult = @cloudmunchDataService.getDataForContext(serverUrl, @appContext.getAPIKey(), "")
    if serverResult == nil then  
        return nil
    else
        serverResult = JSON.parse(serverResult)
        serverData = serverResult["data"]
        if serverData.nil? then
            log("ERROR", "Server does not exist") 
            return false
        else
            return true
        end
    end
end
deleteServer(serverID) click to toggle source

This method is to delete server from cloudmunch. @param $serverName Name of server.

# File lib/cloudmunch_Ruby_sdk_v2/ServerHelper.rb, line 208
def deleteServer(serverID)
    serverUrl = @appContext.getMasterURL() + "/applications/" + @appContext.getProject() + "/assets/" + serverID       
    return  @cloudmunchDataService.deleteDataForContext(serverUrl, @appContext.getAPIKey() )
end
getConnectionToServer(servername) click to toggle source
# File lib/cloudmunch_Ruby_sdk_v2/ServerHelper.rb, line 273
def getConnectionToServer(servername)
end
getSSHConnectionHelper() click to toggle source

This method returns SSHConnection helper @return CloudMunchsshConnection

# File lib/cloudmunch_Ruby_sdk_v2/ServerHelper.rb, line 280
def getSSHConnectionHelper()
    return SSHConnection.new
end
getServerName(serverName) click to toggle source

This method retreives the details of server from cloudmunch. @param string $servername Name of the server as registered in cloudmunch. @return CloudMunchServer

# File lib/cloudmunch_Ruby_sdk_v2/ServerHelper.rb, line 33
def getServerName(serverName)
    server = nil
    serverUrl = @appContext.getMasterURL() + "/applications/" + @appContext.getProject() + "/assets/" + serverName
    log("DEBUG", "serverurl from serverhelper:" + serverUrl)

    deployResult = @cloudmunchDataService.getDataForContext(serverUrl, @appContext.getAPIKey(),nil)
    if deployResult == nil then
        return false
    else
        deployResult = JSON.parse(deployResult)
        deployData = deployResult["data"]
        if deployData.nil? then
            log("ERROR", "Server does not exist") 
            return nil
        else
            if (deployResult[serverName].include?("assetname")) && (deployResult[serverName]["assetname"] == "ElasticBeanStalk") then
                server = ElasticBeanStalkServer.new 
            else
                server = Server.new

                server.servername = deployData["id"]
                server.description = deployData["description"]
                server.dns = deployData["dnsName"]
                server.domainName = deployData["domainName"]
                server.CI = deployData["CI"]
                server.deploymentStatus = deployData["deploymentStatus"]
                server.instanceId = deployData["instanceId"]
                server.imageID = deployData["amiID"]
                server.launcheduser = deployData["username"]
                server.build = deployData["build"]
                server.appName = deployData["appName"]
                server.deployTempLoc = deployData["deployTempLoc"]
                server.buildLocation = deployData["buildLoc"]
                server.privateKeyLoc = deployData["privateKeyLoc"]
                server.publicKeyLoc = deployData["publicKeyLoc"]
                server.loginUser = deployData["loginUser"]
                server.serverType = deployData["serverType"]
                server.assetType = deployData["assettype"]
                server.status = deployData["status"]
                server.startTime = deployData["starttime"]
                server.provider = deployData["provider"]
                server.region = deployData["region"]
                server.cmserver = deployData["cmserver"]
                server.assetName = deployData["assetname"]
                server.instanceSize = deployData["instancesize"]
                server.password = deployData["password"]
                server.sshport = deployData["sshport"]
                server.tier = deployData["tier"]
                
                if server.instance_of?(ElasticBeanStalkServer) then
                    server.environmentName = deployData["environmentName"]
                    server.bucketName = deployData["bucketName"]
                    server.applicationName = deployData["applicationName"]
                    server.templateName = deployData["templateName"]
                end

                return server
            end
        end
    end       
end
updateServer(server, serverID) click to toggle source

This method is used to update server data. @param CloudMunchServer server

# File lib/cloudmunch_Ruby_sdk_v2/ServerHelper.rb, line 169
def updateServer(server, serverID)
    paramHash = {}
    paramHash["description"] = server.description
    paramHash["dnsName"] = server.dns
    paramHash["domainName"] = server.domainName
    paramHash["emailID"] = server.emailID
    paramHash["CI"] = server.CI ? "y" : "n"
    paramHash["deploymentStatus"] = server.deploymentStatus
    paramHash["instanceId"] = server.instanceId
    paramHash["amiID"] = server.imageID
    paramHash["username"] = server.username
    paramHash["build"] = server.build
    paramHash["appName"] = server.appName
    paramHash["deployTempLoc"] = server.deployTempLoc
    paramHash["buildLoc"] = server.buildLocation
    paramHash["privateKeyLoc"] = server.privateKeyLoc
    paramHash["publicKeyLoc"] = server.publicKeyLoc
    paramHash["loginUser"] = server.loginUser
    paramHash["serverType"] = server.serverType
    paramHash["type"] = "server"
    paramHash["status"] = server.status
    paramHash["starttime"] = server.startTime
    paramHash["provider"] = server.provider
    paramHash["region"] = server.region
    paramHash["cmserver"] = server.cmserver
    paramHash["name"] = server.serverName
    paramHash["instancesize"] = server.instanceSize
    paramHash["password"] = server.password
    paramHash["sshport"] = server.sshport
    paramHash["tier"] = server.tier

    serverUrl = @appContext.getMasterURL() + "/applications/" + @appContext.getProject() + "/assets/" + serverID  
    return @cloudmunchDataService.updateDataForContext(serverUrl, @appContext.getAPIKey(), paramHash)        
end