pisoni 1.27.0 → 1.28.0
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/CHANGELOG.md +14 -0
- data/lib/3scale/core.rb +0 -1
- data/lib/3scale/core/errors.rb +0 -30
- data/lib/3scale/core/service.rb +6 -8
- data/lib/3scale/core/version.rb +1 -1
- data/spec/service_spec.rb +7 -9
- metadata +2 -5
- data/lib/3scale/core/user.rb +0 -58
- data/spec/user_spec.rb +0 -192
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b4bd300163940397f3151f3648985d23dfa38da6a18d1fabb235020f69cd3ef0
|
4
|
+
data.tar.gz: de16fdc8e8dc900f80c33bac0e324ac831e1260830d5a456b4bc509bcbc4d54e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f582b3622c904272fccad3c65ca34789fc16f6601825c11b62f63d46aefe2c820ed786038e69def7e278432fc7435ee4bfc80e2e5e04e095a7b6971fd0007da
|
7
|
+
data.tar.gz: 2c1994bd77a4baadcc19fb75b87d99b872842cc0bee6e0d6f9a77ab52fd1aa0677ae976aeccc85f5fec463679106a30252c80efe0325a0cc5fd79a8b369c8bdc
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,20 @@
|
|
2
2
|
|
3
3
|
Notable changes to Pisoni will be tracked in this document.
|
4
4
|
|
5
|
+
## 1.28.0 - 2019-12-20
|
6
|
+
|
7
|
+
### Changed
|
8
|
+
|
9
|
+
- `Service.delete_stats` has been adapted to the changes in Apisonator. Now it
|
10
|
+
only needs to receive the service ID as a param and deletes all the stats for
|
11
|
+
that service. The second param of the function, "delete_job" is ignored now.
|
12
|
+
[#24](https://github.com/3scale/pisoni/pull/24)
|
13
|
+
|
14
|
+
### Removed
|
15
|
+
|
16
|
+
- Support for end-users, a feature that's no longer supported in recent
|
17
|
+
Apisonator. [#25](https://github.com/3scale/pisoni/pull/25)
|
18
|
+
|
5
19
|
## 1.27.0 - 2019-06-28
|
6
20
|
|
7
21
|
### Added
|
data/lib/3scale/core.rb
CHANGED
@@ -18,7 +18,6 @@ require '3scale/core/application'
|
|
18
18
|
require '3scale/core/metric'
|
19
19
|
require '3scale/core/service'
|
20
20
|
require '3scale/core/usage_limit'
|
21
|
-
require '3scale/core/user'
|
22
21
|
require '3scale/core/event'
|
23
22
|
require '3scale/core/alert_limit'
|
24
23
|
require '3scale/core/errors'
|
data/lib/3scale/core/errors.rb
CHANGED
@@ -37,12 +37,6 @@ module ThreeScale
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
-
class ServiceRequiresDefaultUserPlan < Error
|
41
|
-
def initialize
|
42
|
-
super %(Services without the need for registered users require a default user plan)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
40
|
class ServiceIsDefaultService < Error
|
47
41
|
def initialize(id = nil)
|
48
42
|
super %(Service id="#{id}" is the default service, must be removed forcefully or make it not default before removal)
|
@@ -55,30 +49,6 @@ module ThreeScale
|
|
55
49
|
end
|
56
50
|
end
|
57
51
|
|
58
|
-
class UserRequiresUsername < Error
|
59
|
-
def initialize
|
60
|
-
super %(User requires username)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
class UserRequiresServiceId < Error
|
65
|
-
def initialize
|
66
|
-
super %(User requires a service id)
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
class UserRequiresValidServiceId < Error
|
71
|
-
def initialize(id)
|
72
|
-
super %(Service id #{id} is invalid, user requires a valid id)
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
class UserRequiresDefinedPlan < Error
|
77
|
-
def initialize(plan_id, plan_name)
|
78
|
-
super %(User requires a defined plan, plan id: #{plan_id} plan name: #{plan_name})
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
52
|
class InvalidProviderKeys < Error
|
83
53
|
def initialize
|
84
54
|
super %(Provider keys are not valid, must be not nil and different)
|
data/lib/3scale/core/service.rb
CHANGED
@@ -20,12 +20,7 @@ module ThreeScale
|
|
20
20
|
|
21
21
|
def save!(attributes)
|
22
22
|
id = attributes.fetch(:id)
|
23
|
-
api_update(attributes, uri: service_uri(id))
|
24
|
-
if result[:response].status == 400
|
25
|
-
raise ServiceRequiresDefaultUserPlan
|
26
|
-
end
|
27
|
-
true
|
28
|
-
end
|
23
|
+
api_update(attributes, uri: service_uri(id))
|
29
24
|
end
|
30
25
|
|
31
26
|
def change_provider_key!(old_key, new_key)
|
@@ -46,8 +41,11 @@ module ThreeScale
|
|
46
41
|
save! id: service_id, default_service: true
|
47
42
|
end
|
48
43
|
|
49
|
-
|
50
|
-
|
44
|
+
# Deletes all the stats for the given service.
|
45
|
+
# Note: delete_job is no longer needed. It's kept to avoid breaking
|
46
|
+
# compatibility.
|
47
|
+
def delete_stats(service_id, _delete_job)
|
48
|
+
api_delete({}, uri: "#{service_uri(service_id)}/stats", prefix: '')
|
51
49
|
end
|
52
50
|
|
53
51
|
private
|
data/lib/3scale/core/version.rb
CHANGED
data/spec/service_spec.rb
CHANGED
@@ -97,14 +97,6 @@ module ThreeScale
|
|
97
97
|
service.provider_key.must_equal default_provider_key
|
98
98
|
end
|
99
99
|
|
100
|
-
it 'raises an exception when missing a default user plan' do
|
101
|
-
@service_params.merge! user_registration_required: false
|
102
|
-
|
103
|
-
lambda do
|
104
|
-
Service.save!(@service_params)
|
105
|
-
end.must_raise ServiceRequiresDefaultUserPlan
|
106
|
-
end
|
107
|
-
|
108
100
|
it 'save active service' do
|
109
101
|
service = Service.new(@service_params)
|
110
102
|
service.wont_be_nil
|
@@ -240,8 +232,14 @@ module ThreeScale
|
|
240
232
|
}
|
241
233
|
end
|
242
234
|
|
243
|
-
describe 'with
|
235
|
+
describe 'with a service ID' do
|
244
236
|
it 'does not raise error' do
|
237
|
+
Service.delete_stats(default_service_id, nil).must_equal true
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
describe 'with a deprecated delete_job param' do
|
242
|
+
it 'ignores it without raising error' do
|
245
243
|
Service.delete_stats(default_service_id, delete_job).must_equal true
|
246
244
|
end
|
247
245
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pisoni
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.28.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alejandro Martinez Ruiz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -115,7 +115,6 @@ files:
|
|
115
115
|
- lib/3scale/core/service_token.rb
|
116
116
|
- lib/3scale/core/transaction.rb
|
117
117
|
- lib/3scale/core/usage_limit.rb
|
118
|
-
- lib/3scale/core/user.rb
|
119
118
|
- lib/3scale/core/utilization.rb
|
120
119
|
- lib/3scale/core/version.rb
|
121
120
|
- lib/3scale_core.rb
|
@@ -136,7 +135,6 @@ files:
|
|
136
135
|
- spec/spec_helper.rb
|
137
136
|
- spec/transaction_spec.rb
|
138
137
|
- spec/usagelimit_spec.rb
|
139
|
-
- spec/user_spec.rb
|
140
138
|
- spec/utilization_spec.rb
|
141
139
|
homepage: https://github.com/3scale/pisoni
|
142
140
|
licenses:
|
@@ -178,5 +176,4 @@ test_files:
|
|
178
176
|
- spec/spec_helper.rb
|
179
177
|
- spec/transaction_spec.rb
|
180
178
|
- spec/usagelimit_spec.rb
|
181
|
-
- spec/user_spec.rb
|
182
179
|
- spec/utilization_spec.rb
|
data/lib/3scale/core/user.rb
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
module ThreeScale
|
2
|
-
module Core
|
3
|
-
class User < APIClient::Resource
|
4
|
-
attributes :service_id, :username, :state, :plan_id, :plan_name
|
5
|
-
|
6
|
-
default_uri '/internal/services/'
|
7
|
-
|
8
|
-
def self.base_uri(service_id, username)
|
9
|
-
"#{default_uri}#{service_id}/users/#{username}"
|
10
|
-
end
|
11
|
-
private_class_method :base_uri
|
12
|
-
|
13
|
-
def self.users_base_uri(service_id)
|
14
|
-
"#{default_uri}#{service_id}/users"
|
15
|
-
end
|
16
|
-
private_class_method :users_base_uri
|
17
|
-
|
18
|
-
def self.check_params(service_id, username)
|
19
|
-
raise UserRequiresUsername if username.nil? || username == ''.freeze
|
20
|
-
raise UserRequiresServiceId if service_id.nil? || service_id == ''.freeze
|
21
|
-
end
|
22
|
-
private_class_method :check_params
|
23
|
-
|
24
|
-
def self.load(service_id, username)
|
25
|
-
check_params service_id, username
|
26
|
-
api_read({}, uri: base_uri(service_id, username))
|
27
|
-
end
|
28
|
-
|
29
|
-
def self.save!(attributes)
|
30
|
-
service_id, username = attributes[:service_id], attributes[:username]
|
31
|
-
check_params service_id, username
|
32
|
-
api_update(attributes,
|
33
|
-
uri: base_uri(service_id, username)) do |result|
|
34
|
-
if result[:response].status == 400
|
35
|
-
if result[:response_json][:error] =~ /requires a valid service/
|
36
|
-
raise UserRequiresValidServiceId.new(service_id)
|
37
|
-
elsif result[:response_json][:error] =~ /requires a defined plan/
|
38
|
-
raise UserRequiresDefinedPlan.new(attributes[:plan_id],
|
39
|
-
attributes[:plan_name])
|
40
|
-
end
|
41
|
-
end
|
42
|
-
true
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def self.delete!(service_id, username)
|
47
|
-
check_params service_id, username
|
48
|
-
api_delete({}, uri: base_uri(service_id, username))
|
49
|
-
end
|
50
|
-
|
51
|
-
def self.delete_all_for_service(service_id)
|
52
|
-
raise UserRequiresServiceId if service_id.nil? || service_id == ''.freeze
|
53
|
-
|
54
|
-
api_delete({}, uri: users_base_uri(service_id))
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
data/spec/user_spec.rb
DELETED
@@ -1,192 +0,0 @@
|
|
1
|
-
require_relative './spec_helper'
|
2
|
-
|
3
|
-
module ThreeScale
|
4
|
-
module Core
|
5
|
-
describe User do
|
6
|
-
def nothing_raised
|
7
|
-
yield
|
8
|
-
true
|
9
|
-
rescue => e
|
10
|
-
e
|
11
|
-
end
|
12
|
-
|
13
|
-
let(:service_id) { 2001 }
|
14
|
-
let(:nonexistent_service_id) { service_id.succ }
|
15
|
-
let(:provider_key) { 'provider_for_user_spec' }
|
16
|
-
let(:username) { 'pancho' }
|
17
|
-
let(:nonexistent_username) { 'rodolfo' }
|
18
|
-
let(:state) { :active }
|
19
|
-
let(:plan_id) { 6789 }
|
20
|
-
let(:plan_name) { 'plan_for_panchos' }
|
21
|
-
|
22
|
-
before do
|
23
|
-
Service.save! provider_key: provider_key,
|
24
|
-
id: service_id, default_service: true
|
25
|
-
|
26
|
-
Service.delete_by_id! nonexistent_service_id rescue nil
|
27
|
-
User.delete! service_id, nonexistent_username
|
28
|
-
@user = User.save! service_id: service_id, username: username, state: state,
|
29
|
-
plan_id: plan_id, plan_name: plan_name
|
30
|
-
end
|
31
|
-
|
32
|
-
describe '.load' do
|
33
|
-
it 'returns a User object' do
|
34
|
-
User.load(service_id, username).class.must_equal User
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'parses data from received JSON' do
|
38
|
-
user = User.load(service_id, username)
|
39
|
-
|
40
|
-
user.wont_be_nil
|
41
|
-
user.service_id.must_equal service_id.to_s
|
42
|
-
user.state.must_equal state.to_s
|
43
|
-
user.plan_id.must_equal plan_id.to_s
|
44
|
-
user.plan_name.must_equal plan_name
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'raises when the service id is missing or empty' do
|
48
|
-
['', nil].each do |service_id|
|
49
|
-
lambda do
|
50
|
-
User.load service_id, username
|
51
|
-
end.must_raise UserRequiresServiceId
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'raises when the user name is missing or empty' do
|
56
|
-
['', nil].each do |user_name|
|
57
|
-
lambda do
|
58
|
-
User.load service_id, user_name
|
59
|
-
end.must_raise UserRequiresUsername
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
it 'returns nil when a non-existent service id is used' do
|
64
|
-
User.load(nonexistent_service_id, username).must_be_nil
|
65
|
-
end
|
66
|
-
|
67
|
-
it 'returns nil when a non-existent user name is used' do
|
68
|
-
User.load(service_id, nonexistent_username).must_be_nil
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
describe '.save!' do
|
73
|
-
before do
|
74
|
-
User.delete! service_id, nonexistent_username
|
75
|
-
end
|
76
|
-
|
77
|
-
it 'returns a User object' do
|
78
|
-
@user.wont_be_nil
|
79
|
-
@user.class.must_equal User
|
80
|
-
end
|
81
|
-
|
82
|
-
it 'returns an object with the saved attributes' do
|
83
|
-
@user.wont_be_nil
|
84
|
-
@user.service_id.must_equal service_id.to_s
|
85
|
-
@user.username.must_equal username
|
86
|
-
@user.state.must_equal state.to_s
|
87
|
-
@user.plan_id.must_equal plan_id
|
88
|
-
@user.plan_name.must_equal plan_name
|
89
|
-
end
|
90
|
-
|
91
|
-
it 'raises when the service id is missing or empty' do
|
92
|
-
['', nil].each do |service_id|
|
93
|
-
lambda do
|
94
|
-
User.save! service_id: service_id, username: username, plan_id: plan_id,
|
95
|
-
plan_name: plan_name
|
96
|
-
end.must_raise UserRequiresServiceId
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
it 'raises when the user name is missing or empty' do
|
101
|
-
['', nil].each do |user_name|
|
102
|
-
lambda do
|
103
|
-
User.save! service_id: service_id, username: user_name, plan_id: plan_id,
|
104
|
-
plan_name: plan_name
|
105
|
-
end.must_raise UserRequiresUsername
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
it 'raises when a non-existent service id is used' do
|
110
|
-
lambda do
|
111
|
-
User.save! service_id: nonexistent_service_id, username: username,
|
112
|
-
plan_id: plan_id, plan_name: plan_name
|
113
|
-
end.must_raise UserRequiresValidServiceId
|
114
|
-
end
|
115
|
-
|
116
|
-
it 'raises when plan_id is nil' do
|
117
|
-
lambda do
|
118
|
-
User.save! service_id: service_id, username: username,
|
119
|
-
plan_id: nil, plan_name: plan_name
|
120
|
-
end.must_raise UserRequiresDefinedPlan
|
121
|
-
end
|
122
|
-
|
123
|
-
it 'raises when plan_name is nil' do
|
124
|
-
lambda do
|
125
|
-
User.save! service_id: service_id, username: username,
|
126
|
-
plan_id: plan_id, plan_name: nil
|
127
|
-
end.must_raise UserRequiresDefinedPlan
|
128
|
-
end
|
129
|
-
|
130
|
-
it 'returns a new user when a non-existent user name is used' do
|
131
|
-
nothing_raised do
|
132
|
-
User.save! service_id: service_id, username: nonexistent_username,
|
133
|
-
plan_id: plan_id, plan_name: plan_name
|
134
|
-
end.must_equal true
|
135
|
-
|
136
|
-
user = User.load service_id, nonexistent_username
|
137
|
-
|
138
|
-
user.wont_be_nil
|
139
|
-
user.service_id.must_equal service_id.to_s
|
140
|
-
user.username.must_equal nonexistent_username
|
141
|
-
user.state.must_equal state.to_s
|
142
|
-
user.plan_id.must_equal plan_id.to_s
|
143
|
-
user.plan_name.must_equal plan_name
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
describe '.delete!' do
|
148
|
-
before do
|
149
|
-
User.save! service_id: service_id, username: username, state: state,
|
150
|
-
plan_id: plan_id, plan_name: plan_name
|
151
|
-
end
|
152
|
-
|
153
|
-
it 'deletes the user' do
|
154
|
-
nothing_raised do
|
155
|
-
User.delete! service_id, username
|
156
|
-
end.must_equal true
|
157
|
-
|
158
|
-
User.save! service_id: service_id, username: username, state: state,
|
159
|
-
plan_id: plan_id, plan_name: plan_name
|
160
|
-
end
|
161
|
-
end
|
162
|
-
|
163
|
-
describe '.delete_all_for_service' do
|
164
|
-
let(:service_id) { '2001_delete_all_for_service' }
|
165
|
-
let(:provider_key) { 'provider_for_delete_all_for_service' }
|
166
|
-
let(:state) { :active }
|
167
|
-
|
168
|
-
before do
|
169
|
-
Service.save! provider_key: provider_key, id: service_id, default_service: true
|
170
|
-
end
|
171
|
-
|
172
|
-
it 'deletes all users' do
|
173
|
-
user01 = User.save!(service_id: service_id, username: 'username01', state: :active,
|
174
|
-
plan_id: 'plan_id_01', plan_name: 'plan_01')
|
175
|
-
user02 = User.save!(service_id: service_id, username: 'username02', state: :active,
|
176
|
-
plan_id: 'plan_id_02', plan_name: 'plan_02')
|
177
|
-
User.delete_all_for_service(service_id).must_equal true
|
178
|
-
User.load(service_id, user01.username).must_be_nil
|
179
|
-
User.load(service_id, user02.username).must_be_nil
|
180
|
-
end
|
181
|
-
|
182
|
-
it 'raises error on empty service' do
|
183
|
-
proc { User.delete_all_for_service('') }.must_raise UserRequiresServiceId
|
184
|
-
end
|
185
|
-
|
186
|
-
it 'raises error on nil service' do
|
187
|
-
proc { User.delete_all_for_service(nil) }.must_raise UserRequiresServiceId
|
188
|
-
end
|
189
|
-
end
|
190
|
-
end
|
191
|
-
end
|
192
|
-
end
|