go_api_client 0.0.4 → 0.0.5

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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- go_api_client (0.0.3)
4
+ go_api_client (0.0.4)
5
5
  nokogiri
6
6
 
7
7
  GEM
@@ -20,63 +20,6 @@ module GoApiClient
20
20
  end
21
21
  self
22
22
  end
23
-
24
- end
25
- end
26
-
27
-
28
- class Stage
29
- attr_reader :authors, :details_link, :name, :result
30
-
31
- def initialize(entry, pipelines)
32
- @authors = entry.authors
33
- @details_link = entry.stage_href
34
- @pipelines = pipelines
35
- end
36
-
37
- def fetch
38
- doc = Nokogiri::XML(open(self.details_link))
39
- @name = doc.root.xpath("@name").first.value
40
- @result = doc.root.xpath("//result").first.content
41
-
42
- pipeline_link = doc.root.xpath("//pipeline").first.attributes["href"].value
43
- existing_pipeline = @pipelines.find {|p| p.same?(pipeline_link)}
44
-
45
- if existing_pipeline
46
- existing_pipeline.stages << self
47
- else
48
- new_pipeline = Pipeline.new(pipeline_link).fetch
49
- new_pipeline.stages << self
50
- @pipelines << new_pipeline
51
- end
52
- @pipelines
53
- end
54
- end
55
-
56
- class Pipeline
57
- attr_reader :details_link, :id, :commit_messages
58
- attr_accessor :stages
59
-
60
- def initialize(details_link)
61
- @details_link = details_link
62
- @stages = []
63
- end
64
-
65
- def fetch
66
- doc = Nokogiri::XML(open(self.details_link))
67
- @label = doc.root.attributes["label"].value
68
- @id = doc.root.xpath("//id").first.content
69
- @commit_messages = doc.root.xpath("//message").map(&:content)
70
- self
71
- end
72
-
73
- def authors
74
- authors = stages.map(&:authors).flatten
75
- authors.map(&:name).flatten.uniq.join(" ,")
76
- end
77
-
78
- def same?(link)
79
- @details_link == link
80
23
  end
81
24
  end
82
25
  end
@@ -1,4 +1,3 @@
1
1
  require 'go_api_client/atom/author'
2
2
  require 'go_api_client/atom/entry'
3
3
  require 'go_api_client/atom/feed'
4
-
@@ -0,0 +1,18 @@
1
+ module GoApiClient
2
+ class Job
3
+ attr_reader :artifacts_uri, :console_log_url
4
+
5
+ def self.build(stage, links)
6
+ @stage = stage
7
+ links.collect do |link|
8
+ job = Nokogiri::XML(open(link))
9
+ self.new(job.xpath("//artifacts").first.attributes["baseUri"].value)
10
+ end
11
+ end
12
+
13
+ def initialize(artifacts_uri)
14
+ @artifacts_uri = artifacts_uri
15
+ @console_log_url = "#{artifacts_uri}/cruise-output/console.log"
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,28 @@
1
+ module GoApiClient
2
+ class Pipeline
3
+ attr_reader :details_link, :id, :commit_messages
4
+ attr_accessor :stages
5
+
6
+ def initialize(details_link)
7
+ @details_link = details_link
8
+ @stages = []
9
+ end
10
+
11
+ def fetch
12
+ doc = Nokogiri::XML(open(self.details_link))
13
+ @label = doc.root.attributes["label"].value
14
+ @id = doc.root.xpath("//id").first.content
15
+ @commit_messages = doc.root.xpath("//message").map(&:content)
16
+ self
17
+ end
18
+
19
+ def authors
20
+ authors = stages.map(&:authors).flatten
21
+ authors.map(&:name).flatten.uniq.join(" ,")
22
+ end
23
+
24
+ def same?(link)
25
+ @details_link == link
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,31 @@
1
+ module GoApiClient
2
+ class Stage
3
+ attr_reader :authors, :details_link, :name, :result, :jobs
4
+
5
+ def initialize(entry, pipelines)
6
+ @authors = entry.authors
7
+ @details_link = entry.stage_href
8
+ @pipelines = pipelines
9
+ end
10
+
11
+ def fetch
12
+ doc = Nokogiri::XML(open(self.details_link))
13
+ @name = doc.root.xpath("@name").first.value
14
+ @result = doc.root.xpath("//result").first.content
15
+ job_detail_links = doc.root.xpath("//job").collect{|job| job.attributes["href"]}
16
+ @jobs = Job.build(self, job_detail_links)
17
+
18
+ pipeline_link = doc.root.xpath("//pipeline").first.attributes["href"].value
19
+ existing_pipeline = @pipelines.find {|p| p.same?(pipeline_link)}
20
+
21
+ if existing_pipeline
22
+ existing_pipeline.stages << self
23
+ else
24
+ new_pipeline = Pipeline.new(pipeline_link).fetch
25
+ new_pipeline.stages << self
26
+ @pipelines << new_pipeline
27
+ end
28
+ @pipelines
29
+ end
30
+ end
31
+ end
@@ -1,3 +1,3 @@
1
1
  module GoApiClient
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
data/lib/go_api_client.rb CHANGED
@@ -1,7 +1,12 @@
1
1
  require 'nokogiri'
2
+ require "open-uri"
3
+
2
4
  require "go_api_client/version"
3
5
  require "go_api_client/atom"
4
- require "open-uri"
6
+ require 'go_api_client/pipeline.rb'
7
+ require 'go_api_client/stage.rb'
8
+ require 'go_api_client/job.rb'
9
+
5
10
  module GoApiClient
6
11
  def self.runs(host)
7
12
  doc = Nokogiri::XML(open("http://#{host}/go/api/pipelines/defaultPipeline/stages.xml"))
@@ -12,5 +17,4 @@ module GoApiClient
12
17
  end
13
18
  pipelines
14
19
  end
15
-
16
20
  end
@@ -0,0 +1,82 @@
1
+
2
+ [cruise] Start to prepare defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/saas/go-agent-12.1.0] at Tue Feb 21 15:42:06 GMT+05:30 2012
3
+
4
+ [cruise] Start updating files at revision f38508a26e1dc27737eb760e39a6aa8220f8b8c6 from git@github.com:oogabooga/zinger.git
5
+ Cloning into '/Users/saas/go-agent-12.1.0/pipelines/defaultPipeline'...
6
+ HEAD is now at f38508a first commit
7
+
8
+ [cruise] Start to build defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/saas/go-agent-12.1.0] at Tue Feb 21 15:42:15 GMT+05:30 2012
9
+
10
+ [cruise] Current job status: passed.
11
+
12
+ [cruise] Start to execute task: <exec command="bundle" >
13
+ <arg>install</arg>
14
+ <arg>--local</arg>
15
+ </exec>.
16
+ [cruise] setting environment variable 'CRUISE_SERVER_URL' to value 'https://localhost:8154/go' (Deprecated. Use 'GO_SERVER_URL' instead.)
17
+ [cruise] setting environment variable 'GO_SERVER_URL' to value 'https://localhost:8154/go'
18
+ [cruise] setting environment variable 'GO_PIPELINE_NAME' to value 'defaultPipeline'
19
+ [cruise] setting environment variable 'GO_PIPELINE_COUNTER' to value '1'
20
+ [cruise] setting environment variable 'GO_PIPELINE_LABEL' to value '1'
21
+ [cruise] setting environment variable 'GO_STAGE_NAME' to value 'Units'
22
+ [cruise] setting environment variable 'GO_STAGE_COUNTER' to value '1'
23
+ [cruise] setting environment variable 'GO_JOB_NAME' to value 'Test'
24
+ [cruise] setting environment variable 'CRUISE_PIPELINE_NAME' to value 'defaultPipeline' (Deprecated. Use 'GO_PIPELINE_NAME' instead.)
25
+ [cruise] setting environment variable 'CRUISE_PIPELINE_COUNTER' to value '1' (Deprecated. Use 'GO_PIPELINE_COUNTER' instead.)
26
+ [cruise] setting environment variable 'CRUISE_PIPELINE_LABEL' to value '1' (Deprecated. Use 'GO_PIPELINE_LABEL' instead.)
27
+ [cruise] setting environment variable 'CRUISE_STAGE_NAME' to value 'Units' (Deprecated. Use 'GO_STAGE_NAME' instead.)
28
+ [cruise] setting environment variable 'CRUISE_STAGE_COUNTER' to value '1' (Deprecated. Use 'GO_STAGE_COUNTER' instead.)
29
+ [cruise] setting environment variable 'CRUISE_JOB_NAME' to value 'Test' (Deprecated. Use 'GO_JOB_NAME' instead.)
30
+ [cruise] setting environment variable 'GO_REVISION' to value 'f38508a26e1dc27737eb760e39a6aa8220f8b8c6'
31
+ [cruise] setting environment variable 'GO_TO_REVISION' to value 'f38508a26e1dc27737eb760e39a6aa8220f8b8c6'
32
+ [cruise] setting environment variable 'GO_FROM_REVISION' to value 'f38508a26e1dc27737eb760e39a6aa8220f8b8c6'
33
+ [cruise] setting environment variable 'CRUISE_REVISION' to value 'f38508a26e1dc27737eb760e39a6aa8220f8b8c6' (Deprecated. Use 'GO_REVISION' instead.)
34
+ Could not locate Gemfile
35
+
36
+ [cruise] Start to create properties defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/saas/go-agent-12.1.0] at Tue Feb 21 15:42:16 GMT+05:30 2012
37
+
38
+ [cruise] Start to upload defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/saas/go-agent-12.1.0] at Tue Feb 21 15:42:16 GMT+05:30 2012
39
+
40
+ [cruise] Job completed defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/saas/go-agent-12.1.0] at Tue Feb 21 15:42:16 GMT+05:30 2012
41
+
42
+ [cruise] Start to prepare defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/go/go-agent-12.1.0] at Thu Feb 23 17:16:37 GMT+05:30 2012
43
+
44
+ [cruise] Start updating files at revision 9f77888d7a594699894a17f4d61fc9dfac3cfb74 from git@github.com:oogabooga/zinger.git
45
+ HEAD is now at 9f77888 Update README
46
+
47
+ [cruise] Start to build defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/go/go-agent-12.1.0] at Thu Feb 23 17:16:41 GMT+05:30 2012
48
+
49
+ [cruise] Current job status: passed.
50
+
51
+ [cruise] Start to execute task: <exec command="bundle" >
52
+ <arg>install</arg>
53
+ <arg>--local</arg>
54
+ </exec>.
55
+ [cruise] setting environment variable 'CRUISE_SERVER_URL' to value 'https://localhost:8154/go' (Deprecated. Use 'GO_SERVER_URL' instead.)
56
+ [cruise] setting environment variable 'GO_SERVER_URL' to value 'https://localhost:8154/go'
57
+ [cruise] setting environment variable 'GO_PIPELINE_NAME' to value 'defaultPipeline'
58
+ [cruise] setting environment variable 'GO_PIPELINE_COUNTER' to value '1'
59
+ [cruise] setting environment variable 'GO_PIPELINE_LABEL' to value '1'
60
+ [cruise] setting environment variable 'GO_STAGE_NAME' to value 'Units'
61
+ [cruise] setting environment variable 'GO_STAGE_COUNTER' to value '1'
62
+ [cruise] setting environment variable 'GO_JOB_NAME' to value 'Test'
63
+ [cruise] setting environment variable 'CRUISE_PIPELINE_NAME' to value 'defaultPipeline' (Deprecated. Use 'GO_PIPELINE_NAME' instead.)
64
+ [cruise] setting environment variable 'CRUISE_PIPELINE_COUNTER' to value '1' (Deprecated. Use 'GO_PIPELINE_COUNTER' instead.)
65
+ [cruise] setting environment variable 'CRUISE_PIPELINE_LABEL' to value '1' (Deprecated. Use 'GO_PIPELINE_LABEL' instead.)
66
+ [cruise] setting environment variable 'CRUISE_STAGE_NAME' to value 'Units' (Deprecated. Use 'GO_STAGE_NAME' instead.)
67
+ [cruise] setting environment variable 'CRUISE_STAGE_COUNTER' to value '1' (Deprecated. Use 'GO_STAGE_COUNTER' instead.)
68
+ [cruise] setting environment variable 'CRUISE_JOB_NAME' to value 'Test' (Deprecated. Use 'GO_JOB_NAME' instead.)
69
+ [cruise] setting environment variable 'GO_REVISION' to value '9f77888d7a594699894a17f4d61fc9dfac3cfb74'
70
+ [cruise] setting environment variable 'GO_TO_REVISION' to value '9f77888d7a594699894a17f4d61fc9dfac3cfb74'
71
+ [cruise] setting environment variable 'GO_FROM_REVISION' to value '9f77888d7a594699894a17f4d61fc9dfac3cfb74'
72
+ [cruise] setting environment variable 'CRUISE_REVISION' to value '9f77888d7a594699894a17f4d61fc9dfac3cfb74' (Deprecated. Use 'GO_REVISION' instead.)
73
+ Error happened while attempting to execute 'bundle install --local'.
74
+ Please make sure [bundle] can be executed on this agent.
75
+
76
+ [Debug Information] Environment variable PATH: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
77
+
78
+ [cruise] Start to create properties defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/go/go-agent-12.1.0] at Thu Feb 23 17:16:41 GMT+05:30 2012
79
+
80
+ [cruise] Start to upload defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/go/go-agent-12.1.0] at Thu Feb 23 17:16:41 GMT+05:30 2012
81
+
82
+ [cruise] Job completed defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/go/go-agent-12.1.0] at Thu Feb 23 17:16:41 GMT+05:30 2012
@@ -0,0 +1,82 @@
1
+
2
+ [cruise] Start to prepare defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/saas/go-agent-12.1.0] at Tue Feb 21 15:42:06 GMT+05:30 2012
3
+
4
+ [cruise] Start updating files at revision f38508a26e1dc27737eb760e39a6aa8220f8b8c6 from git@github.com:oogabooga/zinger.git
5
+ Cloning into '/Users/saas/go-agent-12.1.0/pipelines/defaultPipeline'...
6
+ HEAD is now at f38508a first commit
7
+
8
+ [cruise] Start to build defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/saas/go-agent-12.1.0] at Tue Feb 21 15:42:15 GMT+05:30 2012
9
+
10
+ [cruise] Current job status: passed.
11
+
12
+ [cruise] Start to execute task: <exec command="bundle" >
13
+ <arg>install</arg>
14
+ <arg>--local</arg>
15
+ </exec>.
16
+ [cruise] setting environment variable 'CRUISE_SERVER_URL' to value 'https://localhost:8154/go' (Deprecated. Use 'GO_SERVER_URL' instead.)
17
+ [cruise] setting environment variable 'GO_SERVER_URL' to value 'https://localhost:8154/go'
18
+ [cruise] setting environment variable 'GO_PIPELINE_NAME' to value 'defaultPipeline'
19
+ [cruise] setting environment variable 'GO_PIPELINE_COUNTER' to value '1'
20
+ [cruise] setting environment variable 'GO_PIPELINE_LABEL' to value '1'
21
+ [cruise] setting environment variable 'GO_STAGE_NAME' to value 'Units'
22
+ [cruise] setting environment variable 'GO_STAGE_COUNTER' to value '1'
23
+ [cruise] setting environment variable 'GO_JOB_NAME' to value 'Test'
24
+ [cruise] setting environment variable 'CRUISE_PIPELINE_NAME' to value 'defaultPipeline' (Deprecated. Use 'GO_PIPELINE_NAME' instead.)
25
+ [cruise] setting environment variable 'CRUISE_PIPELINE_COUNTER' to value '1' (Deprecated. Use 'GO_PIPELINE_COUNTER' instead.)
26
+ [cruise] setting environment variable 'CRUISE_PIPELINE_LABEL' to value '1' (Deprecated. Use 'GO_PIPELINE_LABEL' instead.)
27
+ [cruise] setting environment variable 'CRUISE_STAGE_NAME' to value 'Units' (Deprecated. Use 'GO_STAGE_NAME' instead.)
28
+ [cruise] setting environment variable 'CRUISE_STAGE_COUNTER' to value '1' (Deprecated. Use 'GO_STAGE_COUNTER' instead.)
29
+ [cruise] setting environment variable 'CRUISE_JOB_NAME' to value 'Test' (Deprecated. Use 'GO_JOB_NAME' instead.)
30
+ [cruise] setting environment variable 'GO_REVISION' to value 'f38508a26e1dc27737eb760e39a6aa8220f8b8c6'
31
+ [cruise] setting environment variable 'GO_TO_REVISION' to value 'f38508a26e1dc27737eb760e39a6aa8220f8b8c6'
32
+ [cruise] setting environment variable 'GO_FROM_REVISION' to value 'f38508a26e1dc27737eb760e39a6aa8220f8b8c6'
33
+ [cruise] setting environment variable 'CRUISE_REVISION' to value 'f38508a26e1dc27737eb760e39a6aa8220f8b8c6' (Deprecated. Use 'GO_REVISION' instead.)
34
+ Could not locate Gemfile
35
+
36
+ [cruise] Start to create properties defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/saas/go-agent-12.1.0] at Tue Feb 21 15:42:16 GMT+05:30 2012
37
+
38
+ [cruise] Start to upload defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/saas/go-agent-12.1.0] at Tue Feb 21 15:42:16 GMT+05:30 2012
39
+
40
+ [cruise] Job completed defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/saas/go-agent-12.1.0] at Tue Feb 21 15:42:16 GMT+05:30 2012
41
+
42
+ [cruise] Start to prepare defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/go/go-agent-12.1.0] at Thu Feb 23 17:16:37 GMT+05:30 2012
43
+
44
+ [cruise] Start updating files at revision 9f77888d7a594699894a17f4d61fc9dfac3cfb74 from git@github.com:oogabooga/zinger.git
45
+ HEAD is now at 9f77888 Update README
46
+
47
+ [cruise] Start to build defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/go/go-agent-12.1.0] at Thu Feb 23 17:16:41 GMT+05:30 2012
48
+
49
+ [cruise] Current job status: passed.
50
+
51
+ [cruise] Start to execute task: <exec command="bundle" >
52
+ <arg>install</arg>
53
+ <arg>--local</arg>
54
+ </exec>.
55
+ [cruise] setting environment variable 'CRUISE_SERVER_URL' to value 'https://localhost:8154/go' (Deprecated. Use 'GO_SERVER_URL' instead.)
56
+ [cruise] setting environment variable 'GO_SERVER_URL' to value 'https://localhost:8154/go'
57
+ [cruise] setting environment variable 'GO_PIPELINE_NAME' to value 'defaultPipeline'
58
+ [cruise] setting environment variable 'GO_PIPELINE_COUNTER' to value '1'
59
+ [cruise] setting environment variable 'GO_PIPELINE_LABEL' to value '1'
60
+ [cruise] setting environment variable 'GO_STAGE_NAME' to value 'Units'
61
+ [cruise] setting environment variable 'GO_STAGE_COUNTER' to value '1'
62
+ [cruise] setting environment variable 'GO_JOB_NAME' to value 'Test'
63
+ [cruise] setting environment variable 'CRUISE_PIPELINE_NAME' to value 'defaultPipeline' (Deprecated. Use 'GO_PIPELINE_NAME' instead.)
64
+ [cruise] setting environment variable 'CRUISE_PIPELINE_COUNTER' to value '1' (Deprecated. Use 'GO_PIPELINE_COUNTER' instead.)
65
+ [cruise] setting environment variable 'CRUISE_PIPELINE_LABEL' to value '1' (Deprecated. Use 'GO_PIPELINE_LABEL' instead.)
66
+ [cruise] setting environment variable 'CRUISE_STAGE_NAME' to value 'Units' (Deprecated. Use 'GO_STAGE_NAME' instead.)
67
+ [cruise] setting environment variable 'CRUISE_STAGE_COUNTER' to value '1' (Deprecated. Use 'GO_STAGE_COUNTER' instead.)
68
+ [cruise] setting environment variable 'CRUISE_JOB_NAME' to value 'Test' (Deprecated. Use 'GO_JOB_NAME' instead.)
69
+ [cruise] setting environment variable 'GO_REVISION' to value '9f77888d7a594699894a17f4d61fc9dfac3cfb74'
70
+ [cruise] setting environment variable 'GO_TO_REVISION' to value '9f77888d7a594699894a17f4d61fc9dfac3cfb74'
71
+ [cruise] setting environment variable 'GO_FROM_REVISION' to value '9f77888d7a594699894a17f4d61fc9dfac3cfb74'
72
+ [cruise] setting environment variable 'CRUISE_REVISION' to value '9f77888d7a594699894a17f4d61fc9dfac3cfb74' (Deprecated. Use 'GO_REVISION' instead.)
73
+ Error happened while attempting to execute 'bundle install --local'.
74
+ Please make sure [bundle] can be executed on this agent.
75
+
76
+ [Debug Information] Environment variable PATH: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
77
+
78
+ [cruise] Start to create properties defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/go/go-agent-12.1.0] at Thu Feb 23 17:16:41 GMT+05:30 2012
79
+
80
+ [cruise] Start to upload defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/go/go-agent-12.1.0] at Thu Feb 23 17:16:41 GMT+05:30 2012
81
+
82
+ [cruise] Job completed defaultPipeline/1/Units/1/Test on ira.corporate.thoughtworks.com [/Users/go/go-agent-12.1.0] at Thu Feb 23 17:16:41 GMT+05:30 2012
@@ -0,0 +1,29 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <job name="Test">
4
+ <link rel="self" href="http://localhost:8153/go/api/jobs/1.xml"/>
5
+ <id><![CDATA[urn:x-go.studios.thoughtworks.com:job-id:defaultPipeline:1:Units:1:Test]]></id>
6
+ <pipeline name="defaultPipeline" counter="1" label="1"/>
7
+ <stage name="Units" counter="1" href="http://localhost:8153/go/api/stages/1.xml"/>
8
+ <result>Failed</result>
9
+ <state>Completed</state>
10
+ <properties>
11
+ <property name="cruise_agent"><![CDATA[ira.corporate.thoughtworks.com]]></property>
12
+ <property name="cruise_job_duration"><![CDATA[0]]></property>
13
+ <property name="cruise_job_id"><![CDATA[1]]></property>
14
+ <property name="cruise_job_result"><![CDATA[Failed]]></property>
15
+ <property name="cruise_pipeline_counter"><![CDATA[1]]></property>
16
+ <property name="cruise_pipeline_label"><![CDATA[1]]></property>
17
+ <property name="cruise_stage_counter"><![CDATA[1]]></property>
18
+ <property name="cruise_timestamp_01_scheduled"><![CDATA[2012-02-23T17:16:15+05:30]]></property>
19
+ <property name="cruise_timestamp_02_assigned"><![CDATA[2012-02-23T17:16:27+05:30]]></property>
20
+ <property name="cruise_timestamp_03_preparing"><![CDATA[2012-02-23T17:16:37+05:30]]></property>
21
+ <property name="cruise_timestamp_04_building"><![CDATA[2012-02-23T17:16:41+05:30]]></property>
22
+ <property name="cruise_timestamp_05_completing"><![CDATA[2012-02-23T17:16:41+05:30]]></property>
23
+ <property name="cruise_timestamp_06_completed"><![CDATA[2012-02-23T17:16:41+05:30]]></property>
24
+ </properties>
25
+ <agent uuid="c62d482a-791d-4fa4-adc3-a0808a73dd3c"/>
26
+ <artifacts baseUri="http://localhost:8153/go/files/defaultPipeline/1/Units/1/Test" pathFromArtifactRoot="pipelines/defaultPipeline/1/Units/1/Test"/>
27
+ <resources/>
28
+ <environmentvariables/>
29
+ </job>
@@ -0,0 +1,29 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <job name="Test">
4
+ <link rel="self" href="http://localhost:8153/go/api/jobs/2.xml"/>
5
+ <id><![CDATA[urn:x-go.studios.thoughtworks.com:job-id:defaultPipeline:1:Acceptance:1:Test]]></id>
6
+ <pipeline name="defaultPipeline" counter="1" label="1"/>
7
+ <stage name="Acceptance" counter="1" href="http://localhost:8153/go/api/stages/2.xml"/>
8
+ <result>Failed</result>
9
+ <state>Completed</state>
10
+ <properties>
11
+ <property name="cruise_agent"><![CDATA[ira.corporate.thoughtworks.com]]></property>
12
+ <property name="cruise_job_duration"><![CDATA[0]]></property>
13
+ <property name="cruise_job_id"><![CDATA[2]]></property>
14
+ <property name="cruise_job_result"><![CDATA[Failed]]></property>
15
+ <property name="cruise_pipeline_counter"><![CDATA[1]]></property>
16
+ <property name="cruise_pipeline_label"><![CDATA[1]]></property>
17
+ <property name="cruise_stage_counter"><![CDATA[1]]></property>
18
+ <property name="cruise_timestamp_01_scheduled"><![CDATA[2012-02-23T17:19:09+05:30]]></property>
19
+ <property name="cruise_timestamp_02_assigned"><![CDATA[2012-02-23T17:19:17+05:30]]></property>
20
+ <property name="cruise_timestamp_03_preparing"><![CDATA[2012-02-23T17:19:27+05:30]]></property>
21
+ <property name="cruise_timestamp_04_building"><![CDATA[2012-02-23T17:19:31+05:30]]></property>
22
+ <property name="cruise_timestamp_05_completing"><![CDATA[2012-02-23T17:19:31+05:30]]></property>
23
+ <property name="cruise_timestamp_06_completed"><![CDATA[2012-02-23T17:19:31+05:30]]></property>
24
+ </properties>
25
+ <agent uuid="c62d482a-791d-4fa4-adc3-a0808a73dd3c"/>
26
+ <artifacts baseUri="http://localhost:8153/go/files/defaultPipeline/1/Acceptance/1/Test" pathFromArtifactRoot="pipelines/defaultPipeline/1/Acceptance/1/Test"/>
27
+ <resources/>
28
+ <environmentvariables/>
29
+ </job>
@@ -2,11 +2,16 @@ require "test_helper"
2
2
 
3
3
  class IntegrationTest < Test::Unit::TestCase
4
4
 
5
- def test_end_to_end
5
+ def setup()
6
6
  stub_request(:get, "http://localhost:8153/go/api/pipelines/defaultPipeline/stages.xml").to_return(:body => file_contents("stages.xml"))
7
7
  stub_request(:get, "http://localhost:8153/go/api/pipelines/defaultPipeline/1.xml").to_return(:body => file_contents("pipelines_1.xml"))
8
8
  stub_request(:get, "http://localhost:8153/go/api/stages/1.xml").to_return(:body => file_contents("stages_1.xml"))
9
9
  stub_request(:get, "http://localhost:8153/go/api/stages/2.xml").to_return(:body => file_contents("stages_2.xml"))
10
+ stub_request(:get, "http://localhost:8153/go/api/jobs/1.xml").to_return(:body => file_contents("jobs_1.xml"))
11
+ stub_request(:get, "http://localhost:8153/go/api/jobs/2.xml").to_return(:body => file_contents("jobs_2.xml"))
12
+ end
13
+
14
+ def test_end_to_end
10
15
  pipelines = GoApiClient.runs("localhost:8153")
11
16
  stages = pipelines.first.stages
12
17
 
@@ -20,9 +25,9 @@ class IntegrationTest < Test::Unit::TestCase
20
25
  assert_equal "Acceptance", stages.first.name
21
26
  assert_equal "Units", stages.last.name
22
27
  assert_equal ["Update README"], pipelines.first.commit_messages
23
- end
24
28
 
25
- def file_contents(file_name)
26
- File.read(File.expand_path("../../fixtures/#{file_name}", __FILE__))
29
+ assert_not_nil stages.first.jobs.first
30
+ assert_equal "http://localhost:8153/go/files/defaultPipeline/1/Acceptance/1/Test/cruise-output/console.log", stages.first.jobs.first.console_log_url
31
+ assert_equal "http://localhost:8153/go/files/defaultPipeline/1/Units/1/Test/cruise-output/console.log", stages.last.jobs.first.console_log_url
27
32
  end
28
33
  end
data/test/test_helper.rb CHANGED
@@ -5,3 +5,8 @@ require 'go_api_client'
5
5
 
6
6
  require 'webmock/test_unit'
7
7
 
8
+ def file_contents(file_name)
9
+ File.read(File.expand_path("../../fixtures/#{file_name}", __FILE__))
10
+ end
11
+
12
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: go_api_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-24 00:00:00.000000000Z
12
+ date: 2012-02-27 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
16
- requirement: &70178996118820 !ruby/object:Gem::Requirement
16
+ requirement: &2211000320 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70178996118820
24
+ version_requirements: *2211000320
25
25
  description: This gem parses atom feed generated by the Go Continuous Integration
26
26
  server and provides an OO representation of the pipelines and stages.
27
27
  email:
@@ -43,9 +43,14 @@ files:
43
43
  - lib/go_api_client/atom/author.rb
44
44
  - lib/go_api_client/atom/entry.rb
45
45
  - lib/go_api_client/atom/feed.rb
46
- - lib/go_api_client/test.rb
47
- - lib/go_api_client/test/stub_http_fetcher.rb
46
+ - lib/go_api_client/job.rb
47
+ - lib/go_api_client/pipeline.rb
48
+ - lib/go_api_client/stage.rb
48
49
  - lib/go_api_client/version.rb
50
+ - test/fixtures/job_1_console.log.txt
51
+ - test/fixtures/job_2_console.log.txt
52
+ - test/fixtures/jobs_1.xml
53
+ - test/fixtures/jobs_2.xml
49
54
  - test/fixtures/pipelines_1.xml
50
55
  - test/fixtures/stages.xml
51
56
  - test/fixtures/stages_1.xml
@@ -77,6 +82,10 @@ signing_key:
77
82
  specification_version: 3
78
83
  summary: Client to parse Go CI atom feed
79
84
  test_files:
85
+ - test/fixtures/job_1_console.log.txt
86
+ - test/fixtures/job_2_console.log.txt
87
+ - test/fixtures/jobs_1.xml
88
+ - test/fixtures/jobs_2.xml
80
89
  - test/fixtures/pipelines_1.xml
81
90
  - test/fixtures/stages.xml
82
91
  - test/fixtures/stages_1.xml
@@ -1,91 +0,0 @@
1
- require 'ostruct'
2
- module GoApiClient
3
- class StubHttpFetcher
4
- # Careful : this will respond to any call with nil
5
- class HashStruct < OpenStruct
6
- def [](key)
7
- self.headers[key]
8
- end
9
- end
10
-
11
- module Response
12
- def invoked!
13
- @invoked = true
14
- end
15
-
16
- def invoked?
17
- !!@invoked
18
- end
19
- end
20
-
21
- class StringResponse
22
- include Response
23
- def initialize(content, code = 200, headers = {})
24
- @content = content
25
- @code = code.to_s
26
- @headers = headers
27
- end
28
-
29
- def execute
30
- HashStruct.new(:body => @content, :code => @code, :headers => @headers)
31
- end
32
-
33
- end
34
-
35
- class ErrorResponse
36
- include Response
37
- def initialize(error)
38
- @error = error
39
- end
40
-
41
- def execute
42
- raise @error
43
- end
44
- end
45
-
46
- def get(url)
47
- if body = interweb[:get][url]
48
- body.invoked!
49
- return body.execute
50
- else
51
- raise "404 - Could not find #{url}. Available URLs are #{@interweb[:get].keys.inspect}"
52
- end
53
- end
54
-
55
- def post(url, params = {})
56
- if body = interweb[:post][url]
57
- response = body.execute
58
- if response.headers == params
59
- body.invoked!
60
- return response
61
- end
62
- end
63
-
64
- raise "404 - Could not find a url listening to #{url.inspect} that responds to post params #{params.inspect}. Available URLs are #{@interweb[:post].keys.inspect}"
65
- end
66
-
67
- def invoked?(url, type = :get, params = {})
68
- if body = interweb[type][url]
69
- response = body.execute
70
- if response.headers == params
71
-
72
- body.invoked?
73
- end
74
- end
75
- end
76
-
77
- def register_content(content, url, type = :get, headers = {})
78
- interweb[type][url] = StringResponse.new(content, 200, headers)
79
- end
80
-
81
- def register_error(url, type = :get, error)
82
- interweb[type][url] = ErrorResponse.new(error)
83
- end
84
-
85
- def interweb
86
- @interweb ||= {:get => {}, :post => {}}
87
- end
88
-
89
- end
90
- end
91
-
@@ -1 +0,0 @@
1
- require 'go_api_client/test/stub_http_fetcher.rb'