smqacloud 0.0.1

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 (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/smqacloud.rb +140 -0
  3. metadata +44 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 92a3be6f9b6e73481351262f5fda7aa99fba172e
4
+ data.tar.gz: 1f78ccbe9a78b1e3b62bf4c0a64972350334406e
5
+ SHA512:
6
+ metadata.gz: efebc9cee55b18f9b46bb53c08a0a12270167e45b6e0e464a4dbbd6cf08d83aee25130d395dc20db307b151c2322d61a6299789b6134bf091ef2f4056535cc9a
7
+ data.tar.gz: 14ba8a52ed424fafb5b8153d0a85ecf9b6a8ef7422bd33b7fa072c9c9cd97cb86155776b43e2278425b4bcbff76322f8599ce6f4b2043bc450ef6ba0411dd730
data/lib/smqacloud.rb ADDED
@@ -0,0 +1,140 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'httparty'
4
+ require 'qacloud'
5
+ require 'smapisatqacloud'
6
+ # require 'watir-webdriver'
7
+
8
+ # get playlistID or playlistID CI id from args::
9
+
10
+ # playlistID = ARGV[0]
11
+ # = "your token id"
12
+ # $add_variable = Hash.new
13
+
14
+ def self.playlist(playlistID)
15
+ $add_variable = Hash.new
16
+ taskhash = Qacloud.GetFirstTask(playlistID)
17
+ if taskhash.code == 500 then
18
+ #puts "Getting Task ID:"
19
+ taskhash = Qacloud.GetTaskid(playlistID)
20
+ playlistID = taskhash["body"]["_id"]
21
+ taskhash = Qacloud.GetFirstTask(playlistID)
22
+ end
23
+
24
+ # collecting useful variables and values from taskhash:
25
+
26
+ $workflow_name = taskhash["body"]["workflow_name"]
27
+ $workflow_id = taskhash["body"]["workflow_id"]
28
+ $task_name = taskhash["body"]["task_name"]
29
+ task_id = taskhash["body"]["task_id"]
30
+ $var = taskhash["body"]["task_variables"]
31
+ $env = taskhash["body"]["environment"]
32
+ puts "Workflow: #{$workflow_name}"
33
+ $workflow_status = taskhash["body"]["test"]
34
+ puts "Now Starting Task: #{$task_name}"
35
+
36
+ begin
37
+
38
+ if $var.has_key?("path") == true then
39
+ if $var["path"].empty? == false then
40
+ path = $var["path"]
41
+ end
42
+ else
43
+ path = $env["path"]
44
+ end
45
+ require_relative "#{path}"
46
+ dur1 = Time.now
47
+ send($task_name)
48
+
49
+ rescue Exception => e
50
+
51
+ puts "Exception occured, Checkpoint should have more info."
52
+ @erro_line = e.backtrace[0].split(":")
53
+ @error_line = @erro_line[1]
54
+ @error_message = "#{$!}"
55
+ @error_line = Integer(@error_line) rescue "ErrorImage"
56
+ dur2 = Time.now
57
+ status = "fail"
58
+ result = "Exception occured, Checkpoint should have more info."
59
+ if ($checkpoint.nil?) == true then
60
+ checkpoint = "Error Message: #{@error_message} , Script Line Number: #{@error_line}"
61
+ else
62
+ checkpoint = $checkpoint
63
+ end
64
+ $checkpoint = nil
65
+ duration = dur2 - dur1
66
+ # taskhash = Qacloud.GetNextTask(task_id,status,result,checkpoint,duration)
67
+ # $workflow_status = "finished"
68
+ # Take error image:
69
+ # $browser.screenshot.save "#{dirname}/#{@error_line}.png"
70
+ else
71
+ dur2 = Time.now
72
+ status = $status
73
+ result = $result
74
+ checkpoint = $checkpoint
75
+ $checkpoint = nil
76
+ duration = dur2 - dur1
77
+
78
+ end
79
+
80
+ while $workflow_status != "finished"
81
+ taskhash = Qacloud.GetNextTask(playlistID,status,result,checkpoint,duration)
82
+ $workflow_name = taskhash["body"]["workflow_name"]
83
+ $workflow_id = taskhash["body"]["workflow_id"]
84
+ $task_name = taskhash["body"]["task_name"]
85
+ task_id = taskhash["body"]["task_id"]
86
+ $var = taskhash["body"]["task_variables"]
87
+ $env = taskhash["body"]["environment"]
88
+ $workflow_status = taskhash["body"]["test"]
89
+
90
+ break if $workflow_status == "finished"
91
+ # if $add_variable.empty? == true then
92
+ # else
93
+ # $get_variable.merge!($add_variable)
94
+ # end
95
+ puts "Workflow: #{$workflow_name}"
96
+ puts "Now Starting Task: #{$task_name}"
97
+ begin
98
+ if $var.has_key?("path") == true then
99
+ if $var["path"].empty? == false then
100
+ path = $var["path"]
101
+ end
102
+ else
103
+ path = $env["path"]
104
+ end
105
+ require_relative "#{path}"
106
+ dur1 = Time.now
107
+ send($task_name)
108
+
109
+ rescue Exception => e
110
+ puts "Exception occured, Checkpoint should have more info."
111
+ @erro_line = e.backtrace[0].split(":")
112
+ @error_line = @erro_line[1]
113
+ @error_message = "#{$!}"
114
+ @error_line = Integer(@error_line) rescue "ErrorImage"
115
+ dur2 = Time.now
116
+ status = "fail"
117
+ result = "Exception occured, Checkpoint should have more info."
118
+ if ($checkpoint.nil?) == true then
119
+ checkpoint = "Error Message: #{@error_message} , Script Line Number: #{@error_line}"
120
+ else
121
+ checkpoint = $checkpoint
122
+ end
123
+ $checkpoint = nil
124
+ duration = dur2 - dur1
125
+ # taskhash = Qacloud.GetNextTask(task_id,status,result,checkpoint,duration)
126
+ # $workflow_status = "finished"
127
+ # Take error image:
128
+ # $browser.screenshot.save "#{dirname}/#{@error_line}.png"
129
+
130
+ else
131
+ dur2 = Time.now
132
+ status = $status
133
+ result = $result
134
+ checkpoint = $checkpoint
135
+ $checkpoint = nil
136
+ duration = dur2 - dur1
137
+
138
+ end
139
+ end
140
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: smqacloud
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Ravi Trivedi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-10-30 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Use this gem with playlist automation framework:.
14
+ email:
15
+ - testerravit@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/smqacloud.rb
21
+ homepage: http://qacloud.io
22
+ licenses: []
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubyforge_project:
40
+ rubygems_version: 2.2.2
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: playlist automation framework
44
+ test_files: []