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: 23032120b301fcc3a012430b7922dd90c4ae67a226431437e9da194ec15618d5
4
- data.tar.gz: 0e8c3493ddaceaa6488e2feafbd0298108d9db71f2be01b51b1f2190f7cc7663
3
+ metadata.gz: '09404e7c6f33ee6dfde8d34818fb89754b9bd29c823a8b6d32a30f36042a8ca2'
4
+ data.tar.gz: 7db537c1863d7717b83c0b71aa03a8fa9005f728a8d4294d09f29ac750488bbe
5
5
  SHA512:
6
- metadata.gz: 2aa01718beb6552713527052775115235742fe34a03cf0d79a0e074a8ac7d27eedc06ccda55ea6e41650a45b152be2094f6723bb3c7372bc28baecf48f4dfbd2
7
- data.tar.gz: d4123d23c51d03bdb0b5daddd0c34b483dc14d0000e947be1589805049ea3a9ff3e61c76b4884d681093caf386303232f363ae8890cd5e02dc782d4ceb869ac8
6
+ metadata.gz: 51779dd45bc5df85051afe6675e70d2e74347e639d3f136dd0e13e001fab5d0c7f957c8cb4cbd790971601ff9f97ca9e07f6566b8dab44f5c252d8b90bc661ac
7
+ data.tar.gz: 5892ca16b7895a43414d99d5fe685f3a645584d370f95bfb5a5922031ee0d63fc1fef6d55d8e61eee1187eaad440ee4e7469e210a795c04cdd6dfa8ee0e878da
data/.gitignore CHANGED
@@ -11,3 +11,4 @@ octopus-serverspec-extensions-*.gem
11
11
  vendor/
12
12
  /.idea/
13
13
  publish.ps1
14
+ /.scratch/
@@ -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
@@ -1,3 +1,3 @@
1
1
  module OctopusServerSpecExtensions
2
- VERSION = "0.15.3"
2
+ VERSION = "0.15.4"
3
3
  end
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.3
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-04-10 00:00:00.000000000 Z
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