MuranoCLI 3.2.0.beta.9 → 3.2.1.pre.beta.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/Rakefile +5 -0
  4. data/dockers/README.rst +7 -0
  5. data/dockers/RELEASE.rst +6 -3
  6. data/dockers/docker-test.sh +45 -17
  7. data/docs/completions/murano_completion-bash +211 -86
  8. data/lib/MrMurano/Account.rb +72 -4
  9. data/lib/MrMurano/Business.rb +163 -2
  10. data/lib/MrMurano/Commander-Entry.rb +1 -2
  11. data/lib/MrMurano/Config.rb +19 -18
  12. data/lib/MrMurano/Content.rb +26 -19
  13. data/lib/MrMurano/Gateway.rb +51 -10
  14. data/lib/MrMurano/ReCommander.rb +1 -1
  15. data/lib/MrMurano/Solution-Services.rb +80 -35
  16. data/lib/MrMurano/Solution-Users.rb +1 -0
  17. data/lib/MrMurano/SyncRoot.rb +10 -3
  18. data/lib/MrMurano/SyncUpDown-Core.rb +47 -36
  19. data/lib/MrMurano/SyncUpDown-Item.rb +46 -14
  20. data/lib/MrMurano/SyncUpDown.rb +22 -20
  21. data/lib/MrMurano/Webservice-Endpoint.rb +20 -18
  22. data/lib/MrMurano/Webservice-File.rb +63 -20
  23. data/lib/MrMurano/commands/business.rb +14 -1
  24. data/lib/MrMurano/commands/child.rb +148 -0
  25. data/lib/MrMurano/commands/devices.rb +298 -149
  26. data/lib/MrMurano/commands/element.rb +2 -1
  27. data/lib/MrMurano/commands/globals.rb +3 -0
  28. data/lib/MrMurano/commands/network.rb +152 -33
  29. data/lib/MrMurano/commands/sync.rb +2 -2
  30. data/lib/MrMurano/commands.rb +1 -0
  31. data/lib/MrMurano/verbosing.rb +13 -2
  32. data/lib/MrMurano/version.rb +1 -1
  33. data/spec/Account_spec.rb +43 -11
  34. data/spec/Content_spec.rb +5 -3
  35. data/spec/GatewayBase_spec.rb +1 -1
  36. data/spec/GatewayDevice_spec.rb +47 -8
  37. data/spec/GatewayResource_spec.rb +1 -1
  38. data/spec/GatewaySettings_spec.rb +1 -1
  39. data/spec/HttpAuthed_spec.rb +17 -3
  40. data/spec/ProjectFile_spec.rb +59 -23
  41. data/spec/Setting_spec.rb +2 -1
  42. data/spec/Solution-ServiceConfig_spec.rb +1 -1
  43. data/spec/Solution-ServiceEventHandler_spec.rb +27 -20
  44. data/spec/Solution-ServiceModules_spec.rb +7 -5
  45. data/spec/Solution-UsersRoles_spec.rb +7 -1
  46. data/spec/Solution_spec.rb +9 -1
  47. data/spec/SyncRoot_spec.rb +5 -5
  48. data/spec/SyncUpDown_spec.rb +262 -211
  49. data/spec/Verbosing_spec.rb +49 -8
  50. data/spec/Webservice-Cors_spec.rb +10 -1
  51. data/spec/Webservice-Endpoint_spec.rb +84 -65
  52. data/spec/Webservice-File_spec.rb +16 -11
  53. data/spec/Webservice-Setting_spec.rb +7 -1
  54. data/spec/_workspace.rb +9 -0
  55. data/spec/cmd_business_spec.rb +5 -10
  56. data/spec/cmd_common.rb +67 -32
  57. data/spec/cmd_config_spec.rb +9 -14
  58. data/spec/cmd_content_spec.rb +15 -26
  59. data/spec/cmd_cors_spec.rb +9 -12
  60. data/spec/cmd_device_spec.rb +31 -45
  61. data/spec/cmd_domain_spec.rb +12 -10
  62. data/spec/cmd_element_spec.rb +18 -17
  63. data/spec/cmd_exchange_spec.rb +1 -4
  64. data/spec/cmd_init_spec.rb +56 -72
  65. data/spec/cmd_keystore_spec.rb +17 -26
  66. data/spec/cmd_link_spec.rb +13 -17
  67. data/spec/cmd_password_spec.rb +9 -10
  68. data/spec/cmd_setting_application_spec.rb +95 -68
  69. data/spec/cmd_setting_product_spec.rb +59 -37
  70. data/spec/cmd_status_spec.rb +46 -84
  71. data/spec/cmd_syncdown_application_spec.rb +28 -50
  72. data/spec/cmd_syncdown_both_spec.rb +44 -93
  73. data/spec/cmd_syncdown_unit_spec.rb +858 -0
  74. data/spec/cmd_syncup_spec.rb +21 -56
  75. data/spec/cmd_token_spec.rb +0 -3
  76. data/spec/cmd_usage_spec.rb +15 -10
  77. data/spec/dry_run_formatter.rb +1 -0
  78. data/spec/fixtures/dumped_config +4 -4
  79. data/spec/spec_helper.rb +3 -0
  80. metadata +4 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d280f1504ef238178a4baea98ead2816f1e5e4e171b833c1905f2f9829e5f664
4
- data.tar.gz: 57a8ba23b80836607343f7dad576c730747d7ca672b9b2c55318b69a0eb956cf
3
+ metadata.gz: da25ca3b8f76c8441e11b57712ef6d7a536cf9c70a92e03822131e29dbaf4019
4
+ data.tar.gz: 68dfdbefe7259168d61e30009e305a79d505cc503ae94b86b982947724d0c588
5
5
  SHA512:
6
- metadata.gz: 81a67f95d05900d181d9ffd87eea654d0ccf44cb0e9d9dc83d76b8999d203595a8015e4f8a1a9aae83b028c5dd8b343450795bab7e05bf7c194c31a15112c7d3
7
- data.tar.gz: 7a27339a72cd15419af5961680e178fb723919082f9a47cf7a9d8fbfd07db9936c3931b16ab665efae073ab58ee719d1f6689123d8babe878c7225d50d9e73dc
6
+ metadata.gz: ccdbdbfa174682349eaef3f788d031fdc6f785ac4369cf798132dc6efdd0361c0dc61f5d3bf531d6775f2589630704c799bed9ecd9e38119e4f5ddd0fa7ed0db
7
+ data.tar.gz: 83e03633309260f8e50eb35b6641a48474f89f4aac27d5229b5ac1b549bf3f1a1fa0795d799c89cb38f0f1c5431162bb21828d21f64235fd69d5a72367602925
data/.rubocop.yml CHANGED
@@ -285,4 +285,7 @@ AllCops:
285
285
  #
286
286
  # The spec_helper is a generated file; don't care.
287
287
  - 'spec/spec_helper.rb'
288
+ # The unit test for syncdown has a ton of copy-paste curl output,
289
+ # which would be super duper tedious to clean up for the linter.
290
+ - 'spec/cmd_syncdown_unit_spec.rb'
288
291
 
data/Rakefile CHANGED
@@ -88,6 +88,11 @@ task :rubocop do
88
88
  end
89
89
  task lint: :rubocop
90
90
 
91
+ desc 'Run Rubocop linter through `less`'
92
+ task 'lint-less' do
93
+ system %(rubocop --color -D -c .rubocop.yml | less -r)
94
+ end
95
+
91
96
  desc 'Clean out junk from prior hot tests'
92
97
  task :test_clean_up do
93
98
  unless ENV['MURANO_CONFIGFILE'].nil?
data/dockers/README.rst CHANGED
@@ -305,18 +305,25 @@ Jenkins project configuration: Murano CLI Gem Release
305
305
  - Notifications
306
306
 
307
307
  - Notification Type: ``Build started``
308
+ Color: ``purple``
308
309
 
309
310
  - Notification Type: ``Build aborted``
311
+ Color: ``red``
310
312
 
311
313
  - Notification Type: ``Build successful``
314
+ Color: ``green``
312
315
 
313
316
  - Notification Type: ``Build failed``
317
+ Color: ``red``
314
318
 
315
319
  - Notification Type: ``Module not built``
320
+ Color: ``red``
316
321
 
317
322
  - Notification Type: ``Build is back to normal``
323
+ Color: ``yellow``
318
324
 
319
325
  - Notification Type: ``Build is unstable``
326
+ Color: ``yellow``
320
327
 
321
328
  Job started::
322
329
 
data/dockers/RELEASE.rst CHANGED
@@ -58,8 +58,8 @@ Trigger the Gem release build
58
58
  Set the variables above, and then tag the appropriate branch::
59
59
 
60
60
  cd ${MURCLI_BASE}/exosite+MuranoCLI
61
- git checkout ${MURCLI_REL}
62
- git pull
61
+ git checkout ${MURCLI_REF}
62
+ git pull --ff-only
63
63
 
64
64
  git tag -a "${MURCLI_REL}" -m "Release tag: ${MURCLI_REL}" ${MURCLI_REF}
65
65
  git push origin "${MURCLI_REL}"
@@ -101,6 +101,7 @@ Download the built Gem from GitHub::
101
101
  --location \
102
102
  https://api.github.com/repos/${OWNER}/${REPO}/releases/tags/v${MURCLI_VER}
103
103
  cat v${MURCLI_VER}
104
+ #
104
105
  ASSET_ID=$(cat v${MURCLI_VER} | jq '.assets[0].id')
105
106
  echo ${ASSET_ID}
106
107
  #
@@ -110,13 +111,15 @@ Download the built Gem from GitHub::
110
111
  --header='Accept:application/octet-stream' \
111
112
  https://${GITHUB_TOKEN}:@api.github.com/repos/${OWNER}/${REPO}/releases/assets/${ASSET_ID} \
112
113
  -O MuranoCLI-${MURCLI_VER}.gem
114
+ ls -la MuranoCLI-${MURCLI_VER}.gem
113
115
 
114
116
  Publish the gem::
115
117
 
116
118
  gem push MuranoCLI-${MURCLI_VER}.gem
117
119
  popd
118
120
  rm /tmp/gem_push/MuranoCLI-${MURCLI_VER}.gem
119
- rm /tmp/gem_push/${ASSET_ID}
121
+ rm /tmp/gem_push/v${MURCLI_VER}
122
+ rm /tmp/gem_push/releases
120
123
  rmdir /tmp/gem_push
121
124
 
122
125
  Test!::
@@ -48,6 +48,11 @@ must_verify_environs () {
48
48
  [[ -z ${MURANO_USERNAME} ]] && echo "ERROR: Please set MURANO_USERNAME" && exit 1
49
49
  [[ -z ${MURANO_PASSWORD} ]] && echo "ERROR: Please set MURANO_PASSWORD" && exit 1
50
50
  [[ -z ${MURANO_BUSINESS} ]] && echo "ERROR: Please set MURANO_BUSINESS" && exit 1
51
+
52
+ # TEST_ME: (lb): I bet WORKSPACE is set to /app on Docker.
53
+ if [[ -d /app && "${WORKSPACE}" != "/app" ]]; then
54
+ echo "WARNING: WORKSPACE not /app?: ${WORKSPACE}"
55
+ fi
51
56
  }
52
57
 
53
58
  # Create a basic Murano CLI config indicating the Murano account credentials.
@@ -55,8 +60,10 @@ must_verify_environs () {
55
60
  # Default to host "bizapi-staging.hosted.exosite.io".
56
61
  export MURANO_BIZAPIIO=${MURANO_BIZAPIIO:-bizapi-staging.hosted.exosite.io}
57
62
 
63
+ export MURANO_CONFIGFILE="${MURANO_CONFIGFILE:-${WORKSPACE}/test.run.muranocfg}"
64
+
58
65
  create_basic_config () {
59
- cat > "${WORKSPACE}/test.run.muranocfg" <<-EOCFB
66
+ cat > "${MURANO_CONFIGFILE}" <<-EOCFB
60
67
  [user]
61
68
  name = ${MURANO_USERNAME}
62
69
  [business]
@@ -64,21 +71,28 @@ create_basic_config () {
64
71
  [net]
65
72
  host = ${MURANO_BIZAPIIO}
66
73
  EOCFB
67
- export MURANO_CONFIGFILE="${WORKSPACE}/test.run.muranocfg"
74
+ }
75
+
76
+ remove_basic_config () {
77
+ rm "${MURANO_CONFIGFILE}"
68
78
  }
69
79
 
70
80
  # Switch to the project directory and run tests.
71
81
 
72
82
  prepare_to_test () {
73
- cd /app
83
+ cd ${WORKSPACE}
74
84
 
75
85
  # Instead of `rake test_clean_up -t`, call CLI directly with --no-color.
76
86
 
77
87
  echo "Removing existing solutions from Murano account."
78
88
 
79
- ruby -Ilib bin/murano solutions expunge -y --no-progress --no-color --ascii
89
+ # We're not installing Murano CLI using gem, so we have to tell ruby
90
+ # where the library is.
91
+ export murano="ruby -I${WORKSPACE}/lib ${WORKSPACE}/bin/murano"
80
92
 
81
- # Fix the PATH to avoid the error:
93
+ ${murano} solutions expunge -y --no-progress --no-color --ascii
94
+
95
+ # Fix the PATH to avoid the error (on new Jenkins, dockerized test server):
82
96
  #
83
97
  # /tmp/jenkins8459777890102160498.sh: line 81: rspec: command not found
84
98
  PATH=${PATH}:/usr/local/bundle/bin
@@ -86,15 +100,20 @@ prepare_to_test () {
86
100
  # (lb): Sometimes the host drive directories mount as root:root with 2755
87
101
  # permissions. But sometimes not. If it starts happening again, you'll see
88
102
  # Errno::EACCES: Permission denied. Uncomment the sudoers code in Dockerfile.
89
- sudo chmod 2777 /app/report
90
- sudo chmod 2777 /app/coverage
103
+ if [[ -d /app ]]; then
104
+ sudo chmod 2777 /app/report
105
+ sudo chmod 2777 /app/coverage
106
+ else
107
+ mkdir ${WORKSPACE}/report
108
+ mkdir ${WORKSPACE}/coverage
109
+ fi
91
110
  }
92
111
 
93
112
  execute_tests () {
94
- cd /app
113
+ cd ${WORKSPACE}
95
114
 
96
115
  echo "############################################################################################"
97
- echo "Testing \"$(murano -v)\" on \"$(ruby -v)\""
116
+ echo "Testing \"$(${murano} -v)\" on \"$(ruby -v)\""
98
117
  echo "############################################################################################"
99
118
 
100
119
  # Hint: Add `--example "<...>"` to limit the test suite.
@@ -105,30 +124,39 @@ execute_tests () {
105
124
 
106
125
  rspec \
107
126
  --format html \
108
- --out /app/report/index-${RVERS}.html \
109
- --format documentation
127
+ --out ${WORKSPACE}/report/index-${RVERS}.html \
128
+ --format documentation \
129
+ "${@}"
110
130
 
111
131
  rspec_rsp=$?
112
132
 
133
+ local retries=3
134
+
113
135
  # BizAPI oftentimes timesout on a few tests, so try again.
114
- if [[ ${rspec_rsp} -ne 0 ]]; then
136
+ while [[ ${rspec_rsp} -ne 0 && ${retries} -gt 0 ]]; do
137
+ echo -e "\n\nRetrying! ${retries} remain!!\n\n"
138
+
115
139
  rspec \
116
140
  --format html \
117
- --out /app/report/index-${RVERS}.html \
141
+ --out ${WORKSPACE}/report/index-${RVERS}.html \
118
142
  --format documentation \
119
- --only-failures
143
+ --only-failures \
144
+ "${@}"
120
145
 
121
146
  rspec_rsp=$?
122
- fi
147
+ retries=$((${retries} - 1))
148
+ done
123
149
 
124
- exit ${rspec_rsp}
150
+ #exit ${rspec_rsp}
151
+ echo -e "Thanks for flying the Murano CLIs!\n"
125
152
  }
126
153
 
127
154
  main () {
128
155
  must_verify_environs
129
156
  create_basic_config
130
157
  prepare_to_test
131
- execute_tests
158
+ execute_tests "${@}"
159
+ remove_basic_config
132
160
  }
133
161
 
134
162
  main "${@}"
@@ -74,7 +74,6 @@ function _murano () {
74
74
  if [[ -z $cmd0 ]]; then
75
75
  local -a comp_list
76
76
  comp_list=(
77
- _gb
78
77
  _s
79
78
  application
80
79
  applications
@@ -82,6 +81,7 @@ function _murano () {
82
81
  banner
83
82
  business
84
83
  businesses
84
+ child
85
85
  completion
86
86
  config
87
87
  content
@@ -92,9 +92,9 @@ function _murano () {
92
92
  devices
93
93
  diff
94
94
  domain
95
+ element
95
96
  exchange
96
97
  find
97
- gwe
98
98
  help
99
99
  init
100
100
  keystore
@@ -105,6 +105,7 @@ function _murano () {
105
105
  logout
106
106
  logs
107
107
  mock
108
+ network
108
109
  password
109
110
  passwords
110
111
  plugin
@@ -139,9 +140,6 @@ function _murano () {
139
140
  COMPREPLY=($(compgen -W '${comp_list[@]}' -- "$last"))
140
141
  else
141
142
  case $cmd0 in
142
- (_gb)
143
- __murano-_gb "$cmd1" "$cmd2" "${used_switches[@]}"
144
- ;;
145
143
  (_s)
146
144
  __murano-_s "$cmd1" "$cmd2" "${used_switches[@]}"
147
145
  ;;
@@ -163,6 +161,9 @@ function _murano () {
163
161
  (businesses)
164
162
  __murano-businesses "$cmd1" "$cmd2" "${used_switches[@]}"
165
163
  ;;
164
+ (child)
165
+ __murano-child "$cmd1" "$cmd2" "${used_switches[@]}"
166
+ ;;
166
167
  (completion)
167
168
  __murano-completion "$cmd1" "$cmd2" "${used_switches[@]}"
168
169
  ;;
@@ -193,15 +194,15 @@ function _murano () {
193
194
  (domain)
194
195
  __murano-domain "$cmd1" "$cmd2" "${used_switches[@]}"
195
196
  ;;
197
+ (element)
198
+ __murano-element "$cmd1" "$cmd2" "${used_switches[@]}"
199
+ ;;
196
200
  (exchange)
197
201
  __murano-exchange "$cmd1" "$cmd2" "${used_switches[@]}"
198
202
  ;;
199
203
  (find)
200
204
  __murano-find "$cmd1" "$cmd2" "${used_switches[@]}"
201
205
  ;;
202
- (gwe)
203
- __murano-gwe "$cmd1" "$cmd2" "${used_switches[@]}"
204
- ;;
205
206
  (help)
206
207
  __murano-help "$cmd1" "$cmd2" "${used_switches[@]}"
207
208
  ;;
@@ -232,6 +233,9 @@ function _murano () {
232
233
  (mock)
233
234
  __murano-mock "$cmd1" "$cmd2" "${used_switches[@]}"
234
235
  ;;
236
+ (network)
237
+ __murano-network "$cmd1" "$cmd2" "${used_switches[@]}"
238
+ ;;
235
239
  (password)
236
240
  __murano-password "$cmd1" "$cmd2" "${used_switches[@]}"
237
241
  ;;
@@ -305,60 +309,6 @@ function _murano () {
305
309
  fi
306
310
  }
307
311
 
308
- # Completion for subcommand: "_gb".
309
- function __murano-_gb () {
310
- local subcmd1="$1"
311
- local subcmd2="$2"
312
- #local subcmdn="$3"
313
- local used_switches="${@:3}"
314
- local last="${COMP_WORDS[COMP_CWORD]}"
315
- local len=$(($COMP_CWORD - 1))
316
-
317
- local -a more_switches
318
-
319
- local -a comp_list
320
-
321
- #>&2 echo -e "\nsubcmd1=$subcmd1 / subcmd2=$subcmd2 / last=$last / len=$len"
322
- #>&2 echo "used_switches=$used_switches"
323
- #>&2 echo "more_switches=$more_switches"
324
-
325
- # NOTE: Not doing anything special for ${subcmd2}.
326
- # Are there sub-sub-commands we shoud list?
327
-
328
- # Add unused application-wide flags.
329
- local idx
330
- for ((idx = 0; idx < ${#__app_switches[@]}; idx++)); do
331
- local switch=${__app_switches[$idx]}
332
- if ! contains_element "$switch" "${used_switches[@]}"; then
333
- comp_list+=("$switch")
334
- fi
335
- done
336
- # Add unused subcommand flags.
337
- for ((idx = 0; idx < ${#more_switches[@]}; idx++)); do
338
- local switch=${more_switches[$idx]}
339
- comp_list+=("$switch")
340
- done
341
-
342
- # If there are only --flags, <TAB> will put the common prefix,
343
- # "--", but maybe the user doesn't want to add a flag after all.
344
- if [[ -z ${last} ]]; then
345
- local flags_only=true
346
- for ((idx = 0; idx < ${#comp_list[@]}; idx++)); do
347
- local switch=${comp_list[$idx]}
348
- if [[ ${switch} != --* ]]; then
349
- flags_only=false
350
- break
351
- fi
352
- done
353
- if ${flags_only}; then
354
- # Use two Unicode en spaces to prevent compgen from prefixing "--".
355
- comp_list+=("  ")
356
- fi
357
- fi
358
-
359
- COMPREPLY=($(compgen -W '${comp_list[@]}' -- "${last}"))
360
- }
361
-
362
312
  # Completion for subcommand: "_s".
363
313
  function __murano-_s () {
364
314
  local subcmd1="$1"
@@ -896,6 +846,82 @@ function __murano-businesses () {
896
846
  COMPREPLY=($(compgen -W '${comp_list[@]}' -- "${last}"))
897
847
  }
898
848
 
849
+ # Completion for subcommand: "child".
850
+ function __murano-child () {
851
+ local subcmd1="$1"
852
+ local subcmd2="$2"
853
+ #local subcmdn="$3"
854
+ local used_switches="${@:3}"
855
+ local last="${COMP_WORDS[COMP_CWORD]}"
856
+ local len=$(($COMP_CWORD - 1))
857
+
858
+ local -a more_switches
859
+
860
+ local -a comp_list
861
+
862
+ #>&2 echo -e "\nsubcmd1=$subcmd1 / subcmd2=$subcmd2 / last=$last / len=$len"
863
+ #>&2 echo "used_switches=$used_switches"
864
+ #>&2 echo "more_switches=$more_switches"
865
+
866
+ # NOTE: Not doing anything special for ${subcmd2}.
867
+ # Are there sub-sub-commands we shoud list?
868
+ if [[ -z ${subcmd1} || ${len} -eq 1 ]]; then
869
+ comp_list=(
870
+ add
871
+ remove
872
+ show
873
+ )
874
+ else
875
+ case $subcmd1 in
876
+ (add)
877
+ more_switches=(
878
+ )
879
+ ;;
880
+ (remove)
881
+ more_switches=(
882
+ )
883
+ ;;
884
+ (show)
885
+ more_switches=(
886
+ )
887
+ ;;
888
+ esac
889
+ fi
890
+
891
+ # Add unused application-wide flags.
892
+ local idx
893
+ for ((idx = 0; idx < ${#__app_switches[@]}; idx++)); do
894
+ local switch=${__app_switches[$idx]}
895
+ if ! contains_element "$switch" "${used_switches[@]}"; then
896
+ comp_list+=("$switch")
897
+ fi
898
+ done
899
+ # Add unused subcommand flags.
900
+ for ((idx = 0; idx < ${#more_switches[@]}; idx++)); do
901
+ local switch=${more_switches[$idx]}
902
+ comp_list+=("$switch")
903
+ done
904
+
905
+ # If there are only --flags, <TAB> will put the common prefix,
906
+ # "--", but maybe the user doesn't want to add a flag after all.
907
+ if [[ -z ${last} ]]; then
908
+ local flags_only=true
909
+ for ((idx = 0; idx < ${#comp_list[@]}; idx++)); do
910
+ local switch=${comp_list[$idx]}
911
+ if [[ ${switch} != --* ]]; then
912
+ flags_only=false
913
+ break
914
+ fi
915
+ done
916
+ if ${flags_only}; then
917
+ # Use two Unicode en spaces to prevent compgen from prefixing "--".
918
+ comp_list+=("  ")
919
+ fi
920
+ fi
921
+
922
+ COMPREPLY=($(compgen -W '${comp_list[@]}' -- "${last}"))
923
+ }
924
+
899
925
  # Completion for subcommand: "completion".
900
926
  function __murano-completion () {
901
927
  local subcmd1="$1"
@@ -1633,8 +1659,8 @@ function __murano-domain () {
1633
1659
  COMPREPLY=($(compgen -W '${comp_list[@]}' -- "${last}"))
1634
1660
  }
1635
1661
 
1636
- # Completion for subcommand: "exchange".
1637
- function __murano-exchange () {
1662
+ # Completion for subcommand: "element".
1663
+ function __murano-element () {
1638
1664
  local subcmd1="$1"
1639
1665
  local subcmd2="$2"
1640
1666
  #local subcmdn="$3"
@@ -1654,29 +1680,23 @@ function __murano-exchange () {
1654
1680
  # Are there sub-sub-commands we shoud list?
1655
1681
  if [[ -z ${subcmd1} || ${len} -eq 1 ]]; then
1656
1682
  comp_list=(
1657
- add
1658
- buy
1659
- list
1660
- purchase
1683
+ edit
1684
+ show
1685
+ update
1661
1686
  )
1662
1687
  else
1663
1688
  case $subcmd1 in
1664
- (add)
1689
+ (edit)
1665
1690
  more_switches=(
1666
1691
  {--trace}
1667
1692
  )
1668
1693
  ;;
1669
- (buy)
1670
- more_switches=(
1671
- {--trace}
1672
- )
1673
- ;;
1674
- (list)
1694
+ (show)
1675
1695
  more_switches=(
1676
1696
  {--trace}
1677
1697
  )
1678
1698
  ;;
1679
- (purchase)
1699
+ (update)
1680
1700
  more_switches=(
1681
1701
  {--trace}
1682
1702
  )
@@ -1718,8 +1738,8 @@ function __murano-exchange () {
1718
1738
  COMPREPLY=($(compgen -W '${comp_list[@]}' -- "${last}"))
1719
1739
  }
1720
1740
 
1721
- # Completion for subcommand: "find".
1722
- function __murano-find () {
1741
+ # Completion for subcommand: "exchange".
1742
+ function __murano-exchange () {
1723
1743
  local subcmd1="$1"
1724
1744
  local subcmd2="$2"
1725
1745
  #local subcmdn="$3"
@@ -1739,17 +1759,29 @@ function __murano-find () {
1739
1759
  # Are there sub-sub-commands we shoud list?
1740
1760
  if [[ -z ${subcmd1} || ${len} -eq 1 ]]; then
1741
1761
  comp_list=(
1742
- application
1743
- product
1762
+ add
1763
+ buy
1764
+ list
1765
+ purchase
1744
1766
  )
1745
1767
  else
1746
1768
  case $subcmd1 in
1747
- (application)
1769
+ (add)
1748
1770
  more_switches=(
1749
1771
  {--trace}
1750
1772
  )
1751
1773
  ;;
1752
- (product)
1774
+ (buy)
1775
+ more_switches=(
1776
+ {--trace}
1777
+ )
1778
+ ;;
1779
+ (list)
1780
+ more_switches=(
1781
+ {--trace}
1782
+ )
1783
+ ;;
1784
+ (purchase)
1753
1785
  more_switches=(
1754
1786
  {--trace}
1755
1787
  )
@@ -1791,8 +1823,8 @@ function __murano-find () {
1791
1823
  COMPREPLY=($(compgen -W '${comp_list[@]}' -- "${last}"))
1792
1824
  }
1793
1825
 
1794
- # Completion for subcommand: "gwe".
1795
- function __murano-gwe () {
1826
+ # Completion for subcommand: "find".
1827
+ function __murano-find () {
1796
1828
  local subcmd1="$1"
1797
1829
  local subcmd2="$2"
1798
1830
  #local subcmdn="$3"
@@ -1812,12 +1844,19 @@ function __murano-gwe () {
1812
1844
  # Are there sub-sub-commands we shoud list?
1813
1845
  if [[ -z ${subcmd1} || ${len} -eq 1 ]]; then
1814
1846
  comp_list=(
1815
- app
1847
+ application
1848
+ product
1816
1849
  )
1817
1850
  else
1818
1851
  case $subcmd1 in
1819
- (app)
1852
+ (application)
1853
+ more_switches=(
1854
+ {--trace}
1855
+ )
1856
+ ;;
1857
+ (product)
1820
1858
  more_switches=(
1859
+ {--trace}
1821
1860
  )
1822
1861
  ;;
1823
1862
  esac
@@ -2646,6 +2685,92 @@ function __murano-mock () {
2646
2685
  COMPREPLY=($(compgen -W '${comp_list[@]}' -- "${last}"))
2647
2686
  }
2648
2687
 
2688
+ # Completion for subcommand: "network".
2689
+ function __murano-network () {
2690
+ local subcmd1="$1"
2691
+ local subcmd2="$2"
2692
+ #local subcmdn="$3"
2693
+ local used_switches="${@:3}"
2694
+ local last="${COMP_WORDS[COMP_CWORD]}"
2695
+ local len=$(($COMP_CWORD - 1))
2696
+
2697
+ local -a more_switches
2698
+
2699
+ local -a comp_list
2700
+
2701
+ #>&2 echo -e "\nsubcmd1=$subcmd1 / subcmd2=$subcmd2 / last=$last / len=$len"
2702
+ #>&2 echo "used_switches=$used_switches"
2703
+ #>&2 echo "more_switches=$more_switches"
2704
+
2705
+ # NOTE: Not doing anything special for ${subcmd2}.
2706
+ # Are there sub-sub-commands we shoud list?
2707
+ if [[ -z ${subcmd1} || ${len} -eq 1 ]]; then
2708
+ comp_list=(
2709
+ children
2710
+ configure
2711
+ delete
2712
+ new
2713
+ show
2714
+ )
2715
+ else
2716
+ case $subcmd1 in
2717
+ (children)
2718
+ more_switches=(
2719
+ )
2720
+ ;;
2721
+ (configure)
2722
+ more_switches=(
2723
+ )
2724
+ ;;
2725
+ (delete)
2726
+ more_switches=(
2727
+ )
2728
+ ;;
2729
+ (new)
2730
+ more_switches=(
2731
+ )
2732
+ ;;
2733
+ (show)
2734
+ more_switches=(
2735
+ )
2736
+ ;;
2737
+ esac
2738
+ fi
2739
+
2740
+ # Add unused application-wide flags.
2741
+ local idx
2742
+ for ((idx = 0; idx < ${#__app_switches[@]}; idx++)); do
2743
+ local switch=${__app_switches[$idx]}
2744
+ if ! contains_element "$switch" "${used_switches[@]}"; then
2745
+ comp_list+=("$switch")
2746
+ fi
2747
+ done
2748
+ # Add unused subcommand flags.
2749
+ for ((idx = 0; idx < ${#more_switches[@]}; idx++)); do
2750
+ local switch=${more_switches[$idx]}
2751
+ comp_list+=("$switch")
2752
+ done
2753
+
2754
+ # If there are only --flags, <TAB> will put the common prefix,
2755
+ # "--", but maybe the user doesn't want to add a flag after all.
2756
+ if [[ -z ${last} ]]; then
2757
+ local flags_only=true
2758
+ for ((idx = 0; idx < ${#comp_list[@]}; idx++)); do
2759
+ local switch=${comp_list[$idx]}
2760
+ if [[ ${switch} != --* ]]; then
2761
+ flags_only=false
2762
+ break
2763
+ fi
2764
+ done
2765
+ if ${flags_only}; then
2766
+ # Use two Unicode en spaces to prevent compgen from prefixing "--".
2767
+ comp_list+=("  ")
2768
+ fi
2769
+ fi
2770
+
2771
+ COMPREPLY=($(compgen -W '${comp_list[@]}' -- "${last}"))
2772
+ }
2773
+
2649
2774
  # Completion for subcommand: "password".
2650
2775
  function __murano-password () {
2651
2776
  local subcmd1="$1"