octopus-serverspec-extensions 0.15.3 → 0.15.4
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '09404e7c6f33ee6dfde8d34818fb89754b9bd29c823a8b6d32a30f36042a8ca2'
|
4
|
+
data.tar.gz: 7db537c1863d7717b83c0b71aa03a8fa9005f728a8d4294d09f29ac750488bbe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51779dd45bc5df85051afe6675e70d2e74347e639d3f136dd0e13e001fab5d0c7f957c8cb4cbd790971601ff9f97ca9e07f6566b8dab44f5c252d8b90bc661ac
|
7
|
+
data.tar.gz: 5892ca16b7895a43414d99d5fe685f3a645584d370f95bfb5a5922031ee0d63fc1fef6d55d8e61eee1187eaad440ee4e7469e210a795c04cdd6dfa8ee0e878da
|
data/.gitignore
CHANGED
@@ -3,6 +3,7 @@ require 'octopus_serverspec_extensions/type/npm_package.rb'
|
|
3
3
|
require 'octopus_serverspec_extensions/type/java_property_file.rb'
|
4
4
|
require 'octopus_serverspec_extensions/type/octopus_deploy_tentacle.rb'
|
5
5
|
require 'octopus_serverspec_extensions/type/octopus_deploy_environment.rb'
|
6
|
+
require 'octopus_serverspec_extensions/type/octopus_deploy_project_group.rb'
|
6
7
|
require 'octopus_serverspec_extensions/type/octopus_deploy_worker_pool.rb'
|
7
8
|
require 'octopus_serverspec_extensions/type/windows_dsc.rb'
|
8
9
|
require 'octopus_serverspec_extensions/type/windows_firewall.rb'
|
@@ -0,0 +1,103 @@
|
|
1
|
+
require 'serverspec/type/base'
|
2
|
+
require 'net/http'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
module Serverspec::Type
|
6
|
+
class OctopusDeployProjectGroup < Base
|
7
|
+
@projectgroup = nil
|
8
|
+
@serverUrl = nil
|
9
|
+
@apiKey = nil
|
10
|
+
@serverSupportsSpaces = nil
|
11
|
+
@spaceId = nil
|
12
|
+
@spaceFragment = ""
|
13
|
+
|
14
|
+
def initialize(serverUrl, apiKey, projectgroup_name, space_name = nil)
|
15
|
+
@name = "Octopus Deploy Project Group #{projectgroup_name}"
|
16
|
+
@runner = Specinfra::Runner
|
17
|
+
@serverUrl = serverUrl
|
18
|
+
@apiKey = apiKey
|
19
|
+
|
20
|
+
|
21
|
+
if serverUrl.nil?
|
22
|
+
raise "'serverUrl' was not provided. Unable to connect to Octopus server to validate configuration."
|
23
|
+
end
|
24
|
+
if apiKey.nil?
|
25
|
+
raise "'apiKey' was not provided. Unable to connect to Octopus server to validate configuration."
|
26
|
+
end
|
27
|
+
if projectgroup_name.nil?
|
28
|
+
raise "'projectgroup_name' was not provided. Unable to connect to Octopus server to validate configuration."
|
29
|
+
end
|
30
|
+
|
31
|
+
@serverSupportsSpaces = check_supports_spaces(serverUrl)
|
32
|
+
|
33
|
+
if @serverSupportsSpaces
|
34
|
+
# set the spaceId correctly
|
35
|
+
|
36
|
+
if space_name.nil?
|
37
|
+
@spaceId = 'Spaces-1' # default to Spaces-1
|
38
|
+
else
|
39
|
+
@spaceId = get_space_id?(space_name)
|
40
|
+
end
|
41
|
+
|
42
|
+
@spaceFragment = "#{@spaceId}/"
|
43
|
+
end
|
44
|
+
|
45
|
+
@projectgroup = get_projectgroup_via_api(serverUrl, apiKey, projectgroup_name)
|
46
|
+
end
|
47
|
+
|
48
|
+
def exists?
|
49
|
+
(!@projectgroup.nil?) && (@projectgroup != [])
|
50
|
+
end
|
51
|
+
|
52
|
+
def has_description?(projectgroup_description)
|
53
|
+
return false if @projectgroup.nil?
|
54
|
+
@projectgroup["Description"] == projectgroup_description
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def octopus_deploy_projectgroup(serverUrl, apiKey, projectgroup_name, spaceName = nil)
|
59
|
+
OctopusDeployProjectGroup.new(serverUrl, apiKey, projectgroup_name, spaceName)
|
60
|
+
end
|
61
|
+
|
62
|
+
private
|
63
|
+
|
64
|
+
def get_projectgroup_via_api(serverUrl, apiKey, projectgroup_name)
|
65
|
+
pg = nil
|
66
|
+
url = "#{serverUrl}/api/#{@spaceFragment}projectgroups/all?api-key=#{apiKey}"
|
67
|
+
|
68
|
+
begin
|
69
|
+
resp = Net::HTTP.get_response(URI.parse(url))
|
70
|
+
body = JSON.parse(resp.body)
|
71
|
+
pg = body.select {|i| i['Name'] == projectgroup_name }.first unless body.nil?
|
72
|
+
rescue => e
|
73
|
+
raise "get_projectgroup_via_api: Unable to connect to #{url}: #{e}"
|
74
|
+
end
|
75
|
+
|
76
|
+
pg
|
77
|
+
end
|
78
|
+
|
79
|
+
def check_supports_spaces(serverUrl)
|
80
|
+
begin
|
81
|
+
resp = Net::HTTP.get_response(URI.parse("#{serverUrl}/api/"))
|
82
|
+
body = JSON.parse(resp.body)
|
83
|
+
version = body['Version']
|
84
|
+
return Gem::Version.new(version) > Gem::Version.new('2019.0.0')
|
85
|
+
rescue => e
|
86
|
+
puts "check_supports_spaces: Unable to connect to #{serverUrl}: #{e}"
|
87
|
+
end
|
88
|
+
|
89
|
+
false
|
90
|
+
end
|
91
|
+
|
92
|
+
def get_space_id?(space_name)
|
93
|
+
return false if @serverSupportsSpaces.nil?
|
94
|
+
url = "#{@serverUrl}/api/Spaces/all?api-key=#{@apiKey}"
|
95
|
+
resp = Net::HTTP.get_response(URI.parse(url))
|
96
|
+
spaces = JSON.parse(resp.body)
|
97
|
+
space_id = spaces.select {|e| e["Name"] == space_name}.first["Id"]
|
98
|
+
space_id
|
99
|
+
end
|
100
|
+
|
101
|
+
end
|
102
|
+
|
103
|
+
include Serverspec::Type
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: octopus-serverspec-extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.15.
|
4
|
+
version: 0.15.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Richardson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: serverspec
|
@@ -161,6 +161,7 @@ files:
|
|
161
161
|
- lib/octopus_serverspec_extensions/type/java_property_file.rb
|
162
162
|
- lib/octopus_serverspec_extensions/type/npm_package.rb
|
163
163
|
- lib/octopus_serverspec_extensions/type/octopus_deploy_environment.rb
|
164
|
+
- lib/octopus_serverspec_extensions/type/octopus_deploy_project_group.rb
|
164
165
|
- lib/octopus_serverspec_extensions/type/octopus_deploy_tentacle.rb
|
165
166
|
- lib/octopus_serverspec_extensions/type/octopus_deploy_worker_pool.rb
|
166
167
|
- lib/octopus_serverspec_extensions/type/windows_dsc.rb
|