knife-essentials 0.9.5 → 0.9.6

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.
@@ -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