226 Commits

Author SHA1 Message Date
Manuel Romero
e4f070826d Divvy toggle on scenario props 2020-07-14 15:02:58 +02:00
Manuel Romero
bf84db1254 Finished 24x7 UI 2020-07-14 13:37:37 +02:00
Manuel Romero
36ea9bbba1 Autoshutdown 2020-07-13 17:57:50 +02:00
Manuel Romero
bd63ef3837 costexports download file 2020-07-09 12:57:38 +02:00
Manuel Romero
0283850cce Assign user to provision 2020-07-06 14:33:17 +02:00
Manuel Romero
dd1380f13b discurage external access 2020-06-25 16:53:23 +02:00
Manuel Romero
811c1560c4 docker-compose back to version 3.7 2020-06-10 16:46:00 +02:00
Manuel Romero
257cc64d8d Added docker image versions for workers 2020-06-10 16:40:15 +02:00
Manuel Romero
7abf246fd5 some examples in readme.md 2020-06-08 10:33:51 +02:00
Manuel Romero
3aea0e6acc new version 2020-06-08 09:16:46 +02:00
Manuel Romero
d3bf735edc build order changed 2020-06-05 15:53:09 +02:00
Manuel Romero
de09fe22a7 build order changed 2020-06-05 15:43:25 +02:00
Manuel Romero
75bbf452d2 dbinit 2020-06-05 15:30:11 +02:00
Manuel Romero
c5f3ddc4f2 better help script for cli 2020-06-05 15:24:23 +02:00
Manuel Romero
6751e8f0e3 final commit 2020-06-05 15:04:20 +02:00
Manuel Romero
aa4e6a9008 entrypoint for cli 2020-06-05 14:50:32 +02:00
Manuel Romero
9ef992752c dockerfiles 2020-06-05 13:46:24 +02:00
Manuel Romero
9ca0d8c374 rename projects 2020-06-05 12:56:06 +02:00
Manuel Romero
0ba99ed104 fix 2020-06-05 12:50:53 +02:00
Manuel Romero
a4b2262699 new cli docker image. Depency qmi-cloud-common 2020-06-05 12:46:30 +02:00
Manuel Romero
6f93a796a5 boom new dependency 2020-06-05 11:20:40 +02:00
Manuel Romero
2388fb6796 Better docker-compose 2020-06-05 10:44:29 +02:00
Manuel Romero
a920087c2c worker refactor with common 2020-06-04 17:21:06 +02:00
Manuel Romero
676057c583 new fix 2020-06-04 13:40:57 +02:00
Manuel Romero
bc9d2979f0 revert fix 2020-06-04 13:35:27 +02:00
Manuel Romero
4f79244f41 fix 2020-06-04 12:21:49 +02:00
Manuel Romero
297fe7bdbf server 2020-06-03 18:06:42 +02:00
Manuel Romero
52f4d11085 do not delete destroy items from destroy table 2020-06-03 18:00:19 +02:00
Manuel Romero
c4fe70cd9a Adding actualDestroyDate 2020-06-03 17:23:07 +02:00
Manuel Romero
422e5223c0 fix timeRunning for destroy with stopped vms 2020-06-03 16:22:33 +02:00
Manuel Romero
ccfb966afa disabled vmtypes query 2020-06-02 17:51:47 +02:00
Manuel Romero
a4a0c0a8d6 fix 2020-06-02 17:36:08 +02:00
Manuel Romero
749e607634 disabled vmtype 2020-06-02 17:34:51 +02:00
Manuel Romero
ae7c30cf23 Merge branch 'dev' 2020-06-02 14:55:15 +02:00
Manuel Romero
72e18a5758 last small fix 2020-06-02 14:49:48 +02:00
Manuel Romero
8fdef58216 fix 2020-06-02 13:50:27 +02:00
Manuel Romero
493d0f255d fixes 2020-06-02 13:30:14 +02:00
Manuel Romero
aba0eeff9c fix error_plan and error_init 2020-06-02 13:22:12 +02:00
Manuel Romero
600390ba5d Try error at init and plan 2020-06-02 13:06:37 +02:00
Manuel Romero
14d1c929a8 Removed old attributes for provision and scenario 2020-06-01 15:39:33 +02:00
Manuel Romero
22b0f5f66e Merge branch 'dev' 2020-05-29 14:26:48 +02:00
Manuel Romero
368d1fb318 fix old scenarios 2020-05-29 13:53:40 +02:00
Manuel Romero
fd7f2011ba provision showing scenario version 2020-05-29 13:35:41 +02:00
Manuel Romero
4d55ea40f1 fix version provision 2020-05-29 13:16:50 +02:00
Manuel Romero
3436b762bb Fix scenario version 2020-05-29 13:11:39 +02:00
Manuel Romero
d154688afc A lot of things. 2020-05-29 12:31:49 +02:00
Manuel Romero
d40f7b2aef fix sendEmail 2020-05-28 17:42:23 +02:00
Manuel Romero
ef53b8856e Fix sendEmail 2020-05-28 17:39:17 +02:00
Manuel Romero
4cf3611134 new version 2020-05-28 12:31:17 +02:00
Manuel Romero
a33bfa3012 apikeys on ui 2020-05-28 12:27:55 +02:00
Manuel Romero
2fe3ff5a0d echo 2020-05-28 10:36:30 +02:00
Manuel Romero
e6b03ad6b7 no uris 2020-05-28 10:24:55 +02:00
Manuel Romero
b7fb34bf07 Some minor fixes 2020-05-28 09:57:55 +02:00
Manuel Romero
a87924e6e6 faq 2020-05-28 09:50:55 +02:00
Manuel Romero
4d58eff50b Stop period to 20 days 2020-05-28 09:48:42 +02:00
Manuel Romero
5cf2e46c20 new version 2020-05-26 08:03:34 +02:00
Manuel Romero
89c431d651 fix 2020-05-22 13:43:40 +02:00
Manuel Romero
f7b21062d4 fix 2020-05-22 13:39:03 +02:00
Manuel Romero
1486130bb2 deploy opts 2020-05-22 13:15:52 +02:00
Manuel Romero
52d612ce3e Merge branch 'master' into dev 2020-05-22 12:49:17 +02:00
Manuel Romero
f44aad53d9 Send error back as soon as object not found after provision or destroy 2020-05-22 09:27:52 +02:00
Manuel Romero
e3fd3151c9 small fix table users 2020-05-22 09:07:02 +02:00
Manuel Romero
a8288938f5 if isExtenal 2020-05-21 15:16:55 +02:00
Manuel Romero
3c3d6b0477 Adding subnet for appgw 2020-05-21 14:50:15 +02:00
Manuel Romero
695943a194 fix 2020-05-21 12:54:34 +02:00
Manuel Romero
40f3ad19e0 Getting subscription at provision 2020-05-21 12:07:00 +02:00
Manuel Romero
57d0c14aa5 fix 2020-05-21 11:01:55 +02:00
Manuel Romero
f715a0c910 Fix db 2020-05-21 11:00:15 +02:00
Manuel Romero
6f97c0e712 Adding subscription id and subnetid to tf execution 2020-05-21 10:20:44 +02:00
Manuel Romero
1ba83095d4 building lastestdev 2020-05-21 09:53:48 +02:00
Manuel Romero
d798fe4b40 trigger 2020-05-21 09:50:45 +02:00
Manuel Romero
b8d9d60df9 fix 2020-05-21 09:42:07 +02:00
Manuel Romero
6da9570384 test build 2020-05-21 09:33:03 +02:00
Manuel Romero
031c989747 do not build latest if branch 2020-05-21 09:10:21 +02:00
Manuel Romero
d57936a780 tag names for branches 2020-05-21 09:00:39 +02:00
Manuel Romero
558f1523d4 Test 2020-05-21 08:51:59 +02:00
Manuel Romero
183d743600 removed mongo-express 2020-05-20 19:03:16 +02:00
Manuel Romero
47688990ff fi 2020-05-20 18:17:18 +02:00
Manuel Romero
7fea117e64 Fix mongo url 2020-05-20 18:11:15 +02:00
Manuel Romero
a2b623a36c Adding GIT_TAG 2020-05-20 16:15:54 +02:00
Manuel Romero
00bbd12e6d vmtypes to dbinit 2020-05-20 14:12:46 +02:00
Manuel Romero
29dd07c1bd Added initial data 2020-05-20 14:00:29 +02:00
Manuel Romero
646c075ebe Little thing for cosmosdb in sessions for express 2020-05-20 12:57:37 +02:00
Manuel Romero
6c00375362 Accomodation for CosmosDB 2020-05-19 17:26:54 +02:00
Manuel Romero
2baaa1e0d5 Fix edit scenario with subscription 2020-05-19 17:26:13 +02:00
Manuel Romero
007b2bcc97 Added subscriptions 2020-05-18 09:12:31 +02:00
Manuel Romero
7e74f80e0f subscription 2020-05-17 19:02:58 +02:00
Manuel Romero
3833e45655 Subscriptions per scenario 2020-05-17 13:10:35 +02:00
Manuel Romero
825bdfb3e1 Setting prefix from provision scenario 2020-05-16 15:17:47 +02:00
Manuel Romero
e924252a21 get provision vmImages 2020-05-14 19:06:37 +02:00
Manuel Romero
dd3078b943 Edit and Add scenario 2020-05-13 12:46:38 +02:00
Manuel Romero
bfa1c9201a fix scenarios admin 2020-05-13 10:15:34 +02:00
Manuel Romero
dbd7a10202 fix scenarios admin 2020-05-13 09:59:42 +02:00
Manuel Romero
0328373022 Adding populates and selet to get mongo 2020-05-12 19:05:43 +02:00
Manuel Romero
a072653cac is enabled info 2020-05-12 12:53:15 +02:00
Manuel Romero
794eb8c908 Adding AutoDestroy times 2020-05-12 12:40:25 +02:00
Manuel Romero
62cc26e65d _buildVarsExec 2020-05-10 18:10:17 +02:00
Manuel Romero
f7a0968a5e Do not set waf policy if not external 2020-05-10 18:02:03 +02:00
Manuel Romero
3acba670ee fix 2020-05-10 14:41:53 +02:00
Manuel Romero
3a3cb3196e fix provisions 2020-05-10 12:58:20 +02:00
Manuel Romero
d742a4ff2f More to admin provisions 2020-05-10 12:44:45 +02:00
Manuel Romero
990b0d80e3 Fix 2020-05-10 11:57:23 +02:00
Manuel Romero
2d512b49be Disable scenario property 2020-05-10 11:50:35 +02:00
Manuel Romero
61b57d5bc7 Setting isExternalAccess from UI 2020-05-08 16:27:54 +02:00
Manuel Romero
8f48cfbc69 lastLogin 2020-05-07 17:43:31 +02:00
Manuel Romero
9cee830fd4 Admin enhance 2020-05-07 17:18:19 +02:00
Manuel Romero
4f481fd88f vmtypes endpoint 2020-05-07 12:32:21 +02:00
Manuel Romero
2faf109353 disksize default 2020-05-07 12:21:09 +02:00
Manuel Romero
19a0fa715e 128 as minimum disk size 2020-05-07 12:10:54 +02:00
Manuel Romero
2e194b72b8 display disk size on UI 2020-05-07 12:06:02 +02:00
Manuel Romero
039a13bd30 set disk size from UI 2020-05-07 11:56:14 +02:00
Manuel Romero
26fa09541a less logs and oid as index 2020-05-07 09:13:55 +02:00
Manuel Romero
cfbe52efc1 paging 2020-05-06 17:37:28 +02:00
Manuel Romero
a267fedaef Adding notifications to Admin 2020-05-06 08:59:57 +02:00
Manuel Romero
d6cb0fc78f No auto refresh provisions 2020-05-05 16:34:31 +02:00
Manuel Romero
1fbbbde1a1 No needed log 2020-05-05 14:59:16 +02:00
Manuel Romero
08721bb810 populate user for ApiKey model 2020-05-05 14:25:21 +02:00
Manuel Romero
68d2bef6ba populate user for ApiKey model 2020-05-05 14:23:59 +02:00
Manuel Romero
5199cabd26 fix 2020-05-05 14:19:51 +02:00
Manuel Romero
59546838ac fix 2020-05-05 14:15:21 +02:00
Manuel Romero
4740163572 fix 2020-05-05 13:59:13 +02:00
Manuel Romero
22af7f903e reorg shell scripts and cron 2020-05-05 13:55:38 +02:00
Manuel Romero
e921182575 Getting scenarios from git 2020-05-05 13:26:49 +02:00
Manuel Romero
b88e356536 Scenarios edit from admin 2020-05-04 13:41:36 +02:00
Manuel Romero
9292bba09a Admin sections pills 2020-05-04 12:32:57 +02:00
Manuel Romero
8b1e978e7c Merge branch 'master' into p2 2020-05-04 11:08:13 +02:00
Manuel Romero
24b1252911 fix start vms 2020-05-04 09:22:05 +02:00
Manuel Romero
edece4f91c Scenarios in admin 2020-05-03 21:53:36 +02:00
Manuel Romero
b84d6631b3 Merge branch 'master' into p2 2020-04-30 16:27:17 +02:00
Manuel Romero
73a427bb09 Disable scenarios 2020-04-30 15:34:06 +02:00
Manuel Romero
0063e27bb2 only populates for user 2020-04-30 13:25:59 +02:00
Manuel Romero
24708f2bd8 Api-docs only for admins 2020-04-30 13:14:00 +02:00
Manuel Romero
317266e09a getById instead of getSingle 2020-04-30 13:08:00 +02:00
Manuel Romero
a9ad3d34f9 user model less methods 2020-04-30 13:02:41 +02:00
Manuel Romero
2b2554e4f7 Security on provisions 2020-04-30 12:56:27 +02:00
Manuel Romero
343c14d846 Improvements 2020-04-30 12:46:31 +02:00
Manuel Romero
fd158a2e56 paging provisions 2020-04-29 16:14:11 +02:00
Manuel Romero
dd542457de polish ui 2020-04-29 13:59:32 +02:00
Manuel Romero
74cacd2854 Info 2020-04-28 14:06:29 +02:00
Manuel Romero
5fada4feed Also fixed send email 2020-04-28 14:00:44 +02:00
Manuel Romero
4ef3df4d1d info showing new sizing 2020-04-28 12:53:17 +02:00
Manuel Romero
d7ba6dca3b Change order 2020-04-28 11:28:29 +02:00
Manuel Romero
0702c2a058 Test fix 2020-04-28 11:13:22 +02:00
Manuel Romero
3fb9c3b522 ImageID 2020-04-28 10:58:35 +02:00
Manuel Romero
22d7b724a1 No needed field 2020-04-28 10:08:37 +02:00
Manuel Romero
9a627d4927 New way to size provisions 2020-04-28 10:05:32 +02:00
Manuel Romero
c8fddfe18d Adding more comples provision details for vms 2020-04-27 18:17:00 +02:00
Manuel Romero
805a93dc60 Using vmImage 2020-04-27 12:20:03 +02:00
Manuel Romero
f65391ef6d fix destroy 2020-04-27 12:01:35 +02:00
Manuel Romero
6ed9bedae0 UI and provision with Image 2020-04-27 12:00:35 +02:00
Manuel Romero
6b4757df36 Green text 2020-04-26 11:11:24 +02:00
Manuel Romero
e1970e716b More tooltips 2020-04-26 11:04:14 +02:00
Manuel Romero
b996cf004c Adding provision description 2020-04-26 10:58:08 +02:00
Manuel Romero
92f325a67b les logs 2020-04-25 11:15:16 +02:00
Manuel Romero
81919c8e9d Add notification 2020-04-25 11:10:01 +02:00
Manuel Romero
2a3eccfe30 fix 2020-04-24 15:51:51 +02:00
Manuel Romero
14158d3f60 fix scenarios model 2020-04-24 15:23:19 +02:00
Manuel Romero
fbec2def38 remove no needed templates 2020-04-24 13:58:37 +02:00
Manuel Romero
b610a376f1 Name gen image 2020-04-24 13:40:17 +02:00
Manuel Romero
d9f7eff0f2 Set random image name 2020-04-24 13:30:20 +02:00
Manuel Romero
8399f18e11 Default values 2020-04-24 13:25:42 +02:00
Manuel Romero
067dc2c7da newImageName field 2020-04-24 13:21:27 +02:00
Manuel Romero
a7f8c42983 faq typos 2020-04-24 13:19:52 +02:00
Manuel Romero
8d041ee600 Create image 2020-04-24 13:18:53 +02:00
Manuel Romero
186fb52ac1 fix 2020-04-23 11:01:55 +02:00
Manuel Romero
2814c92a2e stop5 2020-04-23 10:47:19 +02:00
Manuel Romero
fb5abbdee0 process stop and destroy 2020-04-23 10:38:54 +02:00
Manuel Romero
6c29373a0f Destroy email to actual owner 2020-04-23 09:42:23 +02:00
Manuel Romero
ece1183e55 Typo 2020-04-22 16:37:21 +02:00
Manuel Romero
54973c7306 Typo 2020-04-22 16:35:59 +02:00
Manuel Romero
cd99761892 using stoppedFrom 2020-04-22 16:27:35 +02:00
Manuel Romero
e764eac338 stoppedFrom in provision model 2020-04-22 16:10:02 +02:00
Manuel Romero
663e1f577d stoppedFrom 2020-04-22 16:07:36 +02:00
Manuel Romero
2b29df5164 fix 2020-04-22 16:02:27 +02:00
Manuel Romero
a6dc7dacdd Autodestroy 2020-04-22 15:36:02 +02:00
Manuel Romero
818114a701 faq local 2020-04-21 18:12:43 +02:00
Manuel Romero
a42eb85772 fix 2020-04-20 13:19:36 +02:00
Manuel Romero
130e0d8de9 fix 2020-04-20 13:18:47 +02:00
Manuel Romero
8a770ec0fa fix 2020-04-20 13:18:14 +02:00
Manuel Romero
7d15711bb2 fixes 2020-04-20 13:16:41 +02:00
Manuel Romero
39e3d777bc fix 2020-04-20 13:07:16 +02:00
Manuel Romero
8b6dac3216 new faq 2020-04-19 12:06:17 +02:00
Manuel Romero
9f412be93c new faq 2020-04-19 12:02:14 +02:00
Manuel Romero
0b43901c11 Do not show auto stop time if is deleted 2020-04-19 11:32:27 +02:00
Manuel Romero
c15fa47244 faq 2020-04-17 11:20:41 +02:00
Manuel Romero
8de21b4bbf faq 2020-04-17 11:11:47 +02:00
Manuel Romero
3c3e987c62 readme 2020-04-17 10:01:52 +02:00
Manuel Romero
f2d2d740d7 Test faq 2020-04-17 10:00:41 +02:00
Manuel Romero
8ff19f260a SOme fixes to docker-compose yaml 2020-04-17 09:58:07 +02:00
Manuel Romero
5a8056adee Adding FAQ 2020-04-17 09:48:20 +02:00
Manuel Romero
665871ba78 is real 2020-04-16 17:17:13 +02:00
Manuel Romero
1e937414d3 Extend pendingNextAction to null 2020-04-16 17:04:10 +02:00
Manuel Romero
356e1a3827 Notifications 2020-04-16 17:01:35 +02:00
Manuel Romero
98f1f1c08f Param RUNNING_PERIOD 2020-04-16 14:39:40 +02:00
Manuel Romero
c7f50a776b Negative time 2020-04-16 14:17:02 +02:00
Manuel Romero
a7b7551b52 Vms auto stop in admin 2020-04-16 13:39:15 +02:00
Manuel Romero
8123a7a850 Do not show destroy in admin 2020-04-16 13:13:30 +02:00
Manuel Romero
7fbb3318e9 Fixed runnign from created 2020-04-16 12:54:20 +02:00
Manuel Romero
379f373b86 fix typo 2020-04-16 12:46:21 +02:00
Manuel Romero
30825a6271 Not async 2020-04-16 12:28:49 +02:00
Manuel Romero
45ad35308e fix 2020-04-16 11:58:32 +02:00
Manuel Romero
b2fe88b6c7 Deallocate/start async functions 2020-04-16 11:44:13 +02:00
Manuel Romero
a8f111c463 Time to stop 2020-04-16 11:12:09 +02:00
Manuel Romero
70e5113ef9 sendemail 2020-04-15 18:34:01 +02:00
Manuel Romero
fae6276267 fix 2020-04-15 18:06:47 +02:00
Manuel Romero
ad08d71da1 Extend button 2020-04-15 17:13:28 +02:00
Manuel Romero
fd29c6c3ca checkstop 2020-04-15 16:10:12 +02:00
Manuel Romero
c1caefc207 Time running 2020-04-15 14:20:00 +02:00
Manuel Romero
5149a2c5e1 fix timeRunning 2020-04-15 10:40:11 +02:00
Manuel Romero
cb51334761 time running 2020-04-15 09:08:57 +02:00
Manuel Romero
45281587f7 stop5.js 2020-04-08 18:50:15 +02:00
Manuel Romero
1131a8607d new version 2020-04-08 16:49:07 +02:00
Manuel Romero
1ced9bbc9e trigger CDCI 2020-04-08 16:44:31 +02:00
Manuel Romero
353355a101 Added API Key authentication to API 2020-04-08 16:12:21 +02:00
Manuel Romero
ca081f0bdd Some enhancements 2020-04-08 15:02:21 +02:00
Manuel Romero
629c2a03da Using openapi300 2020-04-08 13:02:45 +02:00
Manuel Romero
ab15a02d54 Admin scenario 2020-04-07 16:45:26 +02:00
Manuel Romero
17a93838f9 More UI stuff 2020-04-07 16:16:11 +02:00
Manuel Romero
e3802d2af2 build 2020-04-07 10:09:10 +02:00
Manuel Romero
7cbe9dbf90 Fix message 2020-04-02 10:51:43 +02:00
Manuel Romero
6c60ccd08f appgw link if provisioned 2020-04-02 10:40:37 +02:00
Manuel Romero
14daf2fa8e Fix 2020-04-02 08:06:33 +02:00
Manuel Romero
0744654d3e Adding isWafPolicyAppGw 2020-04-02 08:02:03 +02:00
Manuel Romero
0ae75f82dc Confirm modal 2020-03-29 22:25:10 +02:00
Manuel Romero
872f07f043 delete old String fields and set index 2020-03-28 15:59:39 +01:00
Manuel Romero
19c22fbfec disable databse transform 2020-03-28 15:42:54 +01:00
234 changed files with 16396 additions and 20195 deletions

2
.gitignore vendored
View File

@@ -5,7 +5,7 @@
/out-tsc
# dependencies
/node_modules
**/node_modules
# IDEs and editors
/.idea

View File

@@ -9,7 +9,9 @@ stages:
stage: build
only:
- master
- dev
script:
- echo $DOCKER_REGISTRY_USER
- chmod +x ./gitlab-ci.sh
- ./gitlab-ci.sh

View File

@@ -1,3 +1,25 @@
FROM node:13.8-alpine
# Stage 1:
FROM node:13.8-alpine AS sources
RUN apk --no-cache add yarn
WORKDIR /var/www/app
WORKDIR /var/www/app
ADD ./package.json ./
ADD ./yarn.lock ./
ADD ./qmi-cloud-common ./qmi-cloud-common
RUN yarn install --production
# Stage 2:
FROM node:13.8-alpine AS production
WORKDIR /var/www/app
COPY --from=sources /var/www/app/node_modules ./node_modules
COPY --from=sources /var/www/app/package.json ./package.json
COPY ./server ./server
COPY ./dist ./dist
EXPOSE 3000
EXPOSE 3100
CMD ["node", "-r", "esm", "server/server"]

View File

@@ -1,8 +1,9 @@
# QMI Cloud
## Pre-requisites
- Docker (desktop for Mac - temporary)
- A file named secrets.json with this JSON information
- Docker
- Docker-Compose
- A file named secrets.json with this JSON information (as Manuel Romero for this details)
```json
{
@@ -12,8 +13,11 @@
}
```
## Run it
It will build necessary images if they don't exist.
```shell
git clone git@gitlab.com:qmi/qmi-cloud.git
cd qmi-cloud
@@ -24,9 +28,13 @@ Wait until this line shows up:
```qmi-cloud-app | MongoDB connected...```
On another terminal, run:
```shell
docker container ls
```
Should show these containers:
```
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
@@ -37,41 +45,33 @@ ad01a01a4903 qlikgear/qmi-cloud-app "docker-entrypoint.s…" 4 hou
94a1414554aa redis "redis-server --appe…" 4 hours ago Up 2 minutes 6379/tcp qmi-cloud-redis
```
## TEST
## Authentication
Go to: http://localhost:3000
### Authentication
Authentication with Azure AD (Qlik).
## Bull QUEUE system
### Bull QUEUE system
It is used to queue Terraform executions in Docker containers.
UI: http://localhost:3000/arena
## Mongo / Mongo Express Client
### Mongo / Mongo Express Client
Mongo is for managment.
UI: http://localhost:8081
Basic-Auth: qlik / Qlik1234
Database: qmi
http://localhost:8081/db/qmi/
Database: qmicloud
## API / Swagger API-DOCS
### API / Swagger API-DOCS
It shows available endpoints
http://localhost:3000/api-docs
## TEST
- Go to: http://localhost:3000
- Authenticate
- Go to: http://localhost:3000/provisions
### Available Scenarios that will deploy to Azure
- azqmi-qdc-sn
__NOTE: WARNING!!! It's using MANUEL's personal account "Visual Studio Professional" credits in Azure for now.__

View File

@@ -27,18 +27,23 @@
"src/assets"
],
"styles": [
"src/styles.scss",
"node_modules/@fortawesome/fontawesome-free/scss/fontawesome.scss",
"node_modules/@fortawesome/fontawesome-free/scss/solid.scss",
"node_modules/@fortawesome/fontawesome-free/scss/regular.scss",
"node_modules/@fortawesome/fontawesome-free/scss/brands.scss",
"node_modules/angular-bootstrap-md/assets/scss/bootstrap/bootstrap.scss",
"node_modules/angular-bootstrap-md/assets/scss/mdb.scss",
"node_modules/animate.css/animate.css"
"node_modules/animate.css/animate.css",
"node_modules/prismjs/themes/prism.css",
"src/styles.scss"
],
"scripts": [
"node_modules/chart.js/dist/Chart.js",
"node_modules/hammerjs/hammer.min.js"
"node_modules/hammerjs/hammer.min.js",
"node_modules/marked/lib/marked.js",
"node_modules/prismjs/prism.js",
"node_modules/prismjs/plugins/line-highlight/prism-line-highlight.js",
"node_modules/prismjs/plugins/line-numbers/prism-line-numbers.js"
]
},
"configurations": {

View File

@@ -8,112 +8,17 @@ var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Component } from '@angular/core';
import { UsersService } from '../services/users.service';
import { ProvisionsService } from '../services/provisions.service';
import { timer } from 'rxjs';
import { switchMap } from 'rxjs/operators';
import { AuthGuard } from '../services/auth.guard';
var AdminComponent = /** @class */ (function () {
function AdminComponent(_usersService, _provisionsService, _auth) {
var _this = this;
this._usersService = _usersService;
this._provisionsService = _provisionsService;
this._auth = _auth;
this.logShow = false;
this.logstype = 'provision';
this.selectedprov = null;
this._auth.getUserInfo().subscribe(function (value) {
_this.currentUser = value;
});
function AdminComponent() {
this.sections = ['Provisions', 'Users', 'Scenarios', 'Notifications', 'Subscriptions'];
this.tab = 'Provisions';
}
AdminComponent.prototype._fillUser = function (pair) {
var _this = this;
pair['0'].forEach(function (prov) {
var foundDes = _this.users.filter(function (u) {
return u._id.toString() === prov.userId.toString();
});
if (foundDes.length) {
prov.user = foundDes[0].displayName;
}
});
};
AdminComponent.prototype._getUsers = function () {
};
AdminComponent.prototype.ngOnInit = function () {
var _this = this;
this._usersService.getUsers().subscribe(function (res) {
_this.users = res;
_this.subscription = timer(0, 5000).pipe(switchMap(function () { return _this._provisionsService.getCombinedProvisionsAdmin(); })).subscribe(function (pair) {
_this._provisionsService.composePair(pair);
_this._fillUser(pair);
_this.destroys = pair[1];
_this.provisions = pair[0];
});
});
};
AdminComponent.prototype._refresh = function () {
var _this = this;
this.instantSubs = this._provisionsService.getCombinedProvisionsAdmin().subscribe(function (pair) {
_this._provisionsService.composePair(pair);
_this._fillUser(pair);
_this.destroys = pair[1];
_this.provisions = pair[0];
_this.instantSubs.unsubscribe();
});
};
AdminComponent.prototype.ngOnDestroy = function () {
this.subscription.unsubscribe();
if (this.instantSubs) {
this.instantSubs.unsubscribe();
}
};
AdminComponent.prototype.del = function (provision) {
var _this = this;
this._provisionsService.delProvision(provision._id.toString(), provision.userId).subscribe(function (res) {
console.log("Done!", res);
_this._refresh();
});
};
AdminComponent.prototype.destroy = function (provision) {
var _this = this;
this._provisionsService.newDestroy({ "id": provision._id.toString() }, provision.userId).subscribe(function (res) {
console.log("Done!", res);
_this._refresh();
});
};
AdminComponent.prototype.showLogs = function ($event, provision, type) {
AdminComponent.prototype.tabSelect = function ($event, tab) {
$event.preventDefault();
$event.stopPropagation();
this.logstype = type;
this.logShow = false;
this.selectedprov = provision;
this.logShow = true;
};
AdminComponent.prototype.onLogsClose = function ($event) {
this.selectedprov = null;
this.logShow = false;
};
AdminComponent.prototype.onStartProvision = function ($event) {
console.log("onStartProvision");
this._refresh();
};
AdminComponent.prototype.setAdmin = function (user) {
var _this = this;
this._usersService.updateUser(user._id, { "role": "admin" }).subscribe(function (res1) {
console.log("Updated", res1);
_this._usersService.getUsers().subscribe(function (res) {
_this.users = res;
});
});
};
AdminComponent.prototype.removeAdmin = function (user) {
var _this = this;
this._usersService.updateUser(user._id, { "role": null }).subscribe(function (res1) {
console.log("Updated", res1);
_this._usersService.getUsers().subscribe(function (res) {
_this.users = res;
});
});
this.tab = tab;
};
AdminComponent = __decorate([
Component({
@@ -121,7 +26,7 @@ var AdminComponent = /** @class */ (function () {
templateUrl: './admin.component.html',
styleUrls: ['./admin.component.scss']
}),
__metadata("design:paramtypes", [UsersService, ProvisionsService, AuthGuard])
__metadata("design:paramtypes", [])
], AdminComponent);
return AdminComponent;
}());

View File

@@ -1 +1 @@
{"version":3,"file":"admin.component.js","sourceRoot":"","sources":["../../../../../src/app/admin/admin.component.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"admin.component.js","sourceRoot":"","sources":["../../../../../src/app/admin/admin.component.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAOlD;IAKE;QAHA,aAAQ,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;QAClF,QAAG,GAAa,YAAY,CAAC;IAEb,CAAC;IAEjB,iCAAQ,GAAR;IACA,CAAC;IAED,kCAAS,GAAT,UAAU,MAAM,EAAE,GAAG;QACnB,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,CAAC,eAAe,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAdU,cAAc;QAL1B,SAAS,CAAC;YACT,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,wBAAwB;YACrC,SAAS,EAAE,CAAC,wBAAwB,CAAC;SACtC,CAAC;;OACW,cAAc,CAgB1B;IAAD,qBAAC;CAAA,AAhBD,IAgBC;SAhBY,cAAc"}

View File

@@ -0,0 +1,43 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Component, ViewChild, ElementRef } from '@angular/core';
import { AlertService } from '../services/alert.service';
var AlertComponent = /** @class */ (function () {
function AlertComponent(_alertService) {
this._alertService = _alertService;
this.alert = null;
}
AlertComponent.prototype.ngOnInit = function () {
this.subscription = this._alertService.getAlertEmitter().subscribe(function (data) {
this.alert = data;
}.bind(this));
};
AlertComponent.prototype.ngOnDestroy = function () {
this.subscription.unsubscribe();
};
AlertComponent.prototype.closeAlert = function () {
this.alert = null;
};
__decorate([
ViewChild('qmialert', { static: true }),
__metadata("design:type", ElementRef)
], AlertComponent.prototype, "alertEl", void 0);
AlertComponent = __decorate([
Component({
selector: 'qmi-alert',
templateUrl: './alert.component.html',
styleUrls: ['./alert.component.scss']
}),
__metadata("design:paramtypes", [AlertService])
], AlertComponent);
return AlertComponent;
}());
export { AlertComponent };
//# sourceMappingURL=alert.component.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"alert.component.js","sourceRoot":"","sources":["../../../../../src/app/alert/alert.component.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAqB,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAQzD;IAME,wBAAoB,aAA2B;QAA3B,kBAAa,GAAb,aAAa,CAAc;QAF/C,UAAK,GAAS,IAAI,CAAC;IAE+B,CAAC;IAEnD,iCAAQ,GAAR;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,UAAS,IAAI;YAC5E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChB,CAAC;IAED,oCAAW,GAAX;QACE,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IAED,mCAAU,GAAV;QACI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAlBwC;QAAxC,SAAS,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;kCAAU,UAAU;mDAAC;IAFlD,cAAc;QAL1B,SAAS,CAAC;YACT,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,wBAAwB;YACrC,SAAS,EAAE,CAAC,wBAAwB,CAAC;SACtC,CAAC;yCAOmC,YAAY;OANpC,cAAc,CAsB1B;IAAD,qBAAC;CAAA,AAtBD,IAsBC;SAtBY,cAAc"}

View File

@@ -0,0 +1,40 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Component } from '@angular/core';
import { MDBModalRef } from 'angular-bootstrap-md';
import { Subject } from 'rxjs';
var ModalConfirmComponent = /** @class */ (function () {
function ModalConfirmComponent(modalRef) {
this.modalRef = modalRef;
this.action = new Subject();
}
ModalConfirmComponent.prototype.ngOnInit = function () {
if (!this.info.buttonColor) {
this.info.buttonColor = "danger";
}
};
ModalConfirmComponent.prototype.ngOnDestroy = function () {
};
ModalConfirmComponent.prototype.confirm = function () {
this.action.next();
this.modalRef.hide();
};
ModalConfirmComponent = __decorate([
Component({
selector: 'qmi-modalconfirm',
templateUrl: './confirm.component.html',
styleUrls: ['./confirm.component.scss']
}),
__metadata("design:paramtypes", [MDBModalRef])
], ModalConfirmComponent);
return ModalConfirmComponent;
}());
export { ModalConfirmComponent };
//# sourceMappingURL=confirm.component.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"confirm.component.js","sourceRoot":"","sources":["../../../../../src/app/alert/confirm.component.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAA4B,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAO/B;IAKE,+BAAoB,QAAqB;QAArB,aAAQ,GAAR,QAAQ,CAAa;QAFzC,WAAM,GAAiB,IAAI,OAAO,EAAE,CAAC;IAEQ,CAAC;IAE9C,wCAAQ,GAAR;QACE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;SAClC;IACH,CAAC;IAED,2CAAW,GAAX;IAEA,CAAC;IAED,uCAAO,GAAP;QACI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IApBU,qBAAqB;QALjC,SAAS,CAAC;YACT,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,0BAA0B;YACvC,SAAS,EAAE,CAAC,0BAA0B,CAAC;SACxC,CAAC;yCAM8B,WAAW;OAL9B,qBAAqB,CAsBjC;IAAD,4BAAC;CAAA,AAtBD,IAsBC;SAtBY,qBAAqB"}

View File

@@ -0,0 +1,99 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Component } from '@angular/core';
import { MDBModalRef } from 'angular-bootstrap-md';
import { Subject } from 'rxjs';
import { ScenariosService } from '../services/scenarios.service';
import { SubscriptionsService } from '../services/subscriptions.service';
var ScenarioModalComponent = /** @class */ (function () {
function ScenarioModalComponent(modalRef, _scenariosService, _subscriptionsService) {
this.modalRef = modalRef;
this._scenariosService = _scenariosService;
this._subscriptionsService = _subscriptionsService;
this.action = new Subject();
this.sendData = {
availableProductVersions: [{
product: 'String: <ie: Qlik Sense>',
vmTypeDefault: 'String: <i.e: Standard_D8s_v3>',
diskSizeGbDefault: 'Integer: <values: 128,250,500,750,1000>',
index: 'vm1',
versions: []
}]
};
}
ScenarioModalComponent.prototype.ngOnInit = function () {
var _this = this;
this._subscriptionsService.getSubscriptions().subscribe(function (res) {
_this.subscriptions = res.results;
if (_this.scenario) {
_this.sendData = JSON.parse(JSON.stringify(_this.scenario));
}
if (!_this.sendData.subscription) {
_this.sendData.subscription = res.results[0]._id;
}
});
};
ScenarioModalComponent.prototype.ngOnDestroy = function () {
};
ScenarioModalComponent.prototype.confirm = function () {
var _this = this;
console.log("sendData", this.sendData);
//this.action.next(this.sendData);
if (this.sendData._id) {
var id = this.sendData._id.toString();
this.sendData._id = undefined;
this._scenariosService.updateScenario(id, this.sendData).subscribe(function (res) {
console.log("done", res);
_this.action.next("DONE!!!");
_this.modalRef.hide();
});
}
else {
this._scenariosService.addScenario(this.sendData).subscribe(function (res) {
console.log("done", res);
_this.action.next("DONE!!!");
_this.modalRef.hide();
});
}
};
ScenarioModalComponent.prototype.delete = function () {
var _this = this;
this._scenariosService.deleteScenario(this.sendData._id).subscribe(function (res) {
console.log("done", res);
_this.action.next("DONE!!!");
_this.modalRef.hide();
});
};
ScenarioModalComponent.prototype.checkOnchange = function ($event, field) {
console.log("Checked?", $event.checked);
this.sendData[field] = $event.checked;
};
ScenarioModalComponent.prototype.updateJson = function (event, property) {
var editField = event.target.textContent.trim();
try {
var value = JSON.parse(editField);
this.sendData[property] = value;
}
catch (e) {
console.log("error json", e);
}
};
ScenarioModalComponent = __decorate([
Component({
selector: 'qmi-new-scenario',
templateUrl: './edit-scenario.component.html',
styleUrls: ['./edit-scenario.component.scss']
}),
__metadata("design:paramtypes", [MDBModalRef, ScenariosService, SubscriptionsService])
], ScenarioModalComponent);
return ScenarioModalComponent;
}());
export { ScenarioModalComponent };
//# sourceMappingURL=edit-scenario.component.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"edit-scenario.component.js","sourceRoot":"","sources":["../../../../../src/app/alert/edit-scenario.component.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,68 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Component } from '@angular/core';
import { MDBModalRef } from 'angular-bootstrap-md';
import { Subject } from 'rxjs';
import { SubscriptionsService } from '../services/subscriptions.service';
var SubscriptionModalComponent = /** @class */ (function () {
function SubscriptionModalComponent(modalRef, _subscriptionsService) {
this.modalRef = modalRef;
this._subscriptionsService = _subscriptionsService;
this.action = new Subject();
this.sendData = {};
}
SubscriptionModalComponent.prototype.ngOnInit = function () {
if (this.subscription) {
this.sendData = JSON.parse(JSON.stringify(this.subscription));
}
};
SubscriptionModalComponent.prototype.ngOnDestroy = function () {
};
SubscriptionModalComponent.prototype.confirm = function () {
var _this = this;
console.log("sendData", this.sendData);
//this.action.next(this.sendData);
if (this.sendData._id) {
var id = this.sendData._id.toString();
this.sendData._id = undefined;
this._subscriptionsService.updateSubscription(id, this.sendData).subscribe(function (res) {
console.log("done", res);
_this.action.next("DONE!!!");
_this.modalRef.hide();
});
}
else {
this._subscriptionsService.addSubscription(this.sendData).subscribe(function (res) {
console.log("done", res);
_this.action.next("DONE!!!");
_this.modalRef.hide();
});
}
};
SubscriptionModalComponent.prototype.delete = function () {
var _this = this;
this._subscriptionsService.deleteScenario(this.sendData._id).subscribe(function (res) {
console.log("done", res);
_this.action.next("DONE!!!");
_this.modalRef.hide();
});
};
SubscriptionModalComponent = __decorate([
Component({
selector: 'qmi-new-subscription',
templateUrl: './edit-subscription.component.html',
styleUrls: ['./edit-subscription.component.scss']
}),
__metadata("design:paramtypes", [MDBModalRef, SubscriptionsService])
], SubscriptionModalComponent);
return SubscriptionModalComponent;
}());
export { SubscriptionModalComponent };
//# sourceMappingURL=edit-subscription.component.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"edit-subscription.component.js","sourceRoot":"","sources":["../../../../../src/app/alert/edit-subscription.component.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAgB,MAAM,MAAM,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAOzE;IASE,oCAAoB,QAAqB,EAAU,qBAA2C;QAA1E,aAAQ,GAAR,QAAQ,CAAa;QAAU,0BAAqB,GAArB,qBAAqB,CAAsB;QAN9F,WAAM,GAAiB,IAAI,OAAO,EAAE,CAAC;QAGrC,aAAQ,GAAS,EAChB,CAAC;IAEgG,CAAC;IAEnG,6CAAQ,GAAR;QACI,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;SAC9D;IACL,CAAC;IAED,gDAAW,GAAX;IAEA,CAAC;IAED,4CAAO,GAAP;QAAA,iBAqBC;QAnBG,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,kCAAkC;QAClC,IAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACtB,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,SAAS,CAAC;YAC9B,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAE,UAAA,GAAG;gBAC7E,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACzB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5B,KAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAE,UAAA,GAAG;gBACtE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACzB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5B,KAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;SACJ;IAGL,CAAC;IAED,2CAAM,GAAN;QAAA,iBAMC;QALC,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAE,UAAA,GAAG;YACzE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACzB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5B,KAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAlDU,0BAA0B;QALtC,SAAS,CAAC;YACT,QAAQ,EAAE,sBAAsB;YAChC,WAAW,EAAE,oCAAoC;YACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;SAClD,CAAC;yCAU8B,WAAW,EAAiC,oBAAoB;OATnF,0BAA0B,CAoDtC;IAAD,iCAAC;CAAA,AApDD,IAoDC;SApDY,0BAA0B"}

View File

@@ -0,0 +1,31 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Component } from '@angular/core';
import { MDBModalRef } from 'angular-bootstrap-md';
var ModalInfoComponent = /** @class */ (function () {
function ModalInfoComponent(modalRef) {
this.modalRef = modalRef;
}
ModalInfoComponent.prototype.ngOnInit = function () {
};
ModalInfoComponent.prototype.ngOnDestroy = function () {
};
ModalInfoComponent = __decorate([
Component({
selector: 'qmi-modalinfo',
templateUrl: './modalinfo.component.html',
styleUrls: ['./modalinfo.component.scss']
}),
__metadata("design:paramtypes", [MDBModalRef])
], ModalInfoComponent);
return ModalInfoComponent;
}());
export { ModalInfoComponent };
//# sourceMappingURL=modalinfo.component.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"modalinfo.component.js","sourceRoot":"","sources":["../../../../../src/app/alert/modalinfo.component.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAA4B,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAOnD;IAIE,4BAAoB,QAAqB;QAArB,aAAQ,GAAR,QAAQ,CAAa;IAAI,CAAC;IAE9C,qCAAQ,GAAR;IAEA,CAAC;IAED,wCAAW,GAAX;IAEA,CAAC;IAZU,kBAAkB;QAL9B,SAAS,CAAC;YACT,QAAQ,EAAE,eAAe;YACzB,WAAW,EAAE,4BAA4B;YACzC,SAAS,EAAE,CAAC,4BAA4B,CAAC;SAC1C,CAAC;yCAK8B,WAAW;OAJ9B,kBAAkB,CAc9B;IAAD,yBAAC;CAAA,AAdD,IAcC;SAdY,kBAAkB"}

View File

@@ -0,0 +1,104 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Component } from '@angular/core';
import { MDBModalRef } from 'angular-bootstrap-md';
import { Subject } from 'rxjs';
import { ScenariosService } from '../services/scenarios.service';
var NewProvisionConfirmComponent = /** @class */ (function () {
function NewProvisionConfirmComponent(modalRef, _scenariosService) {
this.modalRef = modalRef;
this._scenariosService = _scenariosService;
this.action = new Subject();
this.sendData = {
description: "",
servers: null,
isExternalAccess: false,
};
this.selectedProductVersion = {};
this.selectedVmType = {};
this.selectedNodeCount = {};
this.selectedDiskSizeGb = {};
this.servers = {};
}
NewProvisionConfirmComponent.prototype.ngOnInit = function () {
var _this = this;
this.vmTypesSub = this._scenariosService.getScenarioVmtypes().subscribe(function (res) {
_this.vmTypes = res.results;
if (_this.scenario.availableProductVersions.length) {
_this.scenario.availableProductVersions.forEach(function (server) {
if (server.vmTypeDefault) {
_this.selectedVmType[server.index] = server.vmTypeDefault;
}
if (server.nodeCount) {
_this.selectedNodeCount[server.index] = server.nodeCount;
}
_this.selectedDiskSizeGb[server.index] = server.diskSizeGbDefault || 500;
if (server.versions && server.versions.length) {
var lastIndex = server.versions.length - 1;
_this.selectedProductVersion[server.index] = server.productVersionDefault ? server.productVersionDefault : server.versions[lastIndex].name;
}
});
}
_this.vmTypesSub.unsubscribe();
});
};
NewProvisionConfirmComponent.prototype.ngOnDestroy = function () {
};
NewProvisionConfirmComponent.prototype.confirm = function () {
var _this = this;
if (!this.sendData.description || this.sendData.description.trim() === "") {
return;
}
this.sendData.servers = {};
var _loop_1 = function (key) {
if (!this_1.sendData.servers[key]) {
this_1.sendData.servers[key] = {};
}
if (this_1.selectedVmType[key]) {
this_1.sendData.servers[key].vmType = this_1.selectedVmType[key];
}
if (this_1.selectedNodeCount[key]) {
this_1.sendData.servers[key].nodeCount = this_1.selectedNodeCount[key];
}
if (this_1.selectedDiskSizeGb[key]) {
this_1.sendData.servers[key].diskSizeGb = this_1.selectedDiskSizeGb[key];
}
this_1.scenario.availableProductVersions.forEach(function (server) {
server.versions.forEach(function (v) {
if (v.name === _this.selectedProductVersion[key]) {
_this.sendData.servers[key].version = v;
}
});
});
};
var this_1 = this;
for (var key in this.selectedVmType) {
_loop_1(key);
}
console.log("sendData", this.sendData);
this.action.next(this.sendData);
this.modalRef.hide();
};
NewProvisionConfirmComponent.prototype.checkOnchange = function ($event) {
console.log("Checked?", $event.checked);
this.sendData.isExternalAccess = $event.checked;
};
NewProvisionConfirmComponent = __decorate([
Component({
selector: 'qmi-new-provision',
templateUrl: './new-provision.component.html',
styleUrls: ['./new-provision.component.scss']
}),
__metadata("design:paramtypes", [MDBModalRef, ScenariosService])
], NewProvisionConfirmComponent);
return NewProvisionConfirmComponent;
}());
export { NewProvisionConfirmComponent };
//# sourceMappingURL=new-provision.component.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"new-provision.component.js","sourceRoot":"","sources":["../../../../../src/app/alert/new-provision.component.ts"],"names":[],"mappings":"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"}

View File

@@ -10,8 +10,10 @@ import { ProvisionsComponent } from './provisions/provisions.component';
import { AdminComponent } from './admin/admin.component';
import { HomeComponent } from './home/home.component';
import { AuthGuard } from './services/auth.guard';
import { FaqComponent } from './faq/faq.component';
var routes = [
{ path: 'home', component: HomeComponent },
{ path: 'faq', component: FaqComponent },
{ path: 'provisions', component: ProvisionsComponent, canActivate: [AuthGuard] },
{ path: 'admin', component: AdminComponent, canActivate: [AuthGuard] },
{ path: '',

View File

@@ -1 +1 @@
{"version":3,"file":"app-routing.module.js","sourceRoot":"","sources":["../../../../src/app/app-routing.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAU,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAQ,mCAAmC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAQ,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAQ,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,IAAM,MAAM,GAAW;IACrB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAC;IACzC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAC,SAAS,CAAC,EAAC;IAC/E,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,SAAS,CAAC,EAAC;IACrE,EAAE,IAAI,EAAE,EAAE;QACR,UAAU,EAAE,OAAO;QACnB,SAAS,EAAE,MAAM;KAClB;IACD,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE;CACpC,CAAC;AAMF;IAAA;IAAgC,CAAC;IAApB,gBAAgB;QAJ5B,QAAQ,CAAC;YACR,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO,EAAE,CAAC,YAAY,CAAC;SACxB,CAAC;OACW,gBAAgB,CAAI;IAAD,uBAAC;CAAA,AAAjC,IAAiC;SAApB,gBAAgB"}
{"version":3,"file":"app-routing.module.js","sourceRoot":"","sources":["../../../../src/app/app-routing.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAU,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAQ,mCAAmC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAQ,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAQ,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,IAAM,MAAM,GAAW;IACrB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAC;IACzC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAC;IACvC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAC,SAAS,CAAC,EAAC;IAC/E,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,SAAS,CAAC,EAAC;IACrE,EAAE,IAAI,EAAE,EAAE;QACR,UAAU,EAAE,OAAO;QACnB,SAAS,EAAE,MAAM;KAClB;IACD,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE;CACpC,CAAC;AAMF;IAAA;IAAgC,CAAC;IAApB,gBAAgB;QAJ5B,QAAQ,CAAC;YACR,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO,EAAE,CAAC,YAAY,CAAC;SACxB,CAAC;OACW,gBAAgB,CAAI;IAAD,uBAAC;CAAA,AAAjC,IAAiC;SAApB,gBAAgB"}

View File

@@ -15,11 +15,38 @@ import { AuthGuard } from './services/auth.guard';
import { ProvisionsService } from './services/provisions.service';
import { ScenariosService } from './services/scenarios.service';
import { UsersService } from './services/users.service';
import { HttpClientModule } from '@angular/common/http';
import { MDBBootstrapModule } from 'angular-bootstrap-md';
import { MarkdownModule, MarkedRenderer } from 'ngx-markdown';
import { HttpClientModule, HttpClient } from '@angular/common/http';
import { LogsComponent } from './logs/logs.component';
import { ScenariosComponent } from './scenarios/scenarios.component';
import { AdminComponent } from './admin/admin.component';
import { PopoverconfirmComponent } from './popoverconfirm/popoverconfirm.component';
import { FormsModule } from '@angular/forms';
import { MyHttpInterceptor } from './interceptors/http.interceptor';
import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { TableProvisionsAdminComponent } from './tables/table-provisions.component';
import { TableScenariosComponent } from './tables/table-scenarios.component';
import { TableUsersComponent } from './tables/table-users.component';
import { TableNotificationsComponent } from './tables/table-notifications.component';
import { AlertComponent } from './alert/alert.component';
import { AlertService } from './services/alert.service';
import { ModalInfoComponent } from './alert/modalinfo.component';
import { ModalConfirmComponent } from './alert/confirm.component';
import { FilterPipe } from './filter.pipe';
import { FaqComponent } from './faq/faq.component';
import { NewProvisionConfirmComponent } from './alert/new-provision.component';
import { ScenarioModalComponent } from './alert/edit-scenario.component';
import { SubscriptionModalComponent } from './alert/edit-subscription.component';
import { TableSubsComponent } from './tables/table-subs.component';
import { SubscriptionsService } from './services/subscriptions.service';
export function markedOptions() {
var renderer = new MarkedRenderer();
renderer.blockquote = function (text) {
return '<blockquote class="blockquote"><p>' + text + '</p></blockquote>';
};
return { renderer: renderer };
}
var AppModule = /** @class */ (function () {
function AppModule() {
}
@@ -32,15 +59,41 @@ var AppModule = /** @class */ (function () {
LogsComponent,
ScenariosComponent,
AdminComponent,
PopoverconfirmComponent
PopoverconfirmComponent,
TableProvisionsAdminComponent,
TableUsersComponent,
AlertComponent,
ModalInfoComponent,
ModalConfirmComponent,
FilterPipe,
FaqComponent,
NewProvisionConfirmComponent,
TableScenariosComponent,
TableNotificationsComponent,
ScenarioModalComponent,
SubscriptionModalComponent,
TableSubsComponent
],
imports: [
BrowserModule,
AppRoutingModule,
UiModule,
HttpClientModule
HttpClientModule,
FormsModule,
MDBBootstrapModule.forRoot(),
MarkdownModule.forRoot({
loader: HttpClient
}),
],
providers: [
{ provide: HTTP_INTERCEPTORS, useClass: MyHttpInterceptor, multi: true },
ProvisionsService,
ScenariosService,
SubscriptionsService,
UsersService,
AlertService,
AuthGuard
],
providers: [ProvisionsService, ScenariosService, UsersService, AuthGuard],
bootstrap: [AppComponent]
})
], AppModule);

View File

@@ -1 +1 @@
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../../../src/app/app.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAqBpF;IAAA;IAAyB,CAAC;IAAb,SAAS;QAnBrB,QAAQ,CAAC;YACR,YAAY,EAAE;gBACZ,YAAY;gBACZ,aAAa;gBACb,mBAAmB;gBACnB,aAAa;gBACb,kBAAkB;gBAClB,cAAc;gBACd,uBAAuB;aACxB;YACD,OAAO,EAAE;gBACP,aAAa;gBACb,gBAAgB;gBAChB,QAAQ;gBACR,gBAAgB;aACjB;YACD,SAAS,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,CAAC;YACzE,SAAS,EAAE,CAAC,YAAY,CAAC;SAC1B,CAAC;OACW,SAAS,CAAI;IAAD,gBAAC;CAAA,AAA1B,IAA0B;SAAb,SAAS"}
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../../../src/app/app.module.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,33 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Component } from '@angular/core';
var FaqComponent = /** @class */ (function () {
function FaqComponent() {
}
FaqComponent.prototype.ngOnInit = function () {
};
FaqComponent.prototype.onLoad = function (event) {
console.log("nice", event);
};
FaqComponent.prototype.onError = function (event) {
console.log("error", event);
};
FaqComponent = __decorate([
Component({
selector: 'app-faq-component',
templateUrl: './faq.component.html',
styleUrls: ['./faq.component.scss']
}),
__metadata("design:paramtypes", [])
], FaqComponent);
return FaqComponent;
}());
export { FaqComponent };
//# sourceMappingURL=faq.component.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"faq.component.js","sourceRoot":"","sources":["../../../../../src/app/faq/faq.component.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAOlD;IAEE;IAAgB,CAAC;IAEjB,+BAAQ,GAAR;IACA,CAAC;IAED,6BAAM,GAAN,UAAO,KAAK;QACV,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,8BAAO,GAAP,UAAQ,KAAK;QACX,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAbU,YAAY;QALxB,SAAS,CAAC;YACT,QAAQ,EAAE,mBAAmB;YAC7B,WAAW,EAAE,sBAAsB;YACnC,SAAS,EAAE,CAAC,sBAAsB,CAAC;SACpC,CAAC;;OACW,YAAY,CAexB;IAAD,mBAAC;CAAA,AAfD,IAeC;SAfY,YAAY"}

View File

@@ -0,0 +1,21 @@
import { async, TestBed } from '@angular/core/testing';
import { FaqComponent } from './faq.component';
describe('FaqComponentComponent', function () {
var component;
var fixture;
beforeEach(async(function () {
TestBed.configureTestingModule({
declarations: [FaqComponent]
})
.compileComponents();
}));
beforeEach(function () {
fixture = TestBed.createComponent(FaqComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', function () {
expect(component).toBeTruthy();
});
});
//# sourceMappingURL=faq.component.spec.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"faq.component.spec.js","sourceRoot":"","sources":["../../../../../src/app/faq/faq.component.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAoB,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,QAAQ,CAAC,uBAAuB,EAAE;IAChC,IAAI,SAAuB,CAAC;IAC5B,IAAI,OAAuC,CAAC;IAE5C,UAAU,CAAC,KAAK,CAAC;QACf,OAAO,CAAC,sBAAsB,CAAC;YAC7B,YAAY,EAAE,CAAE,YAAY,CAAE;SAC/B,CAAC;aACD,iBAAiB,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC,CAAC;IAEJ,UAAU,CAAC;QACT,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAChD,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACtC,OAAO,CAAC,aAAa,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,EAAE;QAClB,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

31
dist/out-tsc/src/app/filter.pipe.js vendored Normal file
View File

@@ -0,0 +1,31 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
import { Pipe } from '@angular/core';
var FilterPipe = /** @class */ (function () {
function FilterPipe() {
}
FilterPipe.prototype.transform = function (items, searchText) {
if (!items) {
return [];
}
if (!searchText) {
return items;
}
searchText = searchText.toLocaleLowerCase();
return items.filter(function (it) {
return JSON.stringify(it).toLocaleLowerCase().includes(searchText);
});
};
FilterPipe = __decorate([
Pipe({
name: 'filter'
})
], FilterPipe);
return FilterPipe;
}());
export { FilterPipe };
//# sourceMappingURL=filter.pipe.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"filter.pipe.js","sourceRoot":"","sources":["../../../../src/app/filter.pipe.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAiB,MAAM,eAAe,CAAC;AAKpD;IAAA;IAeA,CAAC;IAdC,8BAAS,GAAT,UAAU,KAAY,EAAE,UAAkB;QAExC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,EAAE,CAAC;SACX;QACD,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,KAAK,CAAC;SACd;QACD,UAAU,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC;QAE5C,OAAO,KAAK,CAAC,MAAM,CAAC,UAAA,EAAE;YACpB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACL,CAAC;IAdU,UAAU;QAHtB,IAAI,CAAC;YACJ,IAAI,EAAE,QAAQ;SACf,CAAC;OACW,UAAU,CAetB;IAAD,iBAAC;CAAA,AAfD,IAeC;SAfY,UAAU"}

View File

@@ -0,0 +1,8 @@
import { FilterPipe } from './filter.pipe';
describe('FilterPipe', function () {
it('create an instance', function () {
var pipe = new FilterPipe();
expect(pipe).toBeTruthy();
});
});
//# sourceMappingURL=filter.pipe.spec.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"filter.pipe.spec.js","sourceRoot":"","sources":["../../../../src/app/filter.pipe.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,QAAQ,CAAC,YAAY,EAAE;IACrB,EAAE,CAAC,oBAAoB,EAAE;QACvB,IAAM,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

View File

@@ -23,6 +23,9 @@ var HomeComponent = /** @class */ (function () {
HomeComponent.prototype.ngOnDestroy = function () {
this.subs.unsubscribe();
};
HomeComponent.prototype.popupConfirm = function () {
console.log("Confirmed");
};
HomeComponent = __decorate([
Component({
selector: 'app-home',

View File

@@ -1 +1 @@
{"version":3,"file":"home.component.js","sourceRoot":"","sources":["../../../../../src/app/home/home.component.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AASnD;IAKE,uBAAqB,KAAgB;QAArC,iBAKC;QALoB,UAAK,GAAL,KAAK,CAAW;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,SAAS,CAAE,UAAA,KAAK;YACnD,KAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gCAAQ,GAAR;IAEA,CAAC;IAED,mCAAW,GAAX;QACE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC;IAlBU,aAAa;QANzB,SAAS,CAAC;YACT,QAAQ,EAAE,UAAU;YACpB,WAAW,EAAE,uBAAuB;YACpC,SAAS,EAAE,CAAC,uBAAuB,CAAC;YACpC,SAAS,EAAE,EAAE;SACd,CAAC;yCAM4B,SAAS;OAL1B,aAAa,CAoBzB;IAAD,oBAAC;CAAA,AApBD,IAoBC;SApBY,aAAa"}
{"version":3,"file":"home.component.js","sourceRoot":"","sources":["../../../../../src/app/home/home.component.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AASnD;IAKE,uBAAqB,KAAgB;QAArC,iBAKC;QALoB,UAAK,GAAL,KAAK,CAAW;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,SAAS,CAAE,UAAA,KAAK;YACnD,KAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gCAAQ,GAAR;IAEA,CAAC;IAED,mCAAW,GAAX;QACE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC;IAED,oCAAY,GAAZ;QACE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3B,CAAC;IAtBU,aAAa;QANzB,SAAS,CAAC;YACT,QAAQ,EAAE,UAAU;YACpB,WAAW,EAAE,uBAAuB;YACpC,SAAS,EAAE,CAAC,uBAAuB,CAAC;YACpC,SAAS,EAAE,EAAE;SACd,CAAC;yCAM4B,SAAS;OAL1B,aAAa,CAwBzB;IAAD,oBAAC;CAAA,AAxBD,IAwBC;SAxBY,aAAa"}

View File

@@ -0,0 +1,40 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Injectable } from '@angular/core';
import { HttpErrorResponse } from '@angular/common/http';
import { tap } from 'rxjs/operators';
import { Router } from '@angular/router';
import { AuthGuard } from '../services/auth.guard';
var MyHttpInterceptor = /** @class */ (function () {
function MyHttpInterceptor(router, _auth) {
this.router = router;
this._auth = _auth;
}
MyHttpInterceptor.prototype.intercept = function (request, next) {
var _this = this;
return next.handle(request).pipe(tap(function () { }, function (err) {
if (err instanceof HttpErrorResponse) {
if (err.status !== 401) {
return;
}
console.log("Interceptor error 401!!");
_this._auth.clearUser();
_this.router.navigate(['home']);
}
}));
};
MyHttpInterceptor = __decorate([
Injectable(),
__metadata("design:paramtypes", [Router, AuthGuard])
], MyHttpInterceptor);
return MyHttpInterceptor;
}());
export { MyHttpInterceptor };
//# sourceMappingURL=http.interceptor.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"http.interceptor.js","sourceRoot":"","sources":["../../../../../src/app/interceptors/http.interceptor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAKL,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAC,GAAG,EAAC,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGnD;IAEE,2BAAoB,MAAc,EAAU,KAAgB;QAAxC,WAAM,GAAN,MAAM,CAAQ;QAAU,UAAK,GAAL,KAAK,CAAW;IAAG,CAAC;IAEhE,qCAAS,GAAT,UAAU,OAAyB,EAAE,IAAiB;QAAtD,iBAcC;QAZC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAE,GAAG,CAAC,cAAO,CAAC,EAC5C,UAAC,GAAQ;YAET,IAAI,GAAG,YAAY,iBAAiB,EAAE;gBACpC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;oBACvB,OAAO;iBACP;gBACD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;gBACvC,KAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACvB,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;aAChC;QACH,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IAlBU,iBAAiB;QAD7B,UAAU,EAAE;yCAGiB,MAAM,EAAiB,SAAS;OAFjD,iBAAiB,CAmB7B;IAAD,wBAAC;CAAA,AAnBD,IAmBC;SAnBY,iBAAiB"}

View File

@@ -20,7 +20,6 @@ var LogsComponent = /** @class */ (function () {
LogsComponent.prototype.onClick = function (targetElement) {
var clickedInside = this.insideElement.nativeElement.contains(targetElement);
if (!clickedInside) {
console.log('outside clicked');
this.onClose.emit(false);
}
};
@@ -33,20 +32,45 @@ var LogsComponent = /** @class */ (function () {
});
}
else if (this.type === "destroy") {
this.sub = timer(0, 5000).pipe(switchMap(function () { return _this._provisionsService.getDestroyLogs(_this.selectedprov.destroyId); })).subscribe(function (content) {
this.sub = timer(0, 5000).pipe(switchMap(function () { return _this._provisionsService.getDestroyLogs(_this.selectedprov.destroy._id); })).subscribe(function (content) {
_this.content = content;
});
}
}
};
LogsComponent.prototype.ngOnInit = function () {
this.refresh();
LogsComponent.prototype.ngOnInit = function () { };
LogsComponent.prototype.ngOnChanges = function (changes) {
var _this = this;
this.content = null;
if (this.sub) {
this.sub.unsubscribe();
this.sub = null;
}
if (changes.show && changes.show.currentValue) {
if (this.type === "provision") {
this.sub = timer(0, 5000).pipe(switchMap(function () { return _this._provisionsService.getProvisionLogs(_this.selectedprov._id); })).subscribe(function (content) {
_this.content = content;
});
}
else if (this.type === "destroy") {
this.sub = timer(0, 5000).pipe(switchMap(function () { return _this._provisionsService.getDestroyLogs(_this.selectedprov.destroy._id); })).subscribe(function (content) {
_this.content = content;
});
}
}
};
LogsComponent.prototype.ngOnDestroy = function () {
this.sub.unsubscribe();
if (this.sub) {
this.sub.unsubscribe();
this.sub = null;
}
};
LogsComponent.prototype.close = function () {
this.sub.unsubscribe();
this.content = null;
if (this.sub) {
this.sub.unsubscribe();
this.sub = null;
}
this.onClose.emit(false);
};
__decorate([
@@ -59,6 +83,10 @@ var LogsComponent = /** @class */ (function () {
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", void 0)
], LogsComponent.prototype, "onClick", null);
__decorate([
Input(),
__metadata("design:type", Object)
], LogsComponent.prototype, "show", void 0);
__decorate([
Input(),
__metadata("design:type", Object)

View File

@@ -1 +1 @@
{"version":3,"file":"logs.component.js","sourceRoot":"","sources":["../../../../../src/app/logs/logs.component.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAU,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAgB,KAAK,EAAC,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAO3C;IAgBE,uBAAoB,kBAAqC;QAArC,uBAAkB,GAAlB,kBAAkB,CAAmB;QAHzD,YAAO,GAAW,IAAI,CAAC;QAOb,YAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IAJsB,CAAC;IAXvD,+BAAO,GAAd,UAAe,aAAa;QAC1B,IAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC/E,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;IACH,CAAC;IAWD,+BAAO,GAAP;QAAA,iBAYC;QAXC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAC;YAChB,IAAK,IAAI,CAAC,IAAI,KAAK,WAAW,EAAG;gBAC/B,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAE,SAAS,CAAC,cAAM,OAAA,KAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,KAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAA/D,CAA+D,CAAE,CAAE,CAAC,SAAS,CAAC,UAAA,OAAO;oBACnI,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;gBACzB,CAAC,CAAC,CAAC;aACJ;iBAAM,IAAK,IAAI,CAAC,IAAI,KAAK,SAAS,EAAG;gBACpC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAE,SAAS,CAAC,cAAM,OAAA,KAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAnE,CAAmE,CAAE,CAAE,CAAC,SAAS,CAAC,UAAA,OAAO;oBACvI,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;gBACzB,CAAC,CAAC,CAAA;aACH;SACF;IACH,CAAC;IACD,gCAAQ,GAAR;QACE,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,mCAAW,GAAX;QACE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IACzB,CAAC;IAED,6BAAK,GAAL;QACE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IA5C2B;QAA3B,SAAS,CAAC,eAAe,CAAC;;wDAAe;IAG1C;QAFC,YAAY,CAAC,gBAAgB,EAAE,CAAC,eAAe,CAAC,CAAC;;;;gDAQjD;IAOQ;QAAR,KAAK,EAAE;;uDAAc;IACb;QAAR,KAAK,EAAE;;+CAAM;IACJ;QAAT,MAAM,EAAE;;kDAA8B;IApB5B,aAAa;QALzB,SAAS,CAAC;YACT,QAAQ,EAAE,UAAU;YACpB,WAAW,EAAE,uBAAuB;YACpC,SAAS,EAAE,CAAC,uBAAuB,CAAC;SACrC,CAAC;yCAiBwC,iBAAiB;OAhB9C,aAAa,CAgDzB;IAAD,oBAAC;CAAA,AAhDD,IAgDC;SAhDY,aAAa"}
{"version":3,"file":"logs.component.js","sourceRoot":"","sources":["../../../../../src/app/logs/logs.component.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAU,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAa,MAAM,eAAe,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAgB,KAAK,EAAC,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAO3C;IAgBE,uBAAoB,kBAAqC;QAArC,uBAAkB,GAAlB,kBAAkB,CAAmB;QAHzD,YAAO,GAAW,IAAI,CAAC;QAQb,YAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IALsB,CAAC;IAXvD,+BAAO,GAAd,UAAe,aAAa;QAC1B,IAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC/E,IAAI,CAAC,aAAa,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;IACH,CAAC;IAaD,+BAAO,GAAP;QAAA,iBAYC;QAXC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAC;YAChB,IAAK,IAAI,CAAC,IAAI,KAAK,WAAW,EAAG;gBAC/B,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAE,SAAS,CAAC,cAAM,OAAA,KAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,KAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAA/D,CAA+D,CAAE,CAAE,CAAC,SAAS,CAAC,UAAA,OAAO;oBACnI,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;gBACzB,CAAC,CAAC,CAAC;aACJ;iBAAM,IAAK,IAAI,CAAC,IAAI,KAAK,SAAS,EAAG;gBACpC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAE,SAAS,CAAC,cAAM,OAAA,KAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAArE,CAAqE,CAAE,CAAE,CAAC,SAAS,CAAC,UAAA,OAAO;oBACzI,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;gBACzB,CAAC,CAAC,CAAA;aACH;SACF;IACH,CAAC;IACD,gCAAQ,GAAR,cAAY,CAAC;IAEb,mCAAW,GAAX,UAAY,OAAO;QAAnB,iBAiBC;QAhBC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAK,IAAI,CAAC,GAAG,EAAG;YACd,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;SACjB;QACD,IAAK,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,EAAG;YAC/C,IAAK,IAAI,CAAC,IAAI,KAAK,WAAW,EAAG;gBAC/B,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAE,SAAS,CAAC,cAAM,OAAA,KAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,KAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAA/D,CAA+D,CAAE,CAAE,CAAC,SAAS,CAAC,UAAA,OAAO;oBACnI,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;gBACzB,CAAC,CAAC,CAAC;aACJ;iBAAM,IAAK,IAAI,CAAC,IAAI,KAAK,SAAS,EAAG;gBACpC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAE,SAAS,CAAC,cAAM,OAAA,KAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAArE,CAAqE,CAAE,CAAE,CAAC,SAAS,CAAC,UAAA,OAAO;oBACzI,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;gBACzB,CAAC,CAAC,CAAA;aACH;SACF;IACH,CAAC;IAED,mCAAW,GAAX;QACE,IAAK,IAAI,CAAC,GAAG,EAAG;YACd,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;SACjB;IACH,CAAC;IAED,6BAAK,GAAL;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAK,IAAI,CAAC,GAAG,EAAG;YACd,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;SACjB;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IArE2B;QAA3B,SAAS,CAAC,eAAe,CAAC;;wDAAe;IAG1C;QAFC,YAAY,CAAC,gBAAgB,EAAE,CAAC,eAAe,CAAC,CAAC;;;;gDAOjD;IAQQ;QAAR,KAAK,EAAE;;+CAAM;IACL;QAAR,KAAK,EAAE;;uDAAc;IACb;QAAR,KAAK,EAAE;;+CAAM;IACJ;QAAT,MAAM,EAAE;;kDAA8B;IArB5B,aAAa;QALzB,SAAS,CAAC;YACT,QAAQ,EAAE,UAAU;YACpB,WAAW,EAAE,uBAAuB;YACpC,SAAS,EAAE,CAAC,uBAAuB,CAAC;SACrC,CAAC;yCAiBwC,iBAAiB;OAhB9C,aAAa,CAyEzB;IAAD,oBAAC;CAAA,AAzED,IAyEC;SAzEY,aAAa"}

View File

@@ -7,37 +7,63 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Component, ElementRef } from '@angular/core';
import * as leonardoui from 'leonardo-ui';
import { Component, ElementRef, EventEmitter, ViewChild, Input, Output } from '@angular/core';
var PopoverconfirmComponent = /** @class */ (function () {
function PopoverconfirmComponent(myElement) {
this.onConfirm = new EventEmitter();
this.element = myElement;
}
PopoverconfirmComponent.prototype.open = function () {
console.log("myElement", this.element);
console.log("open popover", leonardoui);
/*this.popover = leonardoui.popover( {
content: this.element[0],
closeOnEscape: true,
dock: "bottom",
alignTo: this.element
} );
console.log("this.popover", this.popover);
}
ngOnInit() {
}
ok(): void {
this.popover.close();
}
cancel(): void {
this.popover.close();
}
}
var viewportOffset = this.element.nativeElement.getBoundingClientRect();
var top = viewportOffset.top;
var left = viewportOffset.left;
this.popovercontent.nativeElement.style.display = 'block';
this.popovercontent.nativeElement.style.position = 'absolute';
if (this.dock.indexOf('left') !== -1) {
this.left = -this.popovercontent.nativeElement.offsetWidth;
}
else if (this.dock.indexOf('right') !== -1) {
this.left = this.element.nativeElement.offsetWidth;
}
this.top = 0;
if (this.dock.indexOf('top') !== -1) {
this.top = -this.popovercontent.nativeElement.offsetHeight;
}
else if (this.dock.indexOf('bottom') !== -1) {
this.top = this.element.nativeElement.offsetHeight;
}
this.popovercontent.nativeElement.style.top = (top + this.top) + 'px';
this.popovercontent.nativeElement.style.left = (left + this.left) + 'px';
};
PopoverconfirmComponent.prototype.ngOnInit = function () {
};
PopoverconfirmComponent.prototype.ok = function () {
this.popovercontent.nativeElement.style.display = 'none';
this.onConfirm.emit(true);
};
PopoverconfirmComponent.prototype.cancel = function () {
this.popovercontent.nativeElement.style.display = 'none';
};
__decorate([
ViewChild('popovercontent'),
__metadata("design:type", ElementRef)
], PopoverconfirmComponent.prototype, "popovercontent", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], PopoverconfirmComponent.prototype, "dock", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], PopoverconfirmComponent.prototype, "buttonConfig", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], PopoverconfirmComponent.prototype, "popupConfig", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], PopoverconfirmComponent.prototype, "onConfirm", void 0);
PopoverconfirmComponent = __decorate([
Component({
selector: 'app-popoverconfirm',
@@ -49,25 +75,4 @@ var PopoverconfirmComponent = /** @class */ (function () {
return PopoverconfirmComponent;
}());
export { PopoverconfirmComponent };
/*this.popover = leonardoui.popover( {
content: this.element[0],
closeOnEscape: true,
dock: "bottom",
alignTo: this.element
} );
console.log("this.popover", this.popover);
}
ngOnInit() {
}
ok(): void {
this.popover.close();
}
cancel(): void {
this.popover.close();
}
}
//# sourceMappingURL=popoverconfirm.component.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"popoverconfirm.component.js","sourceRoot":"","sources":["../../../../../src/app/popoverconfirm/popoverconfirm.component.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAU,UAAU,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,UAAU,MAAM,aAAa,CAAC;AAO1C;IAKE,iCAAa,SAAqB;QAChC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,sCAAI,GAAJ;QACE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACxC;;;;;;;;;;;;;;;;;;;;QAoBJ;IAAA,CAAC,AArB2C;IAX/B,uBAAuB;QALnC,SAAS,CAAC;YACT,QAAQ,EAAE,oBAAoB;YAC9B,WAAW,EAAE,iCAAiC;YAC9C,SAAS,EAAE,CAAC,iCAAiC,CAAC;SAC/C,CAAC;yCAMwB,UAAU;OALvB,uBAAuB,CAWQ;IAqB5C,8BAAC;CArB2C,AAX5C,IAW4C;SAX/B,uBAAuB;AAYhC;;;;;;;;;;;;;;;;;;;;AAoBJ"}
{"version":3,"file":"popoverconfirm.component.js","sourceRoot":"","sources":["../../../../../src/app/popoverconfirm/popoverconfirm.component.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAU,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAgB,MAAM,EAAE,MAAM,eAAe,CAAC;AAOpH;IAOE,iCAAa,SAAqB;QAQxB,cAAS,GAAG,IAAI,YAAY,EAAE,CAAC;QAPvC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAWD,sCAAI,GAAJ;QACE,IAAI,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QACxE,IAAI,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC;QAC7B,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;QAE/B,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1D,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QAE9D,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;YACpC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC;SAC5D;aAAM,IAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAG;YAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC;SACpD;QAED,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACb,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;YACnC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,YAAY,CAAC;SAC5D;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;YAC7C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC;SACpD;QAED,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACtE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAE3E,CAAC;IAED,0CAAQ,GAAR;IACA,CAAC;IAED,oCAAE,GAAF;QACE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,wCAAM,GAAN;QACE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC3D,CAAC;IAnDD;QADC,SAAS,CAAC,gBAAgB,CAAC;kCACH,UAAU;mEAAC;IAM3B;QAAR,KAAK,EAAE;;yDAAM;IACL;QAAR,KAAK,EAAE;;iEAAc;IACb;QAAR,KAAK,EAAE;;gEAAa;IAEX;QAAT,MAAM,EAAE;;8DAAgC;IAf9B,uBAAuB;QALnC,SAAS,CAAC;YACT,QAAQ,EAAE,oBAAoB;YAC9B,WAAW,EAAE,iCAAiC;YAC9C,SAAS,EAAE,CAAC,iCAAiC,CAAC;SAC/C,CAAC;yCAQwB,UAAU;OAPvB,uBAAuB,CAyDnC;IAAD,8BAAC;CAAA,AAzDD,IAyDC;SAzDY,uBAAuB"}

View File

@@ -12,33 +12,53 @@ import { ProvisionsService } from '../services/provisions.service';
import { timer } from 'rxjs';
import { switchMap } from 'rxjs/operators';
import { AuthGuard } from '../services/auth.guard';
import { ScenariosService } from '../services/scenarios.service';
import { AlertService } from '../services/alert.service';
import { MDBModalService } from 'angular-bootstrap-md';
import { ModalInfoComponent } from '../alert/modalinfo.component';
import { ModalConfirmComponent } from '../alert/confirm.component';
var ProvisionsComponent = /** @class */ (function () {
function ProvisionsComponent(_provisionsService, _auth) {
function ProvisionsComponent(modalService, _alertService, _provisionsService, _scenariosService, _auth) {
var _this = this;
this.modalService = modalService;
this._alertService = _alertService;
this._provisionsService = _provisionsService;
this._scenariosService = _scenariosService;
this._auth = _auth;
this.logShow = false;
this.logstype = 'provision';
this.selectedprov = null;
this._auth.getUserInfo().subscribe(function (value) {
_this._userId = value._id;
_this._userId = value ? value._id : null;
});
}
ProvisionsComponent.prototype._refresh = function () {
var _this = this;
this.instantSubs = this._provisionsService.getCombinedProvisions(this._userId).subscribe(function (pair) {
_this._provisionsService.composePair(pair);
_this.destroys = pair[1];
_this.provisions = pair[0];
this.instantSubs = this._provisionsService.getProvisionsByUser(this._userId).subscribe(function (provisions) {
provisions = provisions.results;
provisions.forEach(function (p) {
p._scenario = _this.scenarios.filter(function (s) { return s.name === p.scenario; });
_this._provisionsService.timeRunning(p);
});
_this.provisions = provisions.filter(function (p) { return !p.destroy || !p.destroy.status || p.destroy.status !== 'destroyed'; });
_this.destroys = provisions.filter(function (p) { return p.destroy && p.destroy.status === 'destroyed'; });
_this.instantSubs.unsubscribe();
});
};
ProvisionsComponent.prototype.ngOnInit = function () {
var _this = this;
this.subscription = timer(0, 5000).pipe(switchMap(function () { return _this._provisionsService.getCombinedProvisions(_this._userId); })).subscribe(function (pair) {
_this._provisionsService.composePair(pair);
_this.destroys = pair[1];
_this.provisions = pair[0];
this.scenariosSub = this._scenariosService.getScenariosAll().subscribe(function (res) {
_this.scenarios = res.results;
_this.scenariosSub.unsubscribe();
_this.subscription = timer(0, 8000).pipe(switchMap(function () { return _this._provisionsService.getProvisionsByUser(_this._userId); })).subscribe(function (provisions) {
provisions = provisions.results;
provisions.forEach(function (p) {
p._scenario = _this.scenarios.filter(function (s) { return s.name === p.scenario; });
_this._provisionsService.timeRunning(p);
});
_this.provisions = provisions.filter(function (p) { return !p.destroy || !p.destroy.status || p.destroy.status !== 'destroyed'; });
_this.destroys = provisions.filter(function (p) { return p.destroy && p.destroy.status === 'destroyed'; });
});
});
};
ProvisionsComponent.prototype.ngOnDestroy = function () {
@@ -47,18 +67,122 @@ var ProvisionsComponent = /** @class */ (function () {
this.instantSubs.unsubscribe();
}
};
ProvisionsComponent.prototype.setModal = function (provision, frame) {
frame.show();
this._provisionsService.setSelectedProv(provision);
};
ProvisionsComponent.prototype.del = function (provision) {
var _this = this;
this._provisionsService.delProvision(provision._id.toString(), this._userId).subscribe(function (res) {
console.log("Done!", res);
_this._refresh();
_this._alertService.showAlert({
type: 'alert-primary',
text: "Provision entry '" + provision.scenario + "' was deleted from your history"
});
});
};
ProvisionsComponent.prototype.destroy = function (provision) {
ProvisionsComponent.prototype.openConfirmDestroyModal = function (provision) {
var _this = this;
this._provisionsService.newDestroy({ "id": provision._id.toString() }, this._userId).subscribe(function (res) {
console.log("Done!", res);
_this._refresh();
var modalRef = this.modalService.show(ModalConfirmComponent, {
class: 'modal-sm modal-notify modal-danger',
containerClass: '',
data: {
info: {
title: 'Confirm destroy this provision?',
icon: 'times-circle'
}
}
});
var sub = modalRef.content.action.subscribe(function (result) {
sub.unsubscribe();
_this._provisionsService.newDestroy(provision._id.toString(), _this._userId).subscribe(function (res) {
_this._refresh();
_this._alertService.showAlert({
type: 'alert-primary',
text: "Provision of scenario '" + provision.scenario + "' is going to be destroyed"
});
});
});
};
ProvisionsComponent.prototype.openConfirmStopModal = function (provision) {
var _this = this;
var modalRef = this.modalService.show(ModalConfirmComponent, {
class: 'modal-sm modal-notify modal-info',
containerClass: '',
data: {
info: {
title: 'Confirm Stop VMs?',
icon: 'stop',
buttonColor: 'grey'
}
}
});
var sub = modalRef.content.action.subscribe(function (result) {
sub.unsubscribe();
_this._provisionsService.stopVms(provision._id.toString(), _this._userId).subscribe(function (res) {
provision.statusVms = res.statusVms;
provision.timeRunning = res.timeRunning;
provision.runningFrom = res.runningFrom;
_this._provisionsService.timeRunning(provision);
_this._alertService.showAlert({
type: 'alert-primary',
text: "Stopping all VMs for scenario '" + provision.scenario + "'..."
});
});
});
};
ProvisionsComponent.prototype.openConfirmStartModal = function (provision) {
var _this = this;
var modalRef = this.modalService.show(ModalConfirmComponent, {
class: 'modal-sm modal-notify modal-info',
containerClass: '',
data: {
info: {
title: 'Confirm Start VMs?',
icon: 'play',
buttonColor: 'grey'
}
}
});
var sub = modalRef.content.action.subscribe(function (result) {
sub.unsubscribe();
_this._provisionsService.startVms(provision._id.toString(), _this._userId).subscribe(function (res) {
provision.statusVms = res.statusVms;
provision.timeRunning = res.timeRunning;
provision.runningFrom = res.runningFrom;
_this._provisionsService.timeRunning(provision);
_this._alertService.showAlert({
type: 'alert-primary',
text: "Starting all VMs for scenario '" + provision.scenario + "'..."
});
});
});
};
ProvisionsComponent.prototype.openConfirmExtendModal = function (provision) {
var _this = this;
var modalRef = this.modalService.show(ModalConfirmComponent, {
class: 'modal-sm modal-notify modal-info',
containerClass: '',
data: {
info: {
title: "Extend running VMs for " + this._provisionsService.RUNNING_PERIOD + " days?",
icon: 'plus-square',
buttonColor: 'grey'
}
}
});
var sub = modalRef.content.action.subscribe(function (result) {
sub.unsubscribe();
_this._provisionsService.extend(provision._id.toString(), _this._userId).subscribe(function (res) {
provision.countExtend = res.countExtend;
provision.timeRunning = res.timeRunning;
provision.runningFrom = res.runningFrom;
_this._provisionsService.timeRunning(provision);
_this._alertService.showAlert({
type: 'alert-primary',
text: "Running period extended another " + _this._provisionsService.RUNNING_PERIOD + " days (from now) for provision '" + provision.scenario + "'"
});
});
});
};
ProvisionsComponent.prototype.showLogs = function ($event, provision, type) {
@@ -69,12 +193,24 @@ var ProvisionsComponent = /** @class */ (function () {
this.selectedprov = provision;
this.logShow = true;
};
ProvisionsComponent.prototype.onLogsClose = function ($event) {
ProvisionsComponent.prototype.openModal = function (provision) {
this.modalService.show(ModalInfoComponent, {
class: 'modal-lg',
containerClass: '',
data: {
info: provision
}
});
};
ProvisionsComponent.prototype.onLogsClose = function () {
this.selectedprov = null;
this.logShow = false;
};
ProvisionsComponent.prototype.onStartProvision = function ($event) {
console.log("onStartProvision");
ProvisionsComponent.prototype.onStartProvision = function (scenario) {
this._alertService.showAlert({
type: 'alert-primary',
text: "Scenario '" + scenario.name + "' is going to be provisioned. Scroll up to your Provisions to watch out progress."
});
this._refresh();
};
ProvisionsComponent = __decorate([
@@ -84,7 +220,7 @@ var ProvisionsComponent = /** @class */ (function () {
styleUrls: ['./provisions.component.scss'],
providers: [ProvisionsService]
}),
__metadata("design:paramtypes", [ProvisionsService, AuthGuard])
__metadata("design:paramtypes", [MDBModalService, AlertService, ProvisionsService, ScenariosService, AuthGuard])
], ProvisionsComponent);
return ProvisionsComponent;
}());

File diff suppressed because one or more lines are too long

View File

@@ -11,28 +11,52 @@ import { Component, Output, EventEmitter } from '@angular/core';
import { ProvisionsService } from '../services/provisions.service';
import { ScenariosService } from '../services/scenarios.service';
import { AuthGuard } from '../services/auth.guard';
import { NewProvisionConfirmComponent } from '../alert/new-provision.component';
import { MDBModalService } from 'angular-bootstrap-md';
var ScenariosComponent = /** @class */ (function () {
function ScenariosComponent(_provisionsService, _scenariosService, _auth) {
function ScenariosComponent(modalService, _provisionsService, _scenariosService, _auth) {
var _this = this;
this.modalService = modalService;
this._provisionsService = _provisionsService;
this._scenariosService = _scenariosService;
this._auth = _auth;
this.onStartProvision = new EventEmitter();
this._auth.getUserInfo().subscribe(function (value) {
_this._userId = value._id;
_this.user = value;
});
}
ScenariosComponent.prototype.ngOnInit = function () {
var _this = this;
this._scenariosService.getScenarios().subscribe(function (res) {
_this.scenarios = res;
this.scenariosSub = this._scenariosService.getScenarios().subscribe(function (res) {
_this.scenarios = res.results;
_this.scenariosSub.unsubscribe();
console.log("scenarios", _this.scenarios);
});
};
ScenariosComponent.prototype.provision = function (scenario) {
ScenariosComponent.prototype.ngOnDestroy = function () { };
ScenariosComponent.prototype.openNewProvisionConfirmModal = function (scenario) {
var _this = this;
this._provisionsService.newProvision({ "scenario": scenario.name }, this._userId).subscribe(function (res) {
console.log("Done!", res);
_this.onStartProvision.emit();
var modalRef = this.modalService.show(NewProvisionConfirmComponent, {
class: 'modal-md modal-notify',
containerClass: '',
data: {
scenario: scenario
}
});
var sub = modalRef.content.action.subscribe(function (data) {
sub.unsubscribe();
var postData = {
scenario: scenario.name,
description: data.description,
isExternalAccess: data.isExternalAccess
};
if (data.servers) {
postData["vmImage"] = data.servers;
}
_this._provisionsService.newProvision(postData, _this.user._id).subscribe(function (res) {
console.log("Done!", res);
_this.onStartProvision.emit(scenario);
});
});
};
__decorate([
@@ -45,7 +69,7 @@ var ScenariosComponent = /** @class */ (function () {
templateUrl: './scenarios.component.html',
styleUrls: ['./scenarios.component.scss']
}),
__metadata("design:paramtypes", [ProvisionsService, ScenariosService, AuthGuard])
__metadata("design:paramtypes", [MDBModalService, ProvisionsService, ScenariosService, AuthGuard])
], ScenariosComponent);
return ScenariosComponent;
}());

View File

@@ -1 +1 @@
{"version":3,"file":"scenarios.component.js","sourceRoot":"","sources":["../../../../../src/app/scenarios/scenarios.component.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAU,YAAY,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAOnD;IAEE,4BAAoB,kBAAqC,EAAU,iBAAmC,EAAU,KAAgB;QAAhI,iBAIC;QAJmB,uBAAkB,GAAlB,kBAAkB,CAAmB;QAAU,sBAAiB,GAAjB,iBAAiB,CAAkB;QAAU,UAAK,GAAL,KAAK,CAAW;QAMtH,qBAAgB,GAAG,IAAI,YAAY,EAAE,CAAC;QAL9C,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,SAAS,CAAE,UAAA,KAAK;YACvC,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAOD,qCAAQ,GAAR;QAAA,iBAIC;QAHC,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAE,UAAA,GAAG;YAClD,KAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACvB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,sCAAS,GAAT,UAAU,QAAQ;QAAlB,iBAKC;QAJC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAE,UAAA,GAAG;YAC5F,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC1B,KAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAA;IACJ,CAAC;IAhBS;QAAT,MAAM,EAAE;;gEAAuC;IARrC,kBAAkB;QAL9B,SAAS,CAAC;YACT,QAAQ,EAAE,eAAe;YACzB,WAAW,EAAE,4BAA4B;YACzC,SAAS,EAAE,CAAC,4BAA4B,CAAC;SAC1C,CAAC;yCAGwC,iBAAiB,EAA6B,gBAAgB,EAAiB,SAAS;OAFrH,kBAAkB,CA0B9B;IAAD,yBAAC;CAAA,AA1BD,IA0BC;SA1BY,kBAAkB"}
{"version":3,"file":"scenarios.component.js","sourceRoot":"","sources":["../../../../../src/app/scenarios/scenarios.component.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAU,YAAY,EAAa,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAQvD;IAIE,4BAAoB,YAA6B,EAAU,kBAAqC,EAAU,iBAAmC,EAAU,KAAgB;QAAvK,iBAIC;QAJmB,iBAAY,GAAZ,YAAY,CAAiB;QAAU,uBAAkB,GAAlB,kBAAkB,CAAmB;QAAU,sBAAiB,GAAjB,iBAAiB,CAAkB;QAAU,UAAK,GAAL,KAAK,CAAW;QAM7J,qBAAgB,GAAG,IAAI,YAAY,EAAU,CAAC;QALtD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,SAAS,CAAE,UAAA,KAAK;YACvC,KAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAQD,qCAAQ,GAAR;QAAA,iBAOC;QALC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAE,UAAA,GAAG;YACtE,KAAI,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC;YAC7B,KAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wCAAW,GAAX,cAAe,CAAC;IAEhB,yDAA4B,GAA5B,UAA6B,QAAQ;QAArC,iBA4BC;QA3BC,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,4BAA4B,EAAE;YAClE,KAAK,EAAE,uBAAuB;YAC9B,cAAc,EAAE,EAAE;YAClB,IAAI,EAAE;gBACJ,QAAQ,EAAE,QAAQ;aACnB;SACF,CAAE,CAAC;QAEJ,IAAI,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAE,UAAC,IAAS;YACrD,GAAG,CAAC,WAAW,EAAE,CAAC;YAElB,IAAM,QAAQ,GAAG;gBACf,QAAQ,EAAE,QAAQ,CAAC,IAAI;gBACvB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC;YAEF,IAAK,IAAI,CAAC,OAAO,EAAG;gBAChB,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;aACtC;YAED,KAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAE,UAAA,GAAG;gBAC1E,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC1B,KAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC,CAAC;IACL,CAAC;IA7CS;QAAT,MAAM,EAAE;;gEAA+C;IAV7C,kBAAkB;QAL9B,SAAS,CAAC;YACT,QAAQ,EAAE,eAAe;YACzB,WAAW,EAAE,4BAA4B;YACzC,SAAS,EAAE,CAAC,4BAA4B,CAAC;SAC1C,CAAC;yCAKkC,eAAe,EAA8B,iBAAiB,EAA6B,gBAAgB,EAAiB,SAAS;OAJ5J,kBAAkB,CAyD9B;IAAD,yBAAC;CAAA,AAzDD,IAyDC;SAzDY,kBAAkB"}

View File

@@ -0,0 +1,36 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Injectable, EventEmitter } from '@angular/core';
var AlertService = /** @class */ (function () {
function AlertService() {
this.alertEmitter = new EventEmitter();
}
AlertService.prototype.showAlert = function (alert) {
this.alertEmitter.emit(alert);
if (this.to) {
clearTimeout(this.to);
}
this.to = setTimeout(function () {
this.alertEmitter.emit(null);
}.bind(this), 5000);
};
AlertService.prototype.getAlertEmitter = function () {
return this.alertEmitter;
};
AlertService = __decorate([
Injectable({
providedIn: 'root'
}),
__metadata("design:paramtypes", [])
], AlertService);
return AlertService;
}());
export { AlertService };
//# sourceMappingURL=alert.service.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"alert.service.js","sourceRoot":"","sources":["../../../../../src/app/services/alert.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKzD;IAIE;QAFA,iBAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IAElB,CAAC;IAGjB,gCAAS,GAAT,UAAU,KAAK;QACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAK,IAAI,CAAC,EAAE,EAAG;YACb,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACvB;QACD,IAAI,CAAC,EAAE,GAAG,UAAU,CAAE;YAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,sCAAe,GAAf;QACE,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAnBU,YAAY;QAHxB,UAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;;OACW,YAAY,CAqBxB;IAAD,mBAAC;CAAA,AArBD,IAqBC;SArBY,YAAY"}

View File

@@ -12,30 +12,32 @@ import { Router } from '@angular/router';
import { of, BehaviorSubject } from 'rxjs';
import { map, catchError } from 'rxjs/operators';
import { HttpClient } from '@angular/common/http';
import { UsersService } from './users.service';
var AuthGuard = /** @class */ (function () {
// Inject Router so we can hand off the user to the Login Page
function AuthGuard(httpClient, router) {
var _this = this;
function AuthGuard(_userService, httpClient, router) {
this._userService = _userService;
this.httpClient = httpClient;
this.router = router;
this.userInfo = new BehaviorSubject(null);
this.getMe().subscribe(function (value) {
_this.userInfo.next(value);
localStorage.setItem("user", JSON.stringify(value));
});
var user = localStorage.getItem("user");
this.userInfo.next(JSON.parse(user));
}
AuthGuard.prototype.canActivate = function (route) {
var _this = this;
return this.getMe().pipe(map(function (res) {
console.log("CanActivate?");
return this._userService.getMe().pipe(map(function (res) {
localStorage.setItem("user", JSON.stringify(res));
_this.userInfo.next(res);
return true;
}), catchError(function (err) {
_this.userInfo.next(null);
_this.clearUser();
return of(false);
}));
};
AuthGuard.prototype.getMe = function () {
return this.httpClient.get('/api/users/me');
AuthGuard.prototype.clearUser = function () {
localStorage.setItem("user", null);
this.userInfo.next(null);
};
AuthGuard.prototype.getUserInfo = function () {
return this.userInfo;
@@ -44,7 +46,7 @@ var AuthGuard = /** @class */ (function () {
Injectable({
providedIn: 'root'
}),
__metadata("design:paramtypes", [HttpClient, Router])
__metadata("design:paramtypes", [UsersService, HttpClient, Router])
], AuthGuard);
return AuthGuard;
}());

View File

@@ -1 +1 @@
{"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../../../../../src/app/services/auth.guard.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAA4D,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEnG,OAAO,EAAE,EAAE,EAAc,eAAe,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMlD;IAIE,+DAA+D;IAC/D,mBAAoB,UAAsB,EAAU,MAAc;QAAlE,iBAOC;QAPmB,eAAU,GAAV,UAAU,CAAY;QAAU,WAAM,GAAN,MAAM,CAAQ;QAH1D,aAAQ,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAKjE,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,UAAA,KAAK;YAC1B,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,+BAAW,GAAX,UAAY,KAA6B;QAAzC,iBAWC;QAVC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CACtB,GAAG,CAAC,UAAA,GAAG;YACL,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,EACF,UAAU,CAAC,UAAC,GAAG;YACb,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,yBAAK,GAAL;QACE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC9C,CAAC;IAED,+BAAW,GAAX;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAjCU,SAAS;QAHrB,UAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;yCAMgC,UAAU,EAAkB,MAAM;OALvD,SAAS,CAkCrB;IAAD,gBAAC;CAAA,AAlCD,IAkCC;SAlCY,SAAS"}
{"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../../../../../src/app/services/auth.guard.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAA4D,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEnG,OAAO,EAAE,EAAE,EAAc,eAAe,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAM/C;IAIE,+DAA+D;IAC/D,mBAAoB,YAA0B,EAAU,UAAsB,EAAU,MAAc;QAAlF,iBAAY,GAAZ,YAAY,CAAc;QAAU,eAAU,GAAV,UAAU,CAAY;QAAU,WAAM,GAAN,MAAM,CAAQ;QAH9F,aAAQ,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAIjE,IAAI,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,+BAAW,GAAX,UAAY,KAA6B;QAAzC,iBAaC;QAZC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,CACnC,GAAG,CAAC,UAAA,GAAG;YACL,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAClD,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,EACF,UAAU,CAAC,UAAC,GAAG;YACb,KAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAID,6BAAS,GAAT;QACE,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,+BAAW,GAAX;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAlCU,SAAS;QAHrB,UAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;yCAMkC,YAAY,EAAsB,UAAU,EAAkB,MAAM;OAL3F,SAAS,CAmCrB;IAAD,gBAAC;CAAA,AAnCD,IAmCC;SAnCY,SAAS"}

View File

@@ -8,57 +8,108 @@ var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { forkJoin } from 'rxjs';
import { HttpClient, HttpParams } from '@angular/common/http';
import { environment } from '../../environments/environment.prod';
import * as moment from 'moment';
var ProvisionsService = /** @class */ (function () {
function ProvisionsService(httpClient) {
this.httpClient = httpClient;
this.RUNNING_PERIOD = 4;
this.STOP_PERIOD = 10;
}
ProvisionsService.prototype.getProvisionsAdmin = function () {
return this.httpClient.get("/api/provisions");
ProvisionsService.prototype.getProvisionsAdmin = function (filter) {
// Initialize Params Object
var params = new HttpParams();
if (filter) {
params = params.append("filter", JSON.stringify(filter));
}
return this.httpClient.get(environment.apiVersionPath + "/provisions", { params: params });
};
ProvisionsService.prototype.getProvisionsByUser = function (userId) {
return this.httpClient.get(environment.apiVersionPath + "/users/" + userId + "/provisions");
};
ProvisionsService.prototype.getDestroyProvisionsAdmin = function () {
return this.httpClient.get("/api/destroyprovisions");
};
ProvisionsService.prototype.getProvisions = function (userId) {
return this.httpClient.get("/api/users/" + userId + "/provisions");
return this.httpClient.get(environment.apiVersionPath + "/destroyprovisions");
};
ProvisionsService.prototype.newProvision = function (body, userId) {
return this.httpClient.post("/api/users/" + userId + "/provisions", body);
return this.httpClient.post(environment.apiVersionPath + "/users/" + userId + "/provisions", body);
};
ProvisionsService.prototype.delProvision = function (id, userId) {
return this.httpClient.delete("/api/users/" + userId + "/provisions/" + id);
return this.httpClient.delete(environment.apiVersionPath + "/users/" + userId + "/provisions/" + id);
};
ProvisionsService.prototype.newDestroy = function (body, userId) {
return this.httpClient.post("/api/users/" + userId + "/destroyprovisions", body);
ProvisionsService.prototype.newDestroy = function (id, userId) {
return this.httpClient.post(environment.apiVersionPath + "/users/" + userId + "/provisions/" + id + "/destroy", null);
};
ProvisionsService.prototype.getDestroyProvisions = function (userId) {
return this.httpClient.get("/api/users/" + userId + "/destroyprovisions");
};
ProvisionsService.prototype.getCombinedProvisions = function (userId) {
return forkJoin(this.getProvisions(userId), this.getDestroyProvisions(userId));
};
ProvisionsService.prototype.getCombinedProvisionsAdmin = function () {
return forkJoin(this.getProvisionsAdmin(), this.getDestroyProvisionsAdmin());
return this.httpClient.get(environment.apiVersionPath + "/users/" + userId + "/destroyprovisions");
};
/*
getCombinedProvisions(userId): Observable<any> {
return forkJoin(this.getProvisionsByUser(userId), this.getDestroyProvisions(userId))
}
getCombinedProvisionsAdmin(): Observable<any> {
return forkJoin(this.getProvisionsAdmin(), this.getDestroyProvisionsAdmin())
}*/
ProvisionsService.prototype.getProvisionLogs = function (id) {
return this.httpClient.get("/api/provisions/" + id + "/logs", { responseType: 'text' });
return this.httpClient.get(environment.apiVersionPath + "/provisions/" + id + "/logs", { responseType: 'text' });
};
ProvisionsService.prototype.getDestroyLogs = function (id) {
return this.httpClient.get("/api/destroyprovisions/" + id + "/logs", { responseType: 'text' });
return this.httpClient.get(environment.apiVersionPath + "/destroyprovisions/" + id + "/logs", { responseType: 'text' });
};
ProvisionsService.prototype.composePair = function (pair) {
pair['0'].forEach(function (prov) {
var foundDes = pair['1'].filter(function (d) {
return d.provId.toString() === prov._id.toString();
});
if (foundDes.length) {
prov.destroyId = foundDes[0]._id.toString();
prov.statusDestroy = foundDes[0].status;
prov.dateDestroy = foundDes[0].created;
}
});
return pair;
ProvisionsService.prototype.stopVms = function (id, userId) {
return this.httpClient.post(environment.apiVersionPath + "/users/" + userId + "/provisions/" + id + "/deallocatevms", null);
};
ProvisionsService.prototype.startVms = function (id, userId) {
return this.httpClient.post(environment.apiVersionPath + "/users/" + userId + "/provisions/" + id + "/startvms", null);
};
ProvisionsService.prototype.extend = function (id, userId) {
return this.httpClient.post(environment.apiVersionPath + "/users/" + userId + "/provisions/" + id + "/extend", null);
};
ProvisionsService.prototype.setSelectedProv = function (provision) {
if (provision) {
this.selectedProv = provision;
}
else {
this.selectedProv = null;
}
};
ProvisionsService.prototype.getSelectedProv = function () {
return this.selectedProv;
};
ProvisionsService.prototype.timeRunning = function (p) {
var now = new Date();
var runningFromTime = p.runningFrom ? new Date(p.runningFrom).getTime() : new Date(p.created).getTime();
var totalRunningTime = p.timeRunning * 1000 * 60;
if (p.statusVms !== 'Stopped' && p.statusVms !== 'Starting' && !p.isDestroyed) {
totalRunningTime = totalRunningTime + Math.abs(now.getTime() - runningFromTime);
}
var authShutdownDate = new Date(runningFromTime);
authShutdownDate.setDate(authShutdownDate.getDate() + this.RUNNING_PERIOD);
var autoshutDown = authShutdownDate.getTime() - now.getTime();
var durationAutoShutdown = moment.duration(autoshutDown);
var duration = moment.duration(totalRunningTime);
p.runningDays = Math.floor(duration.asDays());
p.runningHours = duration.hours();
p.runningMinutes = duration.minutes();
p.autoshutdownDays = Math.floor(durationAutoShutdown.asDays());
p.autoshutdownHours = durationAutoShutdown.hours();
p.autoshutdownMinutes = durationAutoShutdown.minutes();
if ((p.statusVms === 'Stopped' || p.statusVms === 'Starting') && !p.isDestroyed) {
var autoDestroyDate = new Date(p.stoppedFrom);
autoDestroyDate.setDate(autoDestroyDate.getDate() + this.STOP_PERIOD);
var autoDestroy = autoDestroyDate.getTime() - now.getTime();
var durationStop = moment.duration(autoDestroy);
p.autoDestroyDays = Math.floor(durationStop.asDays());
p.autoDestroyHours = durationStop.hours();
p.autoDestroyMinutes = durationStop.minutes();
var inactiveDate = new Date(p.stoppedFrom);
var inactive = Math.abs(inactiveDate.getTime() - now.getTime());
var durationInactive = moment.duration(inactive);
p.inactiveDays = Math.floor(durationInactive.asDays());
p.inactiveHours = durationInactive.hours();
p.inactiveMinutes = durationInactive.minutes();
}
};
ProvisionsService = __decorate([
Injectable({

View File

@@ -1 +1 @@
{"version":3,"file":"provisions.service.js","sourceRoot":"","sources":["../../../../../src/app/services/provisions.service.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"provisions.service.js","sourceRoot":"","sources":["../../../../../src/app/services/provisions.service.ts"],"names":[],"mappings":"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"}

View File

@@ -9,12 +9,28 @@ var __metadata = (this && this.__metadata) || function (k, v) {
};
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { environment } from '../../environments/environment.prod';
var ScenariosService = /** @class */ (function () {
function ScenariosService(httpClient) {
this.httpClient = httpClient;
}
ScenariosService.prototype.getScenarios = function () {
return this.httpClient.get("/api/scenarios");
return this.httpClient.get(environment.apiVersionPath + "/scenarios");
};
ScenariosService.prototype.getScenariosAll = function () {
return this.httpClient.get(environment.apiVersionPath + "/scenarios/all");
};
ScenariosService.prototype.getScenarioVmtypes = function () {
return this.httpClient.get(environment.apiVersionPath + "/scenarios/vmtypes");
};
ScenariosService.prototype.updateScenario = function (id, patchData) {
return this.httpClient.put(environment.apiVersionPath + "/scenarios/" + id, patchData);
};
ScenariosService.prototype.addScenario = function (data) {
return this.httpClient.post(environment.apiVersionPath + "/scenarios", data);
};
ScenariosService.prototype.deleteScenario = function (id) {
return this.httpClient.delete(environment.apiVersionPath + "/scenarios/" + id);
};
ScenariosService = __decorate([
Injectable({

View File

@@ -1 +1 @@
{"version":3,"file":"scenarios.service.js","sourceRoot":"","sources":["../../../../../src/app/services/scenarios.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMlD;IAEE,0BAAqB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAK,CAAC;IAEjD,uCAAY,GAAZ;QACE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC;IANU,gBAAgB;QAH5B,UAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;yCAGiC,UAAU;OAFhC,gBAAgB,CAO5B;IAAD,uBAAC;CAAA,AAPD,IAOC;SAPY,gBAAgB"}
{"version":3,"file":"scenarios.service.js","sourceRoot":"","sources":["../../../../../src/app/services/scenarios.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAKlE;IAEE,0BAAqB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAK,CAAC;IAEjD,uCAAY,GAAZ;QACE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,WAAW,CAAC,cAAc,eAAY,CAAC,CAAC;IACxE,CAAC;IAED,0CAAe,GAAf;QACE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,WAAW,CAAC,cAAc,mBAAgB,CAAC,CAAC;IAC5E,CAAC;IAED,6CAAkB,GAAlB;QACE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,WAAW,CAAC,cAAc,uBAAoB,CAAC,CAAC;IAChF,CAAC;IAED,yCAAc,GAAd,UAAe,EAAE,EAAE,SAAS;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,WAAW,CAAC,cAAc,mBAAc,EAAI,EAAE,SAAS,CAAC,CAAC;IACzF,CAAC;IAED,sCAAW,GAAX,UAAY,IAAI;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAI,WAAW,CAAC,cAAc,eAAY,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;IAED,yCAAc,GAAd,UAAe,EAAE;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAI,WAAW,CAAC,cAAc,mBAAc,EAAI,CAAC,CAAC;IACjF,CAAC;IA1BU,gBAAgB;QAH5B,UAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;yCAGiC,UAAU;OAFhC,gBAAgB,CA4B5B;IAAD,uBAAC;CAAA,AA5BD,IA4BC;SA5BY,gBAAgB"}

View File

@@ -0,0 +1,38 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { environment } from '../../environments/environment.prod';
var SubscriptionsService = /** @class */ (function () {
function SubscriptionsService(httpClient) {
this.httpClient = httpClient;
}
SubscriptionsService.prototype.getSubscriptions = function () {
return this.httpClient.get(environment.apiVersionPath + "/subscriptions");
};
SubscriptionsService.prototype.addSubscription = function (data) {
return this.httpClient.post(environment.apiVersionPath + "/subscriptions", data);
};
SubscriptionsService.prototype.updateSubscription = function (id, patchData) {
return this.httpClient.put(environment.apiVersionPath + "/subscriptions/" + id, patchData);
};
SubscriptionsService.prototype.deleteScenario = function (id) {
return this.httpClient.delete(environment.apiVersionPath + "/subscriptions/" + id);
};
SubscriptionsService = __decorate([
Injectable({
providedIn: 'root'
}),
__metadata("design:paramtypes", [HttpClient])
], SubscriptionsService);
return SubscriptionsService;
}());
export { SubscriptionsService };
//# sourceMappingURL=subscriptions.service.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"subscriptions.service.js","sourceRoot":"","sources":["../../../../../src/app/services/subscriptions.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAKlE;IAEE,8BAAqB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAK,CAAC;IAEjD,+CAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,WAAW,CAAC,cAAc,mBAAgB,CAAC,CAAC;IAC5E,CAAC;IAED,8CAAe,GAAf,UAAgB,IAAI;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAI,WAAW,CAAC,cAAc,mBAAgB,EAAE,IAAI,CAAC,CAAC;IACnF,CAAC;IAED,iDAAkB,GAAlB,UAAmB,EAAE,EAAE,SAAS;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,WAAW,CAAC,cAAc,uBAAkB,EAAI,EAAE,SAAS,CAAC,CAAC;IAC7F,CAAC;IAED,6CAAc,GAAd,UAAe,EAAE;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAI,WAAW,CAAC,cAAc,uBAAkB,EAAI,CAAC,CAAC;IACrF,CAAC;IAlBU,oBAAoB;QAHhC,UAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;yCAGiC,UAAU;OAFhC,oBAAoB,CAoBhC;IAAD,2BAAC;CAAA,AApBD,IAoBC;SApBY,oBAAoB"}

View File

@@ -9,15 +9,22 @@ var __metadata = (this && this.__metadata) || function (k, v) {
};
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { environment } from '../../environments/environment.prod';
var UsersService = /** @class */ (function () {
function UsersService(httpClient) {
this.httpClient = httpClient;
}
UsersService.prototype.getMe = function () {
return this.httpClient.get(environment.apiVersionPath + "/users/me");
};
UsersService.prototype.getUsers = function () {
return this.httpClient.get("/api/users");
return this.httpClient.get(environment.apiVersionPath + "/users");
};
UsersService.prototype.updateUser = function (userId, patchData) {
return this.httpClient.put("/api/users/" + userId, patchData);
return this.httpClient.put(environment.apiVersionPath + "/users/" + userId, patchData);
};
UsersService.prototype.getNotifications = function () {
return this.httpClient.get(environment.apiVersionPath + "/notifications");
};
UsersService = __decorate([
Injectable({

View File

@@ -1 +1 @@
{"version":3,"file":"users.service.js","sourceRoot":"","sources":["../../../../../src/app/services/users.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMlD;IAEE,sBAAqB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAK,CAAC;IAEjD,+BAAQ,GAAR;QACE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC3C,CAAC;IAED,iCAAU,GAAV,UAAW,MAAM,EAAE,SAAS;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAc,MAAQ,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC;IAVU,YAAY;QAHxB,UAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;yCAGiC,UAAU;OAFhC,YAAY,CAWxB;IAAD,mBAAC;CAAA,AAXD,IAWC;SAXY,YAAY"}
{"version":3,"file":"users.service.js","sourceRoot":"","sources":["../../../../../src/app/services/users.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAKlE;IAEE,sBAAqB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAK,CAAC;IAEjD,4BAAK,GAAL;QACE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,WAAW,CAAC,cAAc,cAAW,CAAC,CAAC;IACvE,CAAC;IAED,+BAAQ,GAAR;QACE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,WAAW,CAAC,cAAc,WAAQ,CAAC,CAAC;IACpE,CAAC;IAED,iCAAU,GAAV,UAAW,MAAM,EAAE,SAAS;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,WAAW,CAAC,cAAc,eAAU,MAAQ,EAAE,SAAS,CAAC,CAAC;IACzF,CAAC;IAED,uCAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,WAAW,CAAC,cAAc,mBAAgB,CAAC,CAAC;IAC5E,CAAC;IAlBU,YAAY;QAHxB,UAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;yCAGiC,UAAU;OAFhC,YAAY,CAmBxB;IAAD,mBAAC;CAAA,AAnBD,IAmBC;SAnBY,YAAY"}

View File

@@ -0,0 +1,286 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Component, HostListener, ViewChild, ChangeDetectorRef } from '@angular/core';
import { MdbTableDirective, MdbTablePaginationComponent, MDBModalService } from 'angular-bootstrap-md';
import { ProvisionsService } from '../services/provisions.service';
import { AlertService } from '../services/alert.service';
import { ModalInfoComponent } from '../alert/modalinfo.component';
import { ModalConfirmComponent } from '../alert/confirm.component';
import { ScenariosService } from '../services/scenarios.service';
import { timer } from 'rxjs';
import { switchMap } from 'rxjs/operators';
var TableAdminComponent = /** @class */ (function () {
function TableAdminComponent(modalService, _scenariosService, _alertService, cdRef, _provisionsService) {
this.modalService = modalService;
this._scenariosService = _scenariosService;
this._alertService = _alertService;
this.cdRef = cdRef;
this._provisionsService = _provisionsService;
this.pagingIsDisabled = false;
this.searchText = '';
this.selectedprov = null;
this.showInfo = false;
this.logShow = false;
this.logstype = 'provision';
this.maxVisibleItems = 10;
this.filterParams = {
isDestroyed: false
};
}
TableAdminComponent.prototype.oninput = function () {
this.mdbTablePagination.searchText = this.searchText;
};
TableAdminComponent.prototype._process = function (provisions) {
var _this = this;
provisions.forEach(function (p) {
p._scenario = _this.scenarios.filter(function (s) { return s.name === p.scenario; });
_this._provisionsService.timeRunning(p);
});
if (!this.provisions) {
this.provisions = provisions;
}
else {
this.provisions.forEach(function (p, index, object) {
var found = provisions.filter(function (a) { return a._id.toString() === p._id.toString(); });
if (found.length) {
p.status = found[0].status;
p.statusVms = found[0].statusVms;
p.isDestroyed = found[0].isDestroyed;
p.outputs = found[0].outputs;
p.destroy = found[0].destroy;
this._provisionsService.timeRunning(p);
}
else {
object.splice(index, 1);
}
}.bind(this));
provisions.forEach(function (p) {
var found = this.provisions.filter(function (a) { return a._id.toString() === p._id.toString(); });
if (found.length === 0) {
this.provisions.unshift(p);
}
}.bind(this));
}
this._initElements(this.provisions);
};
TableAdminComponent.prototype._initElements = function (items) {
this.mdbTable.setDataSource(items);
this.elements = this.mdbTable.getDataSource();
this.previous = this.mdbTable.getDataSource();
};
TableAdminComponent.prototype.ngOnInit = function () {
var _this = this;
var scenariosSub = this._scenariosService.getScenariosAll().subscribe(function (res) {
scenariosSub.unsubscribe();
_this.scenarios = res.results;
_this.subscription = timer(0, 8000).pipe(switchMap(function () { return _this._provisionsService.getProvisionsAdmin(_this.filterParams); })).subscribe(function (provisions) {
_this._process(provisions.results);
});
});
this.mdbTablePagination.paginationChange().subscribe(function (data) {
/*let page = data.last - data.first;
if (page < this.limit && page > 0) {
page = Math.ceil(data.last / this.limit);
if (this.page !== page) {
this.page = Math.ceil(data.last / this.limit);
this.loadTable();
}
}*/
});
//this._initElements();
};
TableAdminComponent.prototype.ngAfterViewInit = function () {
if (this.mdbTablePagination) {
this.mdbTablePagination.setMaxVisibleItemsNumberTo(this.maxVisibleItems);
this.mdbTablePagination.calculateFirstItemIndex();
this.mdbTablePagination.calculateLastItemIndex();
this.cdRef.detectChanges();
}
};
TableAdminComponent.prototype.searchItems = function () {
var _this = this;
var prev = this.mdbTable.getDataSource();
if (!this.searchText) {
this.mdbTable.setDataSource(this.previous);
this.elements = this.mdbTable.getDataSource();
}
if (this.searchText) {
this.elements = this.mdbTable.searchLocalDataBy(this.searchText);
this.mdbTable.setDataSource(prev);
}
if (this.mdbTablePagination) {
this.mdbTablePagination.calculateFirstItemIndex();
this.mdbTablePagination.calculateLastItemIndex();
this.mdbTable.searchDataObservable(this.searchText).subscribe(function () {
_this.mdbTablePagination.calculateFirstItemIndex();
_this.mdbTablePagination.calculateLastItemIndex();
});
}
};
TableAdminComponent.prototype.showLogs = function ($event, provision, type) {
$event.preventDefault();
$event.stopPropagation();
this.logstype = type;
this.logShow = false;
this.selectedprov = provision;
this.logShow = true;
};
TableAdminComponent.prototype.onLogsClose = function () {
this.selectedprov = null;
this.logShow = false;
};
TableAdminComponent.prototype.openConfirmStartModal = function (provision) {
var _this = this;
var modalRef = this.modalService.show(ModalConfirmComponent, {
class: 'modal-sm modal-notify modal-info',
containerClass: '',
data: {
info: {
title: 'Confirm Start VMs?',
icon: 'play',
buttonColor: 'grey'
}
}
});
var sub = modalRef.content.action.subscribe(function (result) {
sub.unsubscribe();
_this._startVms(provision);
});
};
TableAdminComponent.prototype._startVms = function (provision) {
var _this = this;
var sub = this._provisionsService.startVms(provision._id.toString(), provision.user._id).subscribe(function (res) {
provision.startVms = res.startVms;
sub.unsubscribe();
_this._alertService.showAlert({
type: 'alert-primary',
text: "Starting all VMs for scenario '" + provision.scenario + "'..."
});
});
};
TableAdminComponent.prototype.openConfirmStopModal = function (provision) {
var _this = this;
var modalRef = this.modalService.show(ModalConfirmComponent, {
class: 'modal-sm modal-notify modal-info',
containerClass: '',
data: {
info: {
title: 'Confirm Stop VMs?',
icon: 'stop',
buttonColor: 'grey'
}
}
});
var sub = modalRef.content.action.subscribe(function (result) {
sub.unsubscribe();
_this._stopVms(provision);
});
};
TableAdminComponent.prototype._stopVms = function (provision) {
var _this = this;
var sub = this._provisionsService.stopVms(provision._id.toString(), provision.user._id).subscribe(function (res) {
provision.startVms = res.startVms;
sub.unsubscribe();
_this._alertService.showAlert({
type: 'alert-primary',
text: "Stopping all VMs for scenario '" + provision.scenario + "'..."
});
});
};
TableAdminComponent.prototype.openInfoModal = function (provision) {
this.modalService.show(ModalInfoComponent, {
backdrop: true,
keyboard: true,
focus: true,
show: false,
ignoreBackdropClick: false,
class: 'modal-lg',
containerClass: '',
animated: true,
data: {
info: provision
}
});
};
TableAdminComponent.prototype.openConfirmDestroyModal = function (provision) {
var _this = this;
var modalRef = this.modalService.show(ModalConfirmComponent, {
class: 'modal-sm modal-notify modal-danger',
containerClass: '',
data: {
info: {
title: 'Confirm destroy this provision?',
icon: 'times-circle'
}
}
});
var sub = modalRef.content.action.subscribe(function (result) {
sub.unsubscribe();
_this._provisionsService.newDestroy(provision._id.toString(), provision.user._id).subscribe(function (provUpdated) {
_this._alertService.showAlert({
type: 'alert-primary',
text: "Provision of scenario '" + provision.scenario + "' is going to be destroyed"
});
provision.destroy = provUpdated.destroy;
});
});
};
TableAdminComponent.prototype.openConfirmDeleteModal = function (provision) {
var _this = this;
var modalRef = this.modalService.show(ModalConfirmComponent, {
class: 'modal-sm modal-notify modal-danger',
containerClass: '',
data: {
info: {
title: 'Confirm delete?',
icon: 'trash-alt'
}
}
});
var sub = modalRef.content.action.subscribe(function (result) {
sub.unsubscribe();
_this._provisionsService.delProvision(provision._id, provision.user._id).subscribe(function (res) {
_this.elements = _this.elements.filter(function (e) {
return e._id.toString() !== provision._id.toString();
});
_this._initElements(_this.elements);
_this._alertService.showAlert({
type: 'alert-primary',
text: "Provision entry '" + provision.scenario + "' was deleted"
});
});
});
};
__decorate([
ViewChild(MdbTablePaginationComponent, { static: true }),
__metadata("design:type", MdbTablePaginationComponent)
], TableAdminComponent.prototype, "mdbTablePagination", void 0);
__decorate([
ViewChild(MdbTableDirective, { static: true }),
__metadata("design:type", MdbTableDirective)
], TableAdminComponent.prototype, "mdbTable", void 0);
__decorate([
HostListener('input'),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], TableAdminComponent.prototype, "oninput", null);
TableAdminComponent = __decorate([
Component({
selector: 'table-admin',
templateUrl: './table-admin.component.html',
styleUrls: ['./table-admin.component.scss']
}),
__metadata("design:paramtypes", [MDBModalService, ScenariosService, AlertService, ChangeDetectorRef, ProvisionsService])
], TableAdminComponent);
return TableAdminComponent;
}());
export { TableAdminComponent };
//# sourceMappingURL=table-admin.component.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,94 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';
import { Component, ViewChild, HostListener, ChangeDetectorRef } from '@angular/core';
import { UsersService } from '../services/users.service';
var TableNotificationsComponent = /** @class */ (function () {
function TableNotificationsComponent(cdRef, _usersService) {
this.cdRef = cdRef;
this._usersService = _usersService;
this.previous = [];
this.searchText = '';
this.maxVisibleItems = 25;
this.loading = false;
this.elements = [];
}
TableNotificationsComponent.prototype.oninput = function () {
this.mdbTablePagination.searchText = this.searchText;
};
TableNotificationsComponent.prototype._initElements = function () {
this.mdbTable.setDataSource(this.elements);
this.elements = this.mdbTable.getDataSource();
this.previous = this.mdbTable.getDataSource();
};
TableNotificationsComponent.prototype.ngOnInit = function () {
this.refreshData();
};
TableNotificationsComponent.prototype.refreshData = function () {
var _this = this;
this.loading = true;
this.searchText = "";
var sub = this._usersService.getNotifications().subscribe(function (res) {
sub.unsubscribe();
_this.elements = res.results;
_this.loading = false;
_this._initElements();
});
};
TableNotificationsComponent.prototype.ngAfterViewInit = function () {
this.mdbTablePagination.setMaxVisibleItemsNumberTo(this.maxVisibleItems);
this.mdbTablePagination.calculateFirstItemIndex();
this.mdbTablePagination.calculateLastItemIndex();
this.cdRef.detectChanges();
};
TableNotificationsComponent.prototype.searchItems = function () {
var _this = this;
var prev = this.mdbTable.getDataSource();
if (!this.searchText) {
this.mdbTable.setDataSource(this.previous);
this.elements = this.mdbTable.getDataSource();
}
if (this.searchText) {
this.elements = this.mdbTable.searchLocalDataBy(this.searchText);
this.mdbTable.setDataSource(prev);
}
this.mdbTablePagination.calculateFirstItemIndex();
this.mdbTablePagination.calculateLastItemIndex();
this.mdbTable.searchDataObservable(this.searchText).subscribe(function () {
_this.mdbTablePagination.calculateFirstItemIndex();
_this.mdbTablePagination.calculateLastItemIndex();
});
};
__decorate([
ViewChild(MdbTablePaginationComponent, { static: true }),
__metadata("design:type", MdbTablePaginationComponent)
], TableNotificationsComponent.prototype, "mdbTablePagination", void 0);
__decorate([
ViewChild(MdbTableDirective, { static: true }),
__metadata("design:type", MdbTableDirective)
], TableNotificationsComponent.prototype, "mdbTable", void 0);
__decorate([
HostListener('input'),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], TableNotificationsComponent.prototype, "oninput", null);
TableNotificationsComponent = __decorate([
Component({
selector: 'table-notifications',
templateUrl: './table-notifications.component.html',
styleUrls: ['./table-notifications.component.scss']
}),
__metadata("design:paramtypes", [ChangeDetectorRef, UsersService])
], TableNotificationsComponent);
return TableNotificationsComponent;
}());
export { TableNotificationsComponent };
//# sourceMappingURL=table-notifications.component.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"table-notifications.component.js","sourceRoot":"","sources":["../../../../../src/app/tables/table-notifications.component.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,331 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Component, HostListener, ViewChild, ChangeDetectorRef } from '@angular/core';
import { MdbTableDirective, MdbTablePaginationComponent, MDBModalService } from 'angular-bootstrap-md';
import { ProvisionsService } from '../services/provisions.service';
import { AlertService } from '../services/alert.service';
import { ModalInfoComponent } from '../alert/modalinfo.component';
import { ModalConfirmComponent } from '../alert/confirm.component';
import { ScenariosService } from '../services/scenarios.service';
var TableProvisionsAdminComponent = /** @class */ (function () {
function TableProvisionsAdminComponent(modalService, _scenariosService, _alertService, cdRef, _provisionsService) {
this.modalService = modalService;
this._scenariosService = _scenariosService;
this._alertService = _alertService;
this.cdRef = cdRef;
this._provisionsService = _provisionsService;
this.filter = {
showDestroyed: false
};
this.filterParams = {
isDestroyed: false
};
this.loading = false;
this.pagingIsDisabled = false;
//@ViewChild('row', { static: true }) row: ElementRef;
this.elements = [];
this.searchText = '';
this.selectedprov = null;
this.showInfo = false;
this.logShow = false;
this.logstype = 'provision';
this.maxVisibleItems = 25;
}
TableProvisionsAdminComponent.prototype.oninput = function () {
this.mdbTablePagination.searchText = this.searchText;
};
TableProvisionsAdminComponent.prototype._initElements = function () {
this.mdbTable.setDataSource(this.elements);
this.elements = this.mdbTable.getDataSource();
this.previous = this.mdbTable.getDataSource();
};
TableProvisionsAdminComponent.prototype._process = function (provisions) {
var _this = this;
provisions.forEach(function (p) {
p._scenario = _this.scenarios.filter(function (s) { return s.name === p.scenario; });
_this._provisionsService.timeRunning(p);
});
if (this.elements.length === 0) {
this.elements = provisions;
}
else {
this.elements.forEach(function (p, index, object) {
var found = provisions.filter(function (a) { return a._id.toString() === p._id.toString(); });
if (found.length) {
p.status = found[0].status;
p.statusVms = found[0].statusVms;
p.isDestroyed = found[0].isDestroyed;
p.outputs = found[0].outputs;
p.destroy = found[0].destroy;
this._provisionsService.timeRunning(p);
}
else {
object.splice(index, 1);
}
}.bind(this));
provisions.forEach(function (p) {
var found = this.elements.filter(function (a) { return a._id.toString() === p._id.toString(); });
if (found.length === 0) {
this.elements.unshift(p);
}
}.bind(this));
}
this._initElements();
};
TableProvisionsAdminComponent.prototype.ngOnInit = function () {
var _this = this;
var scenariosSub = this._scenariosService.getScenariosAll().subscribe(function (res) {
scenariosSub.unsubscribe();
_this.scenarios = res.results;
/*this.subscription = timer(0, 8000).pipe( switchMap(() => this._provisionsService.getProvisionsAdmin(this.filterParams) ) ).subscribe(provisions => {
this._process(provisions.results);
});*/
_this.refreshData();
});
//this._initElements();
};
TableProvisionsAdminComponent.prototype.ngOnDestroy = function () {
if (this.subscription) {
this.subscription.unsubscribe();
}
};
TableProvisionsAdminComponent.prototype.ngAfterViewInit = function () {
if (this.mdbTablePagination) {
this.mdbTablePagination.setMaxVisibleItemsNumberTo(this.maxVisibleItems);
this.mdbTablePagination.calculateFirstItemIndex();
this.mdbTablePagination.calculateLastItemIndex();
this.cdRef.detectChanges();
}
};
TableProvisionsAdminComponent.prototype.searchItems = function () {
var _this = this;
var prev = this.mdbTable.getDataSource();
if (!this.searchText) {
this.mdbTable.setDataSource(this.previous);
this.elements = this.mdbTable.getDataSource();
}
if (this.searchText) {
this.elements = this.mdbTable.searchLocalDataBy(this.searchText);
this.mdbTable.setDataSource(prev);
}
if (this.mdbTablePagination) {
this.mdbTablePagination.calculateFirstItemIndex();
this.mdbTablePagination.calculateLastItemIndex();
this.mdbTable.searchDataObservable(this.searchText).subscribe(function () {
_this.mdbTablePagination.calculateFirstItemIndex();
_this.mdbTablePagination.calculateLastItemIndex();
});
}
};
TableProvisionsAdminComponent.prototype.showLogs = function ($event, provision, type) {
$event.preventDefault();
$event.stopPropagation();
this.logstype = type;
this.logShow = false;
this.selectedprov = provision;
this.logShow = true;
};
TableProvisionsAdminComponent.prototype.onLogsClose = function () {
this.selectedprov = null;
this.logShow = false;
};
TableProvisionsAdminComponent.prototype.openConfirmStartModal = function (provision) {
var _this = this;
var modalRef = this.modalService.show(ModalConfirmComponent, {
class: 'modal-sm modal-notify modal-info',
containerClass: '',
data: {
info: {
title: 'Confirm Start VMs?',
icon: 'play',
buttonColor: 'grey'
}
}
});
var sub = modalRef.content.action.subscribe(function (result) {
sub.unsubscribe();
_this._startVms(provision);
});
};
TableProvisionsAdminComponent.prototype._startVms = function (provision) {
var _this = this;
var sub = this._provisionsService.startVms(provision._id.toString(), provision.user._id).subscribe(function (res) {
provision.startVms = res.startVms;
sub.unsubscribe();
_this._alertService.showAlert({
type: 'alert-primary',
text: "Starting all VMs for scenario '" + provision.scenario + "'..."
});
});
};
TableProvisionsAdminComponent.prototype.openConfirmStopModal = function (provision) {
var _this = this;
var modalRef = this.modalService.show(ModalConfirmComponent, {
class: 'modal-sm modal-notify modal-info',
containerClass: '',
data: {
info: {
title: 'Confirm Stop VMs?',
icon: 'stop',
buttonColor: 'grey'
}
}
});
var sub = modalRef.content.action.subscribe(function (result) {
sub.unsubscribe();
_this._stopVms(provision);
});
};
TableProvisionsAdminComponent.prototype._stopVms = function (provision) {
var _this = this;
var sub = this._provisionsService.stopVms(provision._id.toString(), provision.user._id).subscribe(function (res) {
provision.startVms = res.startVms;
sub.unsubscribe();
_this._alertService.showAlert({
type: 'alert-primary',
text: "Stopping all VMs for scenario '" + provision.scenario + "'..."
});
});
};
TableProvisionsAdminComponent.prototype.openInfoModal = function (provision) {
this.modalService.show(ModalInfoComponent, {
backdrop: true,
keyboard: true,
focus: true,
show: false,
ignoreBackdropClick: false,
class: 'modal-lg',
containerClass: '',
animated: true,
data: {
info: provision
}
});
};
TableProvisionsAdminComponent.prototype.openConfirmDestroyModal = function (provision) {
var _this = this;
var modalRef = this.modalService.show(ModalConfirmComponent, {
class: 'modal-sm modal-notify modal-danger',
containerClass: '',
data: {
info: {
title: 'Confirm destroy this provision?',
icon: 'times-circle'
}
}
});
var sub = modalRef.content.action.subscribe(function (result) {
sub.unsubscribe();
_this._provisionsService.newDestroy(provision._id.toString(), provision.user._id).subscribe(function (provUpdated) {
_this._alertService.showAlert({
type: 'alert-primary',
text: "Provision of scenario '" + provision.scenario + "' is going to be destroyed"
});
provision.destroy = provUpdated.destroy;
});
});
};
TableProvisionsAdminComponent.prototype.openConfirmDeleteModal = function (provision) {
var _this = this;
var modalRef = this.modalService.show(ModalConfirmComponent, {
class: 'modal-sm modal-notify modal-danger',
containerClass: '',
data: {
info: {
title: 'Confirm delete?',
icon: 'trash-alt'
}
}
});
var sub = modalRef.content.action.subscribe(function (result) {
sub.unsubscribe();
_this._provisionsService.delProvision(provision._id, provision.user._id).subscribe(function (res) {
_this.elements = _this.elements.filter(function (e) {
return e._id.toString() !== provision._id.toString();
});
_this._initElements();
_this._alertService.showAlert({
type: 'alert-primary',
text: "Provision entry '" + provision.scenario + "' was deleted"
});
});
});
};
TableProvisionsAdminComponent.prototype.refreshData = function () {
var _this = this;
this.elements = [];
this.loading = true;
this.searchText = "";
var instantSubs = this._provisionsService.getProvisionsAdmin(this.filterParams).subscribe(function (provisions) {
instantSubs.unsubscribe();
_this.loading = false;
_this._process(provisions.results);
});
};
TableProvisionsAdminComponent.prototype.onCheckValue = function () {
this.filterParams = {};
if (!this.filter.showDestroyed) {
this.filterParams.isDestroyed = false;
}
this.refreshData();
};
TableProvisionsAdminComponent.prototype.openConfirmExtendModal = function (provision) {
var _this = this;
var modalRef = this.modalService.show(ModalConfirmComponent, {
class: 'modal-sm modal-notify modal-info',
containerClass: '',
data: {
info: {
title: "Extend running VMs for " + this._provisionsService.RUNNING_PERIOD + " days?",
icon: 'plus-square',
buttonColor: 'grey'
}
}
});
var sub = modalRef.content.action.subscribe(function (result) {
sub.unsubscribe();
_this._provisionsService.extend(provision._id.toString(), provision.user._id).subscribe(function (res) {
provision.countExtend = res.countExtend;
provision.timeRunning = res.timeRunning;
provision.runningFrom = res.runningFrom;
_this._provisionsService.timeRunning(provision);
_this._alertService.showAlert({
type: 'alert-primary',
text: "Running period extended another " + _this._provisionsService.RUNNING_PERIOD + " days (from now) for provision '" + provision.scenario + "'"
});
});
});
};
__decorate([
ViewChild(MdbTablePaginationComponent, { static: true }),
__metadata("design:type", MdbTablePaginationComponent)
], TableProvisionsAdminComponent.prototype, "mdbTablePagination", void 0);
__decorate([
ViewChild(MdbTableDirective, { static: true }),
__metadata("design:type", MdbTableDirective)
], TableProvisionsAdminComponent.prototype, "mdbTable", void 0);
__decorate([
HostListener('input'),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], TableProvisionsAdminComponent.prototype, "oninput", null);
TableProvisionsAdminComponent = __decorate([
Component({
selector: 'table-provisions',
templateUrl: './table-provisions.component.html',
styleUrls: ['./table-provisions.component.scss']
}),
__metadata("design:paramtypes", [MDBModalService, ScenariosService, AlertService, ChangeDetectorRef, ProvisionsService])
], TableProvisionsAdminComponent);
return TableProvisionsAdminComponent;
}());
export { TableProvisionsAdminComponent };
//# sourceMappingURL=table-provisions.component.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,155 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { MdbTablePaginationComponent, MdbTableDirective, MDBModalService } from 'angular-bootstrap-md';
import { Component, ViewChild, HostListener, ChangeDetectorRef } from '@angular/core';
import { ScenariosService } from '../services/scenarios.service';
import { ScenarioModalComponent } from '../alert/edit-scenario.component';
var TableScenariosComponent = /** @class */ (function () {
function TableScenariosComponent(modalService, cdRef, _scenariosService) {
this.modalService = modalService;
this.cdRef = cdRef;
this._scenariosService = _scenariosService;
this.previous = [];
this.searchText = '';
this.maxVisibleItems = 25;
this.elements = [];
}
TableScenariosComponent.prototype.oninput = function () {
this.mdbTablePagination.searchText = this.searchText;
};
TableScenariosComponent.prototype._initElements = function () {
this.mdbTable.setDataSource(this.elements);
this.elements = this.mdbTable.getDataSource();
this.previous = this.mdbTable.getDataSource();
};
TableScenariosComponent.prototype._refresh = function () {
var _this = this;
var scenariosSub = this._scenariosService.getScenariosAll().subscribe(function (res) {
scenariosSub.unsubscribe();
_this.scenarios = res.results;
_this.elements = res.results;
_this._initElements();
});
};
TableScenariosComponent.prototype.ngOnInit = function () {
this._refresh();
};
TableScenariosComponent.prototype.ngAfterViewInit = function () {
this.mdbTablePagination.setMaxVisibleItemsNumberTo(this.maxVisibleItems);
this.mdbTablePagination.calculateFirstItemIndex();
this.mdbTablePagination.calculateLastItemIndex();
this.cdRef.detectChanges();
};
TableScenariosComponent.prototype.searchItems = function () {
var _this = this;
var prev = this.mdbTable.getDataSource();
if (!this.searchText) {
this.mdbTable.setDataSource(this.previous);
this.elements = this.mdbTable.getDataSource();
}
if (this.searchText) {
this.elements = this.mdbTable.searchLocalDataBy(this.searchText);
this.mdbTable.setDataSource(prev);
}
this.mdbTablePagination.calculateFirstItemIndex();
this.mdbTablePagination.calculateLastItemIndex();
this.mdbTable.searchDataObservable(this.searchText).subscribe(function () {
_this.mdbTablePagination.calculateFirstItemIndex();
_this.mdbTablePagination.calculateLastItemIndex();
});
};
TableScenariosComponent.prototype.changeValue = function (scenario, property, event) {
this.editField = event.target.textContent;
//console.log("changeValue editField", id, this.editField);
};
TableScenariosComponent.prototype.updateList = function (scenario, property, event) {
var _this = this;
this.editField = event.target.textContent;
var patch = {};
patch[property] = this.editField.trim();
if (!patch[property] || patch[property] === "" || patch[property] === scenario[property]) {
return;
}
this._scenariosService.updateScenario(scenario._id.toString(), patch).subscribe(function (res) {
console.log("done", res);
_this._refresh();
});
};
TableScenariosComponent.prototype.updateJson = function (scenario, property, event) {
var _this = this;
this.editField = event.target.textContent.trim();
try {
var patch = {};
var value = JSON.parse(this.editField);
if (JSON.stringify(value) === JSON.stringify(scenario[property])) {
return;
}
patch[property] = value;
console.log("editField", patch);
this._scenariosService.updateScenario(scenario._id.toString(), patch).subscribe(function (res) {
console.log("done", res);
_this._refresh();
});
}
catch (e) {
console.log("error json", e);
this._refresh();
}
};
TableScenariosComponent.prototype.FieldsChange = function (scenario, property, value) {
var _this = this;
var patch = {};
patch[property] = value.checked;
this._scenariosService.updateScenario(scenario._id.toString(), patch).subscribe(function (res) {
console.log("done", res);
_this._refresh();
});
};
TableScenariosComponent.prototype.openNewScenarioModal = function (scenario) {
var _this = this;
var modalRef = this.modalService.show(ScenarioModalComponent, {
class: 'modal-lg modal-notify',
containerClass: '',
data: {
scenario: scenario
}
});
var sub = modalRef.content.action.subscribe(function (data) {
sub.unsubscribe();
console.log("new scenario data", data);
_this._refresh();
});
};
__decorate([
ViewChild(MdbTablePaginationComponent, { static: true }),
__metadata("design:type", MdbTablePaginationComponent)
], TableScenariosComponent.prototype, "mdbTablePagination", void 0);
__decorate([
ViewChild(MdbTableDirective, { static: true }),
__metadata("design:type", MdbTableDirective)
], TableScenariosComponent.prototype, "mdbTable", void 0);
__decorate([
HostListener('input'),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], TableScenariosComponent.prototype, "oninput", null);
TableScenariosComponent = __decorate([
Component({
selector: 'table-scenarios',
templateUrl: './table-scenarios.component.html',
styleUrls: ['./table-scenarios.component.scss']
}),
__metadata("design:paramtypes", [MDBModalService, ChangeDetectorRef, ScenariosService])
], TableScenariosComponent);
return TableScenariosComponent;
}());
export { TableScenariosComponent };
//# sourceMappingURL=table-scenarios.component.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"table-scenarios.component.js","sourceRoot":"","sources":["../../../../../src/app/tables/table-scenarios.component.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,111 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { MdbTablePaginationComponent, MdbTableDirective, MDBModalService } from 'angular-bootstrap-md';
import { Component, ViewChild, HostListener, ChangeDetectorRef } from '@angular/core';
import { SubscriptionModalComponent } from '../alert/edit-subscription.component';
import { SubscriptionsService } from '../services/subscriptions.service';
var TableSubsComponent = /** @class */ (function () {
function TableSubsComponent(modalService, cdRef, _subscriptionsService) {
this.modalService = modalService;
this.cdRef = cdRef;
this._subscriptionsService = _subscriptionsService;
this.previous = [];
this.searchText = '';
this.maxVisibleItems = 25;
this.loading = false;
this.elements = [];
}
TableSubsComponent.prototype.oninput = function () {
this.mdbTablePagination.searchText = this.searchText;
};
TableSubsComponent.prototype._initElements = function () {
this.mdbTable.setDataSource(this.elements);
this.elements = this.mdbTable.getDataSource();
this.previous = this.mdbTable.getDataSource();
};
TableSubsComponent.prototype.ngOnInit = function () {
this.refreshData();
};
TableSubsComponent.prototype.refreshData = function () {
var _this = this;
this.loading = true;
this.searchText = "";
var usersSub = this._subscriptionsService.getSubscriptions().subscribe(function (res) {
usersSub.unsubscribe();
_this.elements = res.results;
_this.loading = false;
_this._initElements();
});
};
TableSubsComponent.prototype.ngAfterViewInit = function () {
this.mdbTablePagination.setMaxVisibleItemsNumberTo(this.maxVisibleItems);
this.mdbTablePagination.calculateFirstItemIndex();
this.mdbTablePagination.calculateLastItemIndex();
this.cdRef.detectChanges();
};
TableSubsComponent.prototype.searchItems = function () {
var _this = this;
var prev = this.mdbTable.getDataSource();
if (!this.searchText) {
this.mdbTable.setDataSource(this.previous);
this.elements = this.mdbTable.getDataSource();
}
if (this.searchText) {
this.elements = this.mdbTable.searchLocalDataBy(this.searchText);
this.mdbTable.setDataSource(prev);
}
this.mdbTablePagination.calculateFirstItemIndex();
this.mdbTablePagination.calculateLastItemIndex();
this.mdbTable.searchDataObservable(this.searchText).subscribe(function () {
_this.mdbTablePagination.calculateFirstItemIndex();
_this.mdbTablePagination.calculateLastItemIndex();
});
};
TableSubsComponent.prototype.openNewSubsModal = function (subscription) {
var _this = this;
var modalRef = this.modalService.show(SubscriptionModalComponent, {
class: 'modal-md modal-notify',
containerClass: '',
data: {
subscription: subscription
}
});
var sub = modalRef.content.action.subscribe(function (data) {
sub.unsubscribe();
console.log("new subs data", data);
_this.refreshData();
});
};
__decorate([
ViewChild(MdbTablePaginationComponent, { static: true }),
__metadata("design:type", MdbTablePaginationComponent)
], TableSubsComponent.prototype, "mdbTablePagination", void 0);
__decorate([
ViewChild(MdbTableDirective, { static: true }),
__metadata("design:type", MdbTableDirective)
], TableSubsComponent.prototype, "mdbTable", void 0);
__decorate([
HostListener('input'),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], TableSubsComponent.prototype, "oninput", null);
TableSubsComponent = __decorate([
Component({
selector: 'table-subscriptions',
templateUrl: './table-subscriptions.component.html',
styleUrls: ['./table-subscriptions.component.scss']
}),
__metadata("design:paramtypes", [MDBModalService, ChangeDetectorRef, SubscriptionsService])
], TableSubsComponent);
return TableSubsComponent;
}());
export { TableSubsComponent };
//# sourceMappingURL=table-subs.component.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"table-subs.component.js","sourceRoot":"","sources":["../../../../../src/app/tables/table-subs.component.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,109 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';
import { Component, ViewChild, HostListener, ChangeDetectorRef } from '@angular/core';
import { AuthGuard } from '../services/auth.guard';
import { UsersService } from '../services/users.service';
var TableUsersComponent = /** @class */ (function () {
function TableUsersComponent(cdRef, _usersService, _auth) {
var _this = this;
this.cdRef = cdRef;
this._usersService = _usersService;
this._auth = _auth;
this.previous = [];
this.searchText = '';
this.maxVisibleItems = 25;
this.loading = false;
this.elements = [];
this._auth.getUserInfo().subscribe(function (value) {
_this.currentUser = value;
});
}
TableUsersComponent.prototype.oninput = function () {
this.mdbTablePagination.searchText = this.searchText;
};
TableUsersComponent.prototype._initElements = function () {
this.mdbTable.setDataSource(this.elements);
this.elements = this.mdbTable.getDataSource();
this.previous = this.mdbTable.getDataSource();
};
TableUsersComponent.prototype.ngOnInit = function () {
this.refreshData();
};
TableUsersComponent.prototype.refreshData = function () {
var _this = this;
this.loading = true;
this.searchText = "";
var usersSub = this._usersService.getUsers().subscribe(function (res) {
usersSub.unsubscribe();
res.results.forEach(function (u) {
u.lastLogin = u.lastLogin || u.created;
});
_this.elements = res.results;
_this.loading = false;
_this._initElements();
});
};
TableUsersComponent.prototype.ngAfterViewInit = function () {
this.mdbTablePagination.setMaxVisibleItemsNumberTo(this.maxVisibleItems);
this.mdbTablePagination.calculateFirstItemIndex();
this.mdbTablePagination.calculateLastItemIndex();
this.cdRef.detectChanges();
};
TableUsersComponent.prototype.searchItems = function () {
var _this = this;
var prev = this.mdbTable.getDataSource();
if (!this.searchText) {
this.mdbTable.setDataSource(this.previous);
this.elements = this.mdbTable.getDataSource();
}
if (this.searchText) {
this.elements = this.mdbTable.searchLocalDataBy(this.searchText);
this.mdbTable.setDataSource(prev);
}
this.mdbTablePagination.calculateFirstItemIndex();
this.mdbTablePagination.calculateLastItemIndex();
this.mdbTable.searchDataObservable(this.searchText).subscribe(function () {
_this.mdbTablePagination.calculateFirstItemIndex();
_this.mdbTablePagination.calculateLastItemIndex();
});
};
TableUsersComponent.prototype.FieldsChange = function (user, value) {
var patchData = { "role": value.checked ? "admin" : "user" };
this._usersService.updateUser(user._id, patchData).subscribe(function (res1) {
user.role = res1.role;
});
};
__decorate([
ViewChild(MdbTablePaginationComponent, { static: true }),
__metadata("design:type", MdbTablePaginationComponent)
], TableUsersComponent.prototype, "mdbTablePagination", void 0);
__decorate([
ViewChild(MdbTableDirective, { static: true }),
__metadata("design:type", MdbTableDirective)
], TableUsersComponent.prototype, "mdbTable", void 0);
__decorate([
HostListener('input'),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], TableUsersComponent.prototype, "oninput", null);
TableUsersComponent = __decorate([
Component({
selector: 'table-users',
templateUrl: './table-users.component.html',
styleUrls: ['./table-users.component.scss']
}),
__metadata("design:paramtypes", [ChangeDetectorRef, UsersService, AuthGuard])
], TableUsersComponent);
return TableUsersComponent;
}());
export { TableUsersComponent };
//# sourceMappingURL=table-users.component.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"table-users.component.js","sourceRoot":"","sources":["../../../../../src/app/tables/table-users.component.ts"],"names":[],"mappings":"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"}

View File

@@ -20,6 +20,12 @@ var HeaderComponent = /** @class */ (function () {
}
HeaderComponent.prototype.ngOnInit = function () {
};
HeaderComponent.prototype.logout = function ($event) {
$event.preventDefault();
$event.stopPropagation();
window.location.href = "/logout";
this._auth.clearUser();
};
HeaderComponent.prototype.ngOnDestroy = function () {
this.subs.unsubscribe();
};

View File

@@ -1 +1 @@
{"version":3,"file":"header.component.js","sourceRoot":"","sources":["../../../../../../src/app/ui/header/header.component.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAQtD;IAKE,yBAAqB,KAAgB;QAArC,iBAKC;QALoB,UAAK,GAAL,KAAK,CAAW;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,SAAS,CAAE,UAAA,KAAK;YACnD,KAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kCAAQ,GAAR;IAEA,CAAC;IAED,qCAAW,GAAX;QACE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC;IAlBU,eAAe;QAL3B,SAAS,CAAC;YACT,QAAQ,EAAE,YAAY;YACtB,WAAW,EAAE,yBAAyB;YACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;SACvC,CAAC;yCAM4B,SAAS;OAL1B,eAAe,CAoB3B;IAAD,sBAAC;CAAA,AApBD,IAoBC;SApBY,eAAe"}
{"version":3,"file":"header.component.js","sourceRoot":"","sources":["../../../../../../src/app/ui/header/header.component.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAQtD;IAKE,yBAAqB,KAAgB;QAArC,iBAKC;QALoB,UAAK,GAAL,KAAK,CAAW;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,SAAS,CAAE,UAAA,KAAK;YACnD,KAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kCAAQ,GAAR;IAEA,CAAC;IAED,gCAAM,GAAN,UAAO,MAAM;QACX,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,CAAC,eAAe,EAAE,CAAC;QACzB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;IACzB,CAAC;IAED,qCAAW,GAAX;QACE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC;IAzBU,eAAe;QAL3B,SAAS,CAAC;YACT,QAAQ,EAAE,YAAY;YACtB,WAAW,EAAE,yBAAyB;YACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;SACvC,CAAC;yCAM4B,SAAS;OAL1B,eAAe,CA2B3B;IAAD,sBAAC;CAAA,AA3BD,IA2BC;SA3BY,eAAe"}

View File

@@ -1,12 +1,5 @@
export var environment = {
production: false,
config: {
tenant: 'c21eeb5f-f5a6-44e8-a997-124f2f7a497c',
clientId: '40742f13-bde8-4b1b-ac07-54c11b36b779',
postLogoutRedirectUri: 'http://localhost:4200',
endpoints: {
'http://localhost:4200/': 'the id'
}
}
apiVersionPath: '/api/v1'
};
//# sourceMappingURL=environment.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../../src/environments/environment.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;IACjB,MAAM,EAAE;QACN,MAAM,EAAE,sCAAsC;QAC9C,QAAQ,EAAE,sCAAsC;QAChD,qBAAqB,EAAE,uBAAuB;QAC9C,SAAS,EAAE;YACT,wBAAwB,EAAE,QAAQ;SACnC;KACF;CACF,CAAC"}
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../../src/environments/environment.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;IACjB,cAAc,EAAE,SAAS;CAC1B,CAAC"}

View File

@@ -1,4 +1,5 @@
export var environment = {
production: true
production: true,
apiVersionPath: '/api/v1'
};
//# sourceMappingURL=environment.prod.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"environment.prod.js","sourceRoot":"","sources":["../../../../src/environments/environment.prod.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,WAAW,GAAG;IACzB,UAAU,EAAE,IAAI;CACjB,CAAC"}
{"version":3,"file":"environment.prod.js","sourceRoot":"","sources":["../../../../src/environments/environment.prod.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,WAAW,GAAG;IACzB,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,SAAS;CAC1B,CAAC"}

Binary file not shown.

128
dist/qmi-cloud/assets/faq.md vendored Normal file
View File

@@ -0,0 +1,128 @@
# FAQ
Just an assorted selection of questions and answers.
### 1\. What can I use QMI Cloud for?
- QMI Cloud scenarios can be used to perform product demonstrations, enablement sessions and PoC environments. It is built to aid with Customer Engagements.
* * *
### 2\. Are these QMI scenarios ready to go End-To-End demos?
- Not at this moment, a global environment is being built for PreSales by GEAR.
- Provided scenarios are meant for (See 1). QMI works by installing licensing the products. QMI completes the main setup for the scenario to properly work where possible. You may need to put custom data, Qlik Sense applications or whatever you need for your customer engagement.
* * *
### 3\. Where are QMI Cloud resources deployed?
- All cloud resources such as Virtual Machines (VMs), disks, etc are deployed in the Qlik Azure subscription.
- For the time being, all resources are deployed in the __East US__ region in Azure. This means that it could be some significant latency or delays if you are located in another region.
* * *
### 4\. What will happen when I provision a scenario?
- Necessary resources for that scenario to work are deployed within Azure.
- An email is sent to the owner (e.g. you) indicating whether the provision was successful or with failures.
- Upon success, all credentials and access information for this provision is sent with that email.
- From that moment, VMs will keep at 'Running' status for 4 full days.
- On day 3, an email is sent warning that in the next 24 hours the VMs will automatically stop.
- You can "extend" VMs at Running status. This will renew the 'Running' period for 4 extra days. Other way, VMs will automatically stop within the next 24 hours.
- You can monitor 'Running time' and 'Time remaining until auto stop' at all times.
- __Provision will be automatically destroyed after 20 days of inactivity (20 days with Stopped VMs). On day 18 you'll get a warning email advising this will happen in 48 hours.__
* * *
### 5\. How many scenarios can I have provisioned at the same time?
- There is no limitation on the number of scenarios (or instances of the same one) provisioned at the same time. Just be aware of COST and keep VMs Stopped when possible.
- Do not forget to Destroy those provisions that you no longer need.
* * *
### 6\. Are scenarios accessible from the Internet or just from within Qlik VPN?
- All scenarios are accessible from within the Qlik VPN.
- Some are also accessible from the Intenet (external access). This is indicated on the UI for each scenario.
* * *
### 7\. Is QMI Cloud under the 'Qlik Customer Engagement Terms' policy?
- Yes.
- Only anonymous or public/free data can be used.
- Customer data is available with QSE SaaS, work is being done to aid PreSales manage 3rd Party data.
* * *
### 8\. Do scenarios communicate with each other?
- Yes.
- Private IPs assigned to all VMs are reachable.
- All ports are open for these private IPs (within the Qlik VPN).
* * *
### 9\. What can I do if I don't find a scenario that suits my needs?
- You can create end-to-end more complete demos with different Qlik products using combination of multiple scenarios.
- For example, if you needed an NPrinting demo/poc, you could use Qlik Sense scenario and Windows Blank scenario, then you can install NPrinting in this Windows Blank scenario and complete the setup yourself.
* * *
### 10\. Who is paying for these instances?
- The costs for these instances are allocated to PreSales.
- It is essential that we are all cost consciouse setup yourself.
* * *
### 11\. Can I manually stop and start the scenarios?
- Yes.
* * *
### 12\. If I shutdown the scenario, does it allocate a new IP Address?
- No.
* * *
### 13\. Are the mandatory security tools installed on these instances?
- Yes.
- Security is key for Qlik, whilst these are initially installed (Cabon Black on Windows, CrowdStrike on Linux) it is your responsibility as the owner of this instance to ensure everything is upto date.
* * *
### 14\. Can I create new instances?
- This capability will be described soon.
* * *
### 15\. How are we managing Costs?
- Excessive use for instances, will need to be justified, every instance logged it tagged with your trigram. The usage of QMI Cloud will be made public within a Qlik Sense Application.
- GEAR is looking at estimating the price for each server that you initiate.
* * *
### 16\. My Team use a team server; can I use this as well?
- This is open to everyone, if you do have a team server, then for cost purposes, please use that server.
* * *

View File

@@ -6,8 +6,8 @@
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="assets/favicon.ico">
<link rel="stylesheet" href="styles.a176d817fea8bea6cd9e.css"></head>
<link rel="stylesheet" href="styles.096cda9efd9a8b224b3d.css"></head>
<body>
<app-root></app-root>
<script src="runtime.689ba4fd6cadb82c1ac2.js" defer></script><script src="polyfills-es5.f752a17531a45fe93c1f.js" nomodule defer></script><script src="polyfills.06ba8d1a3d9dd3a8e8b9.js" defer></script><script src="scripts.cc5d7fb76aa54d397727.js" defer></script><script src="main.09d3646b3fdc1d594bb9.js" defer></script></body>
<script src="runtime.e227d1a0e31cbccbf8ec.js" defer></script><script src="polyfills-es5.f1f388528ea207060cbf.js" nomodule defer></script><script src="polyfills.335424f161535f57733f.js" defer></script><script src="scripts.5520a99f673924c17e00.js" defer></script><script src="main.39aa2c5b2de4993d0e07.js" defer></script></body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -34,10 +34,20 @@ services:
MONGO_INITDB_ROOT_PASSWORD: example
networks:
- backend
ports:
- "27017:27017"
cli:
build:
context: .
dockerfile: qmi-cloud-cli/Dockerfile
image: qlikgear/qmi-cloud-cli:latest
app:
build: .
build:
context: .
dockerfile: Dockerfile
image: qlikgear/qmi-cloud-app:latest
container_name: qmi-cloud-app
restart: on-failure
@@ -45,9 +55,11 @@ services:
- source: qmicloud_config
target: config.json
environment:
#- HOSTNAME_URL=https://qmi-cloud:3100
- HOSTNAME_URL=http://localhost:3000
- REDIS_URL=redis://redis
- MONGO_URI=mongodb://root:example@mongo/qmi?authSource=admin
- MONGO_URI=mongodb://root:example@mongo/qmicloud?authSource=admin
- CERT_PFX_FILENAME=
- CERT_PFX_PASSWORD=
command:
- ./server/wait-for.sh
- --timeout=20
@@ -55,11 +67,15 @@ services:
- --
- sh
- -c
- npm run dev
- npm run start:dev
volumes:
- .:/var/www/app
# -- Dev only volumes
- ./server:/var/www/app/server
- ./dist:/var/www/app/dist
# -------------------
- ../qmi-cloud-provisions:/provisions
- ./logs:/logs
#- ./certs:/var/www/app/server/certs
depends_on:
- mongo
- redis
@@ -70,20 +86,26 @@ services:
- backend
worker:
build: .
build:
context: .
dockerfile: qmi-cloud-worker/Dockerfile
image: qlikgear/qmi-cloud-worker:latest
container_name: qmi-cloud-worker
restart: on-failure
deploy:
replicas: 2
environment:
- REDIS_URL=redis://redis
- MONGO_URI=mongodb://root:example@mongo/qmi?authSource=admin
- MONGO_URI=mongodb://root:example@mongo/qmicloud?authSource=admin
- PROJECT_PATH=${PWD}
- GIT_SCENARIOS=git::git@gitlab.com:qmi/qmi-cloud-scenarios.git
- GIT_TAG=dev
- SSHPATH=/Users/aor/.ssh
command: "sh -c 'npm run worker:dev'"
- DOCKERIMAGE_AZURE_POWERSHELL=mcr.microsoft.com/azure-powershell:4.2.0-ubuntu-18.04
- DOCKERIMAGE_TERRAFORM=qlikgear/terraform:1.0.1
command: "sh -c 'npm run start:dev'"
volumes:
- .:/var/www/app
# -- Dev only volumes
- ./worker:/app/worker
# -------------------
- ./logs:/logs
- /var/run/docker.sock:/home/docker.sock
depends_on:
@@ -91,7 +113,7 @@ services:
- redis
networks:
- backend
mongo-express:
image: mongo-express:0.54.0
container_name: qmi-cloud-mongo-express

View File

@@ -1,18 +0,0 @@
FROM node:13.8-alpine
RUN apk --no-cache add yarn
WORKDIR /var/www/app
ADD ./package.json ./
ADD ./yarn.lock ./
RUN yarn install --production
ADD ./server ./server
ADD ./dist ./dist
EXPOSE 3000
EXPOSE 3100
CMD ["node", "-r", "esm", "server/server"]

View File

@@ -1,14 +0,0 @@
FROM node:13.8-alpine
RUN apk --no-cache add yarn
WORKDIR /var/www/app
ADD ./package.json ./
ADD ./yarn.lock ./
RUN yarn install --production
ADD ./server ./server
CMD ["node", "-r", "esm", "server/workers/worker.js"]

View File

@@ -1,10 +1,41 @@
export VERSION=$(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]')
docker build -f ./docker-server/Dockerfile -t qlikgear/qmi-cloud-app:$VERSION ./
docker build -f ./docker-worker/Dockerfile -t qlikgear/qmi-cloud-worker:$VERSION ./
docker build -f ./docker-server/Dockerfile -t qlikgear/qmi-cloud-app:latest ./
docker build -f ./docker-worker/Dockerfile -t qlikgear/qmi-cloud-worker:latest ./
echo "$DOCKER_REGISTRY_PASSWORD" | docker login -u "$DOCKER_REGISTRY_USER" --password-stdin
docker push qlikgear/qmi-cloud-app:$VERSION
docker push qlikgear/qmi-cloud-app:latest
docker push qlikgear/qmi-cloud-worker:$VERSION
docker push qlikgear/qmi-cloud-worker:latest
echo "--- Building QMI Cloud docker images for branch $CI_COMMIT_REF_NAME"
export VERSION_APP=$(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]')
export VERSION_WORKER=$(cat qmi-cloud-worker/package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]')
export VERSION_CLI=$(cat qmi-cloud-cli/package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]')
export TAG_APP=$VERSION_APP
export TAG_WORKER=$VERSION_WORKER
export TAG_CLI=$VERSION_CLI
export STABLE_TAG="latest"
if [ "$CI_COMMIT_REF_NAME" != "master" ]; then
TAG_APP="$VERSION_APP-$CI_COMMIT_REF_NAME"
TAG_WORKER="$VERSION_WORKER-$CI_COMMIT_REF_NAME"
TAG_CLI="$VERSION_CLI-$CI_COMMIT_REF_NAME"
STABLE_TAG="latestdev"
fi
echo "$DOCKER_REGISTRY_PASSWORD" | docker login --username "$DOCKER_REGISTRY_USER" --password-stdin
echo "--- Building image: qlikgear/qmi-cloud-cli:$TAG_CLI"
docker build -f ./qmi-cloud-cli/Dockerfile -t qlikgear/qmi-cloud-cli:$TAG_CLI ./
echo "--- Pushing image: qlikgear/qmi-cloud-cli:$TAG_CLI"
docker push qlikgear/qmi-cloud-cli:$TAG_CLI
docker build -f ./qmi-cloud-cli/Dockerfile -t qlikgear/qmi-cloud-cli:$STABLE_TAG ./
docker push qlikgear/qmi-cloud-cli:$STABLE_TAG
echo "--- Building image: qlikgear/qmi-cloud-worker:$TAG_WORKER"
docker build -f ./qmi-cloud-worker/Dockerfile -t qlikgear/qmi-cloud-worker:$TAG_WORKER ./
echo "--- Pushing image: qlikgear/qmi-cloud-worker:$TAG_WORKER"
docker push qlikgear/qmi-cloud-worker:$TAG_WORKER
docker build -f ./qmi-cloud-worker/Dockerfile -t qlikgear/qmi-cloud-worker:$STABLE_TAG ./
docker push qlikgear/qmi-cloud-worker:$STABLE_TAG
echo "--- Building image: qlikgear/qmi-cloud-app:$TAG_APP"
docker build -f ./Dockerfile -t qlikgear/qmi-cloud-app:$TAG_APP ./
echo "--- Pushing image: qlikgear/qmi-cloud-app:$TAG_APP"
docker push qlikgear/qmi-cloud-app:$TAG_APP
docker build -f ./Dockerfile -t qlikgear/qmi-cloud-app:$STABLE_TAG ./
docker push qlikgear/qmi-cloud-app:$STABLE_TAG

View File

@@ -1,5 +0,0 @@
#!/bin/bash
branch=master
rm -fr ./az-tf-templates
git clone -b $branch git@gitlab.com:qmi/qmi-cloud-scenarios.git ./az-tf-templates

14876
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,9 @@
{
"name": "qmi-cloud",
"version": "1.0.7",
"name": "qmi-cloud-app",
"version": "1.1.5",
"scripts": {
"start": "node -r esm server/server.js",
"dev": "nodemon -r esm server/server.js",
"worker": "node -r esm server/workers/worker.js",
"worker:dev": "nodemon -r esm server/workers/worker.js",
"start:dev": "nodemon -r esm server/server.js",
"test": "echo \"No test specified\" && exit 0"
},
"private": true,
@@ -17,25 +15,24 @@
"@angular/core": "~9.0.7",
"@angular/forms": "~9.0.7",
"@angular/http": "~7.0.0",
"@angular/localize": "~9.0.7",
"@angular/platform-browser": "~9.0.7",
"@angular/platform-browser-dynamic": "~9.0.7",
"@angular/router": "~9.0.7",
"@fortawesome/fontawesome-free": "^5.12.1",
"@hapi/boom": "^9.1.0",
"@ng-bootstrap/ng-bootstrap": "6.2.0",
"@types/chart.js": "^2.9.16",
"adal-angular4": "^4.0.12",
"angular-bootstrap-md": "^9.0.0",
"animate.css": "^3.7.2",
"azure-arm-compute": "^10.0.0",
"body-parser": "^1.19.0",
"boom": "^7.3.0",
"bootstrap": "^4.3.1",
"bull": "^3.11.0",
"bull-arena": "^2.6.4",
"chart.js": "^2.9.3",
"connect-mongo": "^3.0.0",
"cookie-parser": "^1.4.4",
"core-js": "^2.5.4",
"dockerode": "^3.0.2",
"esm": "^3.2.25",
"express": "^4.17.1",
"express-session": "^1.17.0",
@@ -44,12 +41,13 @@
"hammerjs": "^2.0.8",
"jsonwebtoken": "^8.5.1",
"leonardo-ui": "^1.7.1",
"moment": "^2.24.0",
"mongoose": "^5.7.4",
"ms-rest-azure": "^3.0.0",
"nodemailer": "^6.4.2",
"ngx-markdown": "^9.0.0",
"nodemon": "^1.19.1",
"passport": "^0.4.0",
"passport-azure-ad": "^4.1.0",
"qmi-cloud-common": "./qmi-cloud-common",
"rxjs": "~6.5.4",
"swagger-jsdoc": "3.5.0",
"swagger-ui-express": "4.1.3",
@@ -75,4 +73,4 @@
"tslint": "~5.11.0",
"typescript": "~3.7.5"
}
}
}

21
qmi-cloud-cli/Dockerfile Normal file
View File

@@ -0,0 +1,21 @@
# Stage 1: NOTE: context is actually ../
FROM node:13.8-alpine AS sources
RUN apk --no-cache add yarn
WORKDIR /app
ADD ./qmi-cloud-cli ./
ADD ./qmi-cloud-common ../qmi-cloud-common
RUN yarn install --production
# Stage 2:
FROM node:13.8-alpine AS production
WORKDIR /app
COPY --from=sources /app ./
RUN chmod a+x ./shell-utils/*.sh
ENTRYPOINT ["sh", "/app/shell-utils/check.sh"]

22
qmi-cloud-cli/README.md Normal file
View File

@@ -0,0 +1,22 @@
# Examples
```
docker run --net=host \
-e MONGO_URI="mongodb://root:example@localhost:27017/qmicloud?authSource=admin" \
-e API_KEY="c229219ccdd72d11e8ea253fd3876d247e5f489c9c84922cabdfb0cc194d8ff398a8d8d6528d8241efc99add2207e0ec75122a1b2c5598cc340cbe6b7c3c0dbf" \
qlikgear/qmi-cloud-cli:latest -s checkdestroy -t warning -p 4 -r test
```
```
docker run --net=host \
-e MONGO_URI="mongodb://root:example@localhost:27017/qmicloud?authSource=admin" \
qlikgear/qmi-cloud-cli:latest -s initdb
```
```
docker run --net=host -e MONGO_URI=$MONGO_URI -e API_KEY=$API_KEY qlikgear/qmi-cloud-cli:latest -s checkdestroy -t warning -p 20 -r test
```
```
docker run --net=host -e MONGO_URI=$MONGO_URI -e API_KEY=$API_KEY qlikgear/qmi-cloud-cli:latest -s checkstop -t warning -p 4 -r test
```

View File

@@ -0,0 +1,425 @@
[
{
"isAdminOnly": false,
"isWafPolicyAppGw": true,
"isExternal": true,
"isDisabled": false,
"availableProductVersions": [
{
"product": "Qlik Sense",
"vmTypeDefault": "Standard_D4s_v3",
"index": "vm1",
"versions": [
{
"name": "Qlik Sense February 2020",
"image": "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-Machines/providers/Microsoft.Compute/images/qliksense-base-feb20-2"
},
{
"name": "Qlik Sense April 2020",
"image": "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-Machines/providers/Microsoft.Compute/images/qliksense-base-april20-1587800741770"
}
]
}
],
"vmTypeDefault": "Standard_D4s_v3",
"name": "azqmi-qs-sn",
"title": "Qlik Sense Enterprise on Windows",
"description": "Qlik Sense Enterprise on Windows (single node). Dashboard and visualization bundle installed.<br><br>WebConnectors installed but not licensed.",
"version": "1.0",
"created": "2019-12-04T09:27:15.596Z",
"updated": "2020-05-10T15:27:26.466Z",
"__v": 0
},
{
"isAdminOnly": false,
"isWafPolicyAppGw": true,
"isExternal": true,
"isDisabled": false,
"availableProductVersions": [
{
"product": "Qlik Sense",
"vmTypeDefault": "Standard_D4s_v3",
"index": "vm1",
"versions": [
{
"name": "Qlik Sense February 2020",
"image": "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-Machines/providers/Microsoft.Compute/images/qliksense-base-feb20-2"
},
{
"name": "Qlik Sense April 2020",
"image": "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-Machines/providers/Microsoft.Compute/images/qliksense-base-april20-1587800741770"
}
]
},
{
"product": "QDC",
"vmTypeDefault": "Standard_D4s_v3",
"index": "vm2",
"versions": [
{
"name": "QDC Single Server December 2019",
"image": "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-Machines/providers/Microsoft.Compute/images/qdc-base-4.4-2"
},
{
"name": "QDC Single Server April 2020",
"image": "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-Machines/providers/Microsoft.Compute/images/qdc-base-april20-1588850882491"
}
]
}
],
"vmTypeDefault": "Standard_D4s_v3",
"name": "azqmi-qdc-qs",
"title": "Qlik Data Catalyst and Qlik Sense",
"description": "Creates a <b>QDC single server</b> and a <b>Qlik Sense Enterprise</b>.<br><br>Configuration is all set to load QVDs located in C:/QVDs and \"Publish to Qlik\". Setup QDC Catalog in QS Data Manager <a target=\"blank\" href=\"https://confluence.qliktech.com/display/~AOR/QMI+Cloud+-+QDC+Catalogue+setup+in+Qlik+Sense\">here</a>. More appealing QVD demo configuration by <a target=\"blank\" href=\"https://confluence.qliktech.com/display/~kaa/Getting+Qlik+Catalog+for+QVD+ready+for+Demo+on+QMI+Cloud\">Kevin Alty</a>. Troubleshoot 'Publish To Qlik\" <a target=\"blank\" href=\"https://confluence.qliktech.com/display/~AOR/Troubleshooting+Publish+To+Qlik+in+QMI+Cloud+QS-QDC+scenario\">here</a>.",
"version": "1.0",
"created": "2019-12-04T09:27:15.596Z",
"updated": "2020-05-12T08:39:13.216Z",
"__v": 0
},
{
"isAdminOnly": true,
"isWafPolicyAppGw": false,
"isExternal": false,
"isDisabled": false,
"availableProductVersions": [
{
"product": "Oracle",
"vmTypeDefault": "Standard_D4s_v3",
"index": "vm1",
"versions": []
}
],
"name": "azqmi-database-lkn",
"title": "Oracle & Other databases",
"description": "Oracle Database <b class=\"lui-text-danger\">DO NOT USE, DEV IN PROGRESS</b>",
"version": "1.0",
"created": "2019-12-04T09:27:15.596Z",
"updated": "2020-05-14T03:58:03.413Z"
},
{
"isAdminOnly": true,
"isWafPolicyAppGw": false,
"isExternal": false,
"isDisabled": false,
"availableProductVersions": [
{
"product": "packer",
"vmTypeDefault": "Standard_D8s_v3",
"index": "vm1",
"versions": []
}
],
"name": "azqmi-box-builder",
"title": "Builds qmi desktop base box with packer",
"description": "packer builder <b class=\"lui-text-danger\">DO NOT USE, GEAR INTERNAL ONLY</b>",
"version": "1.0",
"created": "2019-12-04T09:27:15.596Z",
"updated": "2020-05-20T02:59:57.772Z",
"__v": 0
},
{
"isAdminOnly": false,
"isWafPolicyAppGw": false,
"isExternal": true,
"isDisabled": false,
"availableProductVersions": [
{
"product": "QDC",
"vmTypeDefault": "Standard_D4s_v3",
"index": "vm1",
"versions": [
{
"name": "QDC Single Server December 2019",
"image": "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-Machines/providers/Microsoft.Compute/images/qdc-base-4.4-2"
},
{
"name": "QDC Single Server April 2020",
"image": "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-Machines/providers/Microsoft.Compute/images/qdc-base-april20-1588850882491"
}
]
}
],
"vmTypeDefault": "Standard_D4s_v3",
"name": "azqmi-qdc-ss",
"title": "Qlik Data Catalyst",
"description": "Qlik Data Catalyst single server. Set appropriate license (after provision) if QDC4QVDs only version is needed.",
"version": "1.0",
"created": "2019-12-04T09:26:39.532Z",
"updated": "2020-05-10T15:22:34.537Z",
"__v": 0
},
{
"isAdminOnly": false,
"isWafPolicyAppGw": false,
"isExternal": false,
"isDisabled": false,
"availableProductVersions": [
{
"product": "Windows",
"vmTypeDefault": "Standard_D2s_v3",
"diskSizeGbDefault": 128,
"index": "vm1",
"versions": []
}
],
"vmTypeDefault": "Standard_D2s_v3",
"name": "azqmi-wn-bl",
"title": "Windows Server 2016",
"description": "Just a blank Windows Server 2016",
"version": "1.0",
"created": "2019-12-04T09:26:11.396Z",
"updated": "2020-05-10T12:39:09.646Z",
"__v": 0
},
{
"isAdminOnly": false,
"isWafPolicyAppGw": false,
"isExternal": false,
"isDisabled": false,
"availableProductVersions": [
{
"product": "Windows",
"vmTypeDefault": "Standard_D2s_v3",
"index": "vm1",
"versions": []
}
],
"vmTypeDefault": "Standard_D2s_v3",
"name": "azqmi-wn-dbs",
"title": "MySQL and MSSQL server databases",
"description": "Windows Server 2016 running MySQL and MSSQL server databases.",
"version": "1.0",
"created": "2019-12-04T08:55:31.948Z",
"updated": "2020-05-16T12:57:06.937Z"
},
{
"isAdminOnly": false,
"isWafPolicyAppGw": false,
"isExternal": false,
"isDisabled": false,
"availableProductVersions": [
{
"product": "Ubuntu 18.04",
"vmTypeDefault": "Standard_B2s",
"diskSizeGbDefault": 128,
"index": "vm1",
"versions": []
}
],
"vmTypeDefault": "Standard_B2s",
"name": "azqmi-ubuntu",
"title": "Ubuntu 18.04",
"description": "Just a blank Ubuntu 18.04 instance",
"version": "1.0",
"created": "2019-12-04T08:55:31.948Z",
"updated": "2020-05-10T12:39:12.884Z",
"__v": 0
},
{
"isAdminOnly": false,
"isWafPolicyAppGw": false,
"isExternal": false,
"isDisabled": false,
"availableProductVersions": [
{
"product": "Centos 7.5",
"vmTypeDefault": "Standard_B2s",
"diskSizeGbDefault": 128,
"index": "vm1",
"versions": []
}
],
"vmTypeDefault": "Standard_B2s",
"name": "azqmi-centos",
"title": "Centos 7.5",
"description": "Just a blank Centos 7.5 instance",
"version": "1.0",
"created": "2019-12-04T08:55:31.948Z",
"updated": "2020-05-10T12:39:15.087Z",
"__v": 0
},
{
"isAdminOnly": true,
"isWafPolicyAppGw": false,
"isExternal": false,
"isDisabled": false,
"availableProductVersions": [
{
"product": "Centos 7.5",
"vmTypeDefault": "Standard_D4s_v3",
"diskSizeGbDefault": 128,
"index": "vm1",
"versions": []
}
],
"vmTypeDefault": "Standard_D4s_v3",
"name": "gen-qdc",
"title": "Image generator - QDC",
"description": "This scenario creates a VM and runs QDC install scripts. Then it will generalize the VM for it to become an Azure image.",
"version": "1.0",
"created": "2019-12-04T08:55:31.948Z",
"updated": "2020-05-10T12:39:17.323Z",
"__v": 0,
"newImageName": "qdc-base-april20"
},
{
"isAdminOnly": true,
"isWafPolicyAppGw": false,
"isExternal": false,
"isDisabled": false,
"availableProductVersions": [
{
"product": "Windows",
"vmTypeDefault": "Standard_D8s_v3",
"diskSizeGbDefault": 128,
"index": "vm1",
"versions": []
}
],
"vmTypeDefault": "Standard_D8s_v3",
"name": "gen-qs",
"title": "Image generator - QSEoW",
"description": "This scenario creates a VM and will run Qlik Sense install scripts. Then it will generalize the VM for it to become an Azure image.",
"version": "1.0",
"created": "2019-12-04T08:55:31.948Z",
"updated": "2020-05-10T12:39:21.035Z",
"newImageName": "qliksense-base-april20",
"__v": 0
},
{
"isAdminOnly": false,
"isWafPolicyAppGw": false,
"isExternal": false,
"isDisabled": false,
"availableProductVersions": [
{
"product": "QlikView",
"vmTypeDefault": "Standard_D4s_v3",
"index": "vm1",
"versions": []
}
],
"vmTypeDefault": "Standard_D4s_v3",
"name": "azqmi-qv",
"title": "QlikView Server and Publisher",
"description": "This scenario creates a VM running <b>QlikView Server and Publisher April 2019 SR1</b> (access from VPN only).",
"version": "1.0",
"created": "2019-12-04T08:55:31.948Z",
"updated": "2020-05-10T12:39:23.148Z",
"__v": 0
},
{
"isAdminOnly": false,
"isWafPolicyAppGw": false,
"isExternal": false,
"isDisabled": false,
"availableProductVersions": [
{
"product": "each node",
"vmTypeDefault": "Standard_D8s_v3",
"diskSizeGbDefault": 250,
"index": "vm1",
"versions": []
}
],
"vmTypeDefault": "Standard_D8s_v3",
"name": "azqmi-qseok-microk8s",
"title": "Qlik Sense Enterprise on Kubernetes (microk8s)",
"description": "Ubuntu 18.04 running <a target=\"blank\" href=\"https://microk8s.io/\">MicroK8s</a> cluster and QSEoK deployed in it. <br><br><b>Just for Demos, not for PoCs</b>",
"version": "1.0",
"created": "2019-12-04T08:55:31.948Z",
"updated": "2020-05-10T15:29:19.944Z",
"__v": 0
},
{
"isAdminOnly": false,
"isWafPolicyAppGw": true,
"isExternal": true,
"isDisabled": false,
"availableProductVersions": [
{
"product": "QIB",
"vmTypeDefault": "Standard_D8s_v3",
"index": "vm1",
"versions": [
{
"name": "Qlik Sense Feb 2020 and QIB Feb 2020",
"image": "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-Machines/providers/Microsoft.Compute/images/qliksense-qib-base-feb20-1"
}
]
}
],
"vmTypeDefault": "Standard_D8s_v3",
"name": "azqmi-qs-qib",
"title": "Qlik Insight Bot",
"description": "Qlik Sense Enterprise on Windows with Qlik Insight Bot.<br><br>WebConnectors installed but not licensed.",
"version": "1.0",
"created": "2019-12-04T09:27:15.596Z",
"updated": "2020-05-10T15:23:45.891Z"
},
{
"isAdminOnly": true,
"isWafPolicyAppGw": true,
"isExternal": true,
"isDisabled": false,
"availableProductVersions": [
{
"product": "Windows VM",
"vmTypeDefault": "Standard_D8s_v3",
"index": "vm1",
"versions": []
}
],
"vmTypeDefault": "Standard_D8s_v3",
"name": "azqmi-qs-np",
"title": "Qlik Sense Enterprise and NPrinting",
"description": "<b class=\"lui-text-danger\">DO NOT USE, DEV IN PROGRESS</b> One VM running <b>Qlik Sense Feb 2020</b> and <b>NPrinting Feb 2020 SR1</b>. Extenal access through AppGw.<br><br>WebConnectors installed but not licensed.",
"version": "1.0",
"created": "2019-12-04T08:55:31.948Z",
"updated": "2020-05-10T15:23:56.237Z"
},
{
"isAdminOnly": false,
"isWafPolicyAppGw": false,
"isExternal": false,
"isDisabled": false,
"availableProductVersions": [
{
"product": "Ubuntu 18.04",
"vmTypeDefault": "Standard_D4s_v3",
"diskSizeGbDefault": 128,
"index": "vm1",
"versions": []
}
],
"vmTypeDefault": "Standard_D4s_v3",
"name": "azqmi-ubuntu-docker",
"title": "Ubuntu with Docker and Docker-Compose",
"description": "This is Ubuntu 18.04 with Docker Engine and Docker-Compose installed.",
"version": "1.0",
"created": "2019-12-04T08:55:31.948Z",
"updated": "2020-05-10T15:24:19.588Z"
},
{
"isAdminOnly": false,
"isWafPolicyAppGw": false,
"isExternal": false,
"isDisabled": false,
"availableProductVersions": [
{
"product": "Attunity Replicate/Compose DW",
"vmTypeDefault": "Standard_D2s_v3",
"index": "vm1",
"versions": []
}
],
"vmTypeDefault": "Standard_D2s_v3",
"name": "azqmi-di",
"title": "Attunity Replicate/Compose DW",
"description": "Windows Server 2016 with installed Attunity Replicate and Compose DW (v6.6.0).",
"version": "1.0",
"created": "2019-12-04T08:55:31.948Z",
"updated": "2020-05-10T15:24:29.303Z"
}
]

View File

@@ -0,0 +1,96 @@
[
{
"isAdminOnly": true,
"isWafPolicyAppGw": false,
"isExternal": false,
"isDisabled": false,
"availableProductVersions": [
{
"product": "Qlik Sense",
"vmTypeDefault": "Standard_D4s_v3",
"diskSizeGbDefault": "500",
"index": "vm1",
"versions": [
{
"name": "Qlik Sense April 2020",
"image": "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-Machines/providers/Microsoft.Compute/galleries/QMICloud/images/QlikSenseEnterprise/versions/13.72.3"
}
]
},
{
"product": "QDC",
"vmTypeDefault": "Standard_D4s_v3",
"diskSizeGbDefault": "500",
"index": "vm2",
"versions": [
{
"name": "QDC Single Server April 2020",
"image": "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-Machines/providers/Microsoft.Compute/galleries/QMICloud/images/QDC/versions/4.5.0"
}
]
}
],
"name": "azqmi-qdc-qs-secure",
"title": "Qlik Data Catalyst and Qlik Sense (secure)",
"description": "Creates a <b>QDC single server</b> and a <b>Qlik Sense Enterprise</b> in isolation and secure for Customer Data PoC's.<br><br>Configuration is all set to load QVDs located in C:/QVDs and \"Publish to Qlik\". Setup QDC Catalog in QS Data Manager <a target=\"blank\" href=\"https://confluence.qliktech.com/display/~AOR/QMI+Cloud+-+QDC+Catalogue+setup+in+Qlik+Sense\">here</a>. Troubleshoot 'Publish To Qlik\" <a target=\"blank\" href=\"https://confluence.qliktech.com/display/~AOR/Troubleshooting+Publish+To+Qlik+in+QMI+Cloud+QS-QDC+scenario\">here</a>.",
"created": "2020-05-18T09:10:35.728Z",
"updated": "2020-05-18T15:25:27.282Z",
"__v": 0
},
{
"isAdminOnly": true,
"isWafPolicyAppGw": false,
"isExternal": false,
"isDisabled": false,
"availableProductVersions": [
{
"product": "QDC",
"vmTypeDefault": "Standard_D8s_v3",
"diskSizeGbDefault": 500,
"index": "vm1",
"versions": [
{
"name": "QDC Single Server April 2020",
"image": "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-Machines/providers/Microsoft.Compute/galleries/QMICloud/images/QDC/versions/4.5.0"
}
]
}
],
"name": "azqmi-qdc-secure",
"title": "Qlik Data Catalyst (secure)",
"description": "Qlik Data Catalyst deployment in isolation and secure for Customer Data PoC's",
"created": "2020-05-18T07:58:28.741Z",
"updated": "2020-05-18T15:25:32.828Z",
"__v": 0
},
{
"isAdminOnly": true,
"isWafPolicyAppGw": false,
"isExternal": false,
"isDisabled": false,
"availableProductVersions": [
{
"product": "Qlik Sense",
"vmTypeDefault": "Standard_D8s_v3",
"diskSizeGbDefault": 250,
"index": "vm1",
"versions": [
{
"name": "Qlik Sense February 2020",
"image": "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-Machines/providers/Microsoft.Compute/galleries/QMICloud/images/QlikSenseEnterprise/versions/13.62.0"
},
{
"name": "Qlik Sense April 2020",
"image": "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-Machines/providers/Microsoft.Compute/galleries/QMICloud/images/QlikSenseEnterprise/versions/13.72.3"
}
]
}
],
"name": "azqmi-qs-secure",
"title": "Qlik Sense Enterprise on Windows (secure)",
"description": "Qlik Sense Enterprise deployment in isolation and secure for Customer Data PoC's",
"created": "2020-05-13T11:55:55.785Z",
"updated": "2020-05-18T15:25:38.158Z",
"__v": 0
}
]

View File

@@ -0,0 +1,10 @@
[
{
"subsId": "62ebff8f-c40b-41be-9239-252d6c0c8ad9",
"description": "QMI Automation"
},
{
"subsId": "73c75d40-8c7d-45cf-b4f9-afdb210da92d",
"description": "Qlik-Secure"
}
]

View File

@@ -0,0 +1,62 @@
[
{
"_id": "5e73a211710f74000640cbf2",
"type": "Standard_B1ms",
"desc": "1 CPUs - 2GiB RAM",
"costHour": 0.0207
},
{
"_id": "5e73a220710f74000640cbf4",
"type": "Standard_B2s",
"desc": "2 CPUs - 4GiB RAM",
"costHour": 0.0416
},
{
"_id": "5e73a22b710f74000640cbf6",
"type": "Standard_D2s_v3",
"desc": "2 CPUs - 8GiB RAM",
"costHour": 0.096
},
{
"_id": "5e73a240710f74000640cbfa",
"type": "Standard_D4s_v3",
"desc": "4 CPUs - 16GiB RAM",
"costHour": 0.192
},
{
"_id": "5e73a251710f74000640cbfe",
"type": "Standard_D8s_v3",
"desc": "8 CPUs - 32GiB RAM",
"costHour": 0.384
},
{
"_id": "5e73a262710f74000640cc02",
"type": "Standard_D16s_v3",
"desc": "16 CPUs - 64GiB RAM",
"costHour": 0.768
},
{
"_id": "5e92c98ce7b19100066153ab",
"type": "Standard_D32s_v3",
"desc": "32 CPUs - 128GiB RAM",
"costHour": 1.536
},
{
"_id": "5ea9016970653300063fbd17",
"type": "Standard_E16s_v3",
"desc": "16 CPUs - 128 GiB RAM - Mem. optimized",
"costHour": 1.008
},
{
"_id": "5ea901bd70653300063fbd19",
"type": "Standard_E20s_v3",
"desc": "20 CPUs - 160 GiB RAM - Mem. optimized",
"costHour": 1.26
},
{
"_id": "5ea901d670653300063fbd1b",
"type": "Standard_E32s_v3",
"desc": "32 CPUs - 256GiB RAM - Mem. optimized",
"costHour": 2.016
}
]

View File

@@ -0,0 +1,50 @@
const db = require('qmi-cloud-common/mongo');
var initDataSubscriptions = require("../initdata/subscriptions.json");
var scenarios1 = require("../initdata/scenariosQMI-Automation.json");
var scenarios2 = require("../initdata/scenariosQlik-Secure.json");
var vmTypes = require("../initdata/vmtypes.json");
async function asyncForEach(array, callback) {
for (let index = 0; index < array.length; index++) {
await callback(array[index], index, array);
}
}
async function init() {
// Adding VmTypes
await asyncForEach(vmTypes, async function(v){
await db.vmtype.add(v);
});
// Adding Subscriptions
await asyncForEach(initDataSubscriptions, async function(s){
await db.subscription.add(s);
});
var subscription;
//QMI Automation
subscription = await db.subscription.getOne({"description": "QMI Automation"});
await asyncForEach(scenarios1, async function(s){
s.subscription = subscription._id;
await db.scenario.add(s);
});
//Qlik-Secure
subscription = await db.subscription.getOne({"description": "Qlik-Secure"});
await asyncForEach(scenarios2, async function(s){
s.subscription = subscription._id;
await db.scenario.add(s);
});
console.log("Done!");
process.exit(0);
}
init().catch(function(err){
console.log(err);
process.exit(1);
});
module.exports.init = init;

View File

@@ -0,0 +1,152 @@
var myArgs = process.argv.slice(2);
if ( myArgs.length < 3 ) {
console.log("Missing args", myArgs);
process.exit(0);
}
const db = require('qmi-cloud-common/mongo');
const sendEmail = require("qmi-cloud-common/send-email");
const moment = require('moment');
const fetch = require('node-fetch');
const IS_REAL = myArgs[2] !== 'test';
const STOPPED_PERIOD = myArgs[1]; //Days
const STOPPED_LIMIT_HOURS_WARNING = 24*(STOPPED_PERIOD-2); //Hours
const STOPPED_LIMIT_HOURS_STOP = 24*STOPPED_PERIOD; //Hours
const API_KEY = process.env.API_KEY;
const SERVER_URL = "http://localhost:3000";
if ( !API_KEY ) {
console.log("Missing env API_KEY");
process.exit(0);
}
async function postDestroy(provision) {
const userId = provision.user._id.toString();
const provId = provision._id.toString();
return fetch(`${SERVER_URL}/api/v1/users/${userId}/provisions/${provId}/destroy?apiKey=${API_KEY}`, {
method: 'POST',
headers:{
'Content-Type': 'application/json'
}
})
.then(res => res.json())
.then(json => console.log(json));
}
function timeRunning(p) {
let totalStopTime = Math.abs(new Date().getTime() - new Date(p.stoppedFrom).getTime());
let duration = moment.duration(totalStopTime);
p.duration = {
hours: Math.floor(duration.asHours()),
complete: Math.floor(duration.asDays()) +"d "+duration.hours()+"h "+duration.minutes()
};
}
async function asyncForEach(array, callback) {
for (let index = 0; index < array.length; index++) {
await callback(array[index], index, array);
}
}
async function init(type) {
var limit, cb;
var filter = {
"isDestroyed":false,
"isDeleted": false,
"statusVms": "Stopped"
};
if ( type === "warning" ) {
limit = STOPPED_LIMIT_HOURS_WARNING;
filter.pendingNextAction = {$ne: "destroy"};
cb = doSendEmailDestroyWarning;
} else if ( type === "exec" ) {
limit = STOPPED_LIMIT_HOURS_STOP;
filter.pendingNextAction = "destroy";
cb = doDestroy;
} else {
console.log("Invalid 'type'. Do nothing.");
return;
}
let provisions = await db.provision.get(filter);
let scenarios = await db.scenario.get();
await asyncForEach(provisions.results, async function(p) {
var _scenario = scenarios.results.filter(s=>{
return s.name === p.scenario
});
if ( _scenario.length ){
p._scenario = _scenario[0];
}
timeRunning(p);
if (!IS_REAL) {
console.log(`${p._id} - limit: ${limit} hs - actual duration: ${p.duration.hours} hs`);
}
if ( p.duration && p.duration.hours >= limit) {
await cb(p);
}
});
}
const doSendEmailDestroyWarning = async function(p) {
if ( p.pendingNextAction === 'destroy') {
console.log(`Warning email Destroy already sent. Wait for pending action to complete.`);
} else {
let msg = `Send warning DESTROY email - ${p.user.displayName} (${p.user.upn}) about provision '${p._scenario.title}' (${p._id}) being 'Inactive' more than ${STOPPED_LIMIT_HOURS_WARNING} hours (exactly ${p.duration.complete})`;
console.log(msg);
if ( IS_REAL ) {
await db.provision.update(p._id, {"pendingNextAction": "destroy"});
await sendEmail.sendWillDestroyIn24(p, p._scenario);
await db.notification.add({ provision: p._id.toString(), type: 'warningDestroy', message: msg });
}
}
};
const doDestroy = async function(p) {
try {
let msg = `Provision destroyed - ${p.user.displayName} (${p.user.upn}) about provision '${p._scenario.title}' (${p._id}) being 'Inactive' more than ${STOPPED_LIMIT_HOURS_STOP} hours (exactly ${p.duration.complete})`
console.log(msg);
if ( IS_REAL ) {
await postDestroy(p);
await db.notification.add({ provision: p._id.toString(), type: 'destroy', message: msg });
}
} catch (error) {
console.log("doDestroy Error", error);
}
};
function check(type) {
init(type).then(function(){
db.mongoose.connection.close()
process.exit(0);
}).catch(function(e){
db.mongoose.connection.close()
console.log("Error", e);
process.exit(0);
});
}
// --------------------------------
switch (myArgs[0]) {
case 'warning':
check("warning");
break;
case 'exec':
check("exec");
break;
default:
console.log('Sorry, that is not something I know how to do.');
process.exit(0);
}

Some files were not shown because too many files have changed in this diff Show More