cloudmunch_sdk_v3 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. checksums.yaml +7 -0
  2. data/lib/cloudmunch_Ruby_sdk_v2/AppAbstract.rb +146 -0
  3. data/lib/cloudmunch_Ruby_sdk_v2/AppContext.rb +59 -0
  4. data/lib/cloudmunch_Ruby_sdk_v2/AssetHelper.rb +127 -0
  5. data/lib/cloudmunch_Ruby_sdk_v2/CloudmunchConstants.rb +24 -0
  6. data/lib/cloudmunch_Ruby_sdk_v2/CloudmunchService.rb +249 -0
  7. data/lib/cloudmunch_Ruby_sdk_v2/ElasticBeanStalkServer.rb +52 -0
  8. data/lib/cloudmunch_Ruby_sdk_v2/EnvironmentHelper.rb +292 -0
  9. data/lib/cloudmunch_Ruby_sdk_v2/InsightHelper.rb +770 -0
  10. data/lib/cloudmunch_Ruby_sdk_v2/IntegrationHelper.rb +69 -0
  11. data/lib/cloudmunch_Ruby_sdk_v2/PluginLoaderAbstract.rb +140 -0
  12. data/lib/cloudmunch_Ruby_sdk_v2/PluginReporterAbstract.rb +141 -0
  13. data/lib/cloudmunch_Ruby_sdk_v2/RoleHelper.rb +170 -0
  14. data/lib/cloudmunch_Ruby_sdk_v2/Server.rb +77 -0
  15. data/lib/cloudmunch_Ruby_sdk_v2/ServerHelper.rb +284 -0
  16. data/lib/cloudmunch_Ruby_sdk_v2/ServiceProvider.rb +25 -0
  17. data/lib/cloudmunch_Ruby_sdk_v2/Util.rb +119 -0
  18. data/lib/cloudmunch_Ruby_sdk_v2/doc/AppAbstract.html +1062 -0
  19. data/lib/cloudmunch_Ruby_sdk_v2/doc/AppContext.html +1402 -0
  20. data/lib/cloudmunch_Ruby_sdk_v2/doc/AssetHelper.html +694 -0
  21. data/lib/cloudmunch_Ruby_sdk_v2/doc/Cloudmunch.html +117 -0
  22. data/lib/cloudmunch_Ruby_sdk_v2/doc/CloudmunchConstants.html +184 -0
  23. data/lib/cloudmunch_Ruby_sdk_v2/doc/CloudmunchService.html +1195 -0
  24. data/lib/cloudmunch_Ruby_sdk_v2/doc/ElasticBeanStalkServer.html +1375 -0
  25. data/lib/cloudmunch_Ruby_sdk_v2/doc/InsightHelper.html +2889 -0
  26. data/lib/cloudmunch_Ruby_sdk_v2/doc/IntegrationHelper.html +400 -0
  27. data/lib/cloudmunch_Ruby_sdk_v2/doc/RoleHelper.html +809 -0
  28. data/lib/cloudmunch_Ruby_sdk_v2/doc/Server.html +2302 -0
  29. data/lib/cloudmunch_Ruby_sdk_v2/doc/ServerHelper.html +1181 -0
  30. data/lib/cloudmunch_Ruby_sdk_v2/doc/ServiceProvider.html +328 -0
  31. data/lib/cloudmunch_Ruby_sdk_v2/doc/Util.html +540 -0
  32. data/lib/cloudmunch_Ruby_sdk_v2/doc/_index.html +214 -0
  33. data/lib/cloudmunch_Ruby_sdk_v2/doc/class_list.html +58 -0
  34. data/lib/cloudmunch_Ruby_sdk_v2/doc/css/common.css +1 -0
  35. data/lib/cloudmunch_Ruby_sdk_v2/doc/css/full_list.css +57 -0
  36. data/lib/cloudmunch_Ruby_sdk_v2/doc/css/style.css +339 -0
  37. data/lib/cloudmunch_Ruby_sdk_v2/doc/file_list.html +57 -0
  38. data/lib/cloudmunch_Ruby_sdk_v2/doc/frames.html +26 -0
  39. data/lib/cloudmunch_Ruby_sdk_v2/doc/index.html +214 -0
  40. data/lib/cloudmunch_Ruby_sdk_v2/doc/js/app.js +219 -0
  41. data/lib/cloudmunch_Ruby_sdk_v2/doc/js/full_list.js +181 -0
  42. data/lib/cloudmunch_Ruby_sdk_v2/doc/js/jquery.js +4 -0
  43. data/lib/cloudmunch_Ruby_sdk_v2/doc/method_list.html +993 -0
  44. data/lib/cloudmunch_Ruby_sdk_v2/doc/top-level-namespace.html +114 -0
  45. data/lib/cloudmunch_Ruby_sdk_v2/version.rb +3 -0
  46. data/lib/cloudmunch_Ruby_sdk_v3/AppAbstract.rb +146 -0
  47. data/lib/cloudmunch_Ruby_sdk_v3/AppContext.rb +59 -0
  48. data/lib/cloudmunch_Ruby_sdk_v3/AssetHelper.rb +127 -0
  49. data/lib/cloudmunch_Ruby_sdk_v3/CloudmunchConstants.rb +24 -0
  50. data/lib/cloudmunch_Ruby_sdk_v3/CloudmunchService.rb +300 -0
  51. data/lib/cloudmunch_Ruby_sdk_v3/ElasticBeanStalkServer.rb +52 -0
  52. data/lib/cloudmunch_Ruby_sdk_v3/EnvironmentHelper.rb +292 -0
  53. data/lib/cloudmunch_Ruby_sdk_v3/InsightHelper.rb +770 -0
  54. data/lib/cloudmunch_Ruby_sdk_v3/IntegrationHelper.rb +69 -0
  55. data/lib/cloudmunch_Ruby_sdk_v3/PluginLoaderAbstract.rb +140 -0
  56. data/lib/cloudmunch_Ruby_sdk_v3/PluginReporterAbstract.rb +141 -0
  57. data/lib/cloudmunch_Ruby_sdk_v3/RoleHelper.rb +170 -0
  58. data/lib/cloudmunch_Ruby_sdk_v3/Server.rb +77 -0
  59. data/lib/cloudmunch_Ruby_sdk_v3/ServerHelper.rb +284 -0
  60. data/lib/cloudmunch_Ruby_sdk_v3/ServiceProvider.rb +25 -0
  61. data/lib/cloudmunch_Ruby_sdk_v3/Util.rb +119 -0
  62. data/lib/cloudmunch_Ruby_sdk_v3/doc/AppAbstract.html +1062 -0
  63. data/lib/cloudmunch_Ruby_sdk_v3/doc/AppContext.html +1402 -0
  64. data/lib/cloudmunch_Ruby_sdk_v3/doc/AssetHelper.html +694 -0
  65. data/lib/cloudmunch_Ruby_sdk_v3/doc/Cloudmunch.html +117 -0
  66. data/lib/cloudmunch_Ruby_sdk_v3/doc/CloudmunchConstants.html +184 -0
  67. data/lib/cloudmunch_Ruby_sdk_v3/doc/CloudmunchService.html +1195 -0
  68. data/lib/cloudmunch_Ruby_sdk_v3/doc/ElasticBeanStalkServer.html +1375 -0
  69. data/lib/cloudmunch_Ruby_sdk_v3/doc/InsightHelper.html +2889 -0
  70. data/lib/cloudmunch_Ruby_sdk_v3/doc/IntegrationHelper.html +400 -0
  71. data/lib/cloudmunch_Ruby_sdk_v3/doc/RoleHelper.html +809 -0
  72. data/lib/cloudmunch_Ruby_sdk_v3/doc/Server.html +2302 -0
  73. data/lib/cloudmunch_Ruby_sdk_v3/doc/ServerHelper.html +1181 -0
  74. data/lib/cloudmunch_Ruby_sdk_v3/doc/ServiceProvider.html +328 -0
  75. data/lib/cloudmunch_Ruby_sdk_v3/doc/Util.html +540 -0
  76. data/lib/cloudmunch_Ruby_sdk_v3/doc/_index.html +214 -0
  77. data/lib/cloudmunch_Ruby_sdk_v3/doc/class_list.html +58 -0
  78. data/lib/cloudmunch_Ruby_sdk_v3/doc/css/common.css +1 -0
  79. data/lib/cloudmunch_Ruby_sdk_v3/doc/css/full_list.css +57 -0
  80. data/lib/cloudmunch_Ruby_sdk_v3/doc/css/style.css +339 -0
  81. data/lib/cloudmunch_Ruby_sdk_v3/doc/file_list.html +57 -0
  82. data/lib/cloudmunch_Ruby_sdk_v3/doc/frames.html +26 -0
  83. data/lib/cloudmunch_Ruby_sdk_v3/doc/index.html +214 -0
  84. data/lib/cloudmunch_Ruby_sdk_v3/doc/js/app.js +219 -0
  85. data/lib/cloudmunch_Ruby_sdk_v3/doc/js/full_list.js +181 -0
  86. data/lib/cloudmunch_Ruby_sdk_v3/doc/js/jquery.js +4 -0
  87. data/lib/cloudmunch_Ruby_sdk_v3/doc/method_list.html +993 -0
  88. data/lib/cloudmunch_Ruby_sdk_v3/doc/top-level-namespace.html +114 -0
  89. data/lib/cloudmunch_Ruby_sdk_v3/version.rb +3 -0
  90. data/lib/cloudmunch_sdk.rb +5 -0
  91. data/lib/cloudmunch_sdk_v3.rb +5 -0
  92. metadata +194 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a307ebe2d38a7538a9b8aafd1e93b1de349aac54
4
+ data.tar.gz: 8407081379ce3deb467a57b3e1f7a8f23d75a5f2
5
+ SHA512:
6
+ metadata.gz: cb485f0f0af99d19a361813d03b7727a3bc15c1da48ad8c23a518c365243d78ff3303102c83891b34d2fea280a8184389a45bc6d1f3450671870d672e13fbd9f
7
+ data.tar.gz: b083500d731499aa79ce7e09352fa79b48983d949102aa6b0765a53906ab85159ed023db233e6f4c9e29d4189890c90bd2b96f8ba3adca31c834e4c4f8da7299
@@ -0,0 +1,146 @@
1
+ #!/usr/bin/ruby
2
+ $LOAD_PATH << '.'
3
+
4
+ require_relative "CloudmunchService"
5
+ require_relative "InsightHelper"
6
+ require_relative "Util"
7
+ require_relative "ServiceProvider"
8
+ require_relative "AppContext"
9
+
10
+ class AppAbstract
11
+ include CloudmunchService
12
+ include InsightHelper
13
+ include Util
14
+
15
+ @@config = nil
16
+
17
+ def initialize(param = nil)
18
+ end
19
+
20
+ def logInit(log_level)
21
+ @logger = @logger ? @logger : Util.logInit()
22
+ @log_level = log_level
23
+ end
24
+
25
+ def log(level,logString)
26
+ if @logger.nil?
27
+ logInit("DEBUG")
28
+ end
29
+ Util.logIt(@logger, @log_level, level.to_s.downcase, logString)
30
+ end
31
+
32
+
33
+ def logClose()
34
+ Util.logClose(@logger)
35
+ end
36
+
37
+ def getJSONArgs()
38
+ jsonin = nil
39
+ varin=nil
40
+ integrations=nil
41
+ loop { case ARGV[0]
42
+ when '-jsoninput' then ARGV.shift; jsonin = ARGV.shift
43
+ when '-variables' then ARGV.shift; varin = ARGV.shift
44
+ when '-integrations' then ARGV.shift; integrations = ARGV.shift
45
+
46
+ when /^-/ then usage("Unknown option: #{ARGV[0].inspect}")
47
+ else break
48
+ end; }
49
+ @json_input = JSON.load(jsonin)
50
+ @var_input =JSON.load(varin)
51
+ @integration_input=JSON.load(integrations)
52
+ createAppContext();
53
+ return @json_input
54
+ end
55
+
56
+ def createAppContext()
57
+ @appContext = AppContext.new(@var_input)
58
+ end
59
+
60
+ def getAppContext()
61
+ return @appContext
62
+ end
63
+
64
+ # def getCloudmunchContext(context)
65
+ # begin
66
+ # return @@config[context+"_context"]
67
+ # rescue
68
+ # return false
69
+ # end
70
+ # end
71
+
72
+ def getCloudmunchService()
73
+ @cloudmunchservice = self.extend(CloudmunchService)
74
+ return @cloudmunchservice
75
+ end
76
+
77
+ def getInsightHelper()
78
+ @insightHelper = self.extend(InsightHelper)
79
+ return @insightHelper
80
+ end
81
+
82
+ def getIntegrationDetails(param = nil)
83
+ serviceProvider = ServiceProvider.new(@json_input["providername"])
84
+ serviceProvider.load_data(@integration_input)
85
+ return serviceProvider
86
+ end
87
+
88
+ def initializeApp()
89
+ end
90
+
91
+ def process()
92
+ end
93
+
94
+ def cleanupApp()
95
+ log("INFO", "\nExiting app")
96
+ end
97
+
98
+ def start()
99
+ initializeApp()
100
+ process()
101
+ cleanupApp()
102
+ end
103
+
104
+ # def openJSONFile(fileNameWithPath)
105
+ # Util.openJSONFile(fileNameWithPath)
106
+ # end
107
+
108
+ # def generateReport(reportFilename, reportString)
109
+ # Util.generateReport(reportFilename, reportString)
110
+ # end
111
+
112
+ # def getDataContextFromCMDB(param)
113
+ # appContext = getAppContext()
114
+ # params = {
115
+ # "username" => @@config['username'],
116
+ # "customcontext" => param["job"] + "_" + param["context"],
117
+ # "action" => "listcustomcontext"
118
+ # }
119
+ # param.delete("context")
120
+ # params = param.merge(params)
121
+
122
+ # return CloudmunchService.getDataContext(appContext.get_data('masterurl'), @@config["endpoint"], params)
123
+ # end
124
+
125
+ # def updateDataContextToCMDB(param)
126
+ # appContext = getAppContext()
127
+ # params = {
128
+ # "username" => @@config['username'],
129
+ # "customcontext" => param["job"] + "_" + param["context"],
130
+ # "action" => "updatecustomcontext"
131
+ # }
132
+ # param.delete("context")
133
+ # params = param.merge(params)
134
+ # return CloudmunchService.updateDataContext(appContext.get_data('masterurl'), @@config['endpoint'], params)
135
+ # end
136
+
137
+ # def getTemplate(template_name)
138
+ # begin
139
+ # Util.getTemplate(template_name)
140
+ # rescue
141
+ # return false
142
+ # end
143
+ # end
144
+
145
+
146
+ end
@@ -0,0 +1,59 @@
1
+ #!/usr/bin/ruby
2
+ ###
3
+ ### (c) CloudMunch Inc.
4
+ ### All Rights Reserved
5
+ ### Un-authorized copying of this file, via any medium is strictly prohibited
6
+ ### Proprietary and confidential
7
+ ###
8
+ ### ganesan@cloudmunch.com
9
+ ###
10
+
11
+ $LOAD_PATH << '.'
12
+
13
+ class AppContext
14
+ attr_accessor :masterurl
15
+ attr_accessor :cloudproviders
16
+ attr_accessor :domainName
17
+ attr_accessor :project
18
+ attr_accessor :job
19
+ attr_accessor :workspaceLocation
20
+ attr_accessor :archiveLocation
21
+ attr_accessor :stepid
22
+ attr_accessor :targetServer
23
+ attr_accessor :integrations
24
+ attr_accessor :reportsLocation
25
+ attr_accessor :runnumber
26
+ attr_accessor :apikey
27
+ attr_accessor :stepname
28
+ attr_accessor :environmentId
29
+
30
+
31
+ def initialize(param)
32
+ @masterurl = ""
33
+ @cloudproviders = ""
34
+ @domainName = ""
35
+ @project = ""
36
+ @job = ""
37
+ @workspaceLocation = ""
38
+ @archiveLocation = ""
39
+ @stepid = ""
40
+ @targetServer=""
41
+ @integrations=""
42
+ @reportsLocation=""
43
+ @runnumber=""
44
+ @apikey=""
45
+ @stepname=""
46
+ @environmentId=""
47
+ load_data(param)
48
+ end
49
+
50
+ def load_data(param)
51
+ @AppContextParams = param
52
+ end
53
+
54
+ def get_data(keyname)
55
+ @AppContextParams[keyname]
56
+ end
57
+
58
+
59
+ end
@@ -0,0 +1,127 @@
1
+ #!/usr/bin/ruby
2
+ ###
3
+ ### (c) CloudMunch Inc.
4
+ ### All Rights Reserved
5
+ ### Un-authorized copying of this file, via any medium is strictly prohibited
6
+ ### Proprietary and confidential
7
+ ###
8
+ ### ganesan@cloudmunch.com
9
+ ###
10
+
11
+ $LOAD_PATH << '.'
12
+ require 'json'
13
+ require_relative "CloudmunchConstants"
14
+
15
+ class AssetHelper
16
+ include CloudmunchService
17
+ include Util
18
+
19
+ @appContext = nil;
20
+ @cmDataManager = nil;
21
+ @logHelper = nil;
22
+
23
+ def initialize(appContext)
24
+ @appContext = appContext
25
+ @cloudmunchDataService = CloudmunchService.new
26
+ end
27
+
28
+ def getAsset(assetID, filterData)
29
+ paramHash = {}
30
+ if !filterData.nil?
31
+ paramHash["filter"] = filterData.to_json
32
+ end
33
+ serverUrl = @appContext.getMasterURL() + "/applications/" + @appContext.getProject() + "/assets/" + assetID
34
+ assetResult = @cloudmunchDataService.getDataForContext(serverUrl, @appContext.getAPIJey(), paramHash)
35
+
36
+ if assetResult == nil then
37
+ log("ERROR", "Unable to get data from cloudmunch")
38
+ return nil
39
+ else
40
+ assetResult = JSON.parse(assetResult)
41
+ assetData = assetResult["data"]
42
+ if assetData.nil? then
43
+ log("ERROR", "Asset does not exist")
44
+ return nil
45
+ else
46
+ return assetData
47
+ end
48
+ end
49
+ end
50
+
51
+ def addAsset(assetName, assetType, assetStatus, assetExternalRef, assetData)
52
+ if assetName.empty? || assetType.empty? || assetStatus.empty? then
53
+ log("ERROR", "Asset name ,status and type need to be provided")
54
+ return false
55
+ end
56
+
57
+ statusArray = [::STATUS_RUNNING, ::STATUS_STOPPED, ::STATUS_NIL]
58
+ if !statusArray.include?(assetStatus) then
59
+ log("ERROR", "Invalid status sent. Allowed values " + ::STATUS_RUNNING, ::STATUS_STOPPED, ::STATUS_NIL)
60
+ return false
61
+ end
62
+
63
+ assetData["name"] = assetName
64
+ assetData["type"] = assetType
65
+ assetData["status"] = assetStatus
66
+ assetData["external_reference"] = assetExternalRef
67
+
68
+ serverUrl = @appContext.getMasterURL() + "/applications/" + @appContext.getProject() + "/assets/"
69
+ retResult = @cloudmunchDataService.updateDataForContext(serverUrl, @appContext.getAPIKey(), assetData)
70
+
71
+ if retResult == nil then
72
+ return nil
73
+ else
74
+ retResult = JSON.parse(retResult)
75
+ retData = retResult["data"]
76
+ if retData.nil? then
77
+ return nil
78
+ else
79
+ return retData
80
+ end
81
+ end
82
+
83
+ end
84
+
85
+
86
+ def updateAsset(assetID, assetData)
87
+ serverUrl = @appContext.getMasterURL() + "/applications/" + @appContext.getProject() + "/assets/" + assetID
88
+ @cloudmunchDataService.updateDataForContext(serverUrl, @appContext.getAPIKey(), assetData)
89
+ end
90
+
91
+ def deleteAsset(assetID)
92
+ serverUrl = @appContext.getMasterURL() + "/applications/" + @appContext.getProject() + "/assets/" + assetID
93
+ @cloudmunchDataService.deleteDataForContext(serverUrl, @appContext.getAPIKey())
94
+ end
95
+
96
+ def updateStatus(assetID, status)
97
+ statusArray = [::STATUS_RUNNING, ::STATUS_STOPPED, ::STATUS_NIL]
98
+ if !statusArray.include?(status) then
99
+ log("ERROR", "Invalid status")
100
+ return false
101
+ end
102
+
103
+ assetData = {}
104
+ assetData["status"] = status
105
+ updateAsset(assetID, assetData)
106
+ end
107
+
108
+ def checkIfAssetExists(assetID)
109
+ serverUrl = @appContext.getMasterURL() + "/applications/" + @appContext.getProject() + "/assets/" + assetID
110
+
111
+ assetResult = @cloudmunchDataService.getDataForContext(serverUrl, @appContext.getAPIKey(), "")
112
+ if assetResult == nil then
113
+ return nil
114
+ else
115
+ assetResult = JSON.parse(assetResult)
116
+ assetData = assetResult["data"]
117
+ if assetData.nil? then
118
+ log("ERROR", "Asset does not exist")
119
+ return false
120
+ else
121
+ return true
122
+ end
123
+ end
124
+ end
125
+
126
+
127
+ end
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/ruby
2
+ ###
3
+ ### (c) CloudMunch Inc.
4
+ ### All Rights Reserved
5
+ ### Un-authorized copying of this file, via any medium is strictly prohibited
6
+ ### Proprietary and confidential
7
+ ###
8
+ ### ganesan@cloudmunch.com
9
+ ###
10
+
11
+ $LOAD_PATH << '.'
12
+
13
+ class CloudmunchConstants
14
+ #Assets
15
+ STATUS_RUNNING = 'running'
16
+ STATUS_STOPPED = 'stopped'
17
+ STATUS_NIL = 'NIL'
18
+
19
+ #Environments
20
+ STATUS_RUNNING_WITH_WARNING = 'running_with_warning'
21
+ STATUS_STOPPED_WITH_ERRORS = 'stopped_with_errors'
22
+ STATUS_ACTION_IN_PROGRESS = 'action_in_progress'
23
+ STATUS_CREATION_IN_PROGRESS = 'creation_in_progress'
24
+ end
@@ -0,0 +1,249 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require 'net/http'
4
+ require 'cgi'
5
+ require 'json'
6
+
7
+ require_relative "Util"
8
+
9
+ module CloudmunchService
10
+ include Util
11
+
12
+ ##################################################################################
13
+ ###
14
+ ### downloadKeys(filekey, context, contextid)
15
+ ### deleteKeys()
16
+ ### getCloudmunchData(paramHash)
17
+ ### updateCloudmunchData(paramHash, method = "POST")
18
+ ### deleteCloudmunchData(paramHash)
19
+ ### parseResponse(responseJson)
20
+ ### generateServerURL(paramHash, appendQueryParams = nil)
21
+ ###
22
+ ###
23
+ ##################################################################################
24
+
25
+ def downloadKeys(filekey, context, contextid)
26
+
27
+ paramHash = Hash.new
28
+ paramHash["context"] = context
29
+ paramHash["contextID"] = contextid
30
+ paramHash["file"] = filekey
31
+
32
+ keyString = getCloudmunchData(paramHash)
33
+
34
+ if !keyString.to_s == ""
35
+ log("ERROR", "downloaded key content is empty, please re-upload key and try")
36
+ return nil
37
+ end
38
+
39
+ filename = "keyfile_" + Time.now.strftime('%Y%m%d%H%M%S%L')
40
+ file = @appContext.get_data("{workspace}")+"/"+filename
41
+
42
+ File.open(file, 'w') { |file| file.write(keyString) }
43
+ system('chmod 400 '+file)
44
+
45
+ if @keyArray.nil?
46
+ @keyArray = []
47
+ end
48
+
49
+ @keyArray.push(file)
50
+ return file;
51
+ end
52
+
53
+ def deleteKeys()
54
+ fileName = @appContext.get_data("{workspace}")+"/keyfile_*"
55
+ File.delete(fileName)
56
+ end
57
+
58
+ def getCloudmunchData(paramHash)
59
+ serverurl = nil
60
+ serverurl = generateServerURL(paramHash,true)
61
+
62
+ if serverurl.nil?
63
+ log("DEBUG", "Unable to generate server url")
64
+ log("ERROR", "Unable to get data from cloudmunch")
65
+ return nil
66
+ end
67
+
68
+ uri = URI.parse(serverurl)
69
+
70
+ log("DEBUG", "URI for get : ")
71
+ log("DEBUG", uri)
72
+
73
+ responseJson = Net::HTTP.get(uri)
74
+
75
+ parseResponse(responseJson)
76
+ end
77
+
78
+ def updateCloudmunchData(paramHash, method = "POST")
79
+ paramData = Hash.new
80
+ paramData["data"] = paramHash["data"]
81
+
82
+ serverurl = nil
83
+ serverurl = generateServerURL(paramHash)
84
+
85
+ if serverurl.nil?
86
+ log("DEBUG", "Unable to generate server url")
87
+ log("ERROR", "Unable to "+method+" data on cloudmunch")
88
+ return nil
89
+ end
90
+
91
+ uri = URI.parse(serverurl)
92
+
93
+ log("DEBUG", "URI for "+method+" : ")
94
+ log("DEBUG", uri)
95
+
96
+ if method.casecmp("post") == 0
97
+ responseJson = Net::HTTP.post_form(uri,"data" => paramData.to_json)
98
+ elsif method.casecmp("patch") == 0
99
+ #code for patch
100
+ elsif method.casecmp("put") == 0
101
+ #code for put
102
+ end
103
+ return parseResponse(responseJson.body)
104
+ end
105
+
106
+ def deleteCloudmunchData(paramHash)
107
+ paramContext = paramHash["context"]
108
+ paramContextID = paramHash["contextID"]
109
+
110
+ if !paramContext.nil? && !paramContext.empty? && !paramContextID.nil? && !paramContextID.empty?
111
+ serverurl=@appContext.get_data("{master_url}")+"/applications/"+@appContext.get_data("{application}")+"/"+context+"/"+contextID;
112
+ serverurl=serverurl+"?apikey="+@appContext.get_data("{api_key}")
113
+ uri = URI.parse(serverurl)
114
+ Net::HTTP::Delete(uri)
115
+ return 1
116
+ else
117
+ return nil
118
+ end
119
+ end
120
+
121
+ def parseResponse(responseJson)
122
+ begin
123
+ JSON.parse(responseJson)
124
+ rescue
125
+ return responseJson
126
+ end
127
+
128
+ requestDetails = (JSON.load(responseJson))['request']
129
+ responseData = (JSON.load(responseJson))['data']
130
+
131
+ log("DEBUG", "Response : ")
132
+ log("DEBUG", responseJson)
133
+
134
+ if !requestDetails['status'].nil? && requestDetails['status'].casecmp('success') == 0
135
+ return responseData
136
+ else
137
+ if !requestDetails['message'].nil?
138
+ log("ERROR", requestDetails['message'])
139
+ end
140
+ return nil
141
+ end
142
+ end
143
+
144
+
145
+
146
+ def generateServerURL(paramHash, appendQueryParams = nil)
147
+
148
+ serverurl = ""
149
+
150
+ if !paramHash["url"].nil?
151
+ serverurl = @appContext.get_data("{master_url}")+"/"+paramHash["url"]
152
+ elsif !paramHash["context"].nil?
153
+ paramContext = paramHash["context"].nil? ? nil : paramHash["context"]
154
+ paramContextID = paramHash["contextID"].nil? ? nil : paramHash["contextID"]
155
+ paramSubContext = paramHash["subContext"].nil? ? nil : paramHash["subContext"]
156
+ paramSubContextID = paramHash["subContextID"].nil? ? nil : paramHash["subContextID"]
157
+ paramLeafContext = paramHash["leafContext"].nil? ? nil : paramHash["leafContext"]
158
+ paramLeafContextID = paramHash["leafContextID"].nil? ? nil : paramHash["leafContextID"]
159
+
160
+ serverurl=@appContext.get_data("{master_url}")+"/applications/"+@appContext.get_data("{application}")+"/"+paramContext
161
+
162
+ if !paramContextID.nil? && !paramContextID.empty?
163
+ serverurl=serverurl+"/"+paramContextID;
164
+ if !paramSubContext.nil? && !paramSubContext.empty?
165
+ serverurl=serverurl+"/"+paramSubContext;
166
+ if !paramSubContextID.nil? && !paramSubContextID.empty?
167
+ serverurl=serverurl+"/"+paramSubContextID;
168
+ if !paramLeafContext.nil? && !paramLeafContext.empty?
169
+ serverurl=serverurl+"/"+paramLeafContext;
170
+ if !paramLeafContextID.nil? && !paramLeafContextID.empty?
171
+ serverurl=serverurl+"/"+paramLeafContextID;
172
+ end
173
+ end
174
+ end
175
+ end
176
+ end
177
+ else
178
+ log("DEBUG", "No context provided for get api call");
179
+ return nil
180
+ end
181
+
182
+ queryString = ""
183
+
184
+ if !appendQueryParams.nil?
185
+ queryString = queryString + "filter=" + paramHash["filter"].to_json + "&" if !paramHash["filter"].nil?
186
+ queryString = queryString + "file=" + paramHash["file"].to_s + "&" if !paramHash["file"].nil?
187
+ queryString = queryString + "fields=" + paramHash["fields"].to_s + "&" if !paramHash["fields"].nil?
188
+ queryString = queryString + "count=" + paramHash["count"].to_s + "&" if !paramHash["count"].nil?
189
+ queryString = queryString + "offset=" + paramHash["offset"].to_s + "&" if !paramHash["offset"].nil?
190
+ queryString = queryString + "request_category=" + paramHash["requestCategory"].to_s + "&" if !paramHash["requestCategory"].nil?
191
+ queryString = queryString + "order_by=" + paramHash["orderBy"].to_s + "&" if !paramHash["orderBy"].nil?
192
+ queryString = queryString + "group_by=" + paramHash["groupBy"].to_s + "&" if !paramHash["groupBy"].nil?
193
+ end
194
+ serverurl = serverurl+"?"+queryString+"apikey="+@appContext.get_data("{api_key}")
195
+ return serverurl
196
+ end
197
+
198
+ def self.putCustomDataContext(server, endpoint, param)
199
+ result = self.http_post(server, endpoint, param)
200
+
201
+ if result.code.to_s == "200"
202
+ return true
203
+ else
204
+ return false
205
+ end
206
+ end
207
+
208
+ def self.getCustomDataContext(server, endpoint, param)
209
+ return self.http_get(server, endpoint, param)
210
+ end
211
+
212
+ def self.http_get(server,path,params)
213
+ if params.nil?
214
+ return Net::HTTP.get(server, path)
215
+ else
216
+ queryStr = "#{path}?".concat(params.collect { |k,v| "#{k}=#{CGI::escape(v.to_s)}" }.join('&'))
217
+ puts ("SDKDEBUG: Calling URL " + server+queryStr)
218
+ uri = URI(server + "/" + queryStr)
219
+ return Net::HTTP.get(uri)
220
+ end
221
+ end
222
+
223
+ def self.http_post(server,path,params)
224
+ queryStr = "#{path}?".concat(params.collect { |k,v| "#{k}=#{CGI::escape(v.to_s)}" }.join('&'))
225
+ puts ("SDKDEBUG: Calling URL " + server+queryStr)
226
+ if params.nil?
227
+ return Net::HTTP.post(server, path)
228
+ else
229
+ uri = URI(server + path)
230
+ return Net::HTTP.post_form(uri, params)
231
+ end
232
+ end
233
+
234
+ # def self.getDataContext(server, endpoint, param)
235
+ # getCustomDataContext(server, endpoint, param)
236
+ # end
237
+
238
+ # def self.updateDataContext(server, endpoint, param)
239
+ # putCustomDataContext(server, endpoint, param)
240
+ # end
241
+
242
+ def getDataForContext(server, endpoint, param)
243
+ getCustomDataContext(server, endpoint, param)
244
+ end
245
+
246
+ def updateDataForContext(server, endpoint, param)
247
+ putCustomDataContext(server, endpoint, param)
248
+ end
249
+ end