grocery_delivery 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b3051aeb9cd63a75f10ecb857a43377e4499c023
4
+ data.tar.gz: d7e72bbf0374b09b147a8359571edd224df5ec96
5
+ SHA512:
6
+ metadata.gz: 1f4dd7577e4db07e06f63f8c0f6f52c6b1445d0ecf5c1acc5ea826584ce93e2f23828e26684290db0787fd45b57052b6d4993c7a903b92de238125e38c2cee05
7
+ data.tar.gz: 1f8dfac08aa55dec215bfea8e5cee97f8dee0307b5ffa8efe39b8a353e1df1220980fc4b1557982e220e086eb336dd4ef8c53392bd9e964e4cb2b1c24fab1451
data/README.md CHANGED
@@ -51,7 +51,6 @@ standard Ruby.
51
51
  All command-line options are available in the config file:
52
52
  * dry_run (bool, default: false)
53
53
  * debug (bool, default: false)
54
- * timestamp (bool, default: false)
55
54
  * config_file (string, default: `/etc/gd-config.rb`)
56
55
  * lockfile (string, default: `/var/lock/subsys/grocery_delivery`)
57
56
  * pidfile (string, default: `/var/run/grocery_delivery.pid`)
@@ -65,9 +64,9 @@ In addition the following are also available:
65
64
  * cookbook_paths - An array of directories that contain cookbooks relative to
66
65
  `reponame`. Default: `['chef/cookbooks']`
67
66
  * role_path - A directory to find roles in relative to `reponame`. Default:
68
- `['chef/roles']`
67
+ `'chef/roles'`
69
68
  * databag_path - A directory to find databags in relative to `reponame`.
70
- Default: `['chef/databags']`
69
+ Default: `'chef/databags'`
71
70
  * rev_checkpoint - Name of the file to store the last-uploaded revision,
72
71
  relative to `reponame`. Default: `gd_revision`
73
72
  * knife_config - Knife config to use for uploads. Default:
@@ -80,7 +79,7 @@ In addition the following are also available:
80
79
  * vcs_path - Path to git or svn binary. If not given, just uses 'git' or 'svn'.
81
80
  Default: `nil`
82
81
  * plugin_path - Path to plugin file. Default: `/etc/gd-plugin.rb`
83
- * berks - Boolean to determine if we should use berkshelf to resolve
82
+ * berks - Boolean to determine if we should use berkshelf to resolve
84
83
  dependencies and upload cookbooks. Default: `false`
85
84
  * berks_bin - Path to berkshelf. Default: `/opt/chefdk/bin/berks`
86
85
 
@@ -42,7 +42,7 @@ end
42
42
  def get_lock
43
43
  GroceryDelivery::Log.warn('Attempting to acquire lock')
44
44
  $lockfileh = File.open(GroceryDelivery::Config.lockfile,
45
- File::RDWR | File::CREAT, 0600)
45
+ File::RDWR | File::CREAT, 0o600)
46
46
  $lockfileh.flock(File::LOCK_EX)
47
47
  GroceryDelivery::Log.warn('Lock acquired')
48
48
  end
@@ -69,7 +69,7 @@ def full_upload(knife)
69
69
  if GroceryDelivery::Config.berks
70
70
  GroceryDelivery::Log.warn('Uploading all cookbooks with berkshelf')
71
71
  GroceryDelivery::Log.debug(
72
- "Using cookbook paths: #{GroceryDelivery::Config.cookbook_paths}"
72
+ "Using cookbook paths: #{GroceryDelivery::Config.cookbook_paths}",
73
73
  )
74
74
  knife.berks_cookbook_upload_all
75
75
  else
@@ -84,7 +84,7 @@ end
84
84
 
85
85
  def partial_upload(knife, repo, checkpoint, local_head)
86
86
  GroceryDelivery::Log.warn(
87
- "Determing changes... from #{checkpoint} to #{local_head}"
87
+ "Determing changes... from #{checkpoint} to #{local_head}",
88
88
  )
89
89
 
90
90
  begin
@@ -101,6 +101,7 @@ def partial_upload(knife, repo, checkpoint, local_head)
101
101
  :databag_dir =>
102
102
  GroceryDelivery::Config.databag_path,
103
103
  },
104
+ GroceryDelivery::Config.track_symlinks,
104
105
  )
105
106
  rescue BetweenMeals::Changeset::ReferenceError
106
107
  GroceryDelivery::Log.error('Repo error, invalid revision, exiting')
@@ -128,11 +129,13 @@ def partial_upload(knife, repo, checkpoint, local_head)
128
129
  end
129
130
 
130
131
  knife.cookbook_delete(deleted_cookbooks) if deleted_cookbooks
131
- if GroceryDelivery::Config.berks
132
- GroceryDelivery::Log.warn('Using Berkshelf to upload cookbooks')
133
- knife.berks_cookbook_upload(added_cookbooks) if added_cookbooks
134
- else
135
- knife.cookbook_upload(added_cookbooks) if added_cookbooks
132
+ if added_cookbooks
133
+ if GroceryDelivery::Config.berks
134
+ GroceryDelivery::Log.warn('Using Berkshelf to upload cookbooks')
135
+ knife.berks_cookbook_upload(added_cookbooks)
136
+ else
137
+ knife.cookbook_upload(added_cookbooks)
138
+ end
136
139
  end
137
140
  knife.role_delete(deleted_roles) if deleted_roles
138
141
  knife.role_upload(added_roles) if added_roles
@@ -153,11 +156,15 @@ def upload_changed(repo, checkpoint)
153
156
  :berks_bin => GroceryDelivery::Config.berks_bin,
154
157
  :berks_config => GroceryDelivery::Config.berks_config,
155
158
  :role_dir => File.join(base_dir, GroceryDelivery::Config.role_path),
159
+ :role_type => GroceryDelivery::Config.role_type,
156
160
  :cookbook_dirs => GroceryDelivery::Config.cookbook_paths.map do |x|
157
161
  File.join(base_dir, x)
158
162
  end,
159
163
  :databag_dir => File.join(base_dir, GroceryDelivery::Config.databag_path),
160
- }
164
+ },
165
+ )
166
+ GroceryDelivery::Hooks.pre_upload(
167
+ GroceryDelivery::Config.dry_run, knife, local_head
161
168
  )
162
169
 
163
170
  if checkpoint
@@ -183,9 +190,6 @@ def setup_config
183
190
  options[:verbosity] = ::Logger::INFO
184
191
  end
185
192
  end
186
- opts.on('-T', '--timestamp', 'Timestamp output') do |s|
187
- options[:timestamp] = s
188
- end
189
193
  opts.on('-c', '--config-file FILE', 'config file') do |s|
190
194
  unless File.exists?(File.expand_path(s))
191
195
  GroceryDelivery::Log.error("Config file #{s} not found.")
@@ -246,7 +250,7 @@ if repo.exists?
246
250
  else
247
251
  unless GroceryDelivery::Config.repo_url
248
252
  GroceryDelivery::Log.error(
249
- 'No repo URL was specified, and no repo is checked out'
253
+ 'No repo URL was specified, and no repo is checked out',
250
254
  )
251
255
  exit(1)
252
256
  end
@@ -260,7 +264,7 @@ GroceryDelivery::Hooks.post_repo_up(GroceryDelivery::Config.dry_run)
260
264
 
261
265
  if GroceryDelivery::Config.dry_run && !repo.exists?
262
266
  GroceryDelivery::Log.warn(
263
- 'In dryrun mode, with no repo, there\'s not much I can dryrun'
267
+ 'In dryrun mode, with no repo, there\'s not much I can dryrun',
264
268
  )
265
269
  GroceryDelivery::Hooks.postrun(GroceryDelivery::Config.dry_run, true,
266
270
  'dryrun mode')
@@ -278,7 +282,7 @@ else
278
282
  write_checkpoint(ver)
279
283
  $success = true
280
284
  $status_msg = "Success at #{ver}"
281
- rescue => e
285
+ rescue StandardError => e
282
286
  $status_msg = e.message
283
287
  e.backtrace.each do |line|
284
288
  GroceryDelivery::Log.error(line)
@@ -289,4 +293,5 @@ end
289
293
  GroceryDelivery::Log.warn($status_msg)
290
294
  GroceryDelivery::Hooks.postrun(GroceryDelivery::Config.dry_run, $success,
291
295
  $status_msg)
296
+ exit($success)
292
297
  # rubocop:enable GlobalVars
@@ -26,7 +26,6 @@ module GroceryDelivery
26
26
  stdout false
27
27
  dry_run false
28
28
  verbosity Logger::WARN
29
- timestamp false
30
29
  config_file '/etc/gd-config.rb'
31
30
  pidfile '/var/run/grocery_delivery.pid'
32
31
  lockfile '/var/lock/subsys/grocery_delivery'
@@ -35,6 +34,7 @@ module GroceryDelivery
35
34
  reponame 'ops'
36
35
  cookbook_paths ['chef/cookbooks']
37
36
  role_path 'chef/roles'
37
+ role_type 'rb'
38
38
  databag_path 'chef/databags'
39
39
  rev_checkpoint 'gd_revision'
40
40
  knife_config '/root/.chef/knife.rb'
@@ -45,5 +45,6 @@ module GroceryDelivery
45
45
  berks false
46
46
  berks_bin '/opt/chefdk/bin/berks'
47
47
  berks_config nil
48
+ track_symlinks false
48
49
  end
49
50
  end
@@ -19,30 +19,28 @@ module GroceryDelivery
19
19
  class Hooks
20
20
  # This code will run once we've read our config and loaded our plugins
21
21
  # but before *anything* else. We don't even have a lock yet.
22
- def self.preflight_checks(_dryrun)
23
- end
22
+ def self.preflight_checks(_dryrun); end
24
23
 
25
24
  # This is run after we've gotten a lock, written a pidfile and initialized
26
25
  # our repo object (but not touched the repo yet)
27
- def self.prerun(_dryrun)
28
- end
26
+ def self.prerun(_dryrun); end
29
27
 
30
28
  # This is code to run after we've updated the repo, but before we've done
31
29
  # any work to parse it.
32
- def self.post_repo_up(_dryrun)
33
- end
30
+ def self.post_repo_up(_dryrun); end
31
+
32
+ # This is code to run after right before we start uploads
33
+ def self.pre_upload(_dryrun, _knife, _local_head); end
34
34
 
35
35
  # After we parse the updates to the repo and uploaded/deleted the relevent
36
36
  # items from the local server.
37
- def self.postrun(_dryrun, _success, _msg)
38
- end
37
+ def self.postrun(_dryrun, _success, _msg); end
39
38
 
40
39
  # exit hooks.
41
- def self.atexit(_dryrun, _success, _msg)
42
- end
40
+ def self.atexit(_dryrun, _success, _msg); end
43
41
 
44
42
  def self.get(file)
45
- class_eval(File.read(file), __FILE__, __LINE__) if File.exists?(file)
43
+ class_eval(File.read(file), file, 1) if File.exists?(file)
46
44
  end
47
45
  end
48
46
  end
metadata CHANGED
@@ -1,143 +1,123 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: grocery_delivery
3
- version: !ruby/object:Gem::Version
4
- hash: 17
5
- prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 7
10
- version: 0.0.7
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.8
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Phil Dibowitz
14
8
  - Marcin Sawicki
15
9
  autorequire:
16
10
  bindir: bin
17
11
  cert_chain: []
18
-
19
- date: 2015-11-26 00:00:00 Z
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: mixlib-config
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
12
+ date: 2017-12-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: between_meals
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
27
18
  - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
19
+ - !ruby/object:Gem::Version
20
+ version: 0.0.6
33
21
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: between_meals
37
22
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
41
25
  - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 19
44
- segments:
45
- - 0
46
- - 0
47
- - 6
26
+ - !ruby/object:Gem::Version
48
27
  version: 0.0.6
28
+ - !ruby/object:Gem::Dependency
29
+ name: mixlib-config
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
49
35
  type: :runtime
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: rubocop
53
36
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
55
- none: false
56
- requirements:
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: chef-zero
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
57
46
  - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 0
62
- version: "0"
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
63
49
  type: :development
64
- version_requirements: *id003
65
- - !ruby/object:Gem::Dependency
66
- name: knife-solo
67
50
  prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
69
- none: false
70
- requirements:
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: knife-solo
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
71
60
  - - ">="
72
- - !ruby/object:Gem::Version
73
- hash: 3
74
- segments:
75
- - 0
76
- version: "0"
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
77
63
  type: :development
78
- version_requirements: *id004
79
- - !ruby/object:Gem::Dependency
80
- name: chef-zero
81
64
  prerelease: false
82
- requirement: &id005 !ruby/object:Gem::Requirement
83
- none: false
84
- requirements:
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: rubocop
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
85
74
  - - ">="
86
- - !ruby/object:Gem::Version
87
- hash: 3
88
- segments:
89
- - 0
90
- version: "0"
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
91
77
  type: :development
92
- version_requirements: *id005
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
93
84
  description: Utility for keeping Chef servers in sync with a repo
94
85
  email:
95
- executables:
86
+ executables:
96
87
  - grocery-delivery
97
88
  extensions: []
98
-
99
- extra_rdoc_files:
89
+ extra_rdoc_files:
100
90
  - README.md
101
91
  - LICENSE
102
- files:
103
- - README.md
92
+ files:
104
93
  - LICENSE
94
+ - README.md
95
+ - bin/grocery-delivery
96
+ - lib/grocery_delivery/config.rb
105
97
  - lib/grocery_delivery/hooks.rb
106
98
  - lib/grocery_delivery/logging.rb
107
- - lib/grocery_delivery/config.rb
108
- - bin/grocery-delivery
109
99
  homepage:
110
- licenses:
100
+ licenses:
111
101
  - Apache
102
+ metadata: {}
112
103
  post_install_message:
113
104
  rdoc_options: []
114
-
115
- require_paths:
105
+ require_paths:
116
106
  - lib
117
- required_ruby_version: !ruby/object:Gem::Requirement
118
- none: false
119
- requirements:
107
+ required_ruby_version: !ruby/object:Gem::Requirement
108
+ requirements:
120
109
  - - ">="
121
- - !ruby/object:Gem::Version
122
- hash: 3
123
- segments:
124
- - 0
125
- version: "0"
126
- required_rubygems_version: !ruby/object:Gem::Requirement
127
- none: false
128
- requirements:
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ required_rubygems_version: !ruby/object:Gem::Requirement
113
+ requirements:
129
114
  - - ">="
130
- - !ruby/object:Gem::Version
131
- hash: 3
132
- segments:
133
- - 0
134
- version: "0"
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
135
117
  requirements: []
136
-
137
118
  rubyforge_project:
138
- rubygems_version: 1.8.5
119
+ rubygems_version: 2.6.11
139
120
  signing_key:
140
- specification_version: 3
121
+ specification_version: 4
141
122
  summary: Grocery Delivery
142
123
  test_files: []
143
-