lmcadm 0.5.0 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: '024983aa25fe084824563894b065eda2bf87be11'
4
- data.tar.gz: 7e20162f4e167d80ecc74c372d8eca5522e36a24
3
+ metadata.gz: 4662ef1eaa3af21b5618670a9a5ccc8eeb29d3f0
4
+ data.tar.gz: 9ee1929880d8fd6a5b200054919267a78b7b94c3
5
5
  SHA512:
6
- metadata.gz: 6caa3ae89f743a5337ba4f7c5455c5676e54467800d02d8e32021518a31744996dcec4bb82edcd56f8ec970376849abef4d920083b447b87d7018af79f2f4791
7
- data.tar.gz: 164dcab63eadabaa886a26ace7b65db8a8dc2c2b385fb7a97a8f1a9f7758ef17613fff78fc7464f40734efb5a807ee0abc4606af173e125ab1780dc4363cfad7
6
+ metadata.gz: 50144f9e135a7038e1aae7161872840c2aa2a2ece6529c2bb8a6069272d64614f9b0e25299aca8ff5b703dd3bee3790c068c8d5d44765da5e89269003245f84d
7
+ data.tar.gz: 172fe4b06a8f7b5b9e1ec9f2bbdc7a85e77568bf661a8be902987df94d11b8b34e0fd5e92c1f96d94658f675557e6df5b4d96d21046e61773448b347fd8838a5
data/exe/lmcadm CHANGED
@@ -88,7 +88,7 @@ module LMCAdm
88
88
  puts exception.backtrace
89
89
  end
90
90
  if exception.respond_to?(:response)
91
- puts exception.response
91
+ puts "Error response: #{exception.response}"
92
92
  end
93
93
  true
94
94
  end
@@ -159,7 +159,12 @@ module LMCAdm
159
159
  memberlist.action do |global_options, options, args|
160
160
  account = LMC::Account.get_by_uuid_or_name args.first
161
161
  members = account.members
162
- tp members, [{:id => {:width => 36}}, :name, :type, :state, :invitationState, :principalState, :authorities]
162
+ tp members, [{:id => {:width => 36}}, :name, :type, :state, :invitationState, :principalState,
163
+ :authorities => lambda {|m|
164
+ m.authorities.map {|a|
165
+ a['name']
166
+ }.join(',')
167
+ }]
163
168
  end
164
169
  end
165
170
 
@@ -270,12 +275,24 @@ module LMCAdm
270
275
  auth.action do |g, o, args|
271
276
  account = LMC::Account.get_by_uuid_or_name args.first
272
277
  authorities = account.authorities
273
- puts authorities.first.inspect
274
278
  max = Helpers::longest_in_collection(authorities.map {|a| a.name})
275
279
  puts max
276
280
  tp authorities, [{:id => {:width => 36}}, {:name => {:width => max}}, :visibility, :type]
277
281
  end
278
282
  end
283
+ c.desc 'Manage authorities'
284
+ c.command :authority do |auth|
285
+ auth.arg_name 'Authority name', [:required]
286
+ auth.command :create do |create|
287
+ create.desc 'Account name|UUID'
288
+ create.flag :A, :required => true
289
+ create.action do |_global_options, options, _args|
290
+ account = LMC::Account.get_by_uuid_or_name options[:A]
291
+ auth = LMC::Authority.new({'name' => _args.first, 'visibility' => 'PRIVATE'}, account)
292
+ puts auth.save
293
+ end
294
+ end
295
+ end
279
296
 
280
297
  c.arg_name "email address", [:multiple]
281
298
  c.desc 'Invite members, requires an account type'
@@ -288,7 +305,7 @@ module LMCAdm
288
305
  cloud = LMC::Cloud.instance
289
306
  chosen_authorities = account.authorities.select {|auth| auth.name == options[:role]}
290
307
  args.each do |email|
291
- cloud.invite_user_to_account email, account.id, options[:type], chosen_authorities
308
+ cloud.invite_user_to_account email, account.id, options[:type], chosen_authorities
292
309
  end
293
310
  end
294
311
 
@@ -336,6 +353,37 @@ module LMCAdm
336
353
  end
337
354
  end
338
355
 
356
+ c.arg_name 'member name', [:required]
357
+ c.desc 'Update membership'
358
+ c.command :memberupdate do |update|
359
+ update.flag :A, :account, :required => true
360
+ update.desc 'authority id'
361
+ update.flag 'add-authority'
362
+ update.action do |global_options, options, args|
363
+ account = LMC::Account.get_by_uuid_or_name(options[:account])
364
+ membership = account.find_member_by_name args.first
365
+ puts membership
366
+ if options['add-authority']
367
+ # new_authority = account.authorities.find do |a|
368
+ # a.name == options['add-authority']
369
+ # end
370
+ puts membership.class
371
+ puts membership.authorities.class
372
+ authority_ids = membership.authorities.map do |a|
373
+ a['id']
374
+ end
375
+ puts authority_ids
376
+ authority_ids = authority_ids.concat [options['add-authority']]
377
+ puts authority_ids
378
+ # POST /accounts/{accountId}/members/{principalId}
379
+ cloud = LMC::Cloud.instance
380
+ cloud.auth_for_account account
381
+ res = cloud.post ['cloud-service-auth', 'accounts', account.id, 'members', membership.id], {'authorities' => authority_ids}
382
+ puts res
383
+ end
384
+ end
385
+ end
386
+
339
387
 
340
388
  # IF the special flag is set, do weird license magic for ninden
341
389
  # * Für alle unterliegenden Organisationen
@@ -389,6 +437,7 @@ module LMCAdm
389
437
  end
390
438
  end
391
439
  end
440
+
392
441
  recurse_childen account, 0
393
442
  end
394
443
  end
@@ -0,0 +1,31 @@
1
+ module LMCAdm
2
+ command :rights do |rights|
3
+ rights.command :list do |list|
4
+ list.action do |options, global_options, args|
5
+ c = LMC::Cloud.instance
6
+ LMC::SERVICELIST.each do |service|
7
+ puts service
8
+ begin
9
+ puts "#{c.get([service, "rights", "public"]).body}\n\n"
10
+ rescue RestClient::Exception =>e
11
+ puts e.response
12
+ end
13
+ end
14
+ end
15
+ end
16
+ rights.arg_name "rights"
17
+ rights.command :assign do |assign|
18
+ assign.flag :A
19
+ assign.flag :authority
20
+ assign.flag :service
21
+ assign.action do |_g, o, a |
22
+ #POST /accounts/{accountId}/authorities/{authorityId}/rights
23
+ account = LMC::Account.get_by_uuid_or_name o[:A]
24
+ c = LMC::Cloud.instance
25
+ c.auth_for_account account
26
+ c.post [o[:service], "accounts", account.id, 'authorities', o[:authority], 'rights' ], a
27
+
28
+ end
29
+ end
30
+ end
31
+ end
@@ -1,3 +1,3 @@
1
1
  module LMCAdm
2
- VERSION = "0.5.0"
2
+ VERSION = "0.6.0"
3
3
  end
data/lmcadm.gemspec CHANGED
@@ -15,7 +15,6 @@ Gem::Specification.new do |spec|
15
15
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
16
16
  # to allow pushing to a single host or delete this section to allow pushing to any host.
17
17
  if spec.respond_to?(:metadata)
18
- #spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
19
18
  else
20
19
  raise "RubyGems 2.0 or newer is required to protect against " \
21
20
  "public gem pushes."
@@ -33,7 +32,7 @@ Gem::Specification.new do |spec|
33
32
  spec.add_development_dependency "minitest", "~> 5.0"
34
33
  spec.add_development_dependency "pry-nav", "0.2.4"
35
34
 
36
- spec.add_runtime_dependency 'lmc', '~> 0.4.0'
35
+ spec.add_runtime_dependency 'lmc', '~> 0.5.0'
37
36
  spec.add_runtime_dependency 'gli', '~> 2.17'
38
37
  spec.add_runtime_dependency 'table_print', '~> 1.5'
39
38
  spec.add_runtime_dependency 'colorize'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lmcadm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - erpel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-06 00:00:00.000000000 Z
11
+ date: 2018-07-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.4.0
75
+ version: 0.5.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.4.0
82
+ version: 0.5.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: gli
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -131,7 +131,6 @@ extensions: []
131
131
  extra_rdoc_files: []
132
132
  files:
133
133
  - ".gitignore"
134
- - ".idea/lmcadm.iml"
135
134
  - ".idea/misc.xml"
136
135
  - ".idea/modules.xml"
137
136
  - ".idea/vcs.xml"
@@ -155,6 +154,7 @@ files:
155
154
  - lib/lmcadm/commands/maintenance.rb
156
155
  - lib/lmcadm/commands/principal.rb
157
156
  - lib/lmcadm/commands/privatecloud.rb
157
+ - lib/lmcadm/commands/rights.rb
158
158
  - lib/lmcadm/config_commands.rb
159
159
  - lib/lmcadm/device_commands.rb
160
160
  - lib/lmcadm/helpers/password_helper.rb
data/.idea/lmcadm.iml DELETED
@@ -1,27 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="RUBY_MODULE" version="4">
3
- <component name="ModuleRunConfigurationManager">
4
- <shared />
5
- </component>
6
- <component name="NewModuleRootManager">
7
- <content url="file://$MODULE_DIR$" />
8
- <orderEntry type="jdk" jdkName="rbenv: 2.4.1" jdkType="RUBY_SDK" />
9
- <orderEntry type="sourceFolder" forTests="false" />
10
- <orderEntry type="library" scope="PROVIDED" name="bundler (v1.16.1, rbenv: 2.4.1) [gem]" level="application" />
11
- <orderEntry type="library" scope="PROVIDED" name="colorize (v0.8.1, rbenv: 2.4.1) [gem]" level="application" />
12
- <orderEntry type="library" scope="PROVIDED" name="domain_name (v0.5.20170404, rbenv: 2.4.1) [gem]" level="application" />
13
- <orderEntry type="library" scope="PROVIDED" name="gli (v2.17.1, rbenv: 2.4.1) [gem]" level="application" />
14
- <orderEntry type="library" scope="PROVIDED" name="http-cookie (v1.0.3, rbenv: 2.4.1) [gem]" level="application" />
15
- <orderEntry type="library" scope="PROVIDED" name="json (v2.1.0, rbenv: 2.4.1) [gem]" level="application" />
16
- <orderEntry type="library" scope="PROVIDED" name="lmc (v0.2.0, rbenv: 2.4.1) [gem]" level="application" />
17
- <orderEntry type="library" scope="PROVIDED" name="mime-types (v3.1, rbenv: 2.4.1) [gem]" level="application" />
18
- <orderEntry type="library" scope="PROVIDED" name="mime-types-data (v3.2016.0521, rbenv: 2.4.1) [gem]" level="application" />
19
- <orderEntry type="library" scope="PROVIDED" name="minitest (v5.11.3, rbenv: 2.4.1) [gem]" level="application" />
20
- <orderEntry type="library" scope="PROVIDED" name="netrc (v0.11.0, rbenv: 2.4.1) [gem]" level="application" />
21
- <orderEntry type="library" scope="PROVIDED" name="rake (v10.5.0, rbenv: 2.4.1) [gem]" level="application" />
22
- <orderEntry type="library" scope="PROVIDED" name="rest-client (v2.0.2, rbenv: 2.4.1) [gem]" level="application" />
23
- <orderEntry type="library" scope="PROVIDED" name="table_print (v1.5.6, rbenv: 2.4.1) [gem]" level="application" />
24
- <orderEntry type="library" scope="PROVIDED" name="unf (v0.1.4, rbenv: 2.4.1) [gem]" level="application" />
25
- <orderEntry type="library" scope="PROVIDED" name="unf_ext (v0.0.7.5, rbenv: 2.4.1) [gem]" level="application" />
26
- </component>
27
- </module>