kpm 0.5.0 → 0.5.1

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
  SHA1:
3
- metadata.gz: 4f1e196bb197de525d51d65751e802c910921afa
4
- data.tar.gz: 64e8c82a289a508aa3bb76ff84671a5da4120ca9
3
+ metadata.gz: 6be3b3dacc891388365ba4094b09108090506210
4
+ data.tar.gz: 851500df67953047390b991a8379861adf8fcd6d
5
5
  SHA512:
6
- metadata.gz: 8d95f6091a305f3c5c208a8e1aad22600762d3d7b5422ba0b94fa2193a4d309140ff03064a4c36ee94f1985833d7547710b334e0f50f05c77c14e6a1f7c16945
7
- data.tar.gz: 149dc3e06978318594845dce2ae8f91025fe9a0b73f799d0655d18b74ff3af3c4b4ee782680b08a09bd31474df25fd88ee74d0310d823a8c1ea0d3cfdee4cf98
6
+ metadata.gz: 26ac12031991b00e25eb1c790801a7dfb624ec54d0eb745ee0c860aa01ebfdf27a34154a028002dde4c9aed100883ee8bc6a7cc935d3cc41bae755193d637b69
7
+ data.tar.gz: 3279ae222cfdf26b8b1d844ef286d157b1dff9c5a660e9b188ec9db4d14ba3b6b07d6dfff43f77e14c642265228c627c63c9c339e5a0089aaa429663b879f104
data/kpm.gemspec CHANGED
@@ -43,9 +43,9 @@ Gem::Specification.new do |s|
43
43
  s.add_dependency 'nexus_cli', '~> 4.1.0'
44
44
  s.add_dependency 'thor', '~> 0.19.1'
45
45
  s.add_dependency 'rubyzip', '~>1.2.0'
46
+ s.add_dependency 'killbill-client', '~> 1.0'
46
47
 
47
48
  s.add_development_dependency 'rake', '>= 10.0.0', '< 11.0.0'
48
49
  s.add_development_dependency 'rspec', '~> 2.12.0'
49
- s.add_development_dependency 'killbill-client', '~> 1.0'
50
50
  end
51
51
 
data/lib/kpm.rb CHANGED
@@ -20,6 +20,7 @@ module KPM
20
20
  autoload :System, 'kpm/system'
21
21
  autoload :Account, 'kpm/account'
22
22
  autoload :Database, 'kpm/database'
23
+ autoload :TenantConfig, 'kpm/tenant_config.rb'
23
24
 
24
25
  class << self
25
26
  def root
data/lib/kpm/account.rb CHANGED
@@ -3,6 +3,7 @@ require 'tmpdir'
3
3
  require 'yaml'
4
4
  require 'date'
5
5
  require 'securerandom'
6
+ require 'killbill_client'
6
7
 
7
8
  module KPM
8
9
 
@@ -65,7 +66,7 @@ module KPM
65
66
  :tag_history => {:id => :tag_history_id, :object_id => nil},
66
67
  :audit_log => {:id => :audit_log_id}
67
68
  }
68
-
69
+
69
70
  #delimeters to sniff
70
71
  DELIMITERS = [',','|']
71
72
  DEFAULT_DELIMITER = "|"
@@ -121,7 +122,7 @@ module KPM
121
122
  raise Interrupt, 'Need to specify a valid file'
122
123
  end
123
124
 
124
- @delimiter = sniff_delimiter(source_file) || @delimiter
125
+ @delimiter = sniff_delimiter(source_file) || @delimiter
125
126
 
126
127
  sanitize_and_import(source_file, skip_payment_methods)
127
128
  end
@@ -130,27 +131,21 @@ module KPM
130
131
 
131
132
  # export helpers: fetch_export_data; export; process_export_data; remove_export_data;
132
133
  def fetch_export_data(account_id)
133
- uri = URI("#{@killbill_url}/#{KILLBILL_API_VERSION}/kb/export/#{account_id}")
134
-
135
- request = Net::HTTP::Get.new(uri.request_uri)
136
- request.basic_auth(@killbill_user,@killbill_password)
137
- request['X-Killbill-ApiKey'] = @killbill_api_key;
138
- request['X-Killbill-ApiSecret'] = @killbill_api_secrets;
139
- request['X-Killbill-CreatedBy'] = WHO;
140
-
141
- response = Net::HTTP.start(uri.host,uri.port) do |http|
142
- http.request(request)
143
- end
144
-
145
- if response.to_s.include? 'HTTPUnauthorized'
146
- raise Interrupt, "User is unauthorized -> \e[93mUser[#{@killbill_user}],password[#{@killbill_password}],api_key[#{@killbill_api_key}],api_secret[#{@killbill_api_secrets}]\e[0m"
147
- end
134
+ KillBillClient.url = @killbill_url
135
+ options = {
136
+ :username => @killbill_user,
137
+ :password => @killbill_password,
138
+ :api_key => @killbill_api_key,
139
+ :api_secret => @killbill_api_secrets
140
+ }
148
141
 
149
- if not response.is_a?(Net::HTTPSuccess)
142
+ begin
143
+ account_data = KillBillClient::Model::Export.find_by_account_id(account_id, 'KPM', options)
144
+ rescue Exception => e
150
145
  raise Interrupt, 'Account id not found'
151
146
  end
152
147
 
153
- response.body
148
+ account_data
154
149
  end
155
150
 
156
151
  def export(export_data)
@@ -380,12 +375,12 @@ module KPM
380
375
 
381
376
  def fix_dates(value)
382
377
  if !value.equal?(:DEFAULT)
383
-
378
+
384
379
  dt = DateTime.parse(value)
385
380
  return dt.strftime('%F %T').to_s
386
-
381
+
387
382
  end
388
-
383
+
389
384
  value
390
385
  end
391
386
 
@@ -430,23 +425,23 @@ module KPM
430
425
  end
431
426
 
432
427
  def sniff_delimiter(file)
433
-
428
+
434
429
  return nil if File.size?(file).nil?
435
-
430
+
436
431
  first_line = File.open(file) {|f| f.readline}
437
-
432
+
438
433
  return nil if first_line.nil?
439
-
434
+
440
435
  sniff = {}
441
-
436
+
442
437
  DELIMITERS.each do |delimiter|
443
438
  sniff[delimiter] = first_line.count(delimiter)
444
439
  end
445
-
440
+
446
441
  sniff = sniff.sort {|a,b| b[1]<=>a[1]}
447
442
  sniff.size > 0 ? sniff[0][0] : nil
448
443
  end
449
-
444
+
450
445
  # helper methods that set up killbill and database options: load_config_from_file; set_config; set_database_options;
451
446
  # set_killbill_options;
452
447
  def load_config_from_file(config_file)
@@ -46,7 +46,7 @@
46
46
  :versions:
47
47
  :0.14: 0.0.1
48
48
  :0.16: 0.2.1
49
- :0.18: 0.3.0
49
+ :0.18: 0.3.1
50
50
  :require:
51
51
  - :merchant_id
52
52
  - :public_key
@@ -113,7 +113,7 @@
113
113
  :0.15: 0.0.2
114
114
  :0.16: 0.0.5
115
115
  :0.17: 1.0.0
116
- :0.18: 1.1.0
116
+ :0.18: 1.1.1
117
117
  :litle:
118
118
  :type: :ruby
119
119
  :versions:
@@ -197,7 +197,7 @@
197
197
  :0.15: 2.0.0
198
198
  :0.16: 3.0.3
199
199
  :0.17: 4.0.0
200
- :0.18: 4.1.0
200
+ :0.18: 4.1.1
201
201
  :require:
202
202
  - :api_secret_key
203
203
  :zendesk:
@@ -205,7 +205,7 @@
205
205
  :versions:
206
206
  :0.14: 1.3.0
207
207
  :0.16: 2.0.0
208
- :0.18: 3.0.0
208
+ :0.18: 3.0.1
209
209
  :require:
210
210
  - :subdomain
211
211
  - :username
data/lib/kpm/tasks.rb CHANGED
@@ -536,6 +536,58 @@ module KPM
536
536
  end
537
537
  end
538
538
  end
539
+
540
+ method_option :key_prefix,
541
+ :type => :string,
542
+ :default => nil,
543
+ :enum => KPM::TenantConfig::KEY_PREFIXES,
544
+ :desc => 'Retrieve a per tenant key value based on key prefix'
545
+ method_option :killbill_api_credentials,
546
+ :type => :array,
547
+ :default => nil,
548
+ :desc => 'Killbill api credentials <api_key> <api_secrets>'
549
+ method_option :killbill_credentials,
550
+ :type => :array,
551
+ :default => nil,
552
+ :desc => 'Killbill credentials <user> <password>'
553
+ method_option :killbill_url,
554
+ :type => :string,
555
+ :default => nil,
556
+ :desc => 'Killbill URL ex. http://127.0.0.1:8080'
557
+ desc 'tenant_config', 'export all tenant-level configs.'
558
+ def tenant_config
559
+ logger.info 'Please wait processing the request!!!'
560
+ begin
561
+
562
+ if options[:killbill_url] && /https?:\/\/[\S]+/.match(options[:killbill_url]).nil?
563
+ raise Interrupt,'--killbill_url, required format -> http(s)://something'
564
+ end
565
+
566
+ if options[:killbill_api_credentials] && options[:killbill_api_credentials].size != 2
567
+ raise Interrupt,'--killbill_api_credentials, required format -> <api_key> <api_secrets>'
568
+ end
569
+
570
+ if options[:killbill_credentials] && options[:killbill_credentials].size != 2
571
+ raise Interrupt,'--killbill_credentials, required format -> <user> <password>'
572
+ end
573
+
574
+ if options[:key_prefix] === :key_prefix.to_s
575
+ raise Interrupt, "--key_prefix, posible values #{KPM::TenantConfig::KEY_PREFIXES.join(', ')}"
576
+ end
577
+
578
+ tenantConfig = KPM::TenantConfig.new(options[:killbill_api_credentials],options[:killbill_credentials],
579
+ options[:killbill_url], logger)
580
+
581
+ tenantConfig.export(options[:key_prefix])
582
+
583
+ rescue Exception => e
584
+ logger.error "\e[91;1m#{e.message}\e[0m"
585
+ if not e.is_a?(Interrupt)
586
+ logger.error e.backtrace.join("\n")
587
+ end
588
+ end
589
+ end
590
+
539
591
 
540
592
  map :pull_ruby_plugin => :install_ruby_plugin,
541
593
  :pull_java_plugin => :install_java_plugin
@@ -0,0 +1,131 @@
1
+ require 'tmpdir'
2
+ require 'json'
3
+ require 'killbill_client'
4
+
5
+ module KPM
6
+
7
+ class TenantConfig
8
+ # Killbill server
9
+ KILLBILL_HOST = ENV['KILLBILL_HOST'] || '127.0.0.1'
10
+ KILLBILL_URL = 'http://'.concat(KILLBILL_HOST).concat(':8080')
11
+ KILLBILL_API_VERSION = '1.0'
12
+
13
+ # USER/PWD
14
+ KILLBILL_USER = ENV['KILLBILL_USER'] || 'admin'
15
+ KILLBILL_PASSWORD = ENV['KILLBILL_PASSWORD'] || 'password'
16
+
17
+ # TENANT KEY
18
+ KILLBILL_API_KEY = ENV['KILLBILL_API_KEY'] || 'bob'
19
+ KILLBILL_API_SECRET = ENV['KILLBILL_API_SECRET'] || 'lazar'
20
+
21
+ # Temporary directory
22
+ TMP_DIR_PEFIX = 'killbill'
23
+ TMP_DIR = Dir.mktmpdir(TMP_DIR_PEFIX);
24
+
25
+ #Tenant key prefixes
26
+ KEY_PREFIXES = ['PLUGIN_CONFIG','PUSH_NOTIFICATION_CB','PER_TENANT_CONFIG',
27
+ 'PLUGIN_PAYMENT_STATE_MACHINE','CATALOG','OVERDUE_CONFIG',
28
+ 'INVOICE_TRANSLATION','CATALOG_TRANSLATION','INVOICE_TEMPLATE','INVOICE_MP_TEMPLATE']
29
+
30
+
31
+ def initialize(killbill_api_credentials = nil, killbill_credentials = nil, killbill_url = nil, logger = nil)
32
+ @killbill_api_key = KILLBILL_API_KEY
33
+ @killbill_api_secrets = KILLBILL_API_SECRET
34
+ @killbill_url = KILLBILL_URL
35
+ @killbill_user = KILLBILL_USER
36
+ @killbill_password = KILLBILL_PASSWORD
37
+ @logger = logger
38
+
39
+ set_killbill_options(killbill_api_credentials,killbill_credentials,killbill_url)
40
+
41
+ end
42
+
43
+ def export(key_prefix = nil)
44
+
45
+ export_data = fetch_export_data(key_prefix)
46
+
47
+ if export_data.size == 0
48
+ raise Interrupt, 'key_prefix not found'
49
+ end
50
+
51
+ export_file = store_into_file(export_data)
52
+
53
+ if not File.exist?(export_file)
54
+ raise Interrupt, 'key_prefix not found'
55
+ else
56
+ @logger.info "\e[32mData exported under #{export_file}\e[0m"
57
+ end
58
+
59
+ export_file
60
+ end
61
+
62
+ private
63
+
64
+ def fetch_export_data(key_prefix)
65
+ tenant_config = []
66
+ pefixes = key_prefix.nil? ? KEY_PREFIXES : [key_prefix]
67
+
68
+ pefixes.each do |prefix|
69
+
70
+ config_data = call_client(prefix)
71
+
72
+ if config_data.size > 0
73
+ config_data.each {|data| tenant_config << data }
74
+ @logger.info "Data for key prefix \e[1m#{prefix.to_s}\e[0m was \e[1mfound and is ready to be exported\e[0m."
75
+ else
76
+ @logger.info "Data for key prefix \e[1m#{prefix.to_s}\e[0m was \e[31mnot found\e[0m."
77
+ end
78
+ end
79
+
80
+ tenant_config
81
+ end
82
+
83
+ def call_client(key_prefix)
84
+
85
+ KillBillClient.url = @killbill_url
86
+ options = {
87
+ :username => @killbill_user,
88
+ :password => @killbill_password,
89
+ :api_key => @killbill_api_key,
90
+ :api_secret => @killbill_api_secrets
91
+ }
92
+
93
+ tenant_config_data = KillBillClient::Model::Tenant.search_tenant_config(key_prefix, options)
94
+
95
+ tenant_config_data
96
+ end
97
+
98
+ def store_into_file(export_data)
99
+ export_file = TMP_DIR + File::SEPARATOR + 'kbdump'
100
+
101
+ File.open(export_file, 'w') { |io| io.puts export_data.to_json }
102
+
103
+ export_file
104
+ end
105
+
106
+ def set_killbill_options(killbill_api_credentials, killbill_credentials, killbill_url)
107
+
108
+ if not killbill_api_credentials.nil?
109
+
110
+ @killbill_api_key = killbill_api_credentials[0]
111
+ @killbill_api_secrets = killbill_api_credentials[1]
112
+
113
+ end
114
+
115
+ if not killbill_credentials.nil?
116
+
117
+ @killbill_user = killbill_credentials[0]
118
+ @killbill_password = killbill_credentials[1]
119
+
120
+ end
121
+
122
+ if not killbill_url.nil?
123
+
124
+ @killbill_url = killbill_url
125
+
126
+ end
127
+ end
128
+
129
+ end
130
+
131
+ end
data/lib/kpm/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module KPM
2
- VERSION = '0.5.0'
2
+ VERSION = '0.5.1'
3
3
  end
@@ -0,0 +1,58 @@
1
+ require 'spec_helper'
2
+
3
+ describe KPM::TenantConfig do
4
+ include_context 'connection_setup'
5
+
6
+ let(:value) {"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<catalog>\n <effectiveDate>2017-04-25T15:57:43Z</effectiveDate>\n <catalogName>DEFAULT</catalogName>\n <recurringBillingMode>IN_ADVANCE</recurringBillingMode>\n <currencies/>\n <units/>\n <products/>\n <rules>\n <changePolicy>\n <changePolicyCase>\n <policy>IMMEDIATE</policy>\n </changePolicyCase>\n </changePolicy>\n <changeAlignment>\n <changeAlignmentCase>\n <alignment>START_OF_BUNDLE</alignment>\n </changeAlignmentCase>\n </changeAlignment>\n <cancelPolicy>\n <cancelPolicyCase>\n <policy>IMMEDIATE</policy>\n </cancelPolicyCase>\n </cancelPolicy>\n <createAlignment>\n <createAlignmentCase>\n <alignment>START_OF_BUNDLE</alignment>\n </createAlignmentCase>\n </createAlignment>\n <billingAlignment>\n <billingAlignmentCase>\n <alignment>ACCOUNT</alignment>\n </billingAlignmentCase>\n </billingAlignment>\n <priceList>\n <priceListCase>\n <toPriceList>DEFAULT</toPriceList>\n </priceListCase>\n </priceList>\n </rules>\n <plans/>\n <priceLists>\n <defaultPriceList name=\"DEFAULT\">\n <plans/>\n </defaultPriceList>\n </priceLists>\n</catalog>\n"}
7
+ let(:key) {'CATALOG_RSPEC'}
8
+
9
+ let(:user) {'KPM Tenant Spec'}
10
+ let(:tenant_config_class) { described_class.new([killbill_api_key,killbill_api_secrets],
11
+ [killbill_user, killbill_password],url,logger)}
12
+ let(:options){{
13
+ :username => killbill_user,
14
+ :password => killbill_password,
15
+ :api_key => killbill_api_key,
16
+ :api_secret => killbill_api_secrets
17
+ }}
18
+
19
+ describe '#initialize' do
20
+ context 'when creating an instance of tenant config class' do
21
+
22
+ it 'when initialized with defaults' do
23
+ expect(described_class.new).to be_an_instance_of(KPM::TenantConfig)
24
+ end
25
+
26
+ it 'when initialized with options' do
27
+ tenant_config_class.should be_an_instance_of(KPM::TenantConfig)
28
+ expect(tenant_config_class.instance_variable_get(:@killbill_api_key)).to eq(killbill_api_key)
29
+ expect(tenant_config_class.instance_variable_get(:@killbill_api_secrets)).to eq(killbill_api_secrets)
30
+ expect(tenant_config_class.instance_variable_get(:@killbill_user)).to eq(killbill_user)
31
+ expect(tenant_config_class.instance_variable_get(:@killbill_password)).to eq(killbill_password)
32
+ expect(tenant_config_class.instance_variable_get(:@killbill_url)).to eq(url)
33
+
34
+ end
35
+
36
+ end
37
+
38
+ end
39
+
40
+ describe '#export' do
41
+ it 'when retrieving tenant configuration' do
42
+ KillBillClient.url = url
43
+
44
+ #Add a new tenant config
45
+ tenant_config = KillBillClient::Model::Tenant.upload_tenant_user_key_value(key, value, user, nil, nil, options)
46
+ expect(tenant_config.key).to eq(key)
47
+
48
+ #get created tenant config
49
+ export_file = tenant_config_class.export(key)
50
+ expect(File.exist?(export_file)).to be_true
51
+ expect(File.readlines(export_file).grep(/#{key}/)).to be_true
52
+
53
+ #remove created tenant config
54
+ KillBillClient::Model::Tenant.delete_tenant_user_key_value(key, user, nil, nil, options)
55
+
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,7 @@
1
+ killbill:
2
+ user: admin
3
+ password: password
4
+ api_key: bob
5
+ api_secret: lazar
6
+ host: 127.0.0.1
7
+ port: 8080
@@ -3,19 +3,8 @@ require 'spec_helper'
3
3
  describe KPM::Account do
4
4
 
5
5
  shared_context 'account' do
6
- let(:logger) {logger = ::Logger.new(STDOUT)
7
- logger.level = Logger::FATAL
8
- logger}
9
- let(:yml_file) {YAML::load_file(Dir["#{Dir.pwd}/**/account_spec.yml"][0])}
10
- let(:dummy_data_file) {Dir.mktmpdir('dummy') + File::SEPARATOR + 'kbdump'}
11
- let(:url) {"http://#{yml_file['killbill']['host']}:#{yml_file['killbill']['port']}"}
12
- let(:killbill_api_key) {yml_file['killbill']['api_key']}
13
- let(:killbill_api_secrets) {yml_file['killbill']['api_secret']}
14
- let(:killbill_user) {yml_file['killbill']['user']}
15
- let(:killbill_password) {yml_file['killbill']['password']}
16
- let(:db_name) {yml_file['database']['name']}
17
- let(:db_username) {yml_file['database']['user']}
18
- let(:db_password) {yml_file['database']['password']}
6
+ include_context 'connection_setup'
7
+
19
8
  let(:account_class) { described_class.new(nil,[killbill_api_key,killbill_api_secrets],
20
9
  [killbill_user, killbill_password],url,
21
10
  db_name, [db_username, db_password],nil,logger)}
@@ -51,6 +40,7 @@ describe KPM::Account do
51
40
  expect(account_class.instance_variable_get(:@killbill_user)).to eq(killbill_user)
52
41
  expect(account_class.instance_variable_get(:@killbill_password)).to eq(killbill_password)
53
42
  expect(account_class.instance_variable_get(:@killbill_url)).to eq(url)
43
+
54
44
  end
55
45
 
56
46
  end
data/spec/spec_helper.rb CHANGED
@@ -12,3 +12,21 @@ RSpec.configure do |config|
12
12
  config.tty = true
13
13
  config.formatter = 'documentation'
14
14
  end
15
+
16
+ shared_context 'connection_setup' do
17
+ let(:logger) do
18
+ logger = ::Logger.new(STDOUT)
19
+ logger.level = Logger::FATAL
20
+ logger
21
+ end
22
+ let(:yml_file) {YAML::load_file(Dir["#{Dir.pwd}/**/account_spec.yml"][0])}
23
+ let(:dummy_data_file) {Dir.mktmpdir('dummy') + File::SEPARATOR + 'kbdump'}
24
+ let(:url) {"http://#{yml_file['killbill']['host']}:#{yml_file['killbill']['port']}"}
25
+ let(:killbill_api_key) {yml_file['killbill']['api_key']}
26
+ let(:killbill_api_secrets) {yml_file['killbill']['api_secret']}
27
+ let(:killbill_user) {yml_file['killbill']['user']}
28
+ let(:killbill_password) {yml_file['killbill']['password']}
29
+ let(:db_name) {yml_file['database']['name']}
30
+ let(:db_username) {yml_file['database']['user']}
31
+ let(:db_password) {yml_file['database']['password']}
32
+ end
metadata CHANGED
@@ -1,73 +1,86 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kpm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kill Bill core team
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-28 00:00:00.000000000 Z
11
+ date: 2017-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: highline
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
18
  version: 1.6.21
20
- type: :runtime
19
+ name: highline
21
20
  prerelease: false
21
+ type: :runtime
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.6.21
27
27
  - !ruby/object:Gem::Dependency
28
- name: nexus_cli
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
32
  version: 4.1.0
34
- type: :runtime
33
+ name: nexus_cli
35
34
  prerelease: false
35
+ type: :runtime
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 4.1.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: thor
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - "~>"
46
45
  - !ruby/object:Gem::Version
47
46
  version: 0.19.1
48
- type: :runtime
47
+ name: thor
49
48
  prerelease: false
49
+ type: :runtime
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.19.1
55
55
  - !ruby/object:Gem::Dependency
56
- name: rubyzip
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - "~>"
60
59
  - !ruby/object:Gem::Version
61
60
  version: 1.2.0
62
- type: :runtime
61
+ name: rubyzip
63
62
  prerelease: false
63
+ type: :runtime
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.2.0
69
69
  - !ruby/object:Gem::Dependency
70
- name: rake
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1.0'
75
+ name: killbill-client
76
+ prerelease: false
77
+ type: :runtime
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.0'
83
+ - !ruby/object:Gem::Dependency
71
84
  requirement: !ruby/object:Gem::Requirement
72
85
  requirements:
73
86
  - - ">="
@@ -76,8 +89,9 @@ dependencies:
76
89
  - - "<"
77
90
  - !ruby/object:Gem::Version
78
91
  version: 11.0.0
79
- type: :development
92
+ name: rake
80
93
  prerelease: false
94
+ type: :development
81
95
  version_requirements: !ruby/object:Gem::Requirement
82
96
  requirements:
83
97
  - - ">="
@@ -87,33 +101,19 @@ dependencies:
87
101
  - !ruby/object:Gem::Version
88
102
  version: 11.0.0
89
103
  - !ruby/object:Gem::Dependency
90
- name: rspec
91
104
  requirement: !ruby/object:Gem::Requirement
92
105
  requirements:
93
106
  - - "~>"
94
107
  - !ruby/object:Gem::Version
95
108
  version: 2.12.0
96
- type: :development
109
+ name: rspec
97
110
  prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: 2.12.0
103
- - !ruby/object:Gem::Dependency
104
- name: killbill-client
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: '1.0'
110
111
  type: :development
111
- prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '1.0'
116
+ version: 2.12.0
117
117
  description: A package manager for Kill Bill.
118
118
  email: killbilling-users@googlegroups.com
119
119
  executables:
@@ -149,6 +149,7 @@ files:
149
149
  - lib/kpm/sha1_checker.rb
150
150
  - lib/kpm/system.rb
151
151
  - lib/kpm/tasks.rb
152
+ - lib/kpm/tenant_config.rb
152
153
  - lib/kpm/tomcat_manager.rb
153
154
  - lib/kpm/uninstaller.rb
154
155
  - lib/kpm/utils.rb
@@ -160,6 +161,8 @@ files:
160
161
  - spec/kpm/remote/killbill_plugin_artifact_spec.rb
161
162
  - spec/kpm/remote/killbill_server_artifact_spec.rb
162
163
  - spec/kpm/remote/migrations_spec.rb
164
+ - spec/kpm/remote/tenant_config_spec.rb
165
+ - spec/kpm/remote/tenant_config_spec.yml
163
166
  - spec/kpm/remote/tomcat_manager_spec.rb
164
167
  - spec/kpm/unit/base_artifact_spec.rb
165
168
  - spec/kpm/unit/inspector_spec.rb
@@ -177,7 +180,7 @@ homepage: http://kill-bill.org
177
180
  licenses:
178
181
  - Apache License (2.0)
179
182
  metadata: {}
180
- post_install_message:
183
+ post_install_message:
181
184
  rdoc_options:
182
185
  - "--exclude"
183
186
  - "."
@@ -194,29 +197,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
194
197
  - !ruby/object:Gem::Version
195
198
  version: '0'
196
199
  requirements: []
197
- rubyforge_project:
198
- rubygems_version: 2.2.2
199
- signing_key:
200
+ rubyforge_project:
201
+ rubygems_version: 2.4.8
202
+ signing_key:
200
203
  specification_version: 4
201
204
  summary: Kill Bill package manager.
202
- test_files:
203
- - spec/kpm/remote/base_artifact_spec.rb
204
- - spec/kpm/remote/base_installer_spec.rb
205
- - spec/kpm/remote/installer_spec.rb
206
- - spec/kpm/remote/kaui_artifact_spec.rb
207
- - spec/kpm/remote/killbill_plugin_artifact_spec.rb
208
- - spec/kpm/remote/killbill_server_artifact_spec.rb
209
- - spec/kpm/remote/migrations_spec.rb
210
- - spec/kpm/remote/tomcat_manager_spec.rb
211
- - spec/kpm/unit/base_artifact_spec.rb
212
- - spec/kpm/unit/inspector_spec.rb
213
- - spec/kpm/unit/installer_spec.rb
214
- - spec/kpm/unit/plugins_directory_spec.rb
215
- - spec/kpm/unit/plugins_manager_spec.rb
216
- - spec/kpm/unit/sha1_checker_spec.rb
217
- - spec/kpm/unit/sha1_test.yml
218
- - spec/kpm/unit/uninstaller_spec.rb
219
- - spec/kpm/unit_mysql/account_spec.rb
220
- - spec/kpm/unit_mysql/account_spec.yml
221
- - spec/kpm/unit_mysql/account_test_ddl.sql
222
- - spec/spec_helper.rb
205
+ test_files: []