MuranoCLI 2.2.4 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (159) hide show
  1. checksums.yaml +4 -4
  2. data/.agignore +3 -0
  3. data/.gitignore +18 -1
  4. data/.rubocop.yml +222 -0
  5. data/.trustme.sh +185 -0
  6. data/.trustme.vim +24 -0
  7. data/Gemfile +23 -4
  8. data/LICENSE.txt +1 -1
  9. data/MuranoCLI.gemspec +43 -8
  10. data/README.markdown +9 -11
  11. data/Rakefile +187 -143
  12. data/TODO.taskpaper +2 -2
  13. data/bin/murano +51 -52
  14. data/docs/basic_example.rst +436 -0
  15. data/docs/completions/murano_completion-bash +3484 -0
  16. data/docs/demo.md +32 -32
  17. data/docs/develop.rst +391 -0
  18. data/lib/MrMurano.rb +21 -7
  19. data/lib/MrMurano/Account.rb +159 -174
  20. data/lib/MrMurano/Business.rb +381 -0
  21. data/lib/MrMurano/Config-Migrate.rb +32 -26
  22. data/lib/MrMurano/Config.rb +407 -128
  23. data/lib/MrMurano/Content.rb +191 -0
  24. data/lib/MrMurano/Gateway.rb +489 -0
  25. data/lib/MrMurano/Keystore.rb +48 -0
  26. data/lib/MrMurano/Passwords.rb +103 -0
  27. data/lib/MrMurano/ProjectFile.rb +121 -79
  28. data/lib/MrMurano/ReCommander.rb +114 -10
  29. data/lib/MrMurano/Setting.rb +90 -0
  30. data/lib/MrMurano/Solution-ServiceConfig.rb +89 -45
  31. data/lib/MrMurano/Solution-Services.rb +461 -166
  32. data/lib/MrMurano/Solution-Users.rb +70 -31
  33. data/lib/MrMurano/Solution.rb +372 -13
  34. data/lib/MrMurano/SolutionId.rb +73 -0
  35. data/lib/MrMurano/SyncRoot.rb +137 -0
  36. data/lib/MrMurano/SyncUpDown.rb +594 -284
  37. data/lib/MrMurano/Webservice-Cors.rb +71 -0
  38. data/lib/MrMurano/Webservice-Endpoint.rb +234 -0
  39. data/lib/MrMurano/Webservice-File.rb +193 -0
  40. data/lib/MrMurano/Webservice.rb +51 -0
  41. data/lib/MrMurano/commands.rb +18 -15
  42. data/lib/MrMurano/commands/business.rb +300 -6
  43. data/lib/MrMurano/commands/completion-bash.erb +166 -0
  44. data/lib/MrMurano/commands/{zshcomplete.erb → completion-zsh.erb} +0 -0
  45. data/lib/MrMurano/commands/completion.rb +76 -39
  46. data/lib/MrMurano/commands/config.rb +108 -44
  47. data/lib/MrMurano/commands/content.rb +115 -72
  48. data/lib/MrMurano/commands/cors.rb +29 -14
  49. data/lib/MrMurano/commands/devices.rb +286 -0
  50. data/lib/MrMurano/commands/domain.rb +52 -12
  51. data/lib/MrMurano/commands/gb.rb +24 -9
  52. data/lib/MrMurano/commands/globals.rb +64 -0
  53. data/lib/MrMurano/commands/init.rb +377 -155
  54. data/lib/MrMurano/commands/keystore.rb +92 -82
  55. data/lib/MrMurano/commands/link.rb +300 -0
  56. data/lib/MrMurano/commands/login.rb +74 -11
  57. data/lib/MrMurano/commands/logs.rb +63 -32
  58. data/lib/MrMurano/commands/mock.rb +57 -29
  59. data/lib/MrMurano/commands/password.rb +57 -39
  60. data/lib/MrMurano/commands/postgresql.rb +127 -94
  61. data/lib/MrMurano/commands/settings.rb +203 -0
  62. data/lib/MrMurano/commands/show.rb +79 -38
  63. data/lib/MrMurano/commands/solution.rb +423 -5
  64. data/lib/MrMurano/commands/solution_picker.rb +547 -0
  65. data/lib/MrMurano/commands/status.rb +195 -61
  66. data/lib/MrMurano/commands/sync.rb +78 -39
  67. data/lib/MrMurano/commands/timeseries.rb +71 -55
  68. data/lib/MrMurano/commands/tsdb.rb +113 -87
  69. data/lib/MrMurano/commands/usage.rb +57 -15
  70. data/lib/MrMurano/hash.rb +100 -10
  71. data/lib/MrMurano/http.rb +187 -43
  72. data/lib/MrMurano/makePretty.rb +16 -14
  73. data/lib/MrMurano/optparse.rb +2178 -0
  74. data/lib/MrMurano/progress.rb +138 -0
  75. data/lib/MrMurano/schema/resource-v1.0.0.yaml +32 -0
  76. data/lib/MrMurano/template/projectFile.murano.erb +16 -13
  77. data/lib/MrMurano/verbosing.rb +166 -29
  78. data/lib/MrMurano/version.rb +30 -1
  79. data/spec/Account-Passwords_spec.rb +21 -4
  80. data/spec/Account_spec.rb +69 -146
  81. data/spec/Business_spec.rb +290 -0
  82. data/spec/ConfigFile_spec.rb +1 -0
  83. data/spec/ConfigMigrate_spec.rb +12 -8
  84. data/spec/Config_spec.rb +40 -34
  85. data/spec/Content_spec.rb +363 -0
  86. data/spec/GatewayBase_spec.rb +54 -0
  87. data/spec/GatewayDevice_spec.rb +321 -0
  88. data/spec/GatewayResource_spec.rb +266 -0
  89. data/spec/GatewaySettings_spec.rb +120 -0
  90. data/spec/Http_spec.rb +18 -8
  91. data/spec/Mock_spec.rb +2 -2
  92. data/spec/ProjectFile_spec.rb +25 -14
  93. data/spec/Setting_spec.rb +110 -0
  94. data/spec/Solution-ServiceConfig_spec.rb +44 -5
  95. data/spec/Solution-ServiceEventHandler_spec.rb +23 -14
  96. data/spec/Solution-ServiceModules_spec.rb +47 -37
  97. data/spec/Solution-UsersRoles_spec.rb +10 -8
  98. data/spec/Solution_spec.rb +17 -8
  99. data/spec/SyncRoot_spec.rb +46 -20
  100. data/spec/SyncUpDown_spec.rb +437 -201
  101. data/spec/Verbosing_spec.rb +12 -4
  102. data/spec/{Solution-Cors_spec.rb → Webservice-Cors_spec.rb} +23 -20
  103. data/spec/{Solution-Endpoint_spec.rb → Webservice-Endpoint_spec.rb} +43 -41
  104. data/spec/{Solution-File_spec.rb → Webservice-File_spec.rb} +44 -33
  105. data/spec/Webservice-Setting_spec.rb +89 -0
  106. data/spec/_workspace.rb +4 -4
  107. data/spec/cmd_business_spec.rb +9 -4
  108. data/spec/cmd_common.rb +44 -1
  109. data/spec/cmd_content_spec.rb +43 -17
  110. data/spec/cmd_cors_spec.rb +4 -4
  111. data/spec/cmd_device_spec.rb +61 -16
  112. data/spec/cmd_domain_spec.rb +29 -6
  113. data/spec/cmd_init_spec.rb +281 -126
  114. data/spec/cmd_keystore_spec.rb +3 -3
  115. data/spec/cmd_link_spec.rb +98 -0
  116. data/spec/cmd_password_spec.rb +1 -1
  117. data/spec/cmd_setting_application_spec.rb +260 -0
  118. data/spec/cmd_setting_product_spec.rb +220 -0
  119. data/spec/cmd_status_spec.rb +223 -114
  120. data/spec/cmd_syncdown_spec.rb +115 -35
  121. data/spec/cmd_syncup_spec.rb +68 -15
  122. data/spec/cmd_usage_spec.rb +35 -8
  123. data/spec/fixtures/dumped_config +6 -4
  124. data/spec/fixtures/gateway_resource_files/resources.notyaml +12 -0
  125. data/spec/fixtures/gateway_resource_files/resources.yaml +13 -0
  126. data/spec/fixtures/gateway_resource_files/resources_invalid.yaml +13 -0
  127. data/spec/fixtures/mrmuranorc_deleted_bob +0 -2
  128. data/spec/fixtures/product_spec_files/lightbulb.yaml +20 -13
  129. data/spec/fixtures/{syncable_content → syncable_conflict}/services/devdata.lua +1 -1
  130. data/spec/fixtures/{syncable_content → syncable_conflict}/services/timers.lua +0 -0
  131. data/spec/spec_helper.rb +5 -0
  132. metadata +262 -171
  133. data/bin/mr +0 -8
  134. data/lib/MrMurano/Product-1P-Device.rb +0 -145
  135. data/lib/MrMurano/Product-Resources.rb +0 -205
  136. data/lib/MrMurano/Product.rb +0 -358
  137. data/lib/MrMurano/Solution-Cors.rb +0 -47
  138. data/lib/MrMurano/Solution-Endpoint.rb +0 -191
  139. data/lib/MrMurano/Solution-File.rb +0 -166
  140. data/lib/MrMurano/commands/assign.rb +0 -57
  141. data/lib/MrMurano/commands/businessList.rb +0 -45
  142. data/lib/MrMurano/commands/product.rb +0 -14
  143. data/lib/MrMurano/commands/productCreate.rb +0 -39
  144. data/lib/MrMurano/commands/productDelete.rb +0 -33
  145. data/lib/MrMurano/commands/productDevice.rb +0 -87
  146. data/lib/MrMurano/commands/productDeviceIdCmds.rb +0 -89
  147. data/lib/MrMurano/commands/productList.rb +0 -45
  148. data/lib/MrMurano/commands/productWrite.rb +0 -27
  149. data/lib/MrMurano/commands/solutionCreate.rb +0 -41
  150. data/lib/MrMurano/commands/solutionDelete.rb +0 -34
  151. data/lib/MrMurano/commands/solutionList.rb +0 -45
  152. data/spec/ProductBase_spec.rb +0 -113
  153. data/spec/ProductContent_spec.rb +0 -162
  154. data/spec/ProductResources_spec.rb +0 -329
  155. data/spec/Product_1P_Device_spec.rb +0 -202
  156. data/spec/Product_1P_RPC_spec.rb +0 -175
  157. data/spec/Product_spec.rb +0 -153
  158. data/spec/Solution-ServiceDevice_spec.rb +0 -176
  159. data/spec/cmd_assign_spec.rb +0 -51
@@ -1,3 +1,10 @@
1
+ # Last Modified: 2017.08.17 /coding: utf-8
2
+ # frozen_string_literal: probably not yet
3
+
4
+ # Copyright © 2016-2017 Exosite LLC.
5
+ # License: MIT. See LICENSE.txt.
6
+ # vim:tw=0:ts=2:sw=2:et:ai
7
+
1
8
  require 'fileutils'
2
9
  require 'open3'
3
10
  require 'pathname'
@@ -7,24 +14,34 @@ RSpec.describe 'murano syncup', :cmd, :needs_password do
7
14
  include_context "CI_CMD"
8
15
 
9
16
  before(:example) do
10
- @project_name = rname('syncupTest')
11
- out, err, status = Open3.capture3(capcmd('murano', 'solution', 'create', @project_name, '--save'))
17
+ @product_name = rname('syncupTestPrd')
18
+ out, err, status = Open3.capture3(capcmd('murano', 'product', 'create', @product_name, '--save'))
12
19
  expect(err).to eq('')
13
20
  expect(out.chomp).to match(/^[a-zA-Z0-9]+$/)
14
21
  expect(status.exitstatus).to eq(0)
15
22
 
16
- out, err, status = Open3.capture3(capcmd('murano', 'product', 'create', @project_name, '--save'))
23
+ @applctn_name = rname('syncupTestApp')
24
+ out, err, status = Open3.capture3(capcmd('murano', 'application', 'create', @applctn_name, '--save'))
25
+ expect(err).to eq('')
26
+ soln_id = out
27
+ expect(soln_id.chomp).to match(/^[a-zA-Z0-9]+$/)
28
+ expect(status.exitstatus).to eq(0)
29
+
30
+ out, err, status = Open3.capture3(capcmd('murano', 'assign', 'set'))
31
+ #expect(out).to a_string_starting_with("Linked product #{@product_name}")
32
+ olines = out.lines
33
+ expect(olines[0].encode!('UTF-8', 'UTF-8')).to eq("Linked ‘#{@product_name}’ to ‘#{@applctn_name}’\n")
34
+ expect(olines[1]).to eq("Created default event handler\n")
17
35
  expect(err).to eq('')
18
- expect(out.chomp).to match(/^[a-zA-Z0-9]+$/)
19
36
  expect(status.exitstatus).to eq(0)
20
37
  end
21
38
  after(:example) do
22
- out, err, status = Open3.capture3(capcmd('murano', 'solution', 'delete', @project_name))
39
+ out, err, status = Open3.capture3(capcmd('murano', 'solution', 'delete', @applctn_name, '-y'))
23
40
  expect(out).to eq('')
24
41
  expect(err).to eq('')
25
42
  expect(status.exitstatus).to eq(0)
26
43
 
27
- out, err, status = Open3.capture3(capcmd('murano', 'product', 'delete', @project_name))
44
+ out, err, status = Open3.capture3(capcmd('murano', 'solution', 'delete', @product_name, '-y'))
28
45
  expect(out).to eq('')
29
46
  expect(err).to eq('')
30
47
  expect(status.exitstatus).to eq(0)
@@ -33,30 +50,66 @@ RSpec.describe 'murano syncup', :cmd, :needs_password do
33
50
  context "without ProjectFile" do
34
51
  before(:example) do
35
52
  FileUtils.cp_r(File.join(@testdir, 'spec/fixtures/syncable_content/.'), '.')
36
- FileUtils.move('assets','files')
53
+ FileUtils.move('assets', 'files')
37
54
  FileUtils.mkpath('specs')
38
- FileUtils.copy(File.join(@testdir, 'spec/fixtures/product_spec_files/lightbulb.yaml'), 'specs/resources.yaml')
55
+ FileUtils.copy(
56
+ File.join(@testdir, 'spec/fixtures/product_spec_files/lightbulb.yaml'),
57
+ 'specs/resources.yaml',
58
+ )
59
+ end
60
+
61
+ def verify_err_missing_location(err)
62
+ elines = err.lines
63
+ # E.g.,
64
+ # Skipping missing location ‘/tmp/d20170809-7670-z315jn/project/services’ (Services)
65
+ # Skipping missing location ‘/tmp/d20170809-7670-z315jn/project/services’ (Interfaces)
66
+ expect(elines).to satisfy { |v| elines.length == 2 }
67
+ elines.each do |line|
68
+ expect(line.encode!('UTF-8', 'UTF-8')).to start_with("\e[33mSkipping missing location ‘")
69
+ end
39
70
  end
40
71
 
41
72
  it "syncup" do
42
73
  out, err, status = Open3.capture3(capcmd('murano', 'syncup'))
43
- expect(out).to eq('')
44
- expect(err).to eq('')
74
+ outl = out.lines
75
+ # The spec tests set --no-progress, so each sync action gets reported.
76
+ #expect(outl[0]).to eq("Adding item state\n")
77
+ #expect(outl[1]).to eq("Adding item temperature\n")
78
+ #expect(outl[2]).to eq("Adding item uptime\n")
79
+ #expect(outl[3]).to eq("Adding item humidity\n")
80
+ (0..3).each { |ln| expect(outl[ln]).to start_with("Adding item ") }
81
+ expect(outl[4]).to eq("Updating product resources\n")
82
+ expect(outl[5]).to eq("Adding item table_util\n")
83
+ #expect(outl[6]).to eq("Updating item c3juj9vnmec000000_event\n")
84
+ # The order isn't always consistent, so just do start_with.
85
+ #expect(outl[7]).to eq("Updating item timer_timer\n")
86
+ #expect(outl[8]).to eq("Updating item user_account\n")
87
+ #expect(outl[9]).to eq("Updating item tsdb_exportJob\n")
88
+ (6..9).each { |ln| expect(outl[ln]).to start_with("Updating item ") }
89
+ #expect(outl[10]).to eq("Adding item POST_/api/fire\n")
90
+ #expect(outl[11]).to eq("Adding item PUT_/api/fire/{code}\n")
91
+ #expect(outl[12]).to eq("Adding item DELETE_/api/fire/{code}\n")
92
+ #expect(outl[13]).to eq("Adding item GET_/api/onfire\n")
93
+ #expect(outl[14]).to eq("Adding item /icon.png\n")
94
+ #expect(outl[15]).to eq("Adding item /\n")
95
+ #expect(outl[16]).to eq("Adding item /js/script.js\n")
96
+ (10..16).each { |ln| expect(outl[ln]).to start_with("Adding item ") }
97
+ verify_err_missing_location(err)
45
98
  expect(status.exitstatus).to eq(0)
46
99
 
47
100
  out, err, status = Open3.capture3(capcmd('murano', 'status'))
48
- expect(out).to start_with(%{Adding:\nDeleteing:\nChanging:\n})
101
+ #expect(out).to start_with(%{Adding:\nDeleting:\nChanging:\n})
102
+ #expect(out).to start_with(%{Nothing to add\nNothing to delete\nNothing to change\n})
103
+ expect(out).to start_with(%{Nothing new locally\nNothing new remotely\nNothing that differs\n})
49
104
  # Due to timestamp races, there might be modules or services in Changing.
50
- expect(err).to eq('')
105
+ #expect(err).to eq('')
106
+ verify_err_missing_location(err)
51
107
  expect(status.exitstatus).to eq(0)
52
108
  end
53
109
  end
54
110
 
55
-
56
-
57
111
  # TODO: With ProjectFile
58
112
  # TODO: With Solutionfile 0.2.0
59
113
  # TODO: With Solutionfile 0.3.0
60
114
  end
61
115
 
62
- # vim: set ai et sw=2 ts=2 :
@@ -7,30 +7,57 @@ RSpec.describe 'murano usage', :cmd, :needs_password do
7
7
  include_context "CI_CMD"
8
8
 
9
9
  before(:example) do
10
- @project_name = rname('usageTest')
11
- out, err, status = Open3.capture3(capcmd('murano', 'solution', 'create', @project_name, '--save'))
10
+ # NOTE: The usage command works on one or more solutions of any type.
11
+ @product_name = rname('usageTest')
12
+
13
+ out, err, status = Open3.capture3(capcmd('murano', 'product', 'create', @product_name, '--save'))
14
+ expect(err).to eq('')
15
+ expect(out.chomp).to match(/^[a-zA-Z0-9]+$/)
16
+ expect(status.exitstatus).to eq(0)
17
+
18
+ out, err, status = Open3.capture3(capcmd('murano', 'application', 'create', @product_name, '--save'))
12
19
  expect(err).to eq('')
13
20
  expect(out.chomp).to match(/^[a-zA-Z0-9]+$/)
14
21
  expect(status.exitstatus).to eq(0)
15
22
  end
16
23
  after(:example) do
17
- out, err, status = Open3.capture3(capcmd('murano', 'solution', 'delete', @project_name))
18
- expect(out).to eq('')
24
+ out, err, status = Open3.capture3(capcmd('murano', 'solutions', 'expunge', '--yes'))
25
+ expect(out).to eq("Deleted 2 solutions\n")
19
26
  expect(err).to eq('')
20
27
  expect(status.exitstatus).to eq(0)
21
28
  end
22
29
 
30
+ def confirm_usage_table(olines, ix)
31
+ expect(olines[ix+0]).to match(/^(Product|Application): usage[tT]est[a-z0-9]+ <[a-z0-9]+> https:\/\/[.a-z0-9]+$/)
32
+ expect(olines[ix+1]).to match(/^(\+-+){5}\+$/)
33
+ expect(olines[ix+2]).to match(/^\|\s+\| Quota\s+\| Daily\s+\| Monthly\s+\| Total\s+\|$/)
34
+ # Beneath the header row is a splitter line.
35
+ expect(olines[ix+3]).to match(/^(\+-+){5}\+$/)
36
+ ix += 4
37
+ # Beneath the splitter line are 1 or more rows, one for each service.
38
+ loop do
39
+ if olines[ix].start_with? '+-'
40
+ # Closing table line.
41
+ break
42
+ end
43
+ expect(olines[ix]).to match(/^| [a-z0-9_]+\s+(|\s+[0-9]*\s+){4}|$/)
44
+ ix += 1
45
+ end
46
+ expect(olines[ix]).to match(/^(\+-+){5}\+$/)
47
+ ix += 1
48
+ end
49
+
23
50
  it "show usage" do
24
51
  out, err, status = Open3.capture3(capcmd('murano', 'usage'))
25
52
  expect(err).to eq('')
26
53
  olines = out.lines
27
- expect(olines[0]).to match(/^(\+-+){5}\+$/)
28
- expect(olines[1]).to match(/^\|\s+\| Quota\s+\| Daily\s+\| Monthly\s+\| Total\s+\|$/)
29
- expect(olines[2]).to match(/^(\+-+){5}\+$/)
30
- expect(olines[-1]).to match(/^(\+-+){5}\+$/)
54
+ ix = 0
55
+ ix = confirm_usage_table(olines, ix)
56
+ ix = confirm_usage_table(olines, ix)
31
57
  expect(status.exitstatus).to eq(0)
32
58
  end
33
59
 
34
60
  end
35
61
 
36
62
  # vim: set ai et sw=2 ts=2 :
63
+
@@ -9,12 +9,12 @@ outformat = best
9
9
  host = bizapi.hosted.exosite.io
10
10
 
11
11
  [location]
12
- base = <%= File.realpath(@projectDir) %>
12
+ base = <%= File.realpath(@project_dir) %>
13
13
  files = files
14
14
  endpoints = routes
15
15
  modules = modules
16
16
  eventhandlers = services
17
- specs = specs/resources.yaml
17
+ resources = specs/resources.yaml
18
18
  cors = cors.yaml
19
19
 
20
20
  [sync]
@@ -32,11 +32,13 @@ ignoring = *_test.lua *_spec.lua .*
32
32
  [eventhandler]
33
33
  searchFor = *.lua */*.lua {../eventhandlers,../event_handler}/*.lua {../eventhandlers,../event_handler}/*/*.lua
34
34
  ignoring = *_test.lua *_spec.lua .*
35
- skiplist = websocket webservice device.service_call
35
+ skiplist = device.service_call device2.event interface webservice websocket
36
+ undeletable = *.event timer.timer tsdb.exportJob user.account
36
37
 
37
38
  [modules]
38
- searchFor = *.lua */*.lua
39
+ searchFor = *.lua **/*.lua
39
40
  ignoring = *_test.lua *_spec.lua .*
41
+ no-nesting = false
40
42
 
41
43
  [diff]
42
44
  cmd = <%= Gem.win_platform? ? 'fc' : 'diff -u' %>
@@ -0,0 +1,12 @@
1
+ [bob]
2
+ format = string
3
+ unit = c
4
+ settable = true
5
+ [fuzz]
6
+ format = string
7
+ unit = c
8
+ settable = true
9
+ [gruble]
10
+ format = string
11
+ unit = bits
12
+ settable = true
@@ -0,0 +1,13 @@
1
+ ---
2
+ bob:
3
+ format: string
4
+ unit: c
5
+ settable: true
6
+ fuzz:
7
+ format: string
8
+ unit: c
9
+ settable: true
10
+ gruble:
11
+ format: string
12
+ unit: bits
13
+ settable: true
@@ -0,0 +1,13 @@
1
+ ---
2
+ bob:
3
+ format: string
4
+ unit: c
5
+ settable: true
6
+ fuzz:
7
+ format: integer
8
+ unit: c
9
+ settable: true
10
+ gruble:
11
+ format: string
12
+ unit: bits
13
+ settable: green
@@ -1,8 +1,6 @@
1
1
  [solution]
2
2
  id = XXXXXXXXXX
3
3
 
4
- [doThisTest]
5
-
6
4
  [s-fDEADBEEFGAEG]
7
5
  spec = bobo.yaml
8
6
 
@@ -1,14 +1,21 @@
1
1
  ---
2
- resources:
3
- - alias: state
4
- format: integer
5
- initial: 0
6
- - alias: temperature
7
- format: float
8
- initial: 0
9
- - alias: uptime
10
- format: integer
11
- initial: 0
12
- - alias: humidity
13
- format: float
14
- initial: 0
2
+ state:
3
+ allowed: []
4
+ format: number
5
+ settable: true
6
+ unit: ''
7
+ temperature:
8
+ allowed: []
9
+ format: number
10
+ settable: true
11
+ unit: ''
12
+ uptime:
13
+ allowed: []
14
+ format: number
15
+ settable: true
16
+ unit: ''
17
+ humidity:
18
+ allowed: []
19
+ format: number
20
+ settable: true
21
+ unit: ''
@@ -1,4 +1,4 @@
1
- --#EVENT device datapoint
1
+ --#EVENT device2 data_in
2
2
  -- luacheck: globals data (magic variable from Murano)
3
3
 
4
4
  -- Get the timestamp for this data if a record action.
@@ -17,6 +17,11 @@
17
17
  #
18
18
  require 'simplecov'
19
19
  SimpleCov.start do
20
+ if ENV['CI_MR_EXE'].nil? then
21
+ coverage_dir "coverage/cov-#{RUBY_VERSION.gsub(/\./,'_')}"
22
+ else
23
+ coverage_dir "coverage/cov-#{RUBY_VERSION.gsub(/\./,'_')}-exe"
24
+ end
20
25
  add_group "Specs", "spec/.*"
21
26
  add_group "Solution", "lib/MrMurano/Solution.*"
22
27
  add_group "Product", "lib/MrMurano/Product.*"
metadata CHANGED
@@ -1,255 +1,403 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: MuranoCLI
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.4
4
+ version: 3.0.0
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: 2017-05-23 00:00:00.000000000 Z
11
+ date: 2017-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: commander
14
+ name: certified
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 4.4.3
19
+ version: 1.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 4.4.3
26
+ version: 1.0.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: certified
28
+ name: commander
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '='
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.0.0
33
+ version: 4.4.3
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '='
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.0.0
40
+ version: 4.4.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: dotenv
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: 2.1.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 2.1.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: highline
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: 1.7.8
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.7.8
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: http-form_data
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '='
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.0.2
75
+ version: 1.0.3
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '='
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 1.0.2
82
+ version: 1.0.3
83
+ - !ruby/object:Gem::Dependency
84
+ name: inflecto
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: inifile
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - ~>
101
+ - - "~>"
88
102
  - !ruby/object:Gem::Version
89
103
  version: '3.0'
90
104
  type: :runtime
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - ~>
108
+ - - "~>"
95
109
  - !ruby/object:Gem::Version
96
110
  version: '3.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: json
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 2.1.0
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 2.1.0
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: json-schema
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
- - - ~>
129
+ - - "~>"
102
130
  - !ruby/object:Gem::Version
103
131
  version: 2.7.0
104
132
  type: :runtime
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
- - - ~>
136
+ - - "~>"
109
137
  - !ruby/object:Gem::Version
110
138
  version: 2.7.0
111
139
  - !ruby/object:Gem::Dependency
112
140
  name: mime-types
113
141
  requirement: !ruby/object:Gem::Requirement
114
142
  requirements:
115
- - - ~>
143
+ - - "~>"
116
144
  - !ruby/object:Gem::Version
117
145
  version: '3.1'
118
146
  type: :runtime
119
147
  prerelease: false
120
148
  version_requirements: !ruby/object:Gem::Requirement
121
149
  requirements:
122
- - - ~>
150
+ - - "~>"
123
151
  - !ruby/object:Gem::Version
124
152
  version: '3.1'
125
153
  - !ruby/object:Gem::Dependency
126
154
  name: mime-types-data
127
155
  requirement: !ruby/object:Gem::Requirement
128
156
  requirements:
129
- - - ~>
157
+ - - "~>"
130
158
  - !ruby/object:Gem::Version
131
159
  version: 3.2016.0521
132
160
  type: :runtime
133
161
  prerelease: false
134
162
  version_requirements: !ruby/object:Gem::Requirement
135
163
  requirements:
136
- - - ~>
164
+ - - "~>"
137
165
  - !ruby/object:Gem::Version
138
166
  version: 3.2016.0521
167
+ - !ruby/object:Gem::Dependency
168
+ name: orderedhash
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 0.0.6
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 0.0.6
181
+ - !ruby/object:Gem::Dependency
182
+ name: paint
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: 2.0.0
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: 2.0.0
195
+ - !ruby/object:Gem::Dependency
196
+ name: rainbow
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: 2.2.2
202
+ type: :runtime
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: 2.2.2
139
209
  - !ruby/object:Gem::Dependency
140
210
  name: terminal-table
141
211
  requirement: !ruby/object:Gem::Requirement
142
212
  requirements:
143
- - - ~>
213
+ - - "~>"
144
214
  - !ruby/object:Gem::Version
145
215
  version: 1.7.3
146
216
  type: :runtime
147
217
  prerelease: false
148
218
  version_requirements: !ruby/object:Gem::Requirement
149
219
  requirements:
150
- - - ~>
220
+ - - "~>"
151
221
  - !ruby/object:Gem::Version
152
222
  version: 1.7.3
223
+ - !ruby/object:Gem::Dependency
224
+ name: vine
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: '0.4'
230
+ type: :runtime
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: '0.4'
237
+ - !ruby/object:Gem::Dependency
238
+ name: whirly
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
243
+ version: 0.2.4
244
+ type: :runtime
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: 0.2.4
153
251
  - !ruby/object:Gem::Dependency
154
252
  name: bundler
155
253
  requirement: !ruby/object:Gem::Requirement
156
254
  requirements:
157
- - - ~>
255
+ - - "~>"
158
256
  - !ruby/object:Gem::Version
159
257
  version: 1.7.6
160
258
  type: :development
161
259
  prerelease: false
162
260
  version_requirements: !ruby/object:Gem::Requirement
163
261
  requirements:
164
- - - ~>
262
+ - - "~>"
165
263
  - !ruby/object:Gem::Version
166
264
  version: 1.7.6
167
265
  - !ruby/object:Gem::Dependency
168
- name: ocra
266
+ name: byebug
169
267
  requirement: !ruby/object:Gem::Requirement
170
268
  requirements:
171
- - - ~>
269
+ - - "~>"
172
270
  - !ruby/object:Gem::Version
173
- version: 1.3.8
271
+ version: 9.0.6
174
272
  type: :development
175
273
  prerelease: false
176
274
  version_requirements: !ruby/object:Gem::Requirement
177
275
  requirements:
178
- - - ~>
276
+ - - "~>"
179
277
  - !ruby/object:Gem::Version
180
- version: 1.3.8
278
+ version: 9.0.6
181
279
  - !ruby/object:Gem::Dependency
182
280
  name: rake
183
281
  requirement: !ruby/object:Gem::Requirement
184
282
  requirements:
185
- - - ~>
283
+ - - "~>"
186
284
  - !ruby/object:Gem::Version
187
285
  version: 10.1.1
188
286
  type: :development
189
287
  prerelease: false
190
288
  version_requirements: !ruby/object:Gem::Requirement
191
289
  requirements:
192
- - - ~>
290
+ - - "~>"
193
291
  - !ruby/object:Gem::Version
194
292
  version: 10.1.1
195
293
  - !ruby/object:Gem::Dependency
196
294
  name: rspec
197
295
  requirement: !ruby/object:Gem::Requirement
198
296
  requirements:
199
- - - ~>
297
+ - - "~>"
200
298
  - !ruby/object:Gem::Version
201
299
  version: '3.5'
202
300
  type: :development
203
301
  prerelease: false
204
302
  version_requirements: !ruby/object:Gem::Requirement
205
303
  requirements:
206
- - - ~>
304
+ - - "~>"
207
305
  - !ruby/object:Gem::Version
208
306
  version: '3.5'
307
+ - !ruby/object:Gem::Dependency
308
+ name: rubocop
309
+ requirement: !ruby/object:Gem::Requirement
310
+ requirements:
311
+ - - "~>"
312
+ - !ruby/object:Gem::Version
313
+ version: 0.49.1
314
+ type: :development
315
+ prerelease: false
316
+ version_requirements: !ruby/object:Gem::Requirement
317
+ requirements:
318
+ - - "~>"
319
+ - !ruby/object:Gem::Version
320
+ version: 0.49.1
209
321
  - !ruby/object:Gem::Dependency
210
322
  name: simplecov
211
323
  requirement: !ruby/object:Gem::Requirement
212
324
  requirements:
213
- - - '>='
325
+ - - ">="
214
326
  - !ruby/object:Gem::Version
215
327
  version: '0'
216
328
  type: :development
217
329
  prerelease: false
218
330
  version_requirements: !ruby/object:Gem::Requirement
219
331
  requirements:
220
- - - '>='
332
+ - - ">="
221
333
  - !ruby/object:Gem::Version
222
334
  version: '0'
223
335
  - !ruby/object:Gem::Dependency
224
336
  name: webmock
225
337
  requirement: !ruby/object:Gem::Requirement
226
338
  requirements:
227
- - - ~>
339
+ - - "~>"
228
340
  - !ruby/object:Gem::Version
229
- version: 2.1.0
341
+ version: 2.3.0
230
342
  type: :development
231
343
  prerelease: false
232
344
  version_requirements: !ruby/object:Gem::Requirement
233
345
  requirements:
234
- - - ~>
346
+ - - "~>"
235
347
  - !ruby/object:Gem::Version
236
- version: 2.1.0
237
- description: "Do more from the command line with Murano\n\n Push and pull data from
238
- Murano.\n Get status on what things have changed.\n See a diff of the changes
239
- before you push.\n\n and so much more.\n\n This gem was formerly known as MrMurano.\n
240
- \ "
348
+ version: 2.3.0
349
+ - !ruby/object:Gem::Dependency
350
+ name: yard
351
+ requirement: !ruby/object:Gem::Requirement
352
+ requirements:
353
+ - - ">="
354
+ - !ruby/object:Gem::Version
355
+ version: '0'
356
+ type: :development
357
+ prerelease: false
358
+ version_requirements: !ruby/object:Gem::Requirement
359
+ requirements:
360
+ - - ">="
361
+ - !ruby/object:Gem::Version
362
+ version: '0'
363
+ - !ruby/object:Gem::Dependency
364
+ name: ocra
365
+ requirement: !ruby/object:Gem::Requirement
366
+ requirements:
367
+ - - "~>"
368
+ - !ruby/object:Gem::Version
369
+ version: 1.3.8
370
+ type: :development
371
+ prerelease: false
372
+ version_requirements: !ruby/object:Gem::Requirement
373
+ requirements:
374
+ - - "~>"
375
+ - !ruby/object:Gem::Version
376
+ version: 1.3.8
377
+ description: |
378
+ Do more from the command line with Murano
379
+
380
+ Push and pull data from Murano.
381
+ Get status on what things have changed.
382
+ See a diff of the changes before you push.
383
+
384
+ and so much more.
385
+
386
+ This gem was formerly known as MrMurano.
241
387
  email:
242
388
  - miketilstra@exosite.com
243
389
  executables:
244
- - mr
245
390
  - murano
246
391
  extensions: []
247
392
  extra_rdoc_files: []
248
393
  files:
249
- - .agignore
250
- - .gitignore
251
- - .rspec
252
- - .travis.yml
394
+ - ".agignore"
395
+ - ".gitignore"
396
+ - ".rspec"
397
+ - ".rubocop.yml"
398
+ - ".travis.yml"
399
+ - ".trustme.sh"
400
+ - ".trustme.vim"
253
401
  - Gemfile
254
402
  - LICENSE.txt
255
403
  - MuranoCLI.gemspec
@@ -257,67 +405,72 @@ files:
257
405
  - README.markdown
258
406
  - Rakefile
259
407
  - TODO.taskpaper
260
- - bin/mr
261
408
  - bin/murano
409
+ - docs/basic_example.rst
410
+ - docs/completions/murano_completion-bash
262
411
  - docs/demo.md
412
+ - docs/develop.rst
263
413
  - lib/MrMurano.rb
264
414
  - lib/MrMurano/Account.rb
415
+ - lib/MrMurano/Business.rb
265
416
  - lib/MrMurano/Config-Migrate.rb
266
417
  - lib/MrMurano/Config.rb
418
+ - lib/MrMurano/Content.rb
419
+ - lib/MrMurano/Gateway.rb
420
+ - lib/MrMurano/Keystore.rb
267
421
  - lib/MrMurano/Mock.rb
268
- - lib/MrMurano/Product-1P-Device.rb
269
- - lib/MrMurano/Product-Resources.rb
270
- - lib/MrMurano/Product.rb
422
+ - lib/MrMurano/Passwords.rb
271
423
  - lib/MrMurano/ProjectFile.rb
272
424
  - lib/MrMurano/ReCommander.rb
273
- - lib/MrMurano/Solution-Cors.rb
274
- - lib/MrMurano/Solution-Endpoint.rb
275
- - lib/MrMurano/Solution-File.rb
425
+ - lib/MrMurano/Setting.rb
276
426
  - lib/MrMurano/Solution-ServiceConfig.rb
277
427
  - lib/MrMurano/Solution-Services.rb
278
428
  - lib/MrMurano/Solution-Users.rb
279
429
  - lib/MrMurano/Solution.rb
430
+ - lib/MrMurano/SolutionId.rb
280
431
  - lib/MrMurano/SubCmdGroupContext.rb
432
+ - lib/MrMurano/SyncRoot.rb
281
433
  - lib/MrMurano/SyncUpDown.rb
434
+ - lib/MrMurano/Webservice-Cors.rb
435
+ - lib/MrMurano/Webservice-Endpoint.rb
436
+ - lib/MrMurano/Webservice-File.rb
437
+ - lib/MrMurano/Webservice.rb
282
438
  - lib/MrMurano/commands.rb
283
- - lib/MrMurano/commands/assign.rb
284
439
  - lib/MrMurano/commands/business.rb
285
- - lib/MrMurano/commands/businessList.rb
440
+ - lib/MrMurano/commands/completion-bash.erb
441
+ - lib/MrMurano/commands/completion-zsh.erb
286
442
  - lib/MrMurano/commands/completion.rb
287
443
  - lib/MrMurano/commands/config.rb
288
444
  - lib/MrMurano/commands/content.rb
289
445
  - lib/MrMurano/commands/cors.rb
446
+ - lib/MrMurano/commands/devices.rb
290
447
  - lib/MrMurano/commands/domain.rb
291
448
  - lib/MrMurano/commands/gb.rb
449
+ - lib/MrMurano/commands/globals.rb
292
450
  - lib/MrMurano/commands/init.rb
293
451
  - lib/MrMurano/commands/keystore.rb
452
+ - lib/MrMurano/commands/link.rb
294
453
  - lib/MrMurano/commands/login.rb
295
454
  - lib/MrMurano/commands/logs.rb
296
455
  - lib/MrMurano/commands/mock.rb
297
456
  - lib/MrMurano/commands/password.rb
298
457
  - lib/MrMurano/commands/postgresql.rb
299
- - lib/MrMurano/commands/product.rb
300
- - lib/MrMurano/commands/productCreate.rb
301
- - lib/MrMurano/commands/productDelete.rb
302
- - lib/MrMurano/commands/productDevice.rb
303
- - lib/MrMurano/commands/productDeviceIdCmds.rb
304
- - lib/MrMurano/commands/productList.rb
305
- - lib/MrMurano/commands/productWrite.rb
458
+ - lib/MrMurano/commands/settings.rb
306
459
  - lib/MrMurano/commands/show.rb
307
460
  - lib/MrMurano/commands/solution.rb
308
- - lib/MrMurano/commands/solutionCreate.rb
309
- - lib/MrMurano/commands/solutionDelete.rb
310
- - lib/MrMurano/commands/solutionList.rb
461
+ - lib/MrMurano/commands/solution_picker.rb
311
462
  - lib/MrMurano/commands/status.rb
312
463
  - lib/MrMurano/commands/sync.rb
313
464
  - lib/MrMurano/commands/timeseries.rb
314
465
  - lib/MrMurano/commands/tsdb.rb
315
466
  - lib/MrMurano/commands/usage.rb
316
- - lib/MrMurano/commands/zshcomplete.erb
317
467
  - lib/MrMurano/hash.rb
318
468
  - lib/MrMurano/http.rb
319
469
  - lib/MrMurano/makePretty.rb
470
+ - lib/MrMurano/optparse.rb
471
+ - lib/MrMurano/progress.rb
320
472
  - lib/MrMurano/schema/pf-v1.0.0.yaml
473
+ - lib/MrMurano/schema/resource-v1.0.0.yaml
321
474
  - lib/MrMurano/schema/sf-v0.2.0.yaml
322
475
  - lib/MrMurano/schema/sf-v0.3.0.yaml
323
476
  - lib/MrMurano/template/mock.erb
@@ -326,24 +479,21 @@ files:
326
479
  - lib/MrMurano/version.rb
327
480
  - spec/Account-Passwords_spec.rb
328
481
  - spec/Account_spec.rb
482
+ - spec/Business_spec.rb
329
483
  - spec/ConfigFile_spec.rb
330
484
  - spec/ConfigMigrate_spec.rb
331
485
  - spec/Config_spec.rb
486
+ - spec/Content_spec.rb
487
+ - spec/GatewayBase_spec.rb
488
+ - spec/GatewayDevice_spec.rb
489
+ - spec/GatewayResource_spec.rb
490
+ - spec/GatewaySettings_spec.rb
332
491
  - spec/Http_spec.rb
333
492
  - spec/MakePretties_spec.rb
334
493
  - spec/Mock_spec.rb
335
- - spec/ProductBase_spec.rb
336
- - spec/ProductContent_spec.rb
337
- - spec/ProductResources_spec.rb
338
- - spec/Product_1P_Device_spec.rb
339
- - spec/Product_1P_RPC_spec.rb
340
- - spec/Product_spec.rb
341
494
  - spec/ProjectFile_spec.rb
342
- - spec/Solution-Cors_spec.rb
343
- - spec/Solution-Endpoint_spec.rb
344
- - spec/Solution-File_spec.rb
495
+ - spec/Setting_spec.rb
345
496
  - spec/Solution-ServiceConfig_spec.rb
346
- - spec/Solution-ServiceDevice_spec.rb
347
497
  - spec/Solution-ServiceEventHandler_spec.rb
348
498
  - spec/Solution-ServiceModules_spec.rb
349
499
  - spec/Solution-UsersRoles_spec.rb
@@ -351,8 +501,11 @@ files:
351
501
  - spec/SyncRoot_spec.rb
352
502
  - spec/SyncUpDown_spec.rb
353
503
  - spec/Verbosing_spec.rb
504
+ - spec/Webservice-Cors_spec.rb
505
+ - spec/Webservice-Endpoint_spec.rb
506
+ - spec/Webservice-File_spec.rb
507
+ - spec/Webservice-Setting_spec.rb
354
508
  - spec/_workspace.rb
355
- - spec/cmd_assign_spec.rb
356
509
  - spec/cmd_business_spec.rb
357
510
  - spec/cmd_common.rb
358
511
  - spec/cmd_config_spec.rb
@@ -363,7 +516,10 @@ files:
363
516
  - spec/cmd_help_spec.rb
364
517
  - spec/cmd_init_spec.rb
365
518
  - spec/cmd_keystore_spec.rb
519
+ - spec/cmd_link_spec.rb
366
520
  - spec/cmd_password_spec.rb
521
+ - spec/cmd_setting_application_spec.rb
522
+ - spec/cmd_setting_product_spec.rb
367
523
  - spec/cmd_status_spec.rb
368
524
  - spec/cmd_syncdown_spec.rb
369
525
  - spec/cmd_syncup_spec.rb
@@ -382,6 +538,9 @@ files:
382
538
  - spec/fixtures/SolutionFiles/secret.json
383
539
  - spec/fixtures/configfile
384
540
  - spec/fixtures/dumped_config
541
+ - spec/fixtures/gateway_resource_files/resources.notyaml
542
+ - spec/fixtures/gateway_resource_files/resources.yaml
543
+ - spec/fixtures/gateway_resource_files/resources_invalid.yaml
385
544
  - spec/fixtures/mrmuranorc_deleted_bob
386
545
  - spec/fixtures/mrmuranorc_tool_bob
387
546
  - spec/fixtures/product_spec_files/example.exoline.spec.yaml
@@ -391,114 +550,46 @@ files:
391
550
  - spec/fixtures/product_spec_files/lightbulb-no-state.yaml
392
551
  - spec/fixtures/product_spec_files/lightbulb.yaml
393
552
  - spec/fixtures/roles-three.yaml
553
+ - spec/fixtures/syncable_conflict/services/devdata.lua
554
+ - spec/fixtures/syncable_conflict/services/timers.lua
394
555
  - spec/fixtures/syncable_content/assets/icon.png
395
556
  - spec/fixtures/syncable_content/assets/index.html
396
557
  - spec/fixtures/syncable_content/assets/js/script.js
397
558
  - spec/fixtures/syncable_content/modules/table_util.lua
398
559
  - spec/fixtures/syncable_content/routes/manyRoutes.lua
399
560
  - spec/fixtures/syncable_content/routes/singleRoute.lua
400
- - spec/fixtures/syncable_content/services/devdata.lua
401
- - spec/fixtures/syncable_content/services/timers.lua
402
561
  - spec/spec_helper.rb
403
562
  homepage: https://github.com/exosite/MuranoCLI
404
563
  licenses:
405
564
  - MIT
406
565
  metadata: {}
407
- post_install_message:
566
+ post_install_message: |2+
567
+
568
+ MuranoCLI v3.0 introduces backwards-incompatible changes.
569
+
570
+ If your business was created with MuranoCLI v2.x, you will
571
+ want to continue using the old gem, which you can run by
572
+ explicitly specifying the version. For instance,
573
+
574
+ murano _2.2.4_ --version
575
+
408
576
  rdoc_options: []
409
577
  require_paths:
410
578
  - lib
411
579
  required_ruby_version: !ruby/object:Gem::Requirement
412
580
  requirements:
413
- - - ~>
581
+ - - "~>"
414
582
  - !ruby/object:Gem::Version
415
583
  version: '2.0'
416
584
  required_rubygems_version: !ruby/object:Gem::Requirement
417
585
  requirements:
418
- - - '>='
586
+ - - ">="
419
587
  - !ruby/object:Gem::Version
420
588
  version: '0'
421
589
  requirements: []
422
590
  rubyforge_project:
423
- rubygems_version: 2.0.14.1
591
+ rubygems_version: 2.4.5.2
424
592
  signing_key:
425
593
  specification_version: 4
426
594
  summary: Do more from the command line with Murano
427
- test_files:
428
- - spec/Account-Passwords_spec.rb
429
- - spec/Account_spec.rb
430
- - spec/ConfigFile_spec.rb
431
- - spec/ConfigMigrate_spec.rb
432
- - spec/Config_spec.rb
433
- - spec/Http_spec.rb
434
- - spec/MakePretties_spec.rb
435
- - spec/Mock_spec.rb
436
- - spec/ProductBase_spec.rb
437
- - spec/ProductContent_spec.rb
438
- - spec/ProductResources_spec.rb
439
- - spec/Product_1P_Device_spec.rb
440
- - spec/Product_1P_RPC_spec.rb
441
- - spec/Product_spec.rb
442
- - spec/ProjectFile_spec.rb
443
- - spec/Solution-Cors_spec.rb
444
- - spec/Solution-Endpoint_spec.rb
445
- - spec/Solution-File_spec.rb
446
- - spec/Solution-ServiceConfig_spec.rb
447
- - spec/Solution-ServiceDevice_spec.rb
448
- - spec/Solution-ServiceEventHandler_spec.rb
449
- - spec/Solution-ServiceModules_spec.rb
450
- - spec/Solution-UsersRoles_spec.rb
451
- - spec/Solution_spec.rb
452
- - spec/SyncRoot_spec.rb
453
- - spec/SyncUpDown_spec.rb
454
- - spec/Verbosing_spec.rb
455
- - spec/_workspace.rb
456
- - spec/cmd_assign_spec.rb
457
- - spec/cmd_business_spec.rb
458
- - spec/cmd_common.rb
459
- - spec/cmd_config_spec.rb
460
- - spec/cmd_content_spec.rb
461
- - spec/cmd_cors_spec.rb
462
- - spec/cmd_device_spec.rb
463
- - spec/cmd_domain_spec.rb
464
- - spec/cmd_help_spec.rb
465
- - spec/cmd_init_spec.rb
466
- - spec/cmd_keystore_spec.rb
467
- - spec/cmd_password_spec.rb
468
- - spec/cmd_status_spec.rb
469
- - spec/cmd_syncdown_spec.rb
470
- - spec/cmd_syncup_spec.rb
471
- - spec/cmd_usage_spec.rb
472
- - spec/fixtures/.mrmuranorc
473
- - spec/fixtures/ProjectFiles/invalid.yaml
474
- - spec/fixtures/ProjectFiles/only_meta.yaml
475
- - spec/fixtures/ProjectFiles/with_routes.yaml
476
- - spec/fixtures/SolutionFiles/0.2.0.json
477
- - spec/fixtures/SolutionFiles/0.2.0_invalid.json
478
- - spec/fixtures/SolutionFiles/0.2.json
479
- - spec/fixtures/SolutionFiles/0.3.0.json
480
- - spec/fixtures/SolutionFiles/0.3.0_invalid.json
481
- - spec/fixtures/SolutionFiles/0.3.json
482
- - spec/fixtures/SolutionFiles/basic.json
483
- - spec/fixtures/SolutionFiles/secret.json
484
- - spec/fixtures/configfile
485
- - spec/fixtures/dumped_config
486
- - spec/fixtures/mrmuranorc_deleted_bob
487
- - spec/fixtures/mrmuranorc_tool_bob
488
- - spec/fixtures/product_spec_files/example.exoline.spec.yaml
489
- - spec/fixtures/product_spec_files/example.murano.spec.yaml
490
- - spec/fixtures/product_spec_files/gwe.exoline.spec.yaml
491
- - spec/fixtures/product_spec_files/gwe.murano.spec.yaml
492
- - spec/fixtures/product_spec_files/lightbulb-no-state.yaml
493
- - spec/fixtures/product_spec_files/lightbulb.yaml
494
- - spec/fixtures/roles-three.yaml
495
- - spec/fixtures/syncable_content/assets/icon.png
496
- - spec/fixtures/syncable_content/assets/index.html
497
- - spec/fixtures/syncable_content/assets/js/script.js
498
- - spec/fixtures/syncable_content/modules/table_util.lua
499
- - spec/fixtures/syncable_content/routes/manyRoutes.lua
500
- - spec/fixtures/syncable_content/routes/singleRoute.lua
501
- - spec/fixtures/syncable_content/services/devdata.lua
502
- - spec/fixtures/syncable_content/services/timers.lua
503
- - spec/spec_helper.rb
504
- has_rdoc:
595
+ test_files: []