knife-essentials 0.9.5 → 0.9.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,13 +5,21 @@ module ChefFS
5
5
  module DataHandler
6
6
  class ClientDataHandler < DataHandlerBase
7
7
  def normalize(client, entry)
8
- super(client, {
8
+ defaults = {
9
9
  'name' => remove_dot_json(entry.name),
10
+ 'clientname' => remove_dot_json(entry.name),
11
+ 'orgname' => entry.org,
10
12
  'admin' => false,
11
13
  'validator' => false,
12
- 'json_class' => 'Chef::ApiClient',
13
14
  'chef_type' => 'client'
14
- })
15
+ }
16
+ if entry.org
17
+ defaults['orgname'] = entry.org
18
+ end
19
+ result = super(client, defaults)
20
+ # You can NOT send json_class, or it will fail
21
+ result.delete('json_class')
22
+ result
15
23
  end
16
24
 
17
25
  def preserve_key(key)
@@ -38,6 +38,10 @@ module ChefFS
38
38
  result
39
39
  end
40
40
 
41
+ def normalize_for_put(object, entry)
42
+ normalize(object, entry)
43
+ end
44
+
41
45
  def normalize_run_list(run_list)
42
46
  run_list.map{|item|
43
47
  case item.to_s
@@ -9,14 +9,30 @@ module ChefFS
9
9
  'name' => remove_dot_json(entry.name),
10
10
  'groupname' => remove_dot_json(entry.name),
11
11
  'users' => [],
12
- 'actors' => [],
13
12
  'clients' => [],
14
13
  'groups' => [],
15
14
  }
16
15
  if entry.org
17
16
  defaults['orgname'] = entry.org
18
17
  end
19
- super(group, defaults)
18
+ result = super(group, defaults)
19
+ if result['actors'] && result['actors'].sort.uniq == (result['users'] + result['clients']).sort.uniq
20
+ result.delete('actors')
21
+ end
22
+ result
23
+ end
24
+
25
+ def normalize_for_put(group, entry)
26
+ result = super(group, entry)
27
+ result['actors'] = {
28
+ 'users' => result['users'],
29
+ 'clients' => result['clients'],
30
+ 'groups' => result['groups']
31
+ }
32
+ result.delete('users')
33
+ result.delete('clients')
34
+ result.delete('groups')
35
+ result
20
36
  end
21
37
 
22
38
  def preserve_key(key)
@@ -148,7 +148,7 @@ module ChefFS
148
148
  end
149
149
 
150
150
  if data_handler
151
- object = data_handler.normalize(object, self)
151
+ object = data_handler.normalize_for_put(object, self)
152
152
  end
153
153
 
154
154
  base_name = name[0,name.length-5]
@@ -1,3 +1,3 @@
1
1
  module ChefFS
2
- VERSION = "0.9.5"
2
+ VERSION = "0.9.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-essentials
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.5
4
+ version: 0.9.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-14 00:00:00.000000000 Z
12
+ date: 2013-03-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chef-zero