soar_sr 0.1.6 → 0.1.7
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/lib/soar_sr/handler.rb +22 -0
- data/lib/soar_sr/juddi_provider.rb +10 -14
- data/lib/soar_sr/service_registry.rb +16 -3
- data/lib/soar_sr/validator.rb +2 -23
- data/lib/soar_sr/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a81f40d80e885c259c37c7634558069df0eea50
|
4
|
+
data.tar.gz: ca96964491c938cbb08ef2afb84cc70d0bb939aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8a94c966ac25a99fbf580a5949279d8ec8c823e8aba206dad8364471d34a1dfa22cb3a10f43f0ef2b30a7fd77f133d606824d9d63ccea4312adc91593d7f44e
|
7
|
+
data.tar.gz: 24b7d84430cfa5b489079e53aa8f5d547e66b507ef8dd2771d051c7e3558d7cb7bc7d95b4178b4fe6ae0d91c8ae92d95885cc3db697d463a9fbb15d685b84ba6
|
data/lib/soar_sr/handler.rb
CHANGED
@@ -40,6 +40,28 @@ module SoarSr
|
|
40
40
|
has_data?(result, 'registered') and result['data']['registered']
|
41
41
|
end
|
42
42
|
|
43
|
+
def type_registered?(element, type)
|
44
|
+
return is_registered?(@registry.domain_perspectives.domain_perspective_registered?(element)) if (type == 'domains')
|
45
|
+
return is_registered?(@registry.service_components.service_component_registered?(element)) if (type == 'service-components')
|
46
|
+
return is_registered?(@registry.services.service_registered?(element)) if (type == 'services')
|
47
|
+
return is_registered?(@registry.teams.team_registered?(element)) if (type == 'teams')
|
48
|
+
false
|
49
|
+
end
|
50
|
+
|
51
|
+
def not_registered?(element, type)
|
52
|
+
raise ValidationError, "#{one_of(type)} already exists" if type_registered?(element, type)
|
53
|
+
true
|
54
|
+
end
|
55
|
+
|
56
|
+
def any_registered?(domain_perspective)
|
57
|
+
raise ValidationError, "unknown domain perspective provided" if (not type_registered?(domain_perspective, 'domains')) and (not type_registered?(domain_perspective, 'teams'))
|
58
|
+
end
|
59
|
+
|
60
|
+
def registered?(element, type)
|
61
|
+
raise ValidationError, "unknown #{one_of(type)} provided" if not type_registered?(element, type)
|
62
|
+
true
|
63
|
+
end
|
64
|
+
|
43
65
|
def validate
|
44
66
|
provided?(@urns, "urns") and provided?(@uddi, "UDDI provider") and credentials?(@credentials)
|
45
67
|
end
|
@@ -4,16 +4,16 @@ require 'persistent-cache'
|
|
4
4
|
|
5
5
|
module SoarSr
|
6
6
|
class JUDDIProvider
|
7
|
+
attr_reader :broker
|
8
|
+
attr_reader :urns
|
9
|
+
attr_reader :cache
|
10
|
+
|
7
11
|
def initialize(urns, broker, cache_freshness)
|
8
12
|
@urns = urns
|
9
13
|
@broker = broker
|
10
14
|
@cache = Persistent::Cache.new("uddi-broker", cache_freshness, Persistent::Cache::STORAGE_RAM)
|
11
15
|
end
|
12
16
|
|
13
|
-
def broker
|
14
|
-
@broker
|
15
|
-
end
|
16
|
-
|
17
17
|
def assign_service_to_business(name, business_key = @urns['company'])
|
18
18
|
@broker.authorize
|
19
19
|
result = get_service(name)
|
@@ -109,12 +109,6 @@ module SoarSr
|
|
109
109
|
@broker.save_element_bindings(service_component, [uri], @urns['service-components'], "service component")
|
110
110
|
end
|
111
111
|
|
112
|
-
def delete_existing_bindings(bindings)
|
113
|
-
bindings.each do |binding, detail|
|
114
|
-
@broker.delete_binding(binding)
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
112
|
def find_service_component_uri(service_component)
|
119
113
|
cached = @cache["find_service_component_uri:#{service_component}"]; return cached if cached
|
120
114
|
value = @broker.find_element_bindings(service_component, @urns['service-components'])
|
@@ -147,12 +141,14 @@ module SoarSr
|
|
147
141
|
@broker.delete_business(key)
|
148
142
|
end
|
149
143
|
|
150
|
-
def business_eq?(business, comparison)
|
151
|
-
business == "#{@urns['domains']}#{comparison}"
|
152
|
-
end
|
153
|
-
|
154
144
|
private
|
155
145
|
|
146
|
+
def delete_existing_bindings(bindings)
|
147
|
+
bindings.each do |binding, detail|
|
148
|
+
@broker.delete_binding(binding)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
156
152
|
def has_bindings?(result)
|
157
153
|
result and result['data'] and result['data']['bindings'] and (result['data']['bindings'].size > 0)
|
158
154
|
end
|
@@ -14,6 +14,7 @@ module SoarSr
|
|
14
14
|
attr_reader :contacts
|
15
15
|
|
16
16
|
def initialize(uri, company, company_name, credentials, cache_freshness = 60)
|
17
|
+
validate(uri, company, company_name, credentials)
|
17
18
|
@urns = initialize_urns(company, company_name)
|
18
19
|
@uddi = initialize_uddi_provider(uri, @urns, credentials, cache_freshness)
|
19
20
|
initialize_handlers(@urns, @uddi, credentials)
|
@@ -22,9 +23,7 @@ module SoarSr
|
|
22
23
|
def check_dss(name)
|
23
24
|
end
|
24
25
|
|
25
|
-
|
26
|
-
|
27
|
-
def initialize_urns(fqdn, company_name)
|
26
|
+
def self.build_urns(fqdn, company_name)
|
28
27
|
base = "uddi:#{fqdn}"
|
29
28
|
@urns = { 'base' => base,
|
30
29
|
'company' => "#{base}:#{company_name}",
|
@@ -35,6 +34,20 @@ module SoarSr
|
|
35
34
|
@urns
|
36
35
|
end
|
37
36
|
|
37
|
+
private
|
38
|
+
|
39
|
+
def validate(uri, company, company_name, credentials)
|
40
|
+
validator = SoarSr::Validator.new
|
41
|
+
validator.provided?(uri, 'URI') and validator.uri?(uri)
|
42
|
+
validator.provided?(company, 'company FQDN')
|
43
|
+
validator.provided?(company_name, 'company name')
|
44
|
+
validator.provided?(credentials, 'credentials') and validator.credentials?(credentials)
|
45
|
+
end
|
46
|
+
|
47
|
+
def initialize_urns(fqdn, company_name)
|
48
|
+
SoarSr::ServiceRegistry::build_urns(fqdn, company_name)
|
49
|
+
end
|
50
|
+
|
38
51
|
def initialize_uddi_provider(uri, urns, credentials, cache_freshness)
|
39
52
|
@broker = ::Soap4juddi::Broker.new(urns)
|
40
53
|
@broker.set_uri(uri)
|
data/lib/soar_sr/validator.rb
CHANGED
@@ -32,7 +32,7 @@ module SoarSr
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def credentials?(credentials)
|
35
|
-
provided?(credentials['username'], 'username') and provided?(credentials['password'], 'password')
|
35
|
+
provided?(credentials, 'credentials') and provided?(credentials['username'], 'username') and provided?(credentials['password'], 'password')
|
36
36
|
end
|
37
37
|
|
38
38
|
def authorized?(result)
|
@@ -74,31 +74,10 @@ module SoarSr
|
|
74
74
|
true
|
75
75
|
end
|
76
76
|
|
77
|
-
def type_registered?(element, type)
|
78
|
-
return is_registered?(@registry.domain_perspectives.domain_perspective_registered?(element)) if (type == 'domains')
|
79
|
-
return is_registered?(@registry.service_components.service_component_registered?(element)) if (type == 'service-components')
|
80
|
-
return is_registered?(@registry.services.service_registered?(element)) if (type == 'services')
|
81
|
-
return is_registered?(@registry.teams.team_registered?(element)) if (type == 'teams')
|
82
|
-
false
|
83
|
-
end
|
84
|
-
|
85
|
-
def not_registered?(element, type)
|
86
|
-
raise ValidationError, "#{one_of(type)} already exists" if type_registered?(element, type)
|
87
|
-
true
|
88
|
-
end
|
89
|
-
|
90
|
-
def any_registered?(domain_perspective)
|
91
|
-
raise ValidationError, "unknown domain perspective provided" if (not type_registered?(domain_perspective, 'domains')) and (not type_registered?(domain_perspective, 'teams'))
|
92
|
-
end
|
93
|
-
|
94
|
-
def registered?(element, type)
|
95
|
-
raise ValidationError, "unknown #{one_of(type)} provided" if not type_registered?(element, type)
|
96
|
-
true
|
97
|
-
end
|
98
|
-
|
99
77
|
def one_of(type)
|
100
78
|
result = type[0..-2]
|
101
79
|
result = 'domain perspective' if result == 'domain'
|
80
|
+
result = 'service component' if result == 'service-component'
|
102
81
|
result
|
103
82
|
end
|
104
83
|
end
|
data/lib/soar_sr/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: soar_sr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ernst van Graan
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: persistent-cache
|