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
data/HISTORY.md ADDED
@@ -0,0 +1,826 @@
1
+ # Murano CLI Release Notes
2
+
3
+ ---------------------------------------------------------------------------
4
+
5
+ ## Murano CLI v3.2.1.pre.beta.5 (2018-08-09)
6
+
7
+ ### New
8
+
9
+ - New Business commands (Issue: [MUR-6808](https://i.exosite.com/jira/browse/MUR-6808)):
10
+
11
+ `murano business show`
12
+
13
+ `murano business members`
14
+
15
+ `murano business set name`
16
+
17
+ `murano business set email`
18
+
19
+ `murano business set contact`
20
+
21
+ - This new changelog! `HISTORY.md` (Issue: [MUR-7654](https://i.exosite.com/jira/browse/MUR-7654))
22
+
23
+ ### Improved
24
+
25
+ - Remove erroneous third-party library warning.
26
+
27
+ - Update `murano-cli-commander` to upstream version 4.4.6 to prevent erroneous, misleading error message reported from library.
28
+
29
+ - Replace deprecated BizAPI `overview/` endpoint usage. (Issue: [MUR-6808](https://i.exosite.com/jira/browse/MUR-6808))
30
+
31
+ ### Fixed
32
+
33
+ - Bugfix: Fix `business find` to match on either bizid or fuzzy name by default (not just bizid). (Issue: [MUR-7361](https://i.exosite.com/jira/browse/MUR-7361))
34
+
35
+ ### Developer improvements
36
+
37
+ - New Ruby Gem release Rake tasks (and accompanying release help doc). (Issue: [MUR-7654](https://i.exosite.com/jira/browse/MUR-7654))
38
+
39
+ - New Semantic Versioning Rake tasks. (Issue: [MUR-7654](https://i.exosite.com/jira/browse/MUR-7654))
40
+
41
+ - New GitHub PR shortcut Rake task. (Issue: [MUR-7654](https://i.exosite.com/jira/browse/MUR-7654))
42
+
43
+ - New WebMock Snapshot infrastructure (to reduce unit test runtime from
44
+ 30 minutes to under 1 minute). (Issue: [MUR-7654](https://i.exosite.com/jira/browse/MUR-7654))
45
+
46
+ - Add additional debug messages when "corrupt" cache file fails to load. (Issue: [MUR-5281](https://i.exosite.com/jira/browse/MUR-5281))
47
+
48
+ ---------------------------------------------------------------------------
49
+
50
+ ## Murano CLI v3.2.1.pre.beta.4 (2018-07-30)
51
+
52
+ ### Fixed
53
+
54
+ - #### Sync regressions.
55
+
56
+ - Fix regression failures introduced to `murano syncup` and `murano syncdown`. (Issue: [MUR-7424](https://i.exosite.com/jira/browse/MUR-7424))
57
+
58
+ ---------------------------------------------------------------------------
59
+
60
+ ## Murano CLI v3.2.1.pre.beta.3 (2018-07-26)
61
+
62
+ ### Improved
63
+
64
+ - On `murano syncup`, scrub client-side only properties. (Issue: [MUR-7424](https://i.exosite.com/jira/browse/MUR-7424))
65
+
66
+ ---------------------------------------------------------------------------
67
+
68
+ ## Murano CLI v3.2.1.pre.beta.2 (2018-07-26)
69
+
70
+ #### Note: There is no official, published release for v3.2.1.pre.beta.2.
71
+
72
+ ### Fixed
73
+
74
+ - #### Fix regressions and unit tests. (Issue: [MUR-7352](https://i.exosite.com/jira/browse/MUR-7352))
75
+
76
+ - Unit tests: Multiple unit test bugs fixed.
77
+
78
+ - Bugfix: Scrub local-only Item attributes on `syncup`.
79
+
80
+ - Bugfix: On syncup, process "phantom" items specially.
81
+
82
+ - Bugfix: Fix status/diff of 0-sized Asset items.
83
+
84
+ - Bugfix: Whitelist `config_service` and `config_status`.
85
+
86
+ - Bugfix: Fix handling of Endpoint headers.
87
+
88
+ - Bugfix: Avoid false positive duplicate conflict on local items sync.
89
+
90
+ - Bugfix: Typo in `config --locations` caused scope not to print.
91
+
92
+ - Bugfix: Avoid nil-reference errors in `Item.location_friendly`.
93
+
94
+ - Bugfix: Fix loading LUA route scripts from grandchild dirs.
95
+
96
+ ---------------------------------------------------------------------------
97
+
98
+ ## Murano CLI v3.2.1.pre.beta.1 (2018-07-26)
99
+
100
+ #### Note: There is no official, published release for v3.2.1.pre.beta.1.
101
+
102
+ ### New
103
+
104
+ - #### CSR Authentication support
105
+
106
+ - Feature: Add "csr" auth-type support. (Issue: [MUR-7349](https://i.exosite.com/jira/browse/MUR-7349))
107
+
108
+ ### Improved
109
+
110
+ - Update deprecated reference from `tier.network` to `tier.features.network`. (Issue: [MUR-6815](https://i.exosite.com/jira/browse/MUR-6815))
111
+
112
+ ### Fixed
113
+
114
+ - Regression: Prevent nil reference error in Account.businesses.
115
+
116
+ - Introduced with `network` commands.
117
+
118
+ - Regression: Fix `syncup`/`syncdown`/`status`/`diff` re: header handling.
119
+
120
+ - Earlier code to fix solution template issues broke
121
+ header handling, causing issues with sync and status/diff.
122
+
123
+ - Bugfix: Silence erroneous unknown-config-key warnings.
124
+
125
+ - Bugfix: `Config.get` `@exclude_scopes` was not being applied correctly.
126
+
127
+ - Remove erroneous warning about `business.child` config key.
128
+
129
+ - Remove display of nonexistent keys "email" and "contact" from `murano child show` command.
130
+
131
+ ---------------------------------------------------------------------------
132
+
133
+ ## Murano CLI v3.2.0 (2018-06-28)
134
+
135
+ ### NOTE: Version 3.2.0 has sync command regressions.
136
+
137
+ ## - **You are advised to _avoid this version (v3.2.0)_.**
138
+
139
+ ### New
140
+
141
+ - #### Business Network: Manage Child Businesses
142
+
143
+ - Create/Delete Network Child Businesses and Add/Remove Members. (Issues: [MUR-6969](https://i.exosite.com/jira/browse/MUR-6969), [MUR-6970](https://i.exosite.com/jira/browse/MUR-6970), [MUR-6971](https://i.exosite.com/jira/browse/MUR-6971), [MUR-6974](https://i.exosite.com/jira/browse/MUR-6974))
144
+
145
+ - This includes the following new commands: `murano network children`, `murano network new`, `murano network delete`, `murano child show`, `murano child add`, and `murano child remove`.
146
+
147
+ ### Improved
148
+
149
+ - Extend `business` commands to show network information when applicable. (Issue: [MUR-6975](https://i.exosite.com/jira/browse/MUR-6975))
150
+
151
+ - Improve `business list` and `business find` commands: Add new `--network` option, which adds an extra column with additional network information.
152
+
153
+ ### Fixed
154
+
155
+ - Bugfix: Business ID in config is case sensitive but does not have validation. (Issue: [MUR-7233](https://i.exosite.com/jira/browse/MUR-7233))
156
+
157
+ ---------------------------------------------------------------------------
158
+
159
+ ## Murano CLI v3.2.0.beta.9 (2018-06-20)
160
+
161
+ ### Improved
162
+
163
+ - Improvement: Warn user if config key (from `-c` or file) is not valid. (Issue: [MUR-7233](https://i.exosite.com/jira/browse/MUR-7233))
164
+
165
+ ### Fixed
166
+
167
+ - Bugfix: Value-less key in config breaks login. (Issue: [MUR-7232](https://i.exosite.com/jira/browse/MUR-7232))
168
+
169
+ - Check `user.name` not nil before duck typing.
170
+
171
+ - Attempting to log in without a username in config causes a crash.
172
+
173
+ ---------------------------------------------------------------------------
174
+
175
+ ## Murano CLI v3.2.0.beta.8 (2018-06-14)
176
+
177
+ ### New
178
+
179
+ - #### Business Network: Name and Edit Parent Network
180
+
181
+ - Add business network view and configure commands, under `murano network`: `network view` and `network configure`. (Issues: [MUR-6972](https://i.exosite.com/jira/browse/MUR-6972), [MUR-6973](https://i.exosite.com/jira/browse/MUR-6973))
182
+
183
+ ### Improved
184
+
185
+ - Enhancement: Prevent false-positive on diff when service excludes (optional) `#HEADER`. (Issue: [MUR-6562](https://i.exosite.com/jira/browse/MUR-6562))
186
+
187
+ ---------------------------------------------------------------------------
188
+
189
+ ## Murano CLI v3.2.0.beta.7 (2018-06-14)
190
+
191
+ - No new features or bugfixes.
192
+
193
+ - Intermediate build used to troubleshoot the Jenkins Gem release runner.
194
+
195
+ ---------------------------------------------------------------------------
196
+
197
+ ## Murano CLI v3.2.0.beta.6 (2018-06-05)
198
+
199
+ ### New
200
+
201
+ - Feature: Restrict commands for managed Solutions, based on new Solution property, "managed". (Issue: [MUR-6691](https://i.exosite.com/jira/browse/MUR-6691))
202
+
203
+ - Note that Exosite employees -- users whose email address ends with `@exosite.com` -- are free to run any command against a managed Solution.
204
+
205
+ ### Improved
206
+
207
+ - Docs: Improve `business list` help (explain how to delimit special characters). (Issue: [MUR-6107](https://i.exosite.com/jira/browse/MUR-6107))
208
+
209
+ ### Fixed
210
+
211
+ - Bugfix: Correct table column header text to not span 2 columns. (Issue: [MUR-4989](https://i.exosite.com/jira/browse/MUR-4989))
212
+
213
+ - Bugfix: Encode keystore command key and values. (Issue: [MUR-4363](https://i.exosite.com/jira/browse/MUR-4363))
214
+
215
+ - Otherwise, e.g., a keystore key name containing `/` would not work correctly.
216
+
217
+ ---------------------------------------------------------------------------
218
+
219
+ ## Murano CLI v3.2.0.beta.5 (2018-05-01)
220
+
221
+ ### New
222
+
223
+ - #### `service` command
224
+
225
+ - New `service` command with subcommands: `add`, `delete`, `get`, `list`. (Issue: [MUR-5880](https://i.exosite.com/jira/browse/MUR-5880))
226
+
227
+ ### Improved
228
+
229
+ - New `token delete <any-token>` command.
230
+
231
+ - Sort `exchange list` like `service list` sort.
232
+
233
+ - Hide password in curldebug output.
234
+
235
+ - New `tool.curlfancy` option for even more curldebug output!
236
+
237
+ ### Fixed
238
+
239
+ - Bugfix: Catch Postgres failure and handle error gracefully.
240
+
241
+ - Bugfix: Add missing `tool.*` default to `murano config --dump`.
242
+
243
+ - Bugfix: Fix `exchange` pagination.
244
+
245
+ - Bugfix: Fix `-c` config setting option to work with boolean values.
246
+
247
+ - Bugfix: Let user skip Application and/or Product on murano-init. (Issue: [MUR-6456](https://i.exosite.com/jira/browse/MUR-6456))
248
+
249
+ - Bugfix: `status` and `diff` were showing false positives because SHA1 → MD5.
250
+
251
+ - Regression: Workaround issue uploading empty files. (Issues: [MUR-6479](https://i.exosite.com/jira/browse/MUR-6479), [MUR-6477](https://i.exosite.com/jira/browse/MUR-6477))
252
+
253
+ - Bugfix: Fix problem not being able to murano-diff nested files. (Issue: [MUR-6488](https://i.exosite.com/jira/browse/MUR-6488))
254
+
255
+ ---------------------------------------------------------------------------
256
+
257
+ ## Murano CLI v3.2.0.beta.4 (2018-05-01)
258
+
259
+ #### Note: There is no official, published release for v3.2.0.beta.4.
260
+
261
+ ### New
262
+
263
+ - #### Exchange Element improvements
264
+
265
+ - New Update Element action. (Issue: [MUR-6407](https://i.exosite.com/jira/browse/MUR-6407))
266
+
267
+ - New command, element edit`.
268
+
269
+ - New command, `element show`.
270
+
271
+ - Bugfix: Have `--csv` always use quotes (even when a value may not need to be quoted).
272
+
273
+ - Bugfix: Use forked commander lib. to handle empty string arguments, e.g., `--option ''`.
274
+
275
+ - Bugfix: Add support for ARGV end-of-options indicator, `--`.
276
+
277
+ - Bugfix: Add bare `murano element` command help.
278
+
279
+ - Bugfix: Make zero or 1+ elements found error more readable.
280
+
281
+ - Bugfix: New option, `--elem-type`, to include "type" in exchange element list table.
282
+
283
+ - Bugfix: Fix splitting table column at terminal width (off-by-one).
284
+
285
+ ### Improved
286
+
287
+ - Helpdocs: Rename: 'IOT Exchange' => 'IoT Marketplace'.
288
+
289
+ ### Fixed
290
+
291
+ - Bugfix: Do not repeat "base" path in `murano show --location`, and sort by keyname.
292
+
293
+ ---------------------------------------------------------------------------
294
+
295
+ ## Murano CLI v3.2.0.beta.3 (2018-05-01)
296
+
297
+ #### Note: There is no official, published release for v3.2.0.beta.3.
298
+
299
+ ### Fixed
300
+
301
+ - #### Sync commands improvements and bugfixes
302
+
303
+ - Bugfix: Change default directories to match new GitHub template. (Issues: [MUR-6329](https://i.exosite.com/jira/browse/MUR-6329), [MUR-6562](https://i.exosite.com/jira/browse/MUR-6562))
304
+
305
+ - Bugfix: Improve `syncup/syncdown` to handle multiple items specified in the same file (module). (Issue: [MUR-6562](https://i.exosite.com/jira/browse/MUR-6562))
306
+
307
+ - Bugfix: Group duplicate items by synckey, so user knows which files conflict. (Issue: [MUR-6562](https://i.exosite.com/jira/browse/MUR-6562))
308
+
309
+ - Bugfix: Add line numbers to diff output, to make entries distinct. (Issue: [MUR-6562](https://i.exosite.com/jira/browse/MUR-6562))
310
+
311
+ - Bugfix: Correct item line numbering: make 1-based (like diff); and do not overlap line numbers for segment beginning and end. (Issue: [MUR-6562](https://i.exosite.com/jira/browse/MUR-6562))
312
+
313
+ - Bugfix: Fix sync up/down item filtering to not check for `\`-delimited `*`'s in file glob (i.e., `\*` ). (Issue: [MUR-6414](https://i.exosite.com/jira/browse/MUR-6414))
314
+
315
+ - #### Miscellaneous bugfixes
316
+
317
+ - Bugfix: `muruno postgresql` crashes trying to parse results. (Issue: [MUR-6545](https://i.exosite.com/jira/browse/MUR-6545))
318
+
319
+ - Bugfix: Update `unicode-display_width` dependency to at least version `1.3.2` to avoid version `1.3.1` crashing Murano CLI on load.
320
+
321
+ - Bugfix: Update `rb-commander` dependency from version `4.4.3` to `4.4.4` to avoid seeing meaningless warning injected from library.
322
+
323
+ ### Developer improvements
324
+
325
+ - Enhance test runner to retry failed tests, which are often caused by BizAPI timeouts, to avoid false-positive test failures.
326
+
327
+ - New `tool.developer` option to enable logging of dev-only messages.
328
+
329
+ ---------------------------------------------------------------------------
330
+
331
+ ## Murano CLI v3.2.0.beta.2 (2018-05-01)
332
+
333
+ #### Note: There is no official, published release for v3.2.0.beta.2.
334
+
335
+ ### New
336
+
337
+ - #### New `service` commands
338
+
339
+ - New `service` commands.
340
+
341
+ - New command, `murano service add`. (Issue: [MUR-6265](https://i.exosite.com/jira/browse/MUR-6265))
342
+
343
+ - New command, `murano service list`, lists all the services in a solution. (Issue: [MUR-5880](https://i.exosite.com/jira/browse/MUR-5880))
344
+
345
+ - New command, `murano service delete`, to delete services. (Issue: [MUR-5881](https://i.exosite.com/jira/browse/MUR-5881))
346
+
347
+ - New `service get` command to query individual service. (Issue: [MUR-5881](https://i.exosite.com/jira/browse/MUR-5881))
348
+
349
+ ### Improved
350
+
351
+ - Sort `murano exchange list` results (similar to how new `murano service list`
352
+ results are sorted).
353
+
354
+ - Enhance `murano token delete` to accept any token.
355
+
356
+ - E.g., a simple `murano token delete` will delete the current user's active token, whereas `murano token delete <token>` will delete the specified token.
357
+
358
+ - Improve Postgres error handling reporting.
359
+
360
+ - Print platform-supplied error message before exiting.
361
+
362
+ ### Fixed
363
+
364
+ - Fix `-c` option to work with bools.
365
+
366
+ - E.g., so that `murano ... -c tool.curldebug=false` works.
367
+
368
+ - Bugfix: Let user skip Application and/or Product on `murano init`. (Issue: [MUR-6456](https://i.exosite.com/jira/browse/MUR-6456))
369
+
370
+ - Add missing Asset file keys (`md5` and `size`; recently added to backend service).
371
+
372
+ ### Developer improvements
373
+
374
+ - Hide password in `curldebug` output.
375
+
376
+ - Add missing `tool.*` defaults, so they appear in `murano config --dump`.
377
+
378
+ - Refactor and fix Murano CLI source code unit tests. (Issues: [MUR-5939](https://i.exosite.com/jira/browse/MUR-5939), [MUR-5880](https://i.exosite.com/jira/browse/MUR-5880), [MUR-5881](https://i.exosite.com/jira/browse/MUR-5881), [MUR-6265](https://i.exosite.com/jira/browse/MUR-6265), [MUR-6561](https://i.exosite.com/jira/browse/MUR-6561))
379
+
380
+ ---------------------------------------------------------------------------
381
+
382
+ ## Murano CLI v3.2.0.beta.1 (2018-02-01)
383
+
384
+ ### New
385
+
386
+ - #### Token Authentication
387
+
388
+ - Change default authentication to token, from username-password authentication. (Issue: [MUR-5939](https://i.exosite.com/jira/browse/MUR-5939))
389
+
390
+ - The user will be prompted for a password on initial login, but password is no longer cached by default. Instead, the token will be cached by default.
391
+
392
+ - You can override this behavior and have the password cached locally by specifying the `--cache` runtime option, or by setting the `auth.persist-basic` config option to `true`. (By default, `auth.persist-token` is true, signifying that the token should be cached (which can similarly be overridden at runtime by specifying `--no-token`).)
393
+
394
+ - You can configure the token time-to-live using the `auth.ttl` config option, or the `--ttl` runtime option. The default is 2 days (specified in seconds, i.e., `172800`).
395
+
396
+ - Add new `murano token` command, similar to `murano password` command.
397
+
398
+ - Replace `murano logout --token` feature with `murano token delete`.
399
+
400
+ - Clear all credentials using `murano logout`.
401
+
402
+ - You can logout but keep your user name and business ID cached by running: `murano logout --keep-user`.
403
+
404
+ ### Improved
405
+
406
+ - Quickly check the username for the current project using `murano whoami`.
407
+
408
+ ### Fixed
409
+
410
+ - Catch I/O error on opening curlfile and handle exception. (Issue: [MUR-5939](https://i.exosite.com/jira/browse/MUR-5939))
411
+
412
+ - Catch YAML load error on cache file and explain error -- and fix -- before gracefully dying.
413
+
414
+ ---------------------------------------------------------------------------
415
+
416
+ ## Murano CLI v3.1.0 (2018-01-25)
417
+
418
+ ### New
419
+
420
+ - #### Service & Script Debug Logs
421
+
422
+ - CLI now uses a WebSocket to stream solution logs. (Issue: [MUR-5105](https://i.exosite.com/jira/browse/MUR-5105))
423
+
424
+ - Use `--follow` to stream logs over WSS.
425
+
426
+ Otherwise, CLI fetches previous 20 logs entries over HTTP.
427
+
428
+ - Use filtering options to fetch only certain records. (Issue: [MUR-5108](https://i.exosite.com/jira/browse/MUR-5108))
429
+
430
+ E.g., `--message`, `--severity`, `--types`, etc.
431
+
432
+ - Use formatting options to change the output. (Issue: [MUR-5109](https://i.exosite.com/jira/browse/MUR-5109))
433
+
434
+ E.g., `--message-only`, `--one-line`, `--json`, etc.
435
+
436
+ - Refer to the app for detailed help and examples. (Issue: [MUR-5113](https://i.exosite.com/jira/browse/MUR-5113))
437
+
438
+ E.g., `murano logs --help`
439
+
440
+ - #### Close source source code
441
+
442
+ - Close source source code. (Issue: [MUR-4309](https://i.exosite.com/jira/browse/MUR-4309))
443
+
444
+ - Change LICENSE, privatize repository, migrate Jenkins to Docker.
445
+
446
+ ---------------------------------------------------------------------------
447
+
448
+ ## Murano CLI v3.1.0.beta.8 (2018-01-18)
449
+
450
+ ### Developer improvements
451
+
452
+ - #### Docker enhancements
453
+
454
+ - Simplify Dockerfiles: Use `dnl` to not copy comments. (Issue: [MUR-4309](https://i.exosite.com/jira/browse/MUR-4309))
455
+
456
+ - Avoid NoMethodError on delete failure: Check delete_solution return value nil?
457
+
458
+ ---------------------------------------------------------------------------
459
+
460
+ ## Murano CLI v3.1.0.beta.7 (2018-01-18)
461
+
462
+ ### Developer improvements
463
+
464
+ - #### Dockerization
465
+
466
+ - Intermediate build used to implement new Jenkins Gem release runner. (Issue: [MUR-4309](https://i.exosite.com/jira/browse/MUR-4309))
467
+
468
+ - No new features or bugfixes.
469
+
470
+ ---------------------------------------------------------------------------
471
+
472
+ ## Murano CLI v3.1.0.beta.6 (2018-01-18)
473
+
474
+ #### Note: There is no official, published release for v3.1.0.beta.6.
475
+
476
+ ### Developer improvements
477
+
478
+ - #### Dockerization
479
+
480
+ - Intermediate build used to implement new Jenkins Gem release runner. (Issue: [MUR-4309](https://i.exosite.com/jira/browse/MUR-4309))
481
+
482
+ - No new features or bugfixes.
483
+
484
+ ---------------------------------------------------------------------------
485
+
486
+ ## Murano CLI v3.1.0.beta.5 (2018-01-18)
487
+
488
+ ### Developer improvements
489
+
490
+ - #### Dockerization
491
+
492
+ - Add Dockerfiles and shell scripts for new Jenkins server. (Issue: [MUR-4309](https://i.exosite.com/jira/browse/MUR-4309))
493
+
494
+ - No new features or bugfixes.
495
+
496
+ ---------------------------------------------------------------------------
497
+
498
+ ## Murano CLI v3.1.0.beta.4 (2018-01-18)
499
+
500
+ ### Improved
501
+
502
+ - ### Windows bug triaging
503
+
504
+ - Add verbose messages for Windows mkdir error. (Issue: [MUR-5081](https://i.exosite.com/jira/browse/MUR-5081))
505
+
506
+ ### Developer improvements
507
+
508
+ - #### Jenkins testing
509
+
510
+ - Fix headless (Jenkins) tests: Skip terminal stuff if !tty? and use --ascii if UTF-8 encoding not detected. (Issue: [MUR-4309](https://i.exosite.com/jira/browse/MUR-4309))
511
+
512
+ ---------------------------------------------------------------------------
513
+
514
+ ## Murano CLI v3.1.0.beta.3 (2018-01-12)
515
+
516
+ ### New
517
+
518
+ - #### WSS Logging
519
+
520
+ - Fix issue using `--tracking` format option.
521
+
522
+ ### Improved
523
+
524
+ - Remove post-Gem install message.
525
+
526
+ ---------------------------------------------------------------------------
527
+
528
+ ## Murano CLI v3.1.0.beta.2 (2018-01-11)
529
+
530
+ ### New
531
+
532
+ - #### WSS Logging
533
+
534
+ - Add more examples to the logs command `--help`. (Issue: [MUR-5113](https://i.exosite.com/jira/browse/MUR-5113))
535
+
536
+ - Fix Hash syntax for Ruby 2.0 compliance.
537
+
538
+ ---------------------------------------------------------------------------
539
+
540
+ ## Murano CLI v3.1.0.beta.1 (2018-01-10)
541
+
542
+ ### New
543
+
544
+ - ### WSS Logging
545
+
546
+ - Implement WebSocket logs feature. (Issue: [MUR-5105](https://i.exosite.com/jira/browse/MUR-5105))
547
+
548
+ - Lots of logs command filtering options. (Issue: [MUR-5108](https://i.exosite.com/jira/browse/MUR-5108))
549
+
550
+ - E.g., --message, --severity, --types, etc.
551
+
552
+ - Lots of logs command formatting options. (Issue: [MUR-5109](https://i.exosite.com/jira/browse/MUR-5109))
553
+
554
+ - E.g., --message-only, --one-line, --json, etc.
555
+
556
+ - Update logs command inline --help. (Issue: [MUR-5113](https://i.exosite.com/jira/browse/MUR-5113))
557
+
558
+ ---------------------------------------------------------------------------
559
+
560
+ ## Murano CLI v3.0.8 (2017-12-19)
561
+
562
+ ### Fixed
563
+
564
+ - #### Bugfixes to `syncup`/`syncdown`
565
+
566
+ - Fix `syncup`/`syncdown` of "undeletable" event handlers. (Issues: [MUR-5153](https://i.exosite.com/jira/browse/MUR-5153), [MUR-5154](https://i.exosite.com/jira/browse/MUR-5154))
567
+
568
+ - This includes: `*.event`, `timer.timer`, `tsdb.exportJob`, and `user.account`.
569
+
570
+ - Set `script` in remote event handler to empty string when local script removed, rather than deleting remote event handler.
571
+
572
+ - Do not add trailing newline to synced script unless there previously. (Issue: [MUR-5156](https://i.exosite.com/jira/browse/MUR-5156))
573
+
574
+ - Fix specifying individual paths on `syncdown`. (Issue: [MUR-5042](https://i.exosite.com/jira/browse/MUR-5042))
575
+
576
+ - Allow relative paths rather than requiring absolute paths to files.
577
+
578
+ - #### New config options
579
+
580
+ - Use `net.protocol` to specify HTTP (not HTTPS) BizAPI endpoint.
581
+
582
+ E.g.,:
583
+
584
+ `murano config net.host localhost --project`
585
+
586
+ `murano config net.protocol http --project`
587
+
588
+ - Use `--debug` as shortcut to setting `tool.debug=true`.
589
+
590
+ ### Improved
591
+
592
+ - Show diff of items being added or removed when debugging (`-c tool.debug`).
593
+
594
+ - Lots of linting fixes.
595
+
596
+ ### Developer improvements
597
+
598
+ - Update source file copyright headers and change LICENSE. (Issue: [MUR-4309](https://i.exosite.com/jira/browse/MUR-4309))
599
+
600
+ ---------------------------------------------------------------------------
601
+
602
+ ## Murano CLI v3.0.7 (2017-11-03)
603
+
604
+ ### New
605
+
606
+ - #### Add new `Httpservice` class
607
+
608
+ - For use by plugins.
609
+
610
+ ### Improved
611
+
612
+ - Improvement: Print more helpful error message when `syncup` fails.
613
+
614
+ ### Fixed
615
+
616
+ - Bugfix: Fix displaying HTTP error when JSON returned.
617
+
618
+ ---------------------------------------------------------------------------
619
+
620
+ ## Murano CLI v3.0.6 (2017-10-06)
621
+
622
+ ### Fixed
623
+
624
+ - Bugfix: Fix `tsdb query` command to work when `--sampling_size` not specified. (Issue: [MUR-4301](https://i.exosite.com/jira/browse/MUR-4301))
625
+
626
+ - Bugfix: Fix `device enable` command. (Issue: [MUR-4537](https://i.exosite.com/jira/browse/MUR-4537))
627
+
628
+ ---------------------------------------------------------------------------
629
+
630
+ ## Murano CLI v3.0.5 (2017-09-28)
631
+
632
+ ### New
633
+
634
+ - #### Two-factor authentication support
635
+
636
+ - When logging on, you'll be prompted to check your email for a token.
637
+
638
+ - You can clear the token at any time using `murano logout --token`.
639
+
640
+ ### Fixed
641
+
642
+ - Bugfix: `murano exchange` command was failing after recent changes to element description.
643
+
644
+ - Fix `murano syncup`/`syncdown` when only one Solution configured
645
+
646
+ - E.g., if only `product.id` was set, but not `application.id`.
647
+
648
+ - Fix `murano cors` command
649
+
650
+ - Fix `--csv` output option.
651
+
652
+ - Default now is to show table, like `murano usage` and other commands.
653
+
654
+ - Update help examples to show how to use `--json`, `--yaml`, etc.
655
+
656
+ ---------------------------------------------------------------------------
657
+
658
+ ## Murano CLI v3.0.4 (2017-09-13)
659
+
660
+ ### Fixed
661
+
662
+ - #### Microsoft Windows support
663
+
664
+ - Fix issues installing and using Murano CLI on Windows.
665
+
666
+ ---------------------------------------------------------------------------
667
+
668
+ ## Murano CLI v3.0.3 (2017-09-13)
669
+
670
+ ### Fixed
671
+
672
+ - #### Microsoft Windows support
673
+
674
+ - Fix issues installing and using Murano CLI on Windows.
675
+
676
+ ---------------------------------------------------------------------------
677
+
678
+ ## Murano CLI v3.0.2 (2017-09-11)
679
+
680
+ ### New
681
+
682
+ - #### Murano IoT Exchange Elements commands (Issues: [MUR-3921](https://i.exosite.com/jira/browse/MUR-3921), [MUR-3922](https://i.exosite.com/jira/browse/MUR-3922), [MUR-3923](https://i.exosite.com/jira/browse/MUR-3923))
683
+
684
+ - Add Support for Murano IoT Exchange Elements.
685
+
686
+ - See the new commands' `help` for more:
687
+
688
+ `murano exchange list --help`
689
+
690
+ `murano exchange purchase --help`
691
+
692
+ - E.g.,
693
+
694
+ - `murano exchange list --full -c outformat=json`
695
+
696
+ - `murano exchange add IoT`
697
+
698
+ ### Improved
699
+
700
+ - Fix problem working with older solutions that were migrated to Murano 1.1.
701
+
702
+ - Improve error reporting and recovery when handling network errors.
703
+
704
+ - Fix compatibility with latest release of third-party gem, `public_suffix`.
705
+
706
+ ### Developer improvements
707
+
708
+ - Enable `rb-commander` code coverage
709
+
710
+ - Enable all files under `lib/MrMurano/commands/` to be part of RSpec coverage.
711
+
712
+ - See the monkey patches atop `cmd_common.rb`, and the hack-of-a-function,
713
+ `murano_command_runner`.
714
+
715
+ - We can now add functional tests without needing to call
716
+ `Open3.capture3` and using a subshell, but rather by calling
717
+ Commander directly.
718
+
719
+ ---------------------------------------------------------------------------
720
+
721
+ ## Murano CLI v3.0.1 (2017-08-23)
722
+
723
+ ### New
724
+
725
+ - #### Product ID Event Handler Aliasing
726
+
727
+ - Alias filename parts and magic script header using config variables, e.g., use `{product.id}` instead of actual Product ID.
728
+
729
+ Support config variable aliases in filenames and event handler scripts.
730
+
731
+ - For instance, instead of specifying the Product ID in the filename, such as
732
+
733
+ `services/abcd1234_event.lua`
734
+
735
+ you can name it with a config variable,
736
+
737
+ `services/{product.id}_event.lua`
738
+
739
+ - And instead of hard coding the ID in the magic header, e.g.,
740
+
741
+ `--#EVENT a1b2c3d4e5f6 event`
742
+
743
+ you can use the same config variable substitution, e.g.,
744
+
745
+ `--#EVENT {product.id} event`
746
+
747
+ - #### New `device` Commands and Options
748
+
749
+ - New `--expire` option for the `device enable` command specifies the number of hours until the authentication window closes (and the device in Murano must be re-enabled before the physical device can authenticate).
750
+
751
+ - New device commands: `device lock`, `device unlock`, and `device revoke`.
752
+
753
+ - #### New global option, `--ascii`
754
+
755
+ - Disable Unicode output with `--ascii` (the progress bar defaults to using Unicode, as do some messages).
756
+
757
+ - New command line option `--no-page` and corresponding config variable `tool.no-page` disable paging the help.
758
+
759
+ ### Improved
760
+
761
+ - #### Disable Progress if Command Being Piped
762
+
763
+ If the `murano` command is being piped (or run in a subshell), disable the progress display, which adds hidden characters to any captured output.
764
+
765
+ - E.g., for commands like `URL=$(murano domain application --brief)` and `murano usage | grep email | awk '{print $4}'`
766
+
767
+ ### Fixed
768
+
769
+ - Bugfix: `murano domain product` incorrectly showing application, too.
770
+
771
+ - Bugfix: `murano business find` failing on fuzzy search.
772
+
773
+ - Bugfix: `murano device enable` command was using old API.
774
+
775
+ - Fix `--help` issues.
776
+
777
+ - Fix `--help` to work when other --options are present.
778
+
779
+ - Fix `--help` on base commands to show list of subcommands (was showing just the description).
780
+
781
+ - Fix `--help` to work on command aliases (was erroneously telling you to run `--help`).
782
+
783
+ ---------------------------------------------------------------------------
784
+
785
+ ## Murano CLI v3.0.0 (2017-08-18)
786
+
787
+ ### New
788
+
789
+ - #### Murano Advanced Device Connectivity (ADC) support
790
+
791
+ Add support for Murano `device2` interface.
792
+
793
+ http://docs.exosite.com/articles/adc-overview/
794
+
795
+ - If you would like to work with an older solution that has not been migrated to ADC, please use Murano CLI v2.2.4.
796
+
797
+ - #### Multi-solution support
798
+
799
+ Add support for one Device and one Application.
800
+
801
+ In Murano CLI v2, there was one `solution.id` used to identify the active solution.
802
+
803
+ Now there is an `application.id` and a `product.id` used to identify two solutions, which are usually "linked".
804
+
805
+ - #### Better onboarding
806
+
807
+ Use `murano init` to easily and quickly set up a new project, or to connect to an existing project.
808
+
809
+ - #### Nested Lua script support
810
+
811
+ Add support for organizing Lua modules hierarchically.
812
+
813
+ E.g., a file located at `modules/foo/bar/baz.lua` can be included with `require 'foo.bar.baz'`.
814
+
815
+ - If you would like to disable this behavior, please use `--no-nesting`
816
+
817
+ - #### Progress display
818
+
819
+ - Added flashy progress indicator.
820
+
821
+ - Use `--no-progress` to disable.
822
+
823
+ - Colorize terminal output text.
824
+
825
+ - Use `--no-color` to disable.
826
+