MuranoCLI 3.2.1.pre.beta.4 → 3.2.1.pre.beta.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (145) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -0
  3. data/Gemfile +4 -3
  4. data/HISTORY.md +826 -0
  5. data/Rakefile +415 -47
  6. data/docs/release.rst +275 -0
  7. data/lib/MrMurano/Account.rb +46 -47
  8. data/lib/MrMurano/AccountBase.rb +1 -0
  9. data/lib/MrMurano/Business.rb +183 -44
  10. data/lib/MrMurano/Config.rb +1 -0
  11. data/lib/MrMurano/Exchange.rb +3 -4
  12. data/lib/MrMurano/Solution-Services.rb +25 -7
  13. data/lib/MrMurano/Webservice-File.rb +5 -7
  14. data/lib/MrMurano/commands/business.rb +231 -24
  15. data/lib/MrMurano/commands/child.rb +3 -3
  16. data/lib/MrMurano/commands/element.rb +1 -0
  17. data/lib/MrMurano/commands/settings.rb +7 -0
  18. data/lib/MrMurano/http.rb +1 -3
  19. data/lib/MrMurano/progress.rb +12 -2
  20. data/lib/MrMurano/verbosing.rb +7 -7
  21. data/lib/MrMurano/version.rb +1 -1
  22. data/spec/Account_spec.rb +9 -0
  23. data/spec/ProjectFile_spec.rb +7 -9
  24. data/spec/Webservice-File_spec.rb +2 -1
  25. data/spec/cmd_business_spec.rb +1 -1
  26. data/spec/cmd_common.rb +75 -30
  27. data/spec/cmd_content_spec.rb +3 -1
  28. data/spec/cmd_cors_spec.rb +3 -1
  29. data/spec/cmd_device_spec.rb +7 -5
  30. data/spec/cmd_domain_spec.rb +6 -2
  31. data/spec/cmd_help_spec.rb +13 -6
  32. data/spec/cmd_init_spec.rb +19 -10
  33. data/spec/cmd_keystore_spec.rb +3 -1
  34. data/spec/cmd_link_spec.rb +5 -5
  35. data/spec/cmd_setting_application_spec.rb +13 -16
  36. data/spec/cmd_setting_product_spec.rb +14 -14
  37. data/spec/cmd_status_spec.rb +6 -2
  38. data/spec/cmd_syncdown_application_spec.rb +3 -1
  39. data/spec/cmd_syncdown_both_spec.rb +6 -2
  40. data/spec/cmd_syncdown_unit_spec.rb +3 -0
  41. data/spec/cmd_syncup_spec.rb +8 -4
  42. data/spec/cmd_usage_spec.rb +10 -2
  43. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value 0.webmock +98 -0
  44. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value 1.webmock +98 -0
  45. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value No.webmock +98 -0
  46. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value Yes.webmock +98 -0
  47. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value bob.webmock +72 -0
  48. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value false.webmock +98 -0
  49. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value off.webmock +98 -0
  50. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value on STDIN.webmock +98 -0
  51. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value on.webmock +98 -0
  52. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value true.webmock +98 -0
  53. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a json array blob with STDIN.webmock +98 -0
  54. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a json array blob.webmock +98 -0
  55. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) an array.webmock +98 -0
  56. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) appends an array.webmock +98 -0
  57. data/spec/fixtures/snapshots/murano application setting reads Webservice.cors to a file.webmock +72 -0
  58. data/spec/fixtures/snapshots/murano application setting reads Webservice.cors.webmock +72 -0
  59. data/spec/fixtures/snapshots/murano business list as json.webmock +27 -0
  60. data/spec/fixtures/snapshots/murano business list as table.webmock +27 -0
  61. data/spec/fixtures/snapshots/murano business list fewer fields.webmock +27 -0
  62. data/spec/fixtures/snapshots/murano business list only ids.webmock +27 -0
  63. data/spec/fixtures/snapshots/murano business list output to file.webmock +27 -0
  64. data/spec/fixtures/snapshots/murano business without project help.webmock +9 -0
  65. data/spec/fixtures/snapshots/murano config Needs a key.webmock +9 -0
  66. data/spec/fixtures/snapshots/murano config Reads a key.webmock +9 -0
  67. data/spec/fixtures/snapshots/murano config Removes a key.webmock +9 -0
  68. data/spec/fixtures/snapshots/murano config Sets a key.webmock +9 -0
  69. data/spec/fixtures/snapshots/murano config Sets a user key.webmock +9 -0
  70. data/spec/fixtures/snapshots/murano content life cycle.webmock +144 -0
  71. data/spec/fixtures/snapshots/murano cors sets CORS.webmock +78 -0
  72. data/spec/fixtures/snapshots/murano cors show CORS.webmock +64 -0
  73. data/spec/fixtures/snapshots/murano device activates.webmock +86 -0
  74. data/spec/fixtures/snapshots/murano device enables a batch.webmock +76 -0
  75. data/spec/fixtures/snapshots/murano device enables and lists.webmock +78 -0
  76. data/spec/fixtures/snapshots/murano device writes and reads.webmock +136 -0
  77. data/spec/fixtures/snapshots/murano domain show domain.webmock +101 -0
  78. data/spec/fixtures/snapshots/murano element edit unknown as unknown element.webmock +43 -0
  79. data/spec/fixtures/snapshots/murano element show --help.webmock +9 -0
  80. data/spec/fixtures/snapshots/murano element show as csv.webmock +43 -0
  81. data/spec/fixtures/snapshots/murano element show as default-table.webmock +43 -0
  82. data/spec/fixtures/snapshots/murano element show as json.webmock +43 -0
  83. data/spec/fixtures/snapshots/murano element show as table truncate.webmock +43 -0
  84. data/spec/fixtures/snapshots/murano element show as table wrap.webmock +43 -0
  85. data/spec/fixtures/snapshots/murano element show as yaml.webmock +43 -0
  86. data/spec/fixtures/snapshots/murano element show using ambiguous name.webmock +43 -0
  87. data/spec/fixtures/snapshots/murano element without project usage.webmock +9 -0
  88. data/spec/fixtures/snapshots/murano exchange with project list as json.webmock +59 -0
  89. data/spec/fixtures/snapshots/murano exchange with project list as table.webmock +59 -0
  90. data/spec/fixtures/snapshots/murano exchange with project list fewer fields.webmock +59 -0
  91. data/spec/fixtures/snapshots/murano exchange with project list only ids.webmock +59 -0
  92. data/spec/fixtures/snapshots/murano exchange with project list output to file.webmock +59 -0
  93. data/spec/fixtures/snapshots/murano exchange with project list purchase is already added ID.webmock +83 -0
  94. data/spec/fixtures/snapshots/murano exchange with project list purchase is ambiguous name.webmock +59 -0
  95. data/spec/fixtures/snapshots/murano exchange without project help.webmock +9 -0
  96. data/spec/fixtures/snapshots/murano help using commander as --help.webmock +9 -0
  97. data/spec/fixtures/snapshots/murano help using commander no args.webmock +9 -0
  98. data/spec/fixtures/snapshots/murano help using subshell no args.webmock +9 -0
  99. data/spec/fixtures/snapshots/murano help using subshell with --help.webmock +9 -0
  100. data/spec/fixtures/snapshots/murano init Won't init in HOME (gracefully).webmock +9 -0
  101. data/spec/fixtures/snapshots/murano init in empty directory with existing project.webmock +201 -0
  102. data/spec/fixtures/snapshots/murano init in empty directory without existing project.webmock +193 -0
  103. data/spec/fixtures/snapshots/murano init in existing project directory with ProjectFile.webmock +213 -0
  104. data/spec/fixtures/snapshots/murano init in existing project directory with SolutionFile 0.2.0.webmock +213 -0
  105. data/spec/fixtures/snapshots/murano init in existing project directory with SolutionFile 0.3.0.webmock +213 -0
  106. data/spec/fixtures/snapshots/murano init in existing project directory without ProjectFile.webmock +213 -0
  107. data/spec/fixtures/snapshots/murano keystore can call other commands.webmock +108 -0
  108. data/spec/fixtures/snapshots/murano keystore clearAll.webmock +124 -0
  109. data/spec/fixtures/snapshots/murano keystore deletes.webmock +112 -0
  110. data/spec/fixtures/snapshots/murano keystore gets.webmock +96 -0
  111. data/spec/fixtures/snapshots/murano keystore infos.webmock +96 -0
  112. data/spec/fixtures/snapshots/murano keystore lists.webmock +96 -0
  113. data/spec/fixtures/snapshots/murano link with project links and lists.webmock +149 -0
  114. data/spec/fixtures/snapshots/murano link with project unlinks.webmock +165 -0
  115. data/spec/fixtures/snapshots/murano link without project help.webmock +9 -0
  116. data/spec/fixtures/snapshots/murano link without project subshell vs inline using commander will not list.webmock +27 -0
  117. data/spec/fixtures/snapshots/murano link without project subshell vs inline using subshell will not list.webmock +27 -0
  118. data/spec/fixtures/snapshots/murano logs when project is setup tail log.webmock +9 -0
  119. data/spec/fixtures/snapshots/murano password Lists when no file.webmock +9 -0
  120. data/spec/fixtures/snapshots/murano password deletes a password.webmock +9 -0
  121. data/spec/fixtures/snapshots/murano password sets a password.webmock +9 -0
  122. data/spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format) a forced string value on STDIN.webmock +90 -0
  123. data/spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format) a forced string value.webmock +90 -0
  124. data/spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format) a number value fiftyHalf.webmock +64 -0
  125. data/spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format) a number value float 12.67.webmock +90 -0
  126. data/spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format) a number value integer 12.webmock +90 -0
  127. data/spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format) a number value on STDIN.webmock +90 -0
  128. data/spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format) a string value.webmock +90 -0
  129. data/spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format) merges into a dictionary.webmock +90 -0
  130. data/spec/fixtures/snapshots/murano single sync without ProjectFile syncdown.webmock +322 -0
  131. data/spec/fixtures/snapshots/murano status with ProjectFile status.webmock +153 -0
  132. data/spec/fixtures/snapshots/murano status with Solutionfile 0.2.0 status.webmock +153 -0
  133. data/spec/fixtures/snapshots/murano status with Solutionfile 0.3.0 status.webmock +153 -0
  134. data/spec/fixtures/snapshots/murano status without ProjectFile matches file path.webmock +153 -0
  135. data/spec/fixtures/snapshots/murano status without ProjectFile matches route.webmock +153 -0
  136. data/spec/fixtures/snapshots/murano status without ProjectFile status.webmock +153 -0
  137. data/spec/fixtures/snapshots/murano syncdown stubbed without ProjectFile syncdown.webmock +151 -0
  138. data/spec/fixtures/snapshots/murano syncdown without ProjectFile syncdown.webmock +479 -0
  139. data/spec/fixtures/snapshots/murano syncup without ProjectFile syncup.webmock +357 -0
  140. data/spec/fixtures/snapshots/murano token with project list as table.webmock +9 -0
  141. data/spec/fixtures/snapshots/murano token without project help.webmock +9 -0
  142. data/spec/fixtures/snapshots/murano usage show usage.webmock +93 -0
  143. data/spec/spec_helper.rb +9 -3
  144. data/spec/webmock_snapshot.rb +296 -0
  145. metadata +133 -2
@@ -0,0 +1,296 @@
1
+ # Copyright © 2016-2017 Exosite LLC. All Rights Reserved
2
+ # License: PROPRIETARY. See LICENSE.txt.
3
+ # frozen_string_literal: true
4
+
5
+ # vim:tw=0:ts=2:sw=2:et:ai
6
+ # Unauthorized copying of this file is strictly prohibited.
7
+
8
+ require 'json'
9
+ require 'net/http'
10
+ require 'singleton'
11
+ require 'webmock'
12
+
13
+ require 'MrMurano/verbosing'
14
+ require 'MrMurano/Config'
15
+ require 'MrMurano/HttpAuthed'
16
+
17
+ module Net
18
+ class HTTP
19
+ alias old_request request
20
+ def request(request, body=nil, &block)
21
+ response = old_request(request, body, &block)
22
+
23
+ # If we loaded the request and response from a snapshot already, return
24
+ # now; otherwise, continue along and add the request-response to our list
25
+ # of mocks for this example.
26
+ return response unless MrMurano::Snapshot::WebMock.instance.rebuilding
27
+
28
+ req_body = body || ''
29
+
30
+ begin
31
+ resp_status = response.code.to_i
32
+ if response.body.class == Net::ReadAdapter
33
+ # See note in read_body monkey patch (below) why we do this.
34
+ resp_body = response.was_body
35
+ else
36
+ resp_body = response.body || ''
37
+ end
38
+ rescue NoMethodError
39
+ resp_status = 200
40
+ resp_body = response || ''
41
+ end
42
+
43
+ MrMurano::Snapshot::WebMock.instance.record_mock(
44
+ request.method.downcase.to_sym,
45
+ request.uri.to_s,
46
+ req_body,
47
+ resp_status,
48
+ resp_body,
49
+ )
50
+
51
+ response
52
+ end
53
+ end
54
+ end
55
+
56
+ module Net
57
+ module WebMockHTTPResponse
58
+ attr_reader :was_body
59
+ # (lb): This feels like more of a hack then these monkey patches already are!
60
+ # - On read_body() (using a &block to process an HTTP stream), WebMockHTTPResponse
61
+ # translates the body from a String into a Net::ReadAdapter -- and it doesn't seem
62
+ # like we can read the body after the block processes it! So here we grab the body
63
+ # before it's converted into a ReadAdapter. Amazingly, this code appears to work!!
64
+ alias old_read_body read_body
65
+ def read_body(dest=nil, &block)
66
+ @was_body = @body if block_given?
67
+ old_read_body(dest, &block)
68
+ end
69
+ end
70
+ end
71
+
72
+ module MrMurano
73
+ class Config
74
+ alias old_load load
75
+ def load
76
+ old_load
77
+ snapshotter = MrMurano::Snapshot::WebMock.instance
78
+ return unless snapshotter.snapshot_ready
79
+ snapshotter.load_example_meta_to_cfg
80
+ end
81
+ end
82
+ end
83
+
84
+ module MrMurano
85
+ module Snapshot
86
+ class WebMock
87
+ include Singleton
88
+
89
+ attr_reader :rebuilding
90
+ attr_reader :snapshot_ready
91
+
92
+ def reset(example)
93
+ @example = example
94
+ @rebuilding = false
95
+ @snapshot_name = @example.full_description
96
+ @snapshot_ready = File.exist?(snapshot_path)
97
+ ::WebMock.reset!
98
+ MrMurano::HttpAuthed.instance.credentials_reset
99
+ MrMurano::HttpAuthed.instance.http_reset
100
+ ENV.delete('MURANO_TOKEN')
101
+ end
102
+
103
+ # ***
104
+
105
+ def establish_mocks
106
+ @did_allow_net_connect = ::WebMock::Config.instance.allow_net_connect != false
107
+ snap_path = ensure_snapshot_dirs
108
+ if @snapshot_ready
109
+ ::WebMock.disable_net_connect!
110
+ load_web_mocks(snap_path)
111
+ @rebuilding = false
112
+ else
113
+ # (lb) Note that there's something funky with WebMock and
114
+ # Net::HTTP.new ... http.start, but I don't think we need
115
+ # to worry. If we did, look at this WebMock option:
116
+ # ::WebMock.allow_net_connect!(net_http_connect_on_start: true)
117
+ ::WebMock.allow_net_connect!
118
+ ready_to_sniff
119
+ @rebuilding = true
120
+ end
121
+ end
122
+
123
+ def terminate_mocks
124
+ @example = nil
125
+ @rebuilding = false
126
+ if @snapshot_ready
127
+ ::WebMock.reset!
128
+ else
129
+ write_mocks_file
130
+ end
131
+ @snapshot_name = nil
132
+ @snapshot_ready = false
133
+ restore_allow_net_connect
134
+ end
135
+
136
+ def restore_allow_net_connect
137
+ if @did_allow_net_connect
138
+ ::WebMock.allow_net_connect!
139
+ else
140
+ ::WebMock.disable_net_connect!
141
+ end
142
+ remove_instance_variable(:@did_allow_net_connect)
143
+ end
144
+
145
+ # ***
146
+
147
+ def load_web_mocks(snap_path)
148
+ mock_meta = load_snapshot_json(snap_path)
149
+ setup_mocks(mock_meta)
150
+ end
151
+
152
+ def load_snapshot_json(snap_path)
153
+ JSON.parse(File.read(snap_path), symbolize_names: false)
154
+ rescue JSON::ParserError => err
155
+ RSpec.configuration.reporter.message(
156
+ %(ERROR: Invalid JSON for snapshot found at: ‘#{snap_path}’)
157
+ )
158
+ RSpec.configuration.reporter.message err.to_s
159
+ exit 2
160
+ end
161
+
162
+ def setup_mocks(mock_meta)
163
+ mock_meta.reject { |k, _v| k == 'ex_meta' }.each do |method, requests|
164
+ requests.each do |req_uri, req_body_and_resp|
165
+ req_body_and_resp.each do |req_body, resp_metas|
166
+ setup_web_mock(method, req_uri, req_body, resp_metas)
167
+ end
168
+ end
169
+ end
170
+
171
+ @example_meta = mock_meta['ex_meta']
172
+ load_example_meta_to_cfg
173
+ end
174
+
175
+ def load_example_meta_to_cfg
176
+ ENV['MURANO_TOKEN'] = @example_meta['MURANO_TOKEN']
177
+ $cfg.set('net.protocol', @example_meta['net.protocol'], :internal)
178
+ $cfg.set('net.host', @example_meta['net.host'], :internal)
179
+ $cfg.set('user.name', @example_meta['user.name'], :internal)
180
+ $cfg.set('business.id', @example_meta['business.id'], :internal)
181
+ end
182
+
183
+ def setup_web_mock(method, uri, _req_body, resp_metas)
184
+ responses = []
185
+ resp_metas.each do |resp_meta|
186
+ responses.push(
187
+ status: resp_meta['resp_status'],
188
+ # Unpack Base64. See pack('m') for comment.
189
+ body: resp_meta['resp_body'].unpack('m')[0],
190
+ headers: {}
191
+ )
192
+ end
193
+ @example.example_group_instance.stub_request(
194
+ method.to_sym,
195
+ uri,
196
+ # (lb): We might eventually need to add the request body to the mock,
197
+ # but as of 2018-08-09 I've yet to see a non-empty request body.
198
+ # ).with(
199
+ # body: req_body,
200
+ ).to_return(
201
+ *responses
202
+ )
203
+ end
204
+
205
+ # ***
206
+
207
+ def ready_to_sniff
208
+ @curr_meta = {}
209
+ @curr_meta['ex_meta'] = {}
210
+ end
211
+
212
+ def record_mock(method, uri, req_body, resp_status, resp_body)
213
+ encoded_body = encode_for_json(resp_body)
214
+ mock_response = {
215
+ 'resp_body': encoded_body,
216
+ 'resp_status': resp_status,
217
+ }
218
+ @curr_meta[method] ||= {}
219
+ @curr_meta[method][uri] ||= {}
220
+ @curr_meta[method][uri][req_body] ||= []
221
+ @curr_meta[method][uri][req_body].push(mock_response)
222
+ end
223
+
224
+ def encode_for_json(resp_body)
225
+ # Avoid problems encoding to JSON by encoding the response body now.
226
+ # NOTE: 'm' packs as Base64. See:
227
+ # https://ruby-doc.org/core-2.3.3/Array.html#method-i-pack
228
+ encoded_body = [resp_body].pack('m')
229
+ # DEVS: Uncomment this to see the difference between the raw and encoded value:
230
+ # require 'byebug' ; byebug if encoded_body != resp_body
231
+ encoded_body
232
+ end
233
+
234
+ # ***
235
+
236
+ def write_mocks_file
237
+ RSpec.configuration.reporter.message "Saving mock sniff to: #{snapshot_path}"
238
+
239
+ @curr_meta['ex_meta']['MURANO_TOKEN'] = MrMurano::HttpAuthed.instance.token_biz
240
+ @curr_meta['ex_meta']['net.protocol'] = $cfg['net.protocol']
241
+ @curr_meta['ex_meta']['net.host'] = $cfg['net.host']
242
+ @curr_meta['ex_meta']['user.name'] = $cfg['user.name']
243
+ @curr_meta['ex_meta']['business.id'] = $cfg['business.id']
244
+
245
+ mocks_file = File.new(snapshot_path, 'w+')
246
+ MrMurano::Verbose.dump_file_json(@curr_meta, mocks_file, pretty: true)
247
+ mocks_file.close
248
+
249
+ @curr_meta = nil
250
+ end
251
+
252
+ # ***
253
+
254
+ def resolve_var(ex_meta_key, ex_meta_value)
255
+ if @rebuilding
256
+ @curr_meta['ex_meta'][ex_meta_key] = ex_meta_value
257
+ ex_meta_value
258
+ else
259
+ @example_meta[ex_meta_key]
260
+ end
261
+ end
262
+
263
+ # ***
264
+
265
+ def ensure_snapshot_dirs
266
+ snap_path = snapshot_path
267
+ basedir = File.dirname(snap_path)
268
+ FileUtils.mkdir_p(basedir) unless File.directory?(basedir)
269
+ snap_path
270
+ end
271
+
272
+ def snapshot_dir
273
+ if RSpec.configuration.snapshot_dir == :relative
274
+ # (lb): This path is pretty useless: We generally make a
275
+ # Murano CLI project under /tmp and chdir there before
276
+ # this method is called, so the snapshot directory would
277
+ # be created under /tmp!
278
+ File.dirname(@example.file_path) << '/__snapshots__'
279
+ else
280
+ RSpec.configuration.snapshot_dir
281
+ end
282
+ end
283
+
284
+ def snapshot_file
285
+ "#{@snapshot_name}.webmock"
286
+ end
287
+
288
+ def snapshot_path
289
+ File.join(snapshot_dir, snapshot_file)
290
+ end
291
+ end
292
+
293
+ RSpec.configuration.add_setting(:snapshot_dir, default: :relative)
294
+ end
295
+ end
296
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: MuranoCLI
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.1.pre.beta.4
4
+ version: 3.2.1.pre.beta.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Conrad Tadpol Tilstra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-31 00:00:00.000000000 Z
11
+ date: 2018-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: certified
@@ -467,6 +467,7 @@ files:
467
467
  - ".rubocop.yml"
468
468
  - ".travis.yml"
469
469
  - Gemfile
470
+ - HISTORY.md
470
471
  - LICENSE.txt
471
472
  - MuranoCLI.gemspec
472
473
  - MuranoCLI.iss
@@ -491,6 +492,7 @@ files:
491
492
  - docs/completions/murano_completion-bash
492
493
  - docs/demo.md
493
494
  - docs/develop.rst
495
+ - docs/release.rst
494
496
  - lib/MrMurano.rb
495
497
  - lib/MrMurano/Account.rb
496
498
  - lib/MrMurano/AccountBase.rb
@@ -661,6 +663,134 @@ files:
661
663
  - spec/fixtures/product_spec_files/lightbulb-no-state.yaml
662
664
  - spec/fixtures/product_spec_files/lightbulb.yaml
663
665
  - spec/fixtures/roles-three.yaml
666
+ - spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors)
667
+ a bool value 0.webmock
668
+ - spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors)
669
+ a bool value 1.webmock
670
+ - spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors)
671
+ a bool value No.webmock
672
+ - spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors)
673
+ a bool value Yes.webmock
674
+ - spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors)
675
+ a bool value bob.webmock
676
+ - spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors)
677
+ a bool value false.webmock
678
+ - spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors)
679
+ a bool value off.webmock
680
+ - spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors)
681
+ a bool value on STDIN.webmock
682
+ - spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors)
683
+ a bool value on.webmock
684
+ - spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors)
685
+ a bool value true.webmock
686
+ - spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors)
687
+ a json array blob with STDIN.webmock
688
+ - spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors)
689
+ a json array blob.webmock
690
+ - spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors)
691
+ an array.webmock
692
+ - spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors)
693
+ appends an array.webmock
694
+ - spec/fixtures/snapshots/murano application setting reads Webservice.cors to a file.webmock
695
+ - spec/fixtures/snapshots/murano application setting reads Webservice.cors.webmock
696
+ - spec/fixtures/snapshots/murano business list as json.webmock
697
+ - spec/fixtures/snapshots/murano business list as table.webmock
698
+ - spec/fixtures/snapshots/murano business list fewer fields.webmock
699
+ - spec/fixtures/snapshots/murano business list only ids.webmock
700
+ - spec/fixtures/snapshots/murano business list output to file.webmock
701
+ - spec/fixtures/snapshots/murano business without project help.webmock
702
+ - spec/fixtures/snapshots/murano config Needs a key.webmock
703
+ - spec/fixtures/snapshots/murano config Reads a key.webmock
704
+ - spec/fixtures/snapshots/murano config Removes a key.webmock
705
+ - spec/fixtures/snapshots/murano config Sets a key.webmock
706
+ - spec/fixtures/snapshots/murano config Sets a user key.webmock
707
+ - spec/fixtures/snapshots/murano content life cycle.webmock
708
+ - spec/fixtures/snapshots/murano cors sets CORS.webmock
709
+ - spec/fixtures/snapshots/murano cors show CORS.webmock
710
+ - spec/fixtures/snapshots/murano device activates.webmock
711
+ - spec/fixtures/snapshots/murano device enables a batch.webmock
712
+ - spec/fixtures/snapshots/murano device enables and lists.webmock
713
+ - spec/fixtures/snapshots/murano device writes and reads.webmock
714
+ - spec/fixtures/snapshots/murano domain show domain.webmock
715
+ - spec/fixtures/snapshots/murano element edit unknown as unknown element.webmock
716
+ - spec/fixtures/snapshots/murano element show --help.webmock
717
+ - spec/fixtures/snapshots/murano element show as csv.webmock
718
+ - spec/fixtures/snapshots/murano element show as default-table.webmock
719
+ - spec/fixtures/snapshots/murano element show as json.webmock
720
+ - spec/fixtures/snapshots/murano element show as table truncate.webmock
721
+ - spec/fixtures/snapshots/murano element show as table wrap.webmock
722
+ - spec/fixtures/snapshots/murano element show as yaml.webmock
723
+ - spec/fixtures/snapshots/murano element show using ambiguous name.webmock
724
+ - spec/fixtures/snapshots/murano element without project usage.webmock
725
+ - spec/fixtures/snapshots/murano exchange with project list as json.webmock
726
+ - spec/fixtures/snapshots/murano exchange with project list as table.webmock
727
+ - spec/fixtures/snapshots/murano exchange with project list fewer fields.webmock
728
+ - spec/fixtures/snapshots/murano exchange with project list only ids.webmock
729
+ - spec/fixtures/snapshots/murano exchange with project list output to file.webmock
730
+ - spec/fixtures/snapshots/murano exchange with project list purchase is already added
731
+ ID.webmock
732
+ - spec/fixtures/snapshots/murano exchange with project list purchase is ambiguous
733
+ name.webmock
734
+ - spec/fixtures/snapshots/murano exchange without project help.webmock
735
+ - spec/fixtures/snapshots/murano help using commander as --help.webmock
736
+ - spec/fixtures/snapshots/murano help using commander no args.webmock
737
+ - spec/fixtures/snapshots/murano help using subshell no args.webmock
738
+ - spec/fixtures/snapshots/murano help using subshell with --help.webmock
739
+ - spec/fixtures/snapshots/murano init Won't init in HOME (gracefully).webmock
740
+ - spec/fixtures/snapshots/murano init in empty directory with existing project.webmock
741
+ - spec/fixtures/snapshots/murano init in empty directory without existing project.webmock
742
+ - spec/fixtures/snapshots/murano init in existing project directory with ProjectFile.webmock
743
+ - spec/fixtures/snapshots/murano init in existing project directory with SolutionFile
744
+ 0.2.0.webmock
745
+ - spec/fixtures/snapshots/murano init in existing project directory with SolutionFile
746
+ 0.3.0.webmock
747
+ - spec/fixtures/snapshots/murano init in existing project directory without ProjectFile.webmock
748
+ - spec/fixtures/snapshots/murano keystore can call other commands.webmock
749
+ - spec/fixtures/snapshots/murano keystore clearAll.webmock
750
+ - spec/fixtures/snapshots/murano keystore deletes.webmock
751
+ - spec/fixtures/snapshots/murano keystore gets.webmock
752
+ - spec/fixtures/snapshots/murano keystore infos.webmock
753
+ - spec/fixtures/snapshots/murano keystore lists.webmock
754
+ - spec/fixtures/snapshots/murano link with project links and lists.webmock
755
+ - spec/fixtures/snapshots/murano link with project unlinks.webmock
756
+ - spec/fixtures/snapshots/murano link without project help.webmock
757
+ - spec/fixtures/snapshots/murano link without project subshell vs inline using commander
758
+ will not list.webmock
759
+ - spec/fixtures/snapshots/murano link without project subshell vs inline using subshell
760
+ will not list.webmock
761
+ - spec/fixtures/snapshots/murano logs when project is setup tail log.webmock
762
+ - spec/fixtures/snapshots/murano password Lists when no file.webmock
763
+ - spec/fixtures/snapshots/murano password deletes a password.webmock
764
+ - spec/fixtures/snapshots/murano password sets a password.webmock
765
+ - spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format)
766
+ a forced string value on STDIN.webmock
767
+ - spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format)
768
+ a forced string value.webmock
769
+ - spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format)
770
+ a number value fiftyHalf.webmock
771
+ - spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format)
772
+ a number value float 12.67.webmock
773
+ - spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format)
774
+ a number value integer 12.webmock
775
+ - spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format)
776
+ a number value on STDIN.webmock
777
+ - spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format)
778
+ a string value.webmock
779
+ - spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format)
780
+ merges into a dictionary.webmock
781
+ - spec/fixtures/snapshots/murano single sync without ProjectFile syncdown.webmock
782
+ - spec/fixtures/snapshots/murano status with ProjectFile status.webmock
783
+ - spec/fixtures/snapshots/murano status with Solutionfile 0.2.0 status.webmock
784
+ - spec/fixtures/snapshots/murano status with Solutionfile 0.3.0 status.webmock
785
+ - spec/fixtures/snapshots/murano status without ProjectFile matches file path.webmock
786
+ - spec/fixtures/snapshots/murano status without ProjectFile matches route.webmock
787
+ - spec/fixtures/snapshots/murano status without ProjectFile status.webmock
788
+ - spec/fixtures/snapshots/murano syncdown stubbed without ProjectFile syncdown.webmock
789
+ - spec/fixtures/snapshots/murano syncdown without ProjectFile syncdown.webmock
790
+ - spec/fixtures/snapshots/murano syncup without ProjectFile syncup.webmock
791
+ - spec/fixtures/snapshots/murano token with project list as table.webmock
792
+ - spec/fixtures/snapshots/murano token without project help.webmock
793
+ - spec/fixtures/snapshots/murano usage show usage.webmock
664
794
  - spec/fixtures/syncable_conflict/services/devdata.lua
665
795
  - spec/fixtures/syncable_conflict/services/timers.lua
666
796
  - spec/fixtures/syncable_content/assets/icon.png
@@ -679,6 +809,7 @@ files:
679
809
  - spec/fixtures/websocket/wss-fake-logs.rb
680
810
  - spec/spec_helper.rb
681
811
  - spec/variegated_TruthyFalsey_spec.rb
812
+ - spec/webmock_snapshot.rb
682
813
  homepage: https://github.com/exosite/MuranoCLI
683
814
  licenses:
684
815
  - MIT