MuranoCLI 3.2.0.beta.5 → 3.2.0.beta.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ignore +22 -11
- data/dockers/Dockerfile.2.2.9 +2 -2
- data/dockers/Dockerfile.2.3.6 +2 -2
- data/dockers/Dockerfile.2.4.3 +2 -2
- data/dockers/Dockerfile.2.5.0 +2 -2
- data/dockers/Dockerfile.GemRelease +6 -6
- data/dockers/Dockerfile.m4 +4 -4
- data/dockers/README.rst +87 -19
- data/dockers/RELEASE.rst +1 -1
- data/dockers/docker-test.sh +4 -1
- data/{.trustme.plugin → docs/ci/.trustme.plugin} +5 -2
- data/{.trustme.sh → docs/ci/.trustme.sh} +64 -16
- data/lib/MrMurano/Business.rb +73 -0
- data/lib/MrMurano/Config.rb +4 -3
- data/lib/MrMurano/Keystore.rb +4 -0
- data/lib/MrMurano/ReCommander.rb +23 -0
- data/lib/MrMurano/Solution.rb +10 -0
- data/lib/MrMurano/SyncUpDown-Core.rb +94 -56
- data/lib/MrMurano/SyncUpDown-Item.rb +2 -0
- data/lib/MrMurano/Webservice-Endpoint.rb +8 -7
- data/lib/MrMurano/commands/business.rb +60 -0
- data/lib/MrMurano/commands/content.rb +7 -1
- data/lib/MrMurano/commands/cors.rb +1 -0
- data/lib/MrMurano/commands/devices.rb +1 -1
- data/lib/MrMurano/commands/element.rb +40 -14
- data/lib/MrMurano/commands/keystore.rb +8 -0
- data/lib/MrMurano/commands/logs.rb +1 -0
- data/lib/MrMurano/commands/network.rb +120 -0
- data/lib/MrMurano/commands/postgresql.rb +2 -0
- data/lib/MrMurano/commands/service.rb +5 -0
- data/lib/MrMurano/commands/settings.rb +3 -0
- data/lib/MrMurano/commands/show.rb +1 -0
- data/lib/MrMurano/commands/status.rb +1 -0
- data/lib/MrMurano/commands/sync.rb +2 -0
- data/lib/MrMurano/commands/timeseries.rb +9 -0
- data/lib/MrMurano/commands/tsdb.rb +4 -0
- data/lib/MrMurano/commands.rb +1 -0
- data/lib/MrMurano/variegated/ruby_dig.rb +11 -0
- data/lib/MrMurano/version.rb +1 -1
- data/spec/cmd_element_spec.rb +2 -2
- data/spec/fixtures/dumped_config +1 -0
- metadata +6 -5
- /data/{.trustme.vim → docs/ci/.trustme.vim} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8940564247a955849c5a89835b1915f57b3766f28b0fc52cd83e282ec9aef599
|
4
|
+
data.tar.gz: dda30a89bf0f573fd124902dba05fe8c7f21b0b803dd951a6573ccd400a6293f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e221c40000b55e2c6b18aa2738541ed3c8edbc4bdb61377a2e62342a0ca2f6e261731e455a846eff2a77b18893e1d90fc6c2bd74b9dee4d41ee23bdd8868a4ee
|
7
|
+
data.tar.gz: 6d9076522f2a45cd76a95ffc2f362952e6f2d3978699571efcc93663906b062051e8e883edc58400758112ad7093632f14d087d3218ec87179d9f121473fd01c
|
data/.ignore
CHANGED
@@ -1,19 +1,30 @@
|
|
1
1
|
.git/
|
2
|
-
coverage/
|
3
|
-
pkg/
|
4
|
-
report/
|
5
2
|
|
6
|
-
.
|
7
|
-
|
3
|
+
# Build/install cruft.
|
4
|
+
pkg/
|
8
5
|
Gemfile.lock
|
9
6
|
.bundle/
|
10
|
-
|
11
|
-
|
12
|
-
# 2017-05-12: Testing!
|
13
|
-
*.out
|
14
|
-
.trustme.log
|
15
|
-
curldebug.out
|
7
|
+
.rake_build.out
|
16
8
|
|
9
|
+
# Testing cruft.
|
10
|
+
coverage/
|
11
|
+
report/
|
17
12
|
rspec-*.html
|
18
13
|
*.rspec.html
|
14
|
+
.rspec_examples.txt
|
15
|
+
|
16
|
+
# Debugging/developing cruft.
|
17
|
+
curldebug.out
|
18
|
+
tags
|
19
|
+
.byebug_history
|
20
|
+
.trustme.log
|
21
|
+
active-project
|
22
|
+
projects
|
23
|
+
|
24
|
+
# Symlinks!
|
25
|
+
projects
|
26
|
+
active-project
|
27
|
+
|
28
|
+
# Generated files.
|
29
|
+
docs/completions/murano_completion-bash
|
19
30
|
|
data/dockers/Dockerfile.2.2.9
CHANGED
@@ -16,7 +16,7 @@ RUN \
|
|
16
16
|
&& apt-get -qq update \
|
17
17
|
&& apt-get install -y sudo
|
18
18
|
|
19
|
-
RUN echo "jenkins ALL= NOPASSWD:
|
19
|
+
RUN echo "jenkins ALL= NOPASSWD: /bin/chmod" >> /etc/sudoers
|
20
20
|
|
21
21
|
WORKDIR /app
|
22
22
|
COPY . /app
|
@@ -26,7 +26,7 @@ RUN /bin/chown -R jenkins /app
|
|
26
26
|
USER jenkins
|
27
27
|
|
28
28
|
RUN cd /app && \
|
29
|
-
|
29
|
+
gem install bundler && \
|
30
30
|
gem install rspec && \
|
31
31
|
bundle install --with test && \
|
32
32
|
rake build
|
data/dockers/Dockerfile.2.3.6
CHANGED
@@ -16,7 +16,7 @@ RUN \
|
|
16
16
|
&& apt-get -qq update \
|
17
17
|
&& apt-get install -y sudo
|
18
18
|
|
19
|
-
RUN echo "jenkins ALL= NOPASSWD:
|
19
|
+
RUN echo "jenkins ALL= NOPASSWD: /bin/chmod" >> /etc/sudoers
|
20
20
|
|
21
21
|
WORKDIR /app
|
22
22
|
COPY . /app
|
@@ -26,7 +26,7 @@ RUN /bin/chown -R jenkins /app
|
|
26
26
|
USER jenkins
|
27
27
|
|
28
28
|
RUN cd /app && \
|
29
|
-
|
29
|
+
gem install bundler && \
|
30
30
|
gem install rspec && \
|
31
31
|
bundle install --with test && \
|
32
32
|
rake build
|
data/dockers/Dockerfile.2.4.3
CHANGED
@@ -16,7 +16,7 @@ RUN \
|
|
16
16
|
&& apt-get -qq update \
|
17
17
|
&& apt-get install -y sudo
|
18
18
|
|
19
|
-
RUN echo "jenkins ALL= NOPASSWD:
|
19
|
+
RUN echo "jenkins ALL= NOPASSWD: /bin/chmod" >> /etc/sudoers
|
20
20
|
|
21
21
|
WORKDIR /app
|
22
22
|
COPY . /app
|
@@ -26,7 +26,7 @@ RUN /bin/chown -R jenkins /app
|
|
26
26
|
USER jenkins
|
27
27
|
|
28
28
|
RUN cd /app && \
|
29
|
-
|
29
|
+
gem install bundler && \
|
30
30
|
gem install rspec && \
|
31
31
|
bundle install --with test && \
|
32
32
|
rake build
|
data/dockers/Dockerfile.2.5.0
CHANGED
@@ -16,7 +16,7 @@ RUN \
|
|
16
16
|
&& apt-get -qq update \
|
17
17
|
&& apt-get install -y sudo
|
18
18
|
|
19
|
-
RUN echo "jenkins ALL= NOPASSWD:
|
19
|
+
RUN echo "jenkins ALL= NOPASSWD: /bin/chmod" >> /etc/sudoers
|
20
20
|
|
21
21
|
WORKDIR /app
|
22
22
|
COPY . /app
|
@@ -26,7 +26,7 @@ RUN /bin/chown -R jenkins /app
|
|
26
26
|
USER jenkins
|
27
27
|
|
28
28
|
RUN cd /app && \
|
29
|
-
|
29
|
+
gem install bundler && \
|
30
30
|
gem install rspec && \
|
31
31
|
bundle install --with test && \
|
32
32
|
rake build
|
@@ -26,11 +26,11 @@ RUN /bin/chown -R jenkins /app
|
|
26
26
|
|
27
27
|
USER jenkins
|
28
28
|
|
29
|
-
RUN cd /app
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
29
|
+
RUN cd /app && \
|
30
|
+
gem install bundler && \
|
31
|
+
gem install rspec && \
|
32
|
+
bundle install && \
|
33
|
+
rake build
|
34
34
|
|
35
35
|
RUN gem install \
|
36
36
|
pkg/MuranoCLI-$(ruby -e \
|
@@ -41,7 +41,7 @@ RUN gem install \
|
|
41
41
|
|
42
42
|
RUN mkdir -p /home/jenkins/Downloads && \
|
43
43
|
cd /home/jenkins/Downloads && \
|
44
|
-
curl -L https://github.com/aktau/github-release/releases/download/v0.
|
44
|
+
curl -L https://github.com/aktau/github-release/releases/download/v0.7.2/linux-amd64-github-release.tar.bz2 | bzcat | tar xf - && \
|
45
45
|
mkdir -p /home/jenkins/bin && \
|
46
46
|
cp bin/linux/amd64/github-release /home/jenkins/bin/github-release
|
47
47
|
|
data/dockers/Dockerfile.m4
CHANGED
@@ -77,10 +77,10 @@ RUN \
|
|
77
77
|
&& apt-get -qq update \
|
78
78
|
&& apt-get install -y sudo
|
79
79
|
|
80
|
-
dnl #
|
81
|
-
|
80
|
+
dnl # (lb) It may be easier to give the jenkins user full sudo...
|
81
|
+
RUN echo "jenkins ALL= NOPASSWD: /bin/chmod" >> /etc/sudoers
|
82
82
|
dnl # RUN echo "jenkins ALL= NOPASSWD: /usr/local/bundle/bin/gem" >> /etc/sudoers
|
83
|
-
RUN echo "jenkins ALL= NOPASSWD: ALL" >> /etc/sudoers
|
83
|
+
dnl # RUN echo "jenkins ALL= NOPASSWD: ALL" >> /etc/sudoers
|
84
84
|
dnl # If you have complainst about sudoers, try:
|
85
85
|
dnl # RUN visudo -c
|
86
86
|
|
@@ -106,7 +106,7 @@ dnl #
|
|
106
106
|
USER jenkins
|
107
107
|
|
108
108
|
RUN cd /app && \
|
109
|
-
|
109
|
+
gem install bundler && \
|
110
110
|
gem install rspec && \
|
111
111
|
bundle install --with test && \
|
112
112
|
rake build
|
data/dockers/README.rst
CHANGED
@@ -196,7 +196,7 @@ Jenkins project configuration: Murano CLI Gem Release
|
|
196
196
|
|
197
197
|
- NEW:
|
198
198
|
|
199
|
-
|
199
|
+
https://jenkins.exosite.com/job/MuranoCLI/job/Murano_CLI_Gem_Release/configure
|
200
200
|
|
201
201
|
- OLD:
|
202
202
|
|
@@ -204,7 +204,13 @@ Jenkins project configuration: Murano CLI Gem Release
|
|
204
204
|
|
205
205
|
- General configuration
|
206
206
|
|
207
|
-
- Project name: ``
|
207
|
+
- Project name: ``Murano_CLI_Gem_Release``
|
208
|
+
|
209
|
+
- NOTE: Do not use spaces in the project name -- e.g., this is bad:
|
210
|
+
``Murano CLI Gem Release`` -- or the `Jenkins Docker Plugin
|
211
|
+
<https://github.com/jenkinsci/docker-custom-build-environment-plugin>`__
|
212
|
+
will complain, e.g., ``docker: Error response from daemon: Invalid container
|
213
|
+
name (Murano CLI Gem Release-69), only [a-zA-Z0-9][a-zA-Z0-9_.-] are allowed``.
|
208
214
|
|
209
215
|
- Discard old builds ``✓``
|
210
216
|
|
@@ -226,7 +232,7 @@ Jenkins project configuration: Murano CLI Gem Release
|
|
226
232
|
|
227
233
|
- Repository URL: https://github.com/exosite/MuranoCLI.git
|
228
234
|
|
229
|
-
- Credentials:
|
235
|
+
- Credentials [dropdown]: ``git``
|
230
236
|
|
231
237
|
- Branches to build
|
232
238
|
|
@@ -242,33 +248,31 @@ Jenkins project configuration: Murano CLI Gem Release
|
|
242
248
|
|
243
249
|
- Build Environment
|
244
250
|
|
245
|
-
-
|
251
|
+
- Use secret text(s) or file(s) ``✓``
|
246
252
|
|
247
|
-
-
|
253
|
+
- Bindings
|
248
254
|
|
249
|
-
-
|
255
|
+
- Secret text
|
250
256
|
|
251
|
-
-
|
257
|
+
- Variable: ``GITHUB_TOKEN``
|
252
258
|
|
253
|
-
-
|
259
|
+
- Credentials: "Specific credentials"
|
254
260
|
|
255
|
-
|
261
|
+
Dropdown: "Exosite Github API Token"
|
256
262
|
|
257
|
-
|
263
|
+
- Build inside a Docker container ``✓``
|
258
264
|
|
259
|
-
|
260
|
-
GITHUB_USER=exosite
|
261
|
-
PATH=$HOME/bin:$PATH
|
265
|
+
- Docker image to use
|
262
266
|
|
263
|
-
|
267
|
+
- Build from Dockerfile ``✓``
|
264
268
|
|
265
|
-
|
269
|
+
- path to docker context: ``.``
|
266
270
|
|
267
|
-
|
271
|
+
- Dockerfile: ``./dockers/Dockerfile.GemRelease``
|
268
272
|
|
269
|
-
|
273
|
+
- Color ANSI Console Output ``✓``
|
270
274
|
|
271
|
-
-
|
275
|
+
- ANSI color map [dropdown]: ``xterm``
|
272
276
|
|
273
277
|
- Build
|
274
278
|
|
@@ -277,11 +281,75 @@ Jenkins project configuration: Murano CLI Gem Release
|
|
277
281
|
- Command::
|
278
282
|
|
279
283
|
#!/bin/bash
|
284
|
+
export GITHUB_REPO=MuranoCLI
|
285
|
+
export GITHUB_USER=exosite
|
286
|
+
export PATH=$HOME/bin:$PATH
|
280
287
|
/app/dockers/gem-release.sh
|
281
288
|
|
282
289
|
- Post-build Actions
|
283
290
|
|
284
291
|
- Files to archive: ``pkg/MuranoCLI-*.gem``
|
285
292
|
|
286
|
-
|
293
|
+
- E-mail Notification
|
294
|
+
|
295
|
+
- Recipients: ``user`@exosite.com user2@exosite.com``
|
296
|
+
|
297
|
+
- Send e-mail for every unstable build ``✓``
|
298
|
+
|
299
|
+
- HipChat Notifications
|
300
|
+
|
301
|
+
- Credentials [dropdown]: ``HipChat token for Jenkins``
|
302
|
+
|
303
|
+
- Project Room: ``4403216`` [MurCLI:CI]
|
304
|
+
|
305
|
+
- Notifications
|
306
|
+
|
307
|
+
- Notification Type: ``Build started``
|
308
|
+
|
309
|
+
- Notification Type: ``Build aborted``
|
310
|
+
|
311
|
+
- Notification Type: ``Build successful``
|
312
|
+
|
313
|
+
- Notification Type: ``Build failed``
|
314
|
+
|
315
|
+
- Notification Type: ``Module not built``
|
316
|
+
|
317
|
+
- Notification Type: ``Build is back to normal``
|
318
|
+
|
319
|
+
- Notification Type: ``Build is unstable``
|
320
|
+
|
321
|
+
Job started::
|
322
|
+
|
323
|
+
Jenkins is starting up <a href="$URL">$JOB_NAME #$BUILD_NUMBER</a> using <a href="$GIT_URL">$GIT_BRANCH</a> ($CHANGES_OR_CAUSE).
|
324
|
+
|
325
|
+
Job Completed::
|
326
|
+
|
327
|
+
Jenkins completed <a href="$URL">$JOB_NAME #$BUILD_NUMBER</a> on <a href="$GIT_URL">$GIT_BRANCH</a> (Lap Time: $DURATION).
|
328
|
+
|
329
|
+
Legacy Jenkins Settings:
|
330
|
+
|
331
|
+
- (lb): This is how it looked on the old build server, which is still
|
332
|
+
alive if we need it:
|
333
|
+
|
334
|
+
https://build.exosite.com/view/MuranoCLI/job/MrMurano%20Gem%20Release/
|
335
|
+
|
336
|
+
- Build Environment
|
337
|
+
|
338
|
+
- Inject environment variables to the build process ``✓``
|
339
|
+
|
340
|
+
- Properties Content::
|
341
|
+
|
342
|
+
GITHUB_REPO=MuranoCLI
|
343
|
+
GITHUB_USER=exosite
|
344
|
+
PATH=$HOME/bin:$PATH
|
345
|
+
|
346
|
+
- Inject passwords to the build as environment variables ``✓``
|
347
|
+
|
348
|
+
- Job passwords
|
349
|
+
|
350
|
+
- Name: ``GITHUB_TOKEN``
|
351
|
+
|
352
|
+
- Password: (App token generated on GitHub.)
|
353
|
+
|
354
|
+
- Mask password parameters ``✓``
|
287
355
|
|
data/dockers/RELEASE.rst
CHANGED
data/dockers/docker-test.sh
CHANGED
@@ -52,6 +52,9 @@ must_verify_environs () {
|
|
52
52
|
|
53
53
|
# Create a basic Murano CLI config indicating the Murano account credentials.
|
54
54
|
|
55
|
+
# Default to host "bizapi-staging.hosted.exosite.io".
|
56
|
+
export MURANO_BIZAPIIO=${MURANO_BIZAPIIO:-bizapi-staging.hosted.exosite.io}
|
57
|
+
|
55
58
|
create_basic_config () {
|
56
59
|
cat > "${WORKSPACE}/test.run.muranocfg" <<-EOCFB
|
57
60
|
[user]
|
@@ -59,7 +62,7 @@ create_basic_config () {
|
|
59
62
|
[business]
|
60
63
|
id = ${MURANO_BUSINESS}
|
61
64
|
[net]
|
62
|
-
host =
|
65
|
+
host = ${MURANO_BIZAPIIO}
|
63
66
|
EOCFB
|
64
67
|
export MURANO_CONFIGFILE="${WORKSPACE}/test.run.muranocfg"
|
65
68
|
}
|
@@ -43,6 +43,8 @@ build_it() {
|
|
43
43
|
).gem \
|
44
44
|
&>> ${OUT_FILE} 2>&1 &
|
45
45
|
wait_maybe_fail
|
46
|
+
#alert_success_toast 'Murano CLI says, "Woot woot!!"' 'Wheeee!' 666
|
47
|
+
alert_success_flash
|
46
48
|
|
47
49
|
say '' true
|
48
50
|
}
|
@@ -57,8 +59,9 @@ lint_it() {
|
|
57
59
|
|
58
60
|
test_it() {
|
59
61
|
test_it_
|
60
|
-
#
|
61
|
-
|
62
|
+
# 2017-10-02: (lb): Testing takes too long (20 minutes!), and saving often
|
63
|
+
# just means constant churn, so skip tests.
|
64
|
+
return
|
62
65
|
|
63
66
|
rake rspec &>> ${OUT_FILE}
|
64
67
|
|
@@ -66,7 +66,8 @@ source_plugin() {
|
|
66
66
|
PROJECT_DIR=$(dirname -- "${BASH_SOURCE[0]}")
|
67
67
|
DOTFILENAME=${TRUSTME_BASENAME:-.trustme}
|
68
68
|
|
69
|
-
|
69
|
+
source_home_fries_util 'color_util.sh'
|
70
|
+
source_home_fries_util 'logger.sh'
|
70
71
|
|
71
72
|
PROJ_PLUGIN="${PROJECT_DIR}/${DOTFILENAME}.plugin"
|
72
73
|
if [[ ! -f "${PROJ_PLUGIN}" ]]; then
|
@@ -76,22 +77,24 @@ source_plugin() {
|
|
76
77
|
source "${PROJ_PLUGIN}"
|
77
78
|
}
|
78
79
|
|
79
|
-
|
80
|
-
local
|
81
|
-
local
|
80
|
+
source_home_fries_util() {
|
81
|
+
local home_fries_util="$1"
|
82
|
+
local source_path="${home_fries_util}"
|
82
83
|
# If the /user/home/.fries/lib path is on $PATH, you can just source it.
|
83
|
-
if ! source "${
|
84
|
-
# But if it's not on $PATH, see if this script is a symlink,
|
85
|
-
#
|
84
|
+
if ! source "${source_path}" &> /dev/null; then
|
85
|
+
# But if it's not on $PATH, see if this script is a symlink, and if so,
|
86
|
+
# see if the util file is part of this file's owning repo.
|
86
87
|
if [[ -h "${BASH_SOURCE[0]}" ]]; then
|
87
|
-
|
88
|
+
source_path="$(dirname $(readlink -f ${BASH_SOURCE[0]}))/${home_fries_util}"
|
88
89
|
fi
|
89
|
-
if ! source "${
|
90
|
-
>&2 echo "Unable to find and source ${
|
90
|
+
if ! source "${source_path}" &> /dev/null; then
|
91
|
+
>&2 echo "Unable to find and source ${home_fries_util}. You're missing out!"
|
91
92
|
fi
|
92
93
|
fi
|
93
94
|
}
|
94
95
|
|
96
|
+
# ***
|
97
|
+
|
95
98
|
assign_globals_() {
|
96
99
|
OUT_FILE="${PROJECT_DIR}/${DOTFILENAME}.log"
|
97
100
|
|
@@ -113,6 +116,8 @@ assign_globals() {
|
|
113
116
|
assign_globals_
|
114
117
|
}
|
115
118
|
|
119
|
+
# ***
|
120
|
+
|
116
121
|
say() {
|
117
122
|
FORCE_ECHO=${2:-false}
|
118
123
|
# Restrict newlines to no more than 2 in a row.
|
@@ -161,6 +166,8 @@ repeat_char() {
|
|
161
166
|
printf "$1"'%.s' $(eval "echo {1.."$(($2))"}")
|
162
167
|
}
|
163
168
|
|
169
|
+
# ***
|
170
|
+
|
164
171
|
death() {
|
165
172
|
if [[ -n ${WAIT_PID} ]]; then
|
166
173
|
say "Sub-killing ‘${WAIT_PID}’"
|
@@ -263,7 +270,7 @@ lock_kill_or_die() {
|
|
263
270
|
lock_kill_die true
|
264
271
|
}
|
265
272
|
|
266
|
-
#
|
273
|
+
# ***
|
267
274
|
|
268
275
|
wait_maybe_fail_pre_exit() {
|
269
276
|
: # no-op
|
@@ -286,9 +293,51 @@ wait_maybe_fail() {
|
|
286
293
|
WAIT_PID=
|
287
294
|
}
|
288
295
|
|
296
|
+
# ***
|
297
|
+
|
298
|
+
alert_success_toast() {
|
299
|
+
local message
|
300
|
+
local title
|
301
|
+
local timeout
|
302
|
+
message="${1:-Yay!}"
|
303
|
+
title="${2:-Build Success!}"
|
304
|
+
timeout=${3:-2123}
|
305
|
+
if ``command -v notify-send >/dev/null 2>&1``; then
|
306
|
+
#notify-send -i face-wink -t 1234 \
|
307
|
+
# 'Build Success!' 'Murano CLI says, "Woot woot!!"'
|
308
|
+
# 2018-03-19: 1234 msec. is a tad too long. Something quicker,
|
309
|
+
# so I can train myself to ignore if it's a blip in the corner of my eye.
|
310
|
+
# Just make sure your mouse into over popup, or it won't go away!
|
311
|
+
# Hahaha, at 333 msec. it's basically a flash on the screen...
|
312
|
+
# in that case, there's probably a better way to implement this!
|
313
|
+
notify-send \
|
314
|
+
-t ${timeout} \
|
315
|
+
-u normal \
|
316
|
+
-i '/home/landonb/.waffle/home/Pictures/Landonb-Bitmoji-Thumbs.Up.png' \
|
317
|
+
"${title}" \
|
318
|
+
"${message}"
|
319
|
+
fi
|
320
|
+
}
|
321
|
+
|
322
|
+
alert_success_flash() {
|
323
|
+
local duration
|
324
|
+
duration=${1:-0.075}
|
325
|
+
# 2018-03-19 18:04: This just gets better!
|
326
|
+
# sudo apt-get install xcalib
|
327
|
+
##xcalib -invert -alter
|
328
|
+
#xcalib -alter -invert
|
329
|
+
# xcalib, because of X, only works on the first monitor!
|
330
|
+
# 2018-04-12: But I found a solution that works on all!!
|
331
|
+
/srv/opt/bin/xrandr-invert-colors.bin
|
332
|
+
sleep ${duration}
|
333
|
+
##xcalib -invert -alter
|
334
|
+
#xcalib -alter -invert
|
335
|
+
/srv/opt/bin/xrandr-invert-colors.bin
|
336
|
+
}
|
337
|
+
|
338
|
+
# ***
|
339
|
+
|
289
340
|
prepare_to_build() {
|
290
|
-
#/bin/rm "${DONE_FILE}"
|
291
|
-
#/bin/rm "${OUT_FILE}"
|
292
341
|
rmdir "${KILL_DIR}"
|
293
342
|
say
|
294
343
|
say "See you on the other side!"
|
@@ -360,10 +409,11 @@ remove_pid_files() {
|
|
360
409
|
/bin/rm "${KILL_BIN}"
|
361
410
|
}
|
362
411
|
|
412
|
+
# ***
|
413
|
+
|
363
414
|
main() {
|
364
415
|
source_plugin
|
365
416
|
|
366
|
-
# MAYBE: This call is redundant. Do we need to call it again here? Or should we delete first call?
|
367
417
|
assign_globals
|
368
418
|
|
369
419
|
# We're called on both save, and on simple buffer enter.
|
@@ -448,8 +498,6 @@ main() {
|
|
448
498
|
|
449
499
|
lint_it
|
450
500
|
|
451
|
-
# 2017-10-02: I think testing takes too long, and saving often just means constant churn.
|
452
|
-
|
453
501
|
# Unit tests.
|
454
502
|
test_it
|
455
503
|
|
data/lib/MrMurano/Business.rb
CHANGED
@@ -357,6 +357,79 @@ module MrMurano
|
|
357
357
|
def delete_application(sid)
|
358
358
|
delete_solution(sid)
|
359
359
|
end
|
360
|
+
|
361
|
+
# ---------------------------------------------------------------------
|
362
|
+
|
363
|
+
def get_business_network(bid)
|
364
|
+
return nil unless check_if_biz_network_capable(bid) == true
|
365
|
+
get('business/' + bid + '/network') do |request, http|
|
366
|
+
response = http.request(request)
|
367
|
+
case response
|
368
|
+
when Net::HTTPSuccess
|
369
|
+
workit_response(response)
|
370
|
+
else
|
371
|
+
showHttpError(request, response)
|
372
|
+
nil
|
373
|
+
end
|
374
|
+
end
|
375
|
+
end
|
376
|
+
# ---------------------------------------------------------------------
|
377
|
+
|
378
|
+
# ---------------------------------------------------------------------
|
379
|
+
|
380
|
+
def configure_business_network(bid, name)
|
381
|
+
return nil unless check_if_biz_network_capable(bid) == true
|
382
|
+
patch('business/' + bid + '/network', name: name) do |request, http|
|
383
|
+
response = http.request(request)
|
384
|
+
case response
|
385
|
+
when Net::HTTPSuccess
|
386
|
+
workit_response(response)
|
387
|
+
else
|
388
|
+
showHttpError(request, response)
|
389
|
+
nil
|
390
|
+
end
|
391
|
+
end
|
392
|
+
end
|
393
|
+
# ---------------------------------------------------------------------
|
394
|
+
|
395
|
+
def check_if_biz_network_capable(bid)
|
396
|
+
get('business/' + bid + '/tier') do |request, http|
|
397
|
+
tier_response = http.request(request)
|
398
|
+
case tier_response
|
399
|
+
when Net::HTTPSuccess
|
400
|
+
parsed_response = workit_response(tier_response)
|
401
|
+
if parsed_response[:network] != true
|
402
|
+
MrMurano::Verbose.error(
|
403
|
+
'Your business does not have access to business network features. Please upgrade your business.'
|
404
|
+
)
|
405
|
+
nil
|
406
|
+
else
|
407
|
+
true
|
408
|
+
end
|
409
|
+
else
|
410
|
+
showHttpError(request, tier_response)
|
411
|
+
nil
|
412
|
+
end
|
413
|
+
end
|
414
|
+
end
|
415
|
+
|
416
|
+
def self.must_not_be_managed!
|
417
|
+
# Check that the solution(s) are not managed.
|
418
|
+
# NOTE: BizAPI only tells us 'managed' via the business/<bizid>/solutions
|
419
|
+
# endpoint. I.e., we have to fetch all solutions, and cannot just check
|
420
|
+
# them individually. (lb): Probably not a big deal for most people, but
|
421
|
+
# I know some Support and QA biznesses have loads and loads o' solutions.
|
422
|
+
MrMurano::Verbose.whirly_msg 'Verifying solutions can be managed...'
|
423
|
+
biz = MrMurano::Business.new
|
424
|
+
solz = biz.solutions
|
425
|
+
solz.each do |sol|
|
426
|
+
# FIXME/2018-05-16: (lb): Fix this when Multi-solution support.
|
427
|
+
if [$cfg['application.id'], $cfg['product.id']].include? sol.sid
|
428
|
+
sol.must_not_be_managed!
|
429
|
+
end
|
430
|
+
end
|
431
|
+
MrMurano::Verbose.whirly_stop
|
432
|
+
end
|
360
433
|
end
|
361
434
|
end
|
362
435
|
|
data/lib/MrMurano/Config.rb
CHANGED
@@ -195,6 +195,7 @@ module MrMurano
|
|
195
195
|
set('tool.no-page', false, :defaults)
|
196
196
|
set('tool.no-progress', false, :defaults)
|
197
197
|
set('tool.show-password', false, :defaults)
|
198
|
+
set('tool.skip-managed', false, :defaults)
|
198
199
|
end
|
199
200
|
|
200
201
|
def set_defaults_net
|
@@ -222,12 +223,12 @@ module MrMurano
|
|
222
223
|
set('location.resources', 'specs/resources.yaml', :defaults)
|
223
224
|
set('location.cors', 'cors.yaml', :defaults)
|
224
225
|
# MUR-6562/MUR-6329: Changing defaults: files => assets; routes => endpoints.
|
225
|
-
|
226
|
-
|
226
|
+
set_defaults_location_newstyle('location.files', 'files', 'assets')
|
227
|
+
set_defaults_location_newstyle('location.endpoints', 'routes', 'endpoints')
|
227
228
|
end
|
228
229
|
|
229
230
|
# rubocop:disable Style/MethodName: Use snake_case for method names.
|
230
|
-
def
|
231
|
+
def set_defaults_location_newstyle(key, formerly, currently)
|
231
232
|
if @project_dir && !@project_dir.join(formerly).exist?
|
232
233
|
set(key, currently, :defaults)
|
233
234
|
elsif @project_dir.join(currently).exist?
|
data/lib/MrMurano/Keystore.rb
CHANGED
@@ -26,15 +26,19 @@ module MrMurano
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def getkey(key)
|
29
|
+
key = URI.encode_www_form_component(key)
|
29
30
|
ret = call(:get, :post, key: key)
|
30
31
|
ret[:value]
|
31
32
|
end
|
32
33
|
|
33
34
|
def setkey(key, value)
|
35
|
+
key = URI.encode_www_form_component(key)
|
36
|
+
value = URI.encode_www_form_component(value)
|
34
37
|
call(:set, :post, key: key, value: value)
|
35
38
|
end
|
36
39
|
|
37
40
|
def delkey(key)
|
41
|
+
key = URI.encode_www_form_component(key)
|
38
42
|
call(:delete, :post, key: key)
|
39
43
|
end
|
40
44
|
|