cloudmunch_sdk 0.7.0 → 1.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 (28) hide show
  1. checksums.yaml +4 -4
  2. data/lib/cloudmunch_Ruby_sdk_v2/AppAbstract.rb +60 -71
  3. data/lib/cloudmunch_Ruby_sdk_v2/AppContext.rb +44 -2
  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 +88 -546
  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 +10 -2
  17. data/lib/cloudmunch_Ruby_sdk_v2/Util.rb +30 -35
  18. data/lib/cloudmunch_Ruby_sdk_v2/version.rb +1 -1
  19. metadata +13 -11
  20. data/lib/cloudmunch_Ruby_sdk_v2/templates/costview_meta.json +0 -22
  21. data/lib/cloudmunch_Ruby_sdk_v2/templates/coverageview_meta.json +0 -34
  22. data/lib/cloudmunch_Ruby_sdk_v2/templates/defecttrendview_meta.json +0 -67
  23. data/lib/cloudmunch_Ruby_sdk_v2/templates/ilityview_meta.json +0 -66
  24. data/lib/cloudmunch_Ruby_sdk_v2/templates/inboundoutboundview_meta.json +0 -67
  25. data/lib/cloudmunch_Ruby_sdk_v2/templates/riskview_meta.json +0 -19
  26. data/lib/cloudmunch_Ruby_sdk_v2/templates/scopeview_meta.json +0 -60
  27. data/lib/cloudmunch_Ruby_sdk_v2/templates/timeview_meta.json +0 -60
  28. data/lib/cloudmunch_Ruby_sdk_v2/templates/velocityview_meta.json +0 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 62f77e9360bb900fb478f2f53f126f0ec8415370
4
- data.tar.gz: 64405240eb61c16234e7f5aa043c79f7cd6e235a
3
+ metadata.gz: 235f0fb0275fa62d48de2cd67b378331beb99e02
4
+ data.tar.gz: 3acb35f525fe837908a1dfb8671118d7da5ac605
5
5
  SHA512:
6
- metadata.gz: cda6786a698876f0742d58857c4b9e0c6a4d5ae4ffbced16dd74ac0cc740f7bf0cac41c3a642822e56bcc89b6d968e1d7872b19d5407367721a32535ffaa73c7
7
- data.tar.gz: a7817398062304b3a6f246107eb34c7dbd1da81a926c2a0a6b115acc7c3add3dad4d4ebe257c721de46c3354532fbdc8a2f1f399ecdb4de410e15e89a03f491a
6
+ metadata.gz: 4926e7a3b77dd1ba611f9d199bab152312ab70bb233383f8fa2217ba16f1dc7f1f373f2caefd32628f586e23d052b9ecd03ba5ccd5fdf4f7c82e360b526e0964
7
+ data.tar.gz: bcdd1c1925b55321135008b1f6e35f5a251f9ff8f72582d4aab28300e21f0f1c37aa158439d658120ec578ff403eaa9f93cee6bba621b1e03cc15e1b18662382
@@ -2,22 +2,21 @@
2
2
  $LOAD_PATH << '.'
3
3
 
4
4
  require_relative "CloudmunchService"
5
+ require_relative "InsightHelper"
5
6
  require_relative "Util"
6
7
  require_relative "ServiceProvider"
7
8
  require_relative "AppContext"
8
9
 
9
10
  class AppAbstract
10
11
  include CloudmunchService
12
+ include InsightHelper
11
13
  include Util
12
14
 
13
- #@@config_path = ENV["SDK_CONFIG_PATH"]+"/sdk_config.json"
14
15
  @@config = nil
15
16
 
16
17
  def initialize(param = nil)
17
- @domain, @project, @logfile = "", "", ""
18
18
  end
19
19
 
20
-
21
20
  def logInit(log_level)
22
21
  @logger = @logger ? @logger : Util.logInit()
23
22
  @log_level = log_level
@@ -52,106 +51,96 @@ class AppAbstract
52
51
  @integration_input=JSON.load(integrations)
53
52
  createAppContext();
54
53
  return @json_input
55
- end
54
+ end
56
55
 
57
56
  def createAppContext()
57
+ @appContext = AppContext.new(@var_input)
58
+ end
58
59
 
59
- @appContext = AppContext.new(@var_input)
60
-
60
+ def getAppContext()
61
+ return @appContext
61
62
  end
62
63
 
64
+ # def getCloudmunchContext(context)
65
+ # begin
66
+ # return @@config[context+"_context"]
67
+ # rescue
68
+ # return false
69
+ # end
70
+ # end
71
+
63
72
  def getCloudmunchService()
64
- # @cloudmunchservice = @cloudmunchservice ? @cloudmunchservice : CloudmunchService.new(@var_input)
65
- # @cloudmunchservice = @cloudmunchservice ? @cloudmunchservice : CloudmunchService.initialize(@appContext)
66
73
  @cloudmunchservice = self.extend(CloudmunchService)
67
74
  return @cloudmunchservice
68
- end
69
- def openJSONFile(fileNameWithPath)
70
- Util.openJSONFile(fileNameWithPath)
71
75
  end
72
76
 
73
- def generateReport(reportFilename, reportString)
74
- Util.generateReport(reportFilename, reportString)
75
- end
77
+ def getInsightHelper()
78
+ @insightHelper = self.extend(InsightHelper)
79
+ return @insightHelper
80
+ end
76
81
 
77
82
  def getIntegrationDetails(param = nil)
78
- #@json_input = @json_input ? @json_input : getJSONArgs()
79
83
  serviceProvider = ServiceProvider.new(@json_input["providername"])
80
84
  serviceProvider.load_data(@integration_input)
81
85
  return serviceProvider
82
86
  end
83
-
84
- def getAppContext()
85
- return @appContext
86
- end
87
-
88
- def getDataContextFromCMDB(param)
89
- appContext = getAppContext()
90
- params = {
91
- "username" => @@config['username'],
92
- "customcontext" => param["job"] + "_" + param["context"],
93
- "action" => "listcustomcontext"
94
- }
95
- param.delete("context")
96
- params = param.merge(params)
97
-
98
- return CloudmunchService.getDataContext(appContext.get_data('masterurl'), @@config["endpoint"], params)
99
- end
100
-
101
- def updateDataContextToCMDB(param)
102
- appContext = getAppContext()
103
- params = {
104
- "username" => @@config['username'],
105
- "customcontext" => param["job"] + "_" + param["context"],
106
- "action" => "updatecustomcontext"
107
- }
108
- param.delete("context")
109
- params = param.merge(params)
110
- return CloudmunchService.updateDataContext(appContext.get_data('masterurl'), @@config['endpoint'], params)
111
- end
112
-
113
-
114
- def getCMContext(context)
115
- begin
116
- return @@config[context+"_context"]
117
- rescue
118
- return false
119
- end
120
- end
121
-
122
- def getTemplate(template_name)
123
- begin
124
- Util.getTemplate(template_name)
125
- rescue
126
- return false
127
- end
128
- end
129
-
130
- def load_config()
131
- @@config = openJSONFile(@@config_path)
132
- end
133
87
 
134
88
  def initializeApp()
135
- #puts "initializeApp from AppAbstract"
136
89
  end
137
90
 
138
91
  def process()
139
- #puts "process func from AppAbstract"
140
92
  end
141
93
 
142
94
  def cleanupApp()
143
95
  log("INFO", "\nExiting app")
144
- #puts "cleanupApp from AppAbstract"
145
96
  end
146
97
 
147
98
  def start()
148
- # load_config is commented out as this config file is not required now
149
- #load_config()
150
99
  initializeApp()
151
100
  process()
152
101
  cleanupApp()
153
102
  end
154
103
 
155
- private :load_config
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
+
156
145
 
157
146
  end
@@ -1,8 +1,49 @@
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
+ ###
1
10
 
2
-
11
+ $LOAD_PATH << '.'
12
+
3
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
+
4
30
 
5
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=""
6
47
  load_data(param)
7
48
  end
8
49
 
@@ -14,4 +55,5 @@ class AppContext
14
55
  @AppContextParams[keyname]
15
56
  end
16
57
 
17
- end
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
@@ -7,411 +7,72 @@ require 'json'
7
7
  require_relative "Util"
8
8
 
9
9
  module CloudmunchService
10
- include Util
11
-
12
- # def self.initialize(appcontext)
13
- # @appContext=appcontext
14
- # end
15
-
16
- def getDataStoreID(insightID, dataStoreName)
17
- if insightID.nil? || dataStoreName.nil?
18
- log("DEBUG", "insight id and datastore name is needed to get datastore id")
19
- return nil
20
- end
21
-
22
- paramHash = Hash.new
23
- paramHash["insightID"] = insightID
24
- paramHash["filter"] = {"name" => dataStoreName}
25
- paramHash["count"] = 1
26
- paramHash["fields"] = "id"
27
-
28
- dataStore = getInsightDataStores(paramHash)
29
- if dataStore.nil? || !dataStore.any?
30
- log("DEBUG", "Data store with name "+dataStoreName+" does not exist")
31
- return nil
32
- else
33
- return dataStore[0]["id"]
34
- end
35
- end
36
-
37
- def getReportID(insightID, reportName)
38
- if insightID.nil? || reportName.nil?
39
- log("DEBUG", "insight id and report name is needed to get report id")
40
- return nil
41
- end
42
-
43
- paramHash = Hash.new
44
- paramHash["insightID"] = insightID
45
- paramHash["filter"] = {"name" => reportName}
46
- paramHash["count"] = 1
47
- paramHash["fields"] = "id"
48
-
49
- report = getInsightReports(paramHash)
50
- if report.nil? || !report.any?
51
- log("DEBUG", "Report with name "+reportName+" does not exist")
52
- return nil
53
- else
54
- return report[0]["id"]
55
- end
56
- end
57
-
58
- def getExtractID(insightID, dataStoreID, extractName)
59
- if insightID.nil? || dataStoreID.nil? || extractName.nil?
60
- log("DEBUG", "insight id, datastore id and extract name is needed to get extract id")
61
- return nil
62
- end
63
-
64
- extract = nil
65
- paramHash = Hash.new
66
- paramHash["insightID"] = insightID
67
- paramHash["dataStoreID"] = dataStoreID
68
- paramHash["filter"] = {"name" => extractName}
69
- paramHash["count"] = 1
70
- paramHash["fields"] = "id"
71
-
72
- extract = getInsightDataStoreExtracts(paramHash)
73
- if extract.nil? || !extract.any?
74
- log("DEBUG", "Data store with name "+extractName+" does not exist")
75
- return nil
76
- else
77
- return extract[0]["id"]
78
- end
79
- end
80
-
81
- def getReportCardID(insightID, reportID, cardName)
82
- if insightID.nil? || reportID.nil? || cardName.nil?
83
- log("DEBUG", "insight id, report id and card name is needed to get report card id")
84
- return nil
85
- end
86
-
87
- card = nil
88
- paramHash = Hash.new
89
- paramHash["insightID"] = insightID
90
- paramHash["reportID"] = reportID
91
- paramHash["filter"] = {"name" => cardName}
92
- paramHash["count"] = 1
93
- paramHash["fields"] = "id"
94
-
95
- card = getInsightReportCards(paramHash)
96
- if card.nil? || !card.any?
97
- log("DEBUG", "Report with name "+cardName+" does not exist")
98
- return nil
99
- else
100
- return card[0]["id"]
101
- end
102
- end
103
-
104
- def getKeyMetricID(insightID, reportID, keyMetricName)
105
- extract = nil
106
- paramHash = Hash.new
107
- paramHash["insightID"] = insightID
108
- paramHash["reportID"] = reportID
109
- paramHash["filter"] = {"name" => keyMetricName}
110
- paramHash["count"] = 1
111
- paramHash["fields"] = "id"
112
-
113
- keyMetric = getInsightReportCards(paramHash)
114
- if keyMetric.nil? || !keyMetric.any?
115
- log("DEBUG", "Report key metric with name "+keyMetricName+" does not exist")
116
- return nil
117
- else
118
- return keyMetric[0]["id"]
119
- end
120
- end
121
-
122
- def createInsight(insightName)
123
- if !insightName.nil?
124
- insightID = nil
125
- insightID = getInsightID(insightName)
126
-
127
- if !insightID.nil?
128
- log("DEBUG", "Insight with name "+insightName+" already exists!")
129
- return insightID
130
- else
131
- paramHash = {}
132
- paramHash["context"] = "insights"
133
- paramHash["data"] = {"name" => insightName}
134
- insight = updateCloudmunchData(paramHash)
135
-
136
- if insight["id"].nil?
137
- log("DEBUG", "Unable to create insight : "+insightName+"! refer log for more details")
138
- return nil
139
- else
140
- return insight["id"]
141
- end
142
- end
143
- else
144
- log("DEBUG", "Insights name is needed for creating an insight")
145
- return nil
146
- end
147
- end
148
-
149
- def createInsightDataStore(insightID, dataStoreName)
150
- if !dataStoreName.nil? && !dataStoreName.empty? && !insightID.nil?
151
- dataStoreID = nil
152
- dataStoreID = getDataStoreID(insightID, dataStoreName)
153
-
154
- if !dataStoreID.nil?
155
- log("DEBUG", "Data store with name "+dataStoreName+" already exists!")
156
- return dataStoreID
157
- else
158
- paramHash = {}
159
- paramHash["context"] = "insights"
160
- paramHash["contextID"] = insightID
161
- paramHash["subContext"] = "datastores"
162
- paramHash["data"] = {"name" => dataStoreName}
163
- dataStore = updateCloudmunchData(paramHash)
164
-
165
- if dataStore["id"].nil?
166
- return nil
167
- else
168
- return dataStore["id"]
169
- end
170
- end
171
- else
172
- log("DEBUG", "Datastore name and insights id is needed for creating a data store")
173
- return nil
174
- end
175
- end
176
-
177
- def createInsightDataStoreExtract(insightID, dataStoreID, extractName)
178
- if !extractName.nil? && !extractName.empty? && !insightID.nil? && !dataStoreID.nil?
179
-
180
- extractID = nil
181
- extractID = getExtractID(insightID, dataStoreID, extractName)
182
-
183
- if !extractID.nil?
184
- return extractID
185
- else
186
- paramHash = Hash.new
187
- paramHash["context"] = "insights"
188
- paramHash["contextID"] = insightID
189
- paramHash["subContext"] = "datastores"
190
- paramHash["subContextID"] = dataStoreID
191
- paramHash["leafContext"] = "extracts"
192
- paramHash["data"] = {"name" => extractName}
193
-
194
- log("DEBUG", "Attempting creation of extract with name " + extractName + "...")
195
- extract = updateCloudmunchData(paramHash)
196
-
197
- if extract["id"].nil? then return nil else extract["id"] end
198
- end
199
- else
200
- log("DEBUG", "Extract name, insights id and datastore id is needed for creating an extract")
201
- return nil
202
- end
203
- end
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)
204
33
 
205
- def createInsightReportCard(insightID, reportID, cardName)
206
- if !cardName.nil? && !cardName.empty? && !insightID.nil? && !reportID.nil?
207
-
208
- cardID = nil
209
- cardID = getReportCardID(insightID, reportID, cardName)
210
-
211
- if !cardID.nil?
212
- return cardID
213
- else
214
- paramHash = Hash.new
215
- paramHash["context"] = "insights"
216
- paramHash["contextID"] = insightID
217
- paramHash["subContext"] = "insight_reports"
218
- paramHash["subContextID"] = reportID
219
- paramHash["leafContext"] = "insight_cards"
220
- paramHash["data"] = {"name" => cardName}
221
-
222
- log("DEBUG", "Attempting creation of report card with name " + cardName + "...")
223
- card = updateCloudmunchData(paramHash)
224
-
225
- if card["id"].nil? then return nil else card["id"] end
226
- end
227
- else
228
- log("DEBUG", "Extract name, insight id and report id is needed for creating a report card")
229
- return nil
230
- end
231
- end
232
-
233
- def createInsightReportKeyMetric(insightID, reportID, keyMetricName)
234
- if !keyMetricName.nil? && !keyMetricName.empty? && !insightID.nil? && !reportID.nil?
235
-
236
- keyMetricID = nil
237
- keyMetricID = getReportKeyMetricID(insightID, reportID, keyMetricName)
238
-
239
- if !keyMetricID.nil?
240
- return keyMetricID
241
- else
242
- paramHash = Hash.new
243
- paramHash["context"] = "insights"
244
- paramHash["contextID"] = insightID
245
- paramHash["subContext"] = "insight_reports"
246
- paramHash["subContextID"] = reportID
247
- paramHash["leafContext"] = "insight_cards"
248
- paramHash["data"] = {"name" => keyMetricName}
249
-
250
- log("DEBUG", "Attempting creation of report key metric with name " + keyMetricName + "...")
251
- keyMetric = updateCloudmunchData(paramHash)
252
-
253
- if keyMetric["id"].nil? then return nil else keyMetric["id"] end
254
- end
255
- else
256
- log("DEBUG", "Key metric name, insight id and report id is needed for creating a report key metric")
257
- return nil
258
- end
259
- end
260
-
261
- def createInsightReport(insightID, reportName)
262
- if !reportName.nil? && !reportName.empty? && !insightID.nil?
263
-
264
- reportID = nil
265
- reportID = getExtractID(insightID, reportName)
266
-
267
- if !reportID.nil?
268
- return reportID
269
- else
270
- paramHash = Hash.new
271
- paramHash["context"] = "insights"
272
- paramHash["contextID"] = insightID
273
- paramHash["subContext"] = "insight_reports"
274
- paramHash["data"] = {"name" => reportName}
275
-
276
- log("DEBUG", "Attempting creation of report with name " + reportName + "...")
277
- report = updateCloudmunchData(paramHash)
278
-
279
- if report["id"].nil? then return nil else report["id"] end
280
- end
281
- else
282
- log("DEBUG", "Report name and insight id is needed for creating a report")
283
- return nil
284
- end
285
- end
286
-
287
- def updateInsightDataStoreExtract(insightID, dataStoreID, data)
288
- # /applications/{application_id}/insights/{insight_id}/datastores/{datastore_id}
289
-
290
- if (insightID.nil? || insightID.empty?) && (dataStoreID.nil? || dataStoreID.empty?) && data.nil?
291
- log("DEBUG", "Insight id, datastore id and data is needed to be update an existing data store")
292
- return nil
293
- end
294
- paramHash = {}
295
- paramHash["context"] = "insights"
296
- paramHash["contextID"] = insightID
297
- paramHash["subContext"] = "datastores"
298
- paramHash["subContextID"] = dataStoreID
299
- paramHash["data"] = data
300
- return updateCloudmunchData(paramHash)
301
- end
302
-
303
- def updateInsightReport(insightID, reportID, data)
304
- # /applications/{application_id}/insights/{insight_id}/insight_reports/{insight_report_id}
305
-
306
- if (insightID.nil? || insightID.empty?) && (reportID.nil? || reportID.empty?) && data.nil?
307
- log("DEBUG", "Insight id, report id and data is needed to be update an existing report")
308
- return nil
309
- end
310
- paramHash = {}
311
- paramHash["context"] = "insights"
312
- paramHash["contextID"] = insightID
313
- paramHash["subContext"] = "insight_reports"
314
- paramHash["subContextID"] = reportID
315
- paramHash["data"] = data
316
- return updateCloudmunchData(paramHash)
317
- end
318
-
319
- def updateInsightDataStoreExtract(insightID, dataStoreID, extractID, data)
320
- # /insights/{insight_id}/datastores/{datastore_id}/extracts/{extract_id}
321
-
322
- if (insightID.nil? || insightID.empty?) && (dataStoreID.nil? || dataStoreID.empty?) && (extractID.nil? || extractID.empty?) && data.nil?
323
- log("DEBUG", "Insight id, datastore id, extract id and data is needed to be update an existing extract")
34
+ if !keyString.to_s == ""
35
+ log("ERROR", "downloaded key content is empty, please re-upload key and try")
324
36
  return nil
325
37
  end
326
- paramHash = {}
327
- paramHash["context"] = "insights"
328
- paramHash["contextID"] = insightID
329
- paramHash["subContext"] = "datastores"
330
- paramHash["subContextID"] = dataStoreID
331
- paramHash["leafContext"] = "extracts"
332
- paramHash["leafContextID"] = extractID
333
- paramHash["data"] = data
334
- return updateCloudmunchData(paramHash)
335
- end
336
-
337
-
338
- def updateInsightReportCard(insightID, reportID, cardID, data)
339
- # /applications/{application_id}/insights/{insight_id}/insight_reports/{insight_report_id}/insight_cards/{insight_card_id}
340
-
341
- if (insightID.nil? || insightID.empty?) && (reportID.nil? || reportID.empty?) && (cardID.nil? || cardID.empty?) && data.nil?
342
- log("DEBUG", "Insight id, report id, cardID and data is needed to be update an existing report card")
343
- return nil
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 = []
344
47
  end
345
48
 
346
- paramHash = {}
347
- paramHash["context"] = "insights"
348
- paramHash["contextID"] = insightID
349
- paramHash["subContext"] = "insight_reports"
350
- paramHash["subContextID"] = reportID
351
- paramHash["leafContext"] = "insight_cards"
352
- paramHash["leafContextID"] = cardID
353
- paramHash["data"] = data
354
- return updateCloudmunchData(paramHash)
49
+ @keyArray.push(file)
50
+ return file;
355
51
  end
356
52
 
357
-
358
- def updateInsightReportKeyMetric(insightID, reportID, keyMetricID, data)
359
- # /applications/{application_id}/insights/{insight_id}/insight_reports/{insight_report_id}/key_metrics/{key_metric_id}
360
-
361
- if (insightID.nil? || insightID.empty?) && (reportID.nil? || reportID.empty?) && (keyMetricID.nil? || keyMetricID.empty?) && data.nil?
362
- log("DEBUG", "Insight id, report id, keyMetricID and data is needed to be update an existing report key metric")
363
- return nil
364
- end
365
-
366
- paramHash = {}
367
- paramHash["context"] = "insights"
368
- paramHash["contextID"] = insightID
369
- paramHash["subContext"] = "insight_reports"
370
- paramHash["subContextID"] = reportID
371
- paramHash["leafContext"] = "key_metrics"
372
- paramHash["leafContextID"] = keyMetricID
373
- paramHash["data"] = data
374
- return updateCloudmunchData(paramHash)
53
+ def deleteKeys()
54
+ fileName = @appContext.get_data("{workspace}")+"/keyfile_*"
55
+ File.delete(fileName)
375
56
  end
376
57
 
377
- def getInsightReportKeyMetrics(paramHash)
378
- # /applications/{application_id}/insights/{insight_id}/insight_reports/{insight_report_id}/key_metrics/{key_metric_id}
379
- paramReportId = paramHash["reportID"].nil? ? nil : paramHash["reportID"]
380
- paramInsightID = paramHash["insightID"].nil? ? nil : paramHash["insightID"]
58
+ def getCloudmunchData(paramHash)
59
+ serverurl = nil
60
+ serverurl = generateServerURL(paramHash,true)
381
61
 
382
- if paramInsightID.nil? || paramInsightID.empty? || paramReportId.nil? || paramReportId.empty?
383
- log("DEBUG", "Insight id and report id is needed to gets its report key metric details")
384
- return nil
62
+ if serverurl.nil?
63
+ log("DEBUG", "Unable to generate server url")
64
+ log("ERROR", "Unable to get data from cloudmunch")
65
+ return nil
385
66
  end
386
67
 
387
- paramFormatted = Hash.new
388
- paramFormatted = paramHash
389
- paramFormatted["context"] = "insights"
390
- paramFormatted["subContext"] = "insight_reports"
391
- paramFormatted["leafContext"] = "key_metrics"
392
- paramFormatted["contextID"] = paramInsightID
393
- paramFormatted["subContextID"] = paramReportId
68
+ uri = URI.parse(serverurl)
394
69
 
395
- if !paramHash["keyMetricID"].nil?
396
- paramFormatted["leafContextID"] = paramHash["keyMetricID"]
397
- end
398
-
399
- return getCloudmunchData(paramFormatted)
400
- end
401
-
402
- def updateInsight(insightID, data)
403
- # /applications/{application_id}/insights/{insight_id}
404
-
405
- if (insightID.nil? || insightID.empty?) && data.nil?
406
- log("DEBUG", "Insight id and data is needed to be update an existing data store")
407
- return nil
408
- end
409
-
410
- paramHash = {}
411
- paramHash["context"] = "insights"
412
- paramHash["contextID"] = insightID
413
- paramHash["data"] = data
414
- return updateCloudmunchData(paramHash)
70
+ log("DEBUG", "URI for get : ")
71
+ log("DEBUG", uri)
72
+
73
+ responseJson = Net::HTTP.get(uri)
74
+
75
+ parseResponse(responseJson)
415
76
  end
416
77
 
417
78
  def updateCloudmunchData(paramHash, method = "POST")
@@ -442,7 +103,28 @@ module CloudmunchService
442
103
  return parseResponse(responseJson.body)
443
104
  end
444
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
+
445
121
  def parseResponse(responseJson)
122
+ begin
123
+ JSON.parse(responseJson)
124
+ rescue
125
+ return responseJson
126
+ end
127
+
446
128
  requestDetails = (JSON.load(responseJson))['request']
447
129
  responseData = (JSON.load(responseJson))['data']
448
130
 
@@ -459,134 +141,7 @@ module CloudmunchService
459
141
  end
460
142
  end
461
143
 
462
- def getCloudmunchData(paramHash)
463
- serverurl = nil
464
- serverurl = generateServerURL(paramHash,true)
465
-
466
- if serverurl.nil?
467
- log("DEBUG", "Unable to generate server url")
468
- log("ERROR", "Unable to get data from cloudmunch")
469
- return nil
470
- end
471
-
472
- uri = URI.parse(serverurl)
473
-
474
- log("DEBUG", "URI for get : ")
475
- log("DEBUG", uri)
476
-
477
- responseJson = Net::HTTP.get(uri)
478
- return parseResponse(responseJson)
479
- end
480
-
481
- def getInsights(paramHash)
482
- # /insights/{insight_id}
483
- paraminsightID = paramHash["insightID"].nil? ? nil : paramHash["insightID"]
484
-
485
- paramFormatted = Hash.new
486
- paramFormatted = paramHash
487
- paramFormatted["context"] = "insights"
488
-
489
- if !paraminsightID.nil? && !paraminsightID.empty?
490
- paramFormatted["contextID"] = paramInsightID
491
- end
492
-
493
- return getCloudmunchData(paramFormatted)
494
- end
495
-
496
- def getInsightDataStoreExtracts(paramHash)
497
- # /insights/{insight_id}/datastores/{datastore_id}/extracts/{extract_id}
498
- paramDataStoreId = paramHash["dataStoreID"].nil? ? nil : paramHash["dataStoreID"]
499
- paramInsightID = paramHash["insightID"].nil? ? nil : paramHash["insightID"]
500
-
501
- serverurl = nil
502
-
503
- if paramInsightID.nil? || paramInsightID.empty? || paramDataStoreId.nil? || paramDataStoreId.empty?
504
- log("DEBUG", "Insight id and datastore id is needed to gets its extract details")
505
- return nil
506
- end
507
-
508
- paramFormatted = Hash.new
509
- paramFormatted = paramHash
510
- paramFormatted["context"] = "insights"
511
- paramFormatted["subContext"] = "datastores"
512
- paramFormatted["leafContext"] = "extracts"
513
- paramFormatted["contextID"] = paramInsightID
514
- paramFormatted["subContextID"] = paramDataStoreId
515
-
516
- if !paramHash["extractID"].nil?
517
- paramFormatted["leafContextID"] = paramHash["extractID"]
518
- end
519
-
520
- return getCloudmunchData(paramFormatted)
521
- end
522
-
523
- def getInsightDataStores(paramHash)
524
- # /insights/{insight_id}/datastores/{datastore_id}
525
- paramInsightID = paramHash["insightID"].nil? ? nil : paramHash["insightID"]
526
-
527
- if paramInsightID.nil? || paramInsightID.empty?
528
- log("DEBUG", "Insight id is not provided")
529
- return nil
530
- end
531
-
532
- paramFormatted = Hash.new
533
- paramFormatted = paramHash
534
- paramFormatted["context"] = "insights"
535
- paramFormatted["subContext"] = "datastores"
536
- paramFormatted["contextID"] = paramInsightID
537
-
538
- if !paramHash["dataStoreID"].nil?
539
- paramFormatted["subContextID"] = paramHash["dataStoreID"]
540
- end
541
- return getCloudmunchData(paramFormatted)
542
- end
543
-
544
- def getInsightReports(paramHash)
545
- # /applications/{application_id}/insights/{insight_id}/insight_reports/{insight_report_id}
546
- paramInsightID = paramHash["insightID"].nil? ? nil : paramHash["insightID"]
547
-
548
- if paramInsightID.nil? || paramInsightID.empty?
549
- log("DEBUG", "Insight id is needed to gets its report details")
550
- return nil
551
- end
552
-
553
- paramFormatted = Hash.new
554
- paramFormatted = paramHash
555
- paramFormatted["context"] = "insights"
556
- paramFormatted["subContext"] = "insight_reports"
557
- paramFormatted["contextID"] = paramInsightID
558
-
559
- if !paramHash["reportID"].nil?
560
- paramFormatted["subContextID"] = paramHash["reportID"]
561
- end
562
-
563
- return getCloudmunchData(paramFormatted)
564
- end
565
-
566
- def getInsightReportCards(paramHash)
567
- # /applications/{application_id}/insights/{insight_id}/insight_reports/{insight_report_id}/insight_cards/{insight_card_id}
568
- paramReportId = paramHash["reportID"].nil? ? nil : paramHash["reportID"]
569
- paramInsightID = paramHash["insightID"].nil? ? nil : paramHash["insightID"]
570
-
571
- if paramInsightID.nil? || paramInsightID.empty? || paramReportId.nil? || paramReportId.empty?
572
- log("DEBUG", "Insight id and report id is needed to gets its report card details")
573
- return nil
574
- end
575
-
576
- paramFormatted = Hash.new
577
- paramFormatted = paramHash
578
- paramFormatted["context"] = "insights"
579
- paramFormatted["subContext"] = "insight_reports"
580
- paramFormatted["leafContext"] = "insight_cards"
581
- paramFormatted["contextID"] = paramInsightID
582
- paramFormatted["subContextID"] = paramReportId
583
-
584
- if !paramHash["cardID"].nil?
585
- paramFormatted["leafContextID"] = paramHash["cardID"]
586
- end
587
-
588
- return getCloudmunchData(paramFormatted)
589
- end
144
+
590
145
 
591
146
  def generateServerURL(paramHash, appendQueryParams = nil)
592
147
 
@@ -628,6 +183,7 @@ module CloudmunchService
628
183
 
629
184
  if !appendQueryParams.nil?
630
185
  queryString = queryString + "filter=" + paramHash["filter"].to_json + "&" if !paramHash["filter"].nil?
186
+ queryString = queryString + "file=" + paramHash["file"].to_s + "&" if !paramHash["file"].nil?
631
187
  queryString = queryString + "fields=" + paramHash["fields"].to_s + "&" if !paramHash["fields"].nil?
632
188
  queryString = queryString + "count=" + paramHash["count"].to_s + "&" if !paramHash["count"].nil?
633
189
  queryString = queryString + "offset=" + paramHash["offset"].to_s + "&" if !paramHash["offset"].nil?
@@ -639,31 +195,9 @@ module CloudmunchService
639
195
  return serverurl
640
196
  end
641
197
 
642
- def deleteCloudmunchData(paramHash)
643
- paramContext = paramHash["context"]
644
- paramContextID = paramHash["contextID"]
645
-
646
- if !paramContext.nil? && !paramContext.empty? && !paramContextID.nil? && !paramContextID.empty?
647
- serverurl=@appContext.get_data("{master_url}")+"/applications/"+@appContext.get_data("{application}")+"/"+context+"/"+contextID;
648
- serverurl=serverurl+"?apikey="+@appContext.get_data("{api_key}")
649
- uri = URI.parse(serverurl)
650
- Net::HTTP::Delete(uri)
651
- return 1
652
- else
653
- return nil
654
- end
655
- end
656
-
657
- def deleteCloudmunchDataBKUP(context,contextID)
658
- serverurl=@appContext.get_data("{master_url}")+"/applications/"+@appContext.get_data("{application}")+"/"+context+"/"+contextID;
659
- serverurl=serverurl+"?apikey="+@appContext.get_data("{api_key}")
660
- uri = URI.parse(serverurl)
661
- Net::HTTP::Delete(uri)
662
- end
663
-
664
198
  def self.putCustomDataContext(server, endpoint, param)
665
199
  result = self.http_post(server, endpoint, param)
666
- #p result.code.to_s
200
+
667
201
  if result.code.to_s == "200"
668
202
  return true
669
203
  else
@@ -697,11 +231,19 @@ module CloudmunchService
697
231
  end
698
232
  end
699
233
 
700
- def self.getDataContext(server, endpoint, param)
701
- getCustomDataContext(server, endpoint, param)
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)
702
244
  end
703
245
 
704
- def self.updateDataContext(server, endpoint, param)
246
+ def updateDataForContext(server, endpoint, param)
705
247
  putCustomDataContext(server, endpoint, param)
706
248
  end
707
249
  end