kpm 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
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: []