MuranoCLI 3.2.1.pre.beta.6 → 3.2.1.pre.beta.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (228) hide show
  1. checksums.yaml +4 -4
  2. data/HISTORY.md +10 -0
  3. data/MuranoCLI.gemspec +37 -6
  4. data/Rakefile +38 -11
  5. data/lib/MrMurano/commands/business.rb +0 -4
  6. data/lib/MrMurano/version.rb +1 -1
  7. metadata +2 -251
  8. data/dockers/Dockerfile.2.2.9 +0 -40
  9. data/dockers/Dockerfile.2.3.6 +0 -40
  10. data/dockers/Dockerfile.2.4.3 +0 -40
  11. data/dockers/Dockerfile.2.5.0 +0 -40
  12. data/dockers/Dockerfile.GemRelease +0 -49
  13. data/dockers/Dockerfile.m4 +0 -122
  14. data/dockers/README.rst +0 -362
  15. data/dockers/RELEASE.rst +0 -135
  16. data/dockers/docker-test.sh +0 -163
  17. data/dockers/gem-release.sh +0 -4
  18. data/docs/basic_example.rst +0 -436
  19. data/docs/ci/.trustme.plugin +0 -140
  20. data/docs/ci/.trustme.sh +0 -516
  21. data/docs/ci/.trustme.vim +0 -55
  22. data/docs/completions/murano_completion-bash +0 -4484
  23. data/docs/demo.md +0 -109
  24. data/docs/develop.rst +0 -392
  25. data/docs/release.rst +0 -295
  26. data/spec/Account-Passwords_spec.rb +0 -245
  27. data/spec/Account_spec.rb +0 -256
  28. data/spec/Business_spec.rb +0 -307
  29. data/spec/ConfigFile_spec.rb +0 -55
  30. data/spec/ConfigMigrate_spec.rb +0 -108
  31. data/spec/Config_spec.rb +0 -440
  32. data/spec/Content_spec.rb +0 -422
  33. data/spec/GatewayBase_spec.rb +0 -65
  34. data/spec/GatewayDevice_spec.rb +0 -403
  35. data/spec/GatewayResource_spec.rb +0 -283
  36. data/spec/GatewaySettings_spec.rb +0 -130
  37. data/spec/HttpAuthed_spec.rb +0 -87
  38. data/spec/Http_spec.rb +0 -220
  39. data/spec/MakePretties_spec.rb +0 -127
  40. data/spec/Mock_spec.rb +0 -62
  41. data/spec/ProjectFile_spec.rb +0 -381
  42. data/spec/Setting_spec.rb +0 -120
  43. data/spec/Solution-ServiceConfig_spec.rb +0 -272
  44. data/spec/Solution-ServiceEventHandler_spec.rb +0 -442
  45. data/spec/Solution-ServiceModules_spec.rb +0 -562
  46. data/spec/Solution-UsersRoles_spec.rb +0 -269
  47. data/spec/Solution_spec.rb +0 -140
  48. data/spec/SyncRoot_spec.rb +0 -111
  49. data/spec/SyncUpDown_spec.rb +0 -868
  50. data/spec/Verbosing_spec.rb +0 -332
  51. data/spec/Webservice-Cors_spec.rb +0 -225
  52. data/spec/Webservice-Endpoint_spec.rb +0 -650
  53. data/spec/Webservice-File_spec.rb +0 -282
  54. data/spec/Webservice-Setting_spec.rb +0 -105
  55. data/spec/_workspace.rb +0 -43
  56. data/spec/cmd_business_spec.rb +0 -64
  57. data/spec/cmd_common.rb +0 -507
  58. data/spec/cmd_config_spec.rb +0 -73
  59. data/spec/cmd_content_spec.rb +0 -109
  60. data/spec/cmd_cors_spec.rb +0 -54
  61. data/spec/cmd_device_spec.rb +0 -130
  62. data/spec/cmd_domain_spec.rb +0 -62
  63. data/spec/cmd_element_spec.rb +0 -401
  64. data/spec/cmd_exchange_spec.rb +0 -114
  65. data/spec/cmd_help_spec.rb +0 -72
  66. data/spec/cmd_init_spec.rb +0 -475
  67. data/spec/cmd_keystore_spec.rb +0 -97
  68. data/spec/cmd_link_spec.rb +0 -105
  69. data/spec/cmd_logs_spec.rb +0 -162
  70. data/spec/cmd_password_spec.rb +0 -64
  71. data/spec/cmd_setting_application_spec.rb +0 -300
  72. data/spec/cmd_setting_product_spec.rb +0 -246
  73. data/spec/cmd_status_spec.rb +0 -300
  74. data/spec/cmd_syncdown_application_spec.rb +0 -128
  75. data/spec/cmd_syncdown_both_spec.rb +0 -178
  76. data/spec/cmd_syncdown_unit_spec.rb +0 -861
  77. data/spec/cmd_syncup_spec.rb +0 -148
  78. data/spec/cmd_token_spec.rb +0 -53
  79. data/spec/cmd_usage_spec.rb +0 -79
  80. data/spec/dry_run_formatter.rb +0 -28
  81. data/spec/fixtures/.mrmuranorc +0 -9
  82. data/spec/fixtures/ProjectFiles/invalid.yaml +0 -9
  83. data/spec/fixtures/ProjectFiles/only_meta.yaml +0 -24
  84. data/spec/fixtures/ProjectFiles/with_routes.yaml +0 -27
  85. data/spec/fixtures/SolutionFiles/0.2.0.json +0 -20
  86. data/spec/fixtures/SolutionFiles/0.2.0_invalid.json +0 -18
  87. data/spec/fixtures/SolutionFiles/0.2.json +0 -21
  88. data/spec/fixtures/SolutionFiles/0.3.0.json +0 -20
  89. data/spec/fixtures/SolutionFiles/0.3.0_invalid.json +0 -19
  90. data/spec/fixtures/SolutionFiles/0.3.json +0 -20
  91. data/spec/fixtures/SolutionFiles/basic.json +0 -20
  92. data/spec/fixtures/SolutionFiles/secret.json +0 -6
  93. data/spec/fixtures/configfile +0 -9
  94. data/spec/fixtures/dumped_config +0 -57
  95. data/spec/fixtures/exchange_element/element-show.json +0 -1
  96. data/spec/fixtures/exchange_element/swagger-mur-6407__10k.yaml +0 -282
  97. data/spec/fixtures/exchange_element/swagger-mur-6407__20k.yaml +0 -588
  98. data/spec/fixtures/gateway_resource_files/resources.notyaml +0 -12
  99. data/spec/fixtures/gateway_resource_files/resources.yaml +0 -13
  100. data/spec/fixtures/gateway_resource_files/resources_invalid.yaml +0 -13
  101. data/spec/fixtures/mrmuranorc_deleted_bob +0 -6
  102. data/spec/fixtures/mrmuranorc_tool_bob +0 -3
  103. data/spec/fixtures/product_spec_files/example.exoline.spec.yaml +0 -116
  104. data/spec/fixtures/product_spec_files/example.murano.spec.yaml +0 -14
  105. data/spec/fixtures/product_spec_files/gwe.exoline.spec.yaml +0 -21
  106. data/spec/fixtures/product_spec_files/gwe.murano.spec.yaml +0 -16
  107. data/spec/fixtures/product_spec_files/lightbulb-no-state.yaml +0 -11
  108. data/spec/fixtures/product_spec_files/lightbulb.yaml +0 -21
  109. data/spec/fixtures/roles-three.yaml +0 -11
  110. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value 0.webmock +0 -98
  111. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value 1.webmock +0 -98
  112. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value No.webmock +0 -98
  113. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value Yes.webmock +0 -98
  114. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value bob.webmock +0 -72
  115. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value false.webmock +0 -98
  116. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value off.webmock +0 -98
  117. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value on STDIN.webmock +0 -98
  118. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value on.webmock +0 -98
  119. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a bool value true.webmock +0 -98
  120. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a json array blob with STDIN.webmock +0 -98
  121. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) a json array blob.webmock +0 -98
  122. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) an array.webmock +0 -98
  123. data/spec/fixtures/snapshots/murano application setting Writes (using Webservice.cors) appends an array.webmock +0 -98
  124. data/spec/fixtures/snapshots/murano application setting reads Webservice.cors to a file.webmock +0 -72
  125. data/spec/fixtures/snapshots/murano application setting reads Webservice.cors.webmock +0 -72
  126. data/spec/fixtures/snapshots/murano business list as json.webmock +0 -27
  127. data/spec/fixtures/snapshots/murano business list as table.webmock +0 -27
  128. data/spec/fixtures/snapshots/murano business list fewer fields.webmock +0 -27
  129. data/spec/fixtures/snapshots/murano business list only ids.webmock +0 -27
  130. data/spec/fixtures/snapshots/murano business list output to file.webmock +0 -27
  131. data/spec/fixtures/snapshots/murano business without project help.webmock +0 -9
  132. data/spec/fixtures/snapshots/murano config Needs a key.webmock +0 -9
  133. data/spec/fixtures/snapshots/murano config Reads a key.webmock +0 -9
  134. data/spec/fixtures/snapshots/murano config Removes a key.webmock +0 -9
  135. data/spec/fixtures/snapshots/murano config Sets a key.webmock +0 -9
  136. data/spec/fixtures/snapshots/murano config Sets a user key.webmock +0 -9
  137. data/spec/fixtures/snapshots/murano content life cycle.webmock +0 -144
  138. data/spec/fixtures/snapshots/murano cors sets CORS.webmock +0 -78
  139. data/spec/fixtures/snapshots/murano cors show CORS.webmock +0 -64
  140. data/spec/fixtures/snapshots/murano device activates.webmock +0 -86
  141. data/spec/fixtures/snapshots/murano device enables a batch.webmock +0 -76
  142. data/spec/fixtures/snapshots/murano device enables and lists.webmock +0 -78
  143. data/spec/fixtures/snapshots/murano device writes and reads.webmock +0 -136
  144. data/spec/fixtures/snapshots/murano domain show domain.webmock +0 -101
  145. data/spec/fixtures/snapshots/murano element edit unknown as unknown element.webmock +0 -43
  146. data/spec/fixtures/snapshots/murano element show --help.webmock +0 -9
  147. data/spec/fixtures/snapshots/murano element show as csv.webmock +0 -43
  148. data/spec/fixtures/snapshots/murano element show as default-table.webmock +0 -43
  149. data/spec/fixtures/snapshots/murano element show as json.webmock +0 -43
  150. data/spec/fixtures/snapshots/murano element show as table truncate.webmock +0 -43
  151. data/spec/fixtures/snapshots/murano element show as table wrap.webmock +0 -43
  152. data/spec/fixtures/snapshots/murano element show as yaml.webmock +0 -43
  153. data/spec/fixtures/snapshots/murano element show using ambiguous name.webmock +0 -43
  154. data/spec/fixtures/snapshots/murano element without project usage.webmock +0 -9
  155. data/spec/fixtures/snapshots/murano exchange with project list as json.webmock +0 -59
  156. data/spec/fixtures/snapshots/murano exchange with project list as table.webmock +0 -59
  157. data/spec/fixtures/snapshots/murano exchange with project list fewer fields.webmock +0 -59
  158. data/spec/fixtures/snapshots/murano exchange with project list only ids.webmock +0 -59
  159. data/spec/fixtures/snapshots/murano exchange with project list output to file.webmock +0 -59
  160. data/spec/fixtures/snapshots/murano exchange with project list purchase is already added ID.webmock +0 -83
  161. data/spec/fixtures/snapshots/murano exchange with project list purchase is ambiguous name.webmock +0 -59
  162. data/spec/fixtures/snapshots/murano exchange without project help.webmock +0 -9
  163. data/spec/fixtures/snapshots/murano help using commander as --help.webmock +0 -9
  164. data/spec/fixtures/snapshots/murano help using commander no args.webmock +0 -9
  165. data/spec/fixtures/snapshots/murano help using subshell no args.webmock +0 -9
  166. data/spec/fixtures/snapshots/murano help using subshell with --help.webmock +0 -9
  167. data/spec/fixtures/snapshots/murano init Won't init in HOME (gracefully).webmock +0 -9
  168. data/spec/fixtures/snapshots/murano init in empty directory with existing project.webmock +0 -201
  169. data/spec/fixtures/snapshots/murano init in empty directory without existing project.webmock +0 -193
  170. data/spec/fixtures/snapshots/murano init in existing project directory with ProjectFile.webmock +0 -213
  171. data/spec/fixtures/snapshots/murano init in existing project directory with SolutionFile 0.2.0.webmock +0 -213
  172. data/spec/fixtures/snapshots/murano init in existing project directory with SolutionFile 0.3.0.webmock +0 -213
  173. data/spec/fixtures/snapshots/murano init in existing project directory without ProjectFile.webmock +0 -213
  174. data/spec/fixtures/snapshots/murano keystore can call other commands.webmock +0 -108
  175. data/spec/fixtures/snapshots/murano keystore clearAll.webmock +0 -124
  176. data/spec/fixtures/snapshots/murano keystore deletes.webmock +0 -112
  177. data/spec/fixtures/snapshots/murano keystore gets.webmock +0 -96
  178. data/spec/fixtures/snapshots/murano keystore infos.webmock +0 -96
  179. data/spec/fixtures/snapshots/murano keystore lists.webmock +0 -96
  180. data/spec/fixtures/snapshots/murano link with project links and lists.webmock +0 -149
  181. data/spec/fixtures/snapshots/murano link with project unlinks.webmock +0 -165
  182. data/spec/fixtures/snapshots/murano link without project help.webmock +0 -9
  183. data/spec/fixtures/snapshots/murano link without project subshell vs inline using commander will not list.webmock +0 -27
  184. data/spec/fixtures/snapshots/murano link without project subshell vs inline using subshell will not list.webmock +0 -27
  185. data/spec/fixtures/snapshots/murano logs when project is setup tail log.webmock +0 -9
  186. data/spec/fixtures/snapshots/murano password Lists when no file.webmock +0 -9
  187. data/spec/fixtures/snapshots/murano password deletes a password.webmock +0 -9
  188. data/spec/fixtures/snapshots/murano password sets a password.webmock +0 -9
  189. data/spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format) a forced string value on STDIN.webmock +0 -90
  190. data/spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format) a forced string value.webmock +0 -90
  191. data/spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format) a number value fiftyHalf.webmock +0 -64
  192. data/spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format) a number value float 12.67.webmock +0 -90
  193. data/spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format) a number value integer 12.webmock +0 -90
  194. data/spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format) a number value on STDIN.webmock +0 -90
  195. data/spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format) a string value.webmock +0 -90
  196. data/spec/fixtures/snapshots/murano product setting Writes (using Device2.identity_format) merges into a dictionary.webmock +0 -90
  197. data/spec/fixtures/snapshots/murano single sync without ProjectFile syncdown.webmock +0 -322
  198. data/spec/fixtures/snapshots/murano status with ProjectFile status.webmock +0 -153
  199. data/spec/fixtures/snapshots/murano status with Solutionfile 0.2.0 status.webmock +0 -153
  200. data/spec/fixtures/snapshots/murano status with Solutionfile 0.3.0 status.webmock +0 -153
  201. data/spec/fixtures/snapshots/murano status without ProjectFile matches file path.webmock +0 -153
  202. data/spec/fixtures/snapshots/murano status without ProjectFile matches route.webmock +0 -153
  203. data/spec/fixtures/snapshots/murano status without ProjectFile status.webmock +0 -153
  204. data/spec/fixtures/snapshots/murano syncdown stubbed without ProjectFile syncdown.webmock +0 -151
  205. data/spec/fixtures/snapshots/murano syncdown without ProjectFile syncdown.webmock +0 -479
  206. data/spec/fixtures/snapshots/murano syncup without ProjectFile syncup.webmock +0 -357
  207. data/spec/fixtures/snapshots/murano token with project list as table.webmock +0 -9
  208. data/spec/fixtures/snapshots/murano token without project help.webmock +0 -9
  209. data/spec/fixtures/snapshots/murano usage show usage.webmock +0 -93
  210. data/spec/fixtures/syncable_conflict/services/devdata.lua +0 -18
  211. data/spec/fixtures/syncable_conflict/services/timers.lua +0 -4
  212. data/spec/fixtures/syncable_content/assets/icon.png +0 -0
  213. data/spec/fixtures/syncable_content/assets/index.html +0 -0
  214. data/spec/fixtures/syncable_content/assets/js/script.js +0 -0
  215. data/spec/fixtures/syncable_content/modules/table_util.lua +0 -58
  216. data/spec/fixtures/syncable_content/routes/manyRoutes.lua +0 -11
  217. data/spec/fixtures/syncable_content/routes/singleRoute.lua +0 -5
  218. data/spec/fixtures/websocket/README.rst +0 -110
  219. data/spec/fixtures/websocket/logs_blather.rb +0 -27
  220. data/spec/fixtures/websocket/logs_faker.rb +0 -153
  221. data/spec/fixtures/websocket/simple_connection.rb +0 -45
  222. data/spec/fixtures/websocket/simple_options.rb +0 -77
  223. data/spec/fixtures/websocket/simple_server.rb +0 -69
  224. data/spec/fixtures/websocket/wss-echo.rb +0 -48
  225. data/spec/fixtures/websocket/wss-fake-logs.rb +0 -20
  226. data/spec/spec_helper.rb +0 -131
  227. data/spec/variegated_TruthyFalsey_spec.rb +0 -29
  228. data/spec/webmock_snapshot.rb +0 -296
data/docs/release.rst DELETED
@@ -1,295 +0,0 @@
1
- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
2
- Murano CLI Ruby Gem Release Guide
3
- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
4
-
5
- ####################
6
- Gem Release Overview
7
- ####################
8
-
9
- There are currently 3 Gems that Exosite publishes to support Murano CLI.
10
- [Current as of 2018-08-07.]
11
-
12
- - Murano CLI (``MuranoCLI``)
13
-
14
- - Ruby Commander (``murano-cli-rb-commander``)
15
-
16
- - Whirly (``murano-cli-whirly``)
17
-
18
- You will need XXX access to each gem at http://rubygems.org to be able
19
- to publish new versions (using ``gem push``, e.g., via ``rake release``).
20
-
21
- ##############
22
- Ruby Gem Links
23
- ##############
24
-
25
- ==========
26
- Murano CLI
27
- ==========
28
-
29
- http://rubygems.org/gems/MuranoCLI
30
-
31
- ===========
32
- Hacked Gems
33
- ===========
34
-
35
- (lb): FIXME/2018-08-07: It's entirely possible that we could get these
36
- changes incorporated upstream by opening Pull Requests, but I haven't
37
- wanted to manage those conversations yet. (It's too easy to fork and publish!)
38
-
39
- - Ruby Commander fork
40
-
41
- http://rubygems.org/gems/murano-cli-commander
42
-
43
- - Adds support for empty string option values,
44
- e.g., ``--option ""``.
45
-
46
- - Whirly fork
47
-
48
- http://rubygems.org/gems/murano-cli-whirly
49
-
50
- - Fixes width calculation to not count ANSI color codes. Otherwise,
51
- too many spaces might be printed to clear the line, erroneously
52
- creating a line break (and pushing the progress up a line, when
53
- it should instead remain on its current line).
54
-
55
- ########################
56
- Gem Release Instructions
57
- ########################
58
-
59
- ===================================
60
- Murano CLI Gem Release Instructions
61
- ===================================
62
-
63
- - Ensure tests pass.
64
-
65
- - Bump the version, if not already done.
66
-
67
- Manually: Open ``lib/MrMurano/version.rb``, edit, commit, push, etc.
68
-
69
- Automated: Use a rake task to bump the version, discussed below.
70
-
71
- - a). If you're working on a feature and want to release a pre-release
72
- gem, you can just change the version in your branch.
73
-
74
- Choose one of the following rake tasks to run:
75
-
76
- .. code-block:: sh
77
-
78
- # Increment just the beta number:
79
- rake bump:beta
80
-
81
- # Or, increment the patch number, and start a fresh beta version:
82
- rake bump:patch
83
-
84
- # Or, increment the minor number, and start a fresh patch.beta version:
85
- rake bump:minor
86
-
87
- # Or, increment the major number, and start a fresh minor.patch.beta version:
88
- rake bump:major
89
-
90
- - Incorporate the version bump in the PR for the feature on which
91
- you're working. Once the feature in merged to develop, you can
92
- move to step #3 and make the pre-release.
93
-
94
- - b). If you're instead ready to prepare a real release, bump the version
95
- on the develop branch:
96
-
97
- .. code-block:: sh
98
-
99
- # Or, drop the beta version, and prepare an official release:
100
- rake bump:release
101
-
102
- - Follow the URL printed by the rake task and open a PR for
103
- the version bump. Approve it, merge the change, and delete
104
- the release branch.
105
-
106
- - Kick off the Gem release builder.
107
-
108
- - a.) To prepare a pre-release Gem from the ``develop`` branch, run:
109
-
110
- .. code-block:: sh
111
-
112
- rake package:develop
113
-
114
- - b.) To prepare an official release Gem from the ``master`` branch, run:
115
-
116
- .. code-block:: sh
117
-
118
- rake package:master
119
-
120
- You'll be directed
121
-
122
- - Copy the Gem locally, and upload it to the official Gem repository.
123
-
124
- .. code-block:: sh
125
-
126
- rake package:publish
127
-
128
- Deprecated Resources
129
- --------------------
130
-
131
- Build project on old Jenkins server (2018-08-07: no longer used, but still alive):
132
-
133
- https://build.exosite.com/view/MuranoCLI/job/MrMurano%20Gem%20Release/
134
-
135
- Old Travic-CI project, from when project was public:
136
-
137
- https://travis-ci.org/exosite/MuranoCLI
138
-
139
- ==============================================
140
- Forked Ruby Commander Gem Release Instructions
141
- ==============================================
142
-
143
- First, set the current version, and the version about to be released.
144
-
145
- .. code-block:: sh
146
-
147
- WAS_VERS='4.4.6'
148
- CUR_VERS='4.4.10'
149
-
150
- Next, prepare the branch, and then test, build and publish.
151
-
152
- .. code-block:: sh
153
-
154
- cd /exo/clients/exosite/MuranoCLIs/murano-cli-commander
155
- git co feature/empty_arg_support
156
-
157
- git fetch commander-rb
158
- git rebase commander-rb/master
159
-
160
- /bin/sed -i -r \
161
- "s/^ VERSION = '${WAS_VERS}'.freeze$/ VERSION = '${CUR_VERS}'.freeze/" \
162
- lib/murano-cli-commander/version.rb
163
- git diff lib/murano-cli-commander/version.rb
164
-
165
- git add lib/murano-cli-commander/version.rb
166
- git ci -m "Version ${CUR_VERS}"
167
-
168
- # If you need to delete an existing tag of the same name, try:
169
- # git tag -d "v${CUR_VERS}"
170
-
171
- # Tag the version. `rake release` also does this.
172
- git tag -a "v${CUR_VERS}" -m "Version ${CUR_VERS}" feature/empty_arg_support
173
- git push origin "v${CUR_VERS}"
174
-
175
- # Test it.
176
- rake spec
177
-
178
- # Build it.
179
- rake build
180
-
181
- # Publish it (to Rubygems).
182
- rake release
183
-
184
- If you need to pull a bad release, yank it.
185
-
186
- WARNING: You will never again be able to publish another release using the same version.
187
-
188
- .. code-block:: sh
189
-
190
- $ gem yank murano-cli-commander -v ${CUR_VERS}
191
-
192
- ======================================
193
- Forked Whirly Gem Release Instructions
194
- ======================================
195
-
196
- ::
197
-
198
- CUR_VERS='0.2.7'
199
-
200
- git tag -a "v${CUR_VERS}" -m "Version ${CUR_VERS}" develop
201
- git push origin "v${CUR_VERS}"
202
-
203
- # Test it.
204
- rake spec
205
-
206
- # Build it.
207
- rake gem
208
-
209
- # Publish it (to Rubygems).
210
- rake release
211
-
212
- ##########################################
213
- Troubleshooting Gem Release/Publish Issues
214
- ##########################################
215
-
216
- ===================================================================
217
- Gem Remove / Gem Purge / Remove Release / Kill Release Instructions
218
- ===================================================================
219
-
220
- Yank/Remove/Unpublish Gem Version
221
- ---------------------------------
222
-
223
- You can ``gem yank <gem-name> -v <gem-vers>`` to remove a published gem.
224
-
225
- - Delete the gem from Rubygems.org using ``gem yank``.
226
-
227
- See below for installation instructions.
228
-
229
- - You should also delete any corresponding archive managed by the repo,
230
- i.e., at ``https://github.com/exosite/<gem-name>/releases``.
231
-
232
- https://github.com/exosite/MuranoCLI/releases
233
-
234
- https://github.com/exosite/murano-cli-commander/releases
235
-
236
- https://github.com/exosite/murano-cli-whirly/releases
237
-
238
- - Click the **release name** (*not the Edit button*)
239
- and there you'll find the Delete option.
240
-
241
- - Caveat/Beware!: You cannot republish a yanked Gem!
242
-
243
- E.g.,
244
-
245
- .. code-block:: sh
246
-
247
- $ gem yank my-gem -v 1.0.0
248
-
249
- $ rake release
250
- # my-gem 1.0.0 built to pkg/my-gem-1.0.0.gem.
251
- # Tag v1.1.0 has already been created.
252
- # rake aborted!
253
- # Pushing gem to https://rubygems.org...
254
- # Repushing of gem versions is not allowed.
255
- # Please use `gem yank` to remove bad gem releases.
256
- # /home/user/.gem/ruby/2.3.3/gems/rake-12.3.1/exe/rake:27:in `<top (required)>'
257
- # Tasks: TOP => release => release:rubygem_push
258
- # (See full trace by running task with --trace)
259
-
260
- Install ``gemcutter`` (``gem yank``)
261
- ------------------------------------
262
-
263
- Prerequisites::
264
-
265
- gem update --system
266
- gem install gemcutter
267
-
268
- OUTPUT::
269
-
270
- Fetching: gemcutter-0.7.1.gem (100%)
271
- ********************************************************************************
272
-
273
- Thanks for installing Gemcutter! You can now run:
274
-
275
- gem push merged into RubyGems 1.3.6
276
- gem owner merged into RubyGems 1.3.6
277
- gem webhook register urls to be pinged when gems are pushed
278
- gem yank remove a specific version of a gem from RubyGemgem.org
279
-
280
- ********************************************************************************
281
- Successfully installed gemcutter-0.7.1
282
- Parsing documentation for gemcutter-0.7.1
283
- Installing ri documentation for gemcutter-0.7.1
284
- Done installing documentation for gemcutter after 0 seconds
285
- 1 gem installed
286
-
287
- Delete/Remove/Revoke Published Ruby Gem, e.g.,::
288
-
289
- gem yank MuranoCLI -v 3.2.0
290
-
291
- OUTPUT::
292
-
293
- Yanking gem from https://rubygems.org...
294
- Successfully deleted gem: MuranoCLI (3.2.0)
295
-
@@ -1,245 +0,0 @@
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 'tempfile'
9
- require 'MrMurano/version'
10
- require 'MrMurano/Account'
11
- require '_workspace'
12
-
13
- RSpec.describe MrMurano::Passwords, '#pwd' do
14
- # Weird: This tests works on its own without the 'WORKSPACE',
15
- # but when run with other tests, it fails. (2017-07-05: I think
16
- # I just added the $cfg lines, because MrMurano::Passwords
17
- # expects $cfg to be loaded... [lb].)
18
- include_context 'WORKSPACE'
19
-
20
- before(:example) do
21
- @saved_cfg = ENV['MURANO_CONFIGFILE']
22
- ENV['MURANO_CONFIGFILE'] = nil
23
- $cfg = MrMurano::Config.new
24
- $cfg.load
25
-
26
- @saved_pwd = ENV['MURANO_PASSWORD']
27
- ENV['MURANO_PASSWORD'] = nil
28
- end
29
- after(:example) do
30
- ENV['MURANO_PASSWORD'] = @saved_pwd
31
-
32
- ENV['MURANO_CONFIGFILE'] = @saved_cfg
33
- end
34
-
35
- it 'Creates a file ' do
36
- tmpfile = Dir.tmpdir + '/pwtest' # This way because Tempfile.new creates.
37
- begin
38
- pwd = MrMurano::Passwords.new(tmpfile)
39
- pwd.save
40
-
41
- expect(FileTest.exist?(tmpfile))
42
- ensure
43
- File.unlink(tmpfile) if File.exist? tmpfile
44
- end
45
- end
46
-
47
- it "Creates a file in a directory that doesn't exist." do
48
- tmpfile = Dir.tmpdir + '/deeper/pwtest' # This way because Tempfile.new creates.
49
- begin
50
- pwd = MrMurano::Passwords.new(tmpfile)
51
- pwd.save
52
-
53
- expect(FileTest.exist?(tmpfile))
54
- ensure
55
- File.unlink(tmpfile) if File.exist? tmpfile
56
- end
57
- end
58
-
59
- it 'Loads a file' do
60
- Tempfile.open('test') do |tf|
61
- tf << %(---
62
- this.is.a.host:
63
- user: password
64
- )
65
- tf.close
66
-
67
- pwd = MrMurano::Passwords.new(tf.path)
68
- pwd.load
69
- ps = pwd.get('this.is.a.host', 'user')
70
- expect(ps).to eq('password')
71
- end
72
- end
73
-
74
- it 'Saves a file' do
75
- Tempfile.open('pstest') do |tf|
76
- tf.close
77
-
78
- pwd = MrMurano::Passwords.new(tf.path)
79
- pwd.set('this.is.a.host', 'user3', 'passwords4')
80
- pwd.save
81
-
82
- File.open(tf.path) do |io|
83
- data = io.read
84
- expect(data).to eq(%(---
85
- this.is.a.host:
86
- user3: passwords4
87
- ))
88
- end
89
- end
90
- end
91
-
92
- it 'Writes multiple hosts' do
93
- Tempfile.open('pwtest') do |tf|
94
- tf.close
95
-
96
- pwd = MrMurano::Passwords.new(tf.path)
97
- pwd.set('this.is.a.host', 'user3', 'passwords4')
98
- pwd.save
99
-
100
- pwd = MrMurano::Passwords.new(tf.path)
101
- pwd.load
102
- ps = pwd.get('this.is.a.host', 'user3')
103
- expect(ps).to eq('passwords4')
104
-
105
- pwd = MrMurano::Passwords.new(tf.path)
106
- pwd.load
107
- pwd.set('another.host', 'user9', 'passwords2')
108
- pwd.save
109
-
110
- pwd = MrMurano::Passwords.new(tf.path)
111
- pwd.load
112
- ps = pwd.get('this.is.a.host', 'user3')
113
- expect(ps).to eq('passwords4')
114
- ps = pwd.get('another.host', 'user9')
115
- expect(ps).to eq('passwords2')
116
- end
117
- end
118
-
119
- it 'Write multiple users to same host' do
120
- Tempfile.open('pwstest') do |tf|
121
- tf.close
122
-
123
- pwd = MrMurano::Passwords.new(tf.path)
124
- pwd.set('this.is.a.host', 'user3', 'passwords4')
125
- pwd.save
126
-
127
- pwd = MrMurano::Passwords.new(tf.path)
128
- pwd.load
129
- pwd.set('this.is.a.host', 'user9', 'passwords2')
130
- pwd.save
131
-
132
- pwd = MrMurano::Passwords.new(tf.path)
133
- pwd.load
134
- ps = pwd.get('this.is.a.host', 'user3')
135
- expect(ps).to eq('passwords4')
136
- ps = pwd.get('this.is.a.host', 'user9')
137
- expect(ps).to eq('passwords2')
138
- end
139
- end
140
-
141
- it 'lists usernames' do
142
- Tempfile.open('pwstest') do |tf|
143
- tf.close
144
-
145
- pwd = MrMurano::Passwords.new(tf.path)
146
- pwd.set('this.is.a.host', 'user3', 'passwords4')
147
- pwd.save
148
-
149
- pwd = MrMurano::Passwords.new(tf.path)
150
- pwd.load
151
- pwd.set('this.is.a.host', 'user9', 'passwords2')
152
- pwd.save
153
-
154
- pwd = MrMurano::Passwords.new(tf.path)
155
- pwd.load
156
- ret = pwd.list
157
- expect(ret).to match(
158
- 'this.is.a.host' => a_collection_containing_exactly('user9', 'user3')
159
- )
160
- end
161
- end
162
-
163
- it 'removes username' do
164
- Tempfile.open('pwstest') do |tf|
165
- tf.close
166
-
167
- pwd = MrMurano::Passwords.new(tf.path)
168
- pwd.set('this.is.a.host', 'user3', 'passwords4')
169
- pwd.save
170
-
171
- pwd = MrMurano::Passwords.new(tf.path)
172
- pwd.load
173
- pwd.set('this.is.a.host', 'user9', 'passwords2')
174
- pwd.save
175
-
176
- pwd = MrMurano::Passwords.new(tf.path)
177
- pwd.load
178
- pwd.remove('this.is.a.host', 'user3')
179
- pwd.save
180
-
181
- pwd = MrMurano::Passwords.new(tf.path)
182
- pwd.load
183
- ret = pwd.list
184
- expect(ret).to match('this.is.a.host' => ['user9'])
185
- end
186
- end
187
-
188
- context 'Uses ENV' do
189
- before(:example) do
190
- ENV['MR_PASSWORD'] = nil
191
- end
192
- after(:example) do
193
- ENV['MR_PASSWORD'] = nil
194
- end
195
-
196
- it 'Uses ENV instead' do
197
- Tempfile.open('test') do |tf|
198
- tf << %(---
199
- this.is.a.host:
200
- user: password
201
- )
202
- tf.close
203
-
204
- ENV['MURANO_PASSWORD'] = 'a test!'
205
- pwd = MrMurano::Passwords.new(tf.path)
206
- pwd.load
207
- expect(pwd).not_to receive(:warning)
208
- ps = pwd.get('this.is.a.host', 'user')
209
- expect(ps).to eq('a test!')
210
- ENV['MURANO_PASSWORD'] = nil
211
- end
212
- end
213
-
214
- it 'Uses ENV instead, even with empty file' do
215
- Tempfile.open('test') do |tf|
216
- tf.close
217
-
218
- ENV['MURANO_PASSWORD'] = 'a test!'
219
- pwd = MrMurano::Passwords.new(tf.path)
220
- pwd.load
221
- expect(pwd).not_to receive(:warning)
222
- ps = pwd.get('this.is.a.host', 'user')
223
- expect(ps).to eq('a test!')
224
- ENV['MURANO_PASSWORD'] = nil
225
-
226
- data = IO.read(tf.path)
227
- expect(data).to eq('')
228
- end
229
- end
230
-
231
- it 'Warns about migrating' do
232
- Tempfile.open('test') do |tf|
233
- tf.close
234
-
235
- ENV['MR_PASSWORD'] = 'a test!'
236
- pwd = MrMurano::Passwords.new(tf.path)
237
- pwd.load
238
- expect(pwd).to receive(:warning).once
239
- ps = pwd.get('this.is.a.host', 'user')
240
- expect(ps).to eq('a test!')
241
- end
242
- end
243
- end
244
- end
245
-