gocd 0.4 → 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.
- checksums.yaml +4 -4
- data/gocd.gemspec +2 -1
- data/lib/gocd/agents/agent.rb +67 -0
- data/lib/gocd/agents/agents.rb +25 -0
- data/lib/gocd/agents/agents_repository.rb +21 -0
- data/lib/gocd/{pipelines.rb → pipeline/pipelines.rb} +0 -0
- data/lib/gocd/version.rb +1 -1
- metadata +20 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 56400d362923723a438a5f25c658c120c16e9790
|
4
|
+
data.tar.gz: bca2fdec6bbb2147a531113f5f290cab52f67a82
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4bb3a3dd77f6a0cb1adde4835fb24e3a9abdffe05382a591e7a1e2b86d405201ada1de0907bccb737573ece3bdc701225d270e954ce3cca22225d65c551ecc7c
|
7
|
+
data.tar.gz: 18ed081410ab2d9b8d4af5777efc190c76f0f79e6349244ee1329baf57079e19cb7c4de5553210f3becad4e56a6adccfceddbbf04999aafdaf1097e12a47f43d
|
data/gocd.gemspec
CHANGED
@@ -6,7 +6,7 @@ require_relative './lib/gocd/version.rb'
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = 'gocd'
|
8
8
|
s.version = GOCD::VERSION
|
9
|
-
s.date = '2016-09-
|
9
|
+
s.date = '2016-09-22'
|
10
10
|
s.summary = 'Get info from gocd using its apis'
|
11
11
|
s.description = s.summary
|
12
12
|
s.authors = ['Ajit Singh']
|
@@ -20,4 +20,5 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.require_paths = ["lib"]
|
21
21
|
|
22
22
|
s.add_dependency 'activesupport'
|
23
|
+
s.add_dependency 'json'
|
23
24
|
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
module GOCD
|
2
|
+
class Agent
|
3
|
+
def initialize(response)
|
4
|
+
@response = response
|
5
|
+
end
|
6
|
+
|
7
|
+
def name
|
8
|
+
@response['hostname']
|
9
|
+
end
|
10
|
+
|
11
|
+
def uuid
|
12
|
+
@response['uuid']
|
13
|
+
end
|
14
|
+
|
15
|
+
def ip_address
|
16
|
+
@response['ip_address']
|
17
|
+
end
|
18
|
+
|
19
|
+
def os
|
20
|
+
@response['operating_system']
|
21
|
+
end
|
22
|
+
|
23
|
+
def free_space
|
24
|
+
@response['free_space']
|
25
|
+
end
|
26
|
+
|
27
|
+
def state
|
28
|
+
@response['agent_state']
|
29
|
+
end
|
30
|
+
|
31
|
+
def disabled?
|
32
|
+
@response['agent_config_state'] == 'Disabled'
|
33
|
+
end
|
34
|
+
|
35
|
+
def idle?
|
36
|
+
@response['agent_state'] == 'Idle'
|
37
|
+
end
|
38
|
+
|
39
|
+
def building?
|
40
|
+
@response['agent_state'] == 'Building'
|
41
|
+
end
|
42
|
+
|
43
|
+
def missing?
|
44
|
+
@response['agent_state'] == 'Missing'
|
45
|
+
end
|
46
|
+
|
47
|
+
def resources
|
48
|
+
@response['resources']
|
49
|
+
end
|
50
|
+
|
51
|
+
def has_resource(resource)
|
52
|
+
resources.include? resource
|
53
|
+
end
|
54
|
+
|
55
|
+
def environments
|
56
|
+
@responsep['environments']
|
57
|
+
end
|
58
|
+
|
59
|
+
def has_environment(env)
|
60
|
+
environments.include? env
|
61
|
+
end
|
62
|
+
|
63
|
+
def location
|
64
|
+
@response['sandbox']
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module GOCD
|
2
|
+
class Agents
|
3
|
+
class << self
|
4
|
+
def idle
|
5
|
+
agents.select { |agent| agent.idle? }
|
6
|
+
end
|
7
|
+
|
8
|
+
def missing
|
9
|
+
agents.select { |agent| agent.missing? }
|
10
|
+
end
|
11
|
+
|
12
|
+
def building
|
13
|
+
agents.select { |agent| agent.building? }
|
14
|
+
end
|
15
|
+
|
16
|
+
def disabled
|
17
|
+
agents.select { |agent| agent.disabled? }
|
18
|
+
end
|
19
|
+
|
20
|
+
def agents
|
21
|
+
GOCD::AgentRepository.agents
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
module GOCD
|
4
|
+
class AgentRepository
|
5
|
+
def self.agents
|
6
|
+
@agents ||= fetch
|
7
|
+
end
|
8
|
+
|
9
|
+
private
|
10
|
+
def self.fetch
|
11
|
+
raw_agents = `curl -s -k -u #{GOCD.credentials.curl_credentials} #{GOCD.server.url}/go/api/agents -H 'Accept: application/vnd.go.cd.v2+json'`
|
12
|
+
to_agents raw_agents
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.to_agents(raw_agents)
|
16
|
+
raise GOCDDataFetchException, 'Could not fetch data from server!!' if raw_agents.nil?
|
17
|
+
agents_hash = JSON.parse(raw_agents)
|
18
|
+
agents_hash['_embedded']['agents'].map { |agent_response| GOCD::Agent.new agent_response }
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
File without changes
|
data/lib/gocd/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gocd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.5'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ajit Singh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: json
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
description: Get info from gocd using its apis
|
28
42
|
email: jeetsingh.ajit@gamil.com
|
29
43
|
executables: []
|
@@ -35,12 +49,15 @@ files:
|
|
35
49
|
- Gemfile.lock
|
36
50
|
- gocd.gemspec
|
37
51
|
- lib/gocd.rb
|
52
|
+
- lib/gocd/agents/agent.rb
|
53
|
+
- lib/gocd/agents/agents.rb
|
54
|
+
- lib/gocd/agents/agents_repository.rb
|
38
55
|
- lib/gocd/config/credentials.rb
|
39
56
|
- lib/gocd/config/server.rb
|
40
57
|
- lib/gocd/exception/data_fetch_exception.rb
|
41
58
|
- lib/gocd/pipeline/pipeline.rb
|
42
59
|
- lib/gocd/pipeline/pipeline_repository.rb
|
43
|
-
- lib/gocd/pipelines.rb
|
60
|
+
- lib/gocd/pipeline/pipelines.rb
|
44
61
|
- lib/gocd/version.rb
|
45
62
|
homepage: https://github.com/ajitsing/gocd.git
|
46
63
|
licenses:
|