From 3d4a89e8c8f1ae7458c7175310d355e6c72b88af Mon Sep 17 00:00:00 2001 From: psayker Date: Wed, 3 Jul 2019 16:25:03 +1000 Subject: [PATCH 1/3] #218 Fix history clear after non `OK` task --- polemarch/main/models/utils.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/polemarch/main/models/utils.py b/polemarch/main/models/utils.py index ca764bdc..cd8555d2 100644 --- a/polemarch/main/models/utils.py +++ b/polemarch/main/models/utils.py @@ -317,16 +317,24 @@ def get_kwargs(self, target, extra_args) -> Dict[Text, Any]: def error_handler(self, exception: BaseException) -> NoReturn: # pylint: disable=no-else-return default_code = self.status_codes["other"] + error_text = str(exception) + self.history.status = default_code + if isinstance(exception, self.ExecutorClass.CalledProcessError): # nocv - self.history.raw_stdout = "{}".format(exception.output) + error_text = "{}".format(exception.output) self.history.status = self.status_codes.get( exception.returncode, default_code ) - return elif isinstance(exception, self.project.SyncError): self.__will_raise_exception = True - self.history.raw_stdout = self.history.raw_stdout + str(exception) - self.history.status = default_code + + last_line_object = self.history.raw_history_line.last() + last_line = 0 + if last_line_object: + last_line = last_line_object.line_number # nocv + for line in error_text.split('\n'): + last_line += 1 + self.history.write_line(line, last_line) def execute(self, target: Text, inventory: Any, history: History, project: Project, **extra_args) -> NoReturn: try: From 672c5310e3128169e87783e4e9d4fcfcd6f0e11d Mon Sep 17 00:00:00 2001 From: Akhmadullin Roman Date: Fri, 5 Jul 2019 17:32:43 +1000 Subject: [PATCH 2/3] Add PWA/WEB manifest to GUI. Add service worker caching. Remove indexedDB caching. --- polemarch/__init__.py | 2 +- polemarch/main/settings.py | 51 +++++++++++-- polemarch/static/img/logo/logo_120x120.png | Bin 0 -> 1931 bytes polemarch/static/img/logo/logo_128x128.png | Bin 0 -> 1912 bytes polemarch/static/img/logo/logo_144x144.png | Bin 0 -> 2269 bytes polemarch/static/img/logo/logo_150x150.png | Bin 0 -> 4007 bytes polemarch/static/img/logo/logo_152x152.png | Bin 0 -> 2438 bytes polemarch/static/img/logo/logo_180x180.png | Bin 0 -> 2773 bytes polemarch/static/img/logo/logo_192x192.png | Bin 0 -> 4526 bytes polemarch/static/img/logo/logo_310x310.png | Bin 0 -> 9646 bytes polemarch/static/img/logo/logo_36x36.png | Bin 0 -> 1318 bytes polemarch/static/img/logo/logo_48x48.png | Bin 0 -> 1726 bytes polemarch/static/img/logo/logo_512x512.png | Bin 0 -> 9128 bytes polemarch/static/img/logo/logo_72x72.png | Bin 0 -> 2338 bytes polemarch/static/img/logo/logo_96x96.png | Bin 0 -> 2873 bytes polemarch/static/js/pmHistory.js | 22 +----- polemarch/static/templates/pmItems.html | 6 +- polemarch/templates/gui/gui.html | 32 -------- polemarch/templates/gui/offline.html | 8 ++ polemarch/templates/gui/service-worker.js | 11 +++ polemarch/templates/rest_framework/base.html | 74 +------------------ requirements-doc.txt | 2 +- requirements.txt | 2 +- 23 files changed, 72 insertions(+), 138 deletions(-) create mode 100644 polemarch/static/img/logo/logo_120x120.png create mode 100644 polemarch/static/img/logo/logo_128x128.png create mode 100644 polemarch/static/img/logo/logo_144x144.png create mode 100644 polemarch/static/img/logo/logo_150x150.png create mode 100644 polemarch/static/img/logo/logo_152x152.png create mode 100644 polemarch/static/img/logo/logo_180x180.png create mode 100644 polemarch/static/img/logo/logo_192x192.png create mode 100644 polemarch/static/img/logo/logo_310x310.png create mode 100644 polemarch/static/img/logo/logo_36x36.png create mode 100644 polemarch/static/img/logo/logo_48x48.png create mode 100644 polemarch/static/img/logo/logo_512x512.png create mode 100644 polemarch/static/img/logo/logo_72x72.png create mode 100644 polemarch/static/img/logo/logo_96x96.png create mode 100644 polemarch/templates/gui/offline.html create mode 100644 polemarch/templates/gui/service-worker.js diff --git a/polemarch/__init__.py b/polemarch/__init__.py index 6579c407..136a9157 100644 --- a/polemarch/__init__.py +++ b/polemarch/__init__.py @@ -31,6 +31,6 @@ "VST_ROOT_URLCONF": os.getenv("VST_ROOT_URLCONF", 'vstutils.urls'), } -__version__ = "1.2.2" +__version__ = "1.2.3" prepare_environment(**default_settings) diff --git a/polemarch/main/settings.py b/polemarch/main/settings.py index 8e9d9a3b..eb35d134 100644 --- a/polemarch/main/settings.py +++ b/polemarch/main/settings.py @@ -110,17 +110,17 @@ OPENAPI_EXTRA_LINKS['Request'] = [ { 'url': ( - 'https://gitlab.com/vstconsulting/polemarch/issues/new?' - 'issuable_template%5D=Ask&issue%5Btitle%5D=Ask%20about%20version%20' - +str(POLEMARCH_VERSION) + 'https://gitlab.com/vstconsulting/polemarch/issues/new?' + 'issuable_template%5D=Ask&issue%5Btitle%5D=Ask%20about%20version%20' + +str(POLEMARCH_VERSION) ), 'name': 'Question' }, { 'url': ( - 'https://gitlab.com/vstconsulting/polemarch/issues/new?' - 'issuable_template%5D=Bug&issue%5Btitle%5D=Bug%20in%20version%20' - + str(POLEMARCH_VERSION) + 'https://gitlab.com/vstconsulting/polemarch/issues/new?' + 'issuable_template%5D=Bug&issue%5Btitle%5D=Bug%20in%20version%20' + + str(POLEMARCH_VERSION) ), 'name': 'Bug report' }, @@ -262,6 +262,45 @@ class GitSectionConfig(SectionConfig): dict(forks=4, timeout=30, fact_caching_timeout=3600, poll_interval=5) ).all() +__PWA_ICONS_SIZES = [ + "36x36", "48x48", "72x72", "96x96", "120x120", "128x128", "144x144", + "150x150", "152x152", "180x180", "192x192", "310x310", "512x512" +] + +PWA_MANIFEST = { + "description": "Ansible based service for IT infrastructure management", + "icons": list( + map(lambda icon_size : { + "src": "{0}img/logo/logo_{1}.png".format(STATIC_URL, icon_size), + "sizes": icon_size, + "type": "image/png" + }, __PWA_ICONS_SIZES) + ), +} + +SPA_STATIC += [ + {'priority': 200, 'type': 'tpl', 'name': 'templates/pmFields.html', 'spa': True, 'api': False}, + {'priority': 200, 'type': 'tpl', 'name': 'templates/pmItems.html', 'spa': True, 'api': True}, + {'priority': 200, 'type': 'tpl', 'name': 'templates/pmProjects.html', 'spa': True, 'api': False}, + {'priority': 200, 'type': 'tpl', 'name': 'templates/pmHistory.html', 'spa': True, 'api': False}, + {'priority': 150, 'type': 'js', 'name': 'js/libs/ansi_up.js', 'spa': True, 'api': True}, + {'priority': 150, 'type': 'js', 'name': 'js/pmCustomizer.js', 'spa': True, 'api': True}, + {'priority': 160, 'type': 'js', 'name': 'js/common.js', 'spa': True, 'api': True}, + {'priority': 182, 'type': 'js', 'name': 'js/pmFields.js', 'spa': True, 'api': False}, + {'priority': 182, 'type': 'js', 'name': 'js/pmFieldsMixins.js', 'spa': True, 'api': False}, + {'priority': 183, 'type': 'js', 'name': 'js/pmItems.js', 'spa': True, 'api': True}, + {'priority': 184, 'type': 'js', 'name': 'js/pmHosts.js', 'spa': True, 'api': False}, + {'priority': 184.5, 'type': 'js', 'name': 'js/pmGroups.js', 'spa': True, 'api': False}, + {'priority': 185, 'type': 'js', 'name': 'js/pmInventories.js', 'spa': True, 'api': False}, + {'priority': 186, 'type': 'js', 'name': 'js/pmProjects.js', 'spa': True, 'api': False}, + {'priority': 187, 'type': 'js', 'name': 'js/pmHistory.js', 'spa': True, 'api': False}, + {'priority': 190, 'type': 'js', 'name': 'js/pmTemplates.js', 'spa': True, 'api': False}, + {'priority': 191, 'type': 'js', 'name': 'js/pmPeriodicTasks.js', 'spa': True, 'api': False}, + {'priority': 183, 'type': 'js', 'name': 'js/pmUsers.js', 'spa': True, 'api': False}, + {'priority': 400, 'type': 'js', 'name': 'js/pmDashboard.js', 'spa': True, 'api': False}, + {'priority': 200, 'type': 'css', 'name': 'css/polemarch-gui.css', 'spa': True, 'api': True}, + {'priority': 200, 'type': 'css', 'name': 'css/ansi-colors.css', 'spa': True, 'api': True}, +] # TEST settings if "test" in sys.argv: diff --git a/polemarch/static/img/logo/logo_120x120.png b/polemarch/static/img/logo/logo_120x120.png new file mode 100644 index 0000000000000000000000000000000000000000..ad26bccca99a1ddf8df7b3ae24f77dae1d2c6e55 GIT binary patch literal 1931 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 Qe;dF9O+Ae=HJjl70eCQBX8-^I literal 0 HcmV?d00001 diff --git a/polemarch/static/img/logo/logo_152x152.png b/polemarch/static/img/logo/logo_152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..fc32a84e4d990c29e4c69561101b104f03dd777d GIT binary patch literal 2438 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 bJw^Es)uij3Gk_D?00000NkvXXu0mjft_FUV literal 0 HcmV?d00001 diff --git a/polemarch/static/img/logo/logo_192x192.png b/polemarch/static/img/logo/logo_192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..c7db0eeb89a109fbe0b299b75871f011bb9e3e7d GIT binary patch literal 4526 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 literal 0 HcmV?d00001 diff --git a/polemarch/static/img/logo/logo_48x48.png b/polemarch/static/img/logo/logo_48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..4ac47f433608dc2519f792212edd2d8b5b68f806 GIT binary patch literal 1726 zcmV;v20{6WP)nYc8u%K(w70EUzRgpmIK|17Y|GO^3a=31e!pmE+yv*zJlGNizxX{Dk;$q0!mdVULw9FBOi~xOvG_lJx zvC9B{hX4Qn0DXl2|Nj7eh5!Hm|Ns90rNRK7y#R!e0DXouvC9B{h#alSB(BN;ro#Z7 zyDhNF6RgMpqQC&5zW{)W0FkKxkf;EMmjH#60;j|Pqrd>5zW{-Z0FR{rjGzFEodAZF z4Xeiqs>cVZ#sHhT0Ew9esKo%4u>g~-0FI&niktra{{WV=0GG7@l&<;x{Q#Z3{Qmv` znYjD?{`33%0FtZs{QdL!`sVie0Ftf|nX&o({`UO*@A>-e`1Zjl7#^mU{;pf8Q=9Spxu-xR6)ZvEG;djvBqt@Pa&E9Uy-Cf1mYRA}u$I(Bx z&p5QrY`)4XugWj4$V#)v8mq<_q{0BB!9cCQAf>+tp}%mrz6zbZ6`#5gl&3eHrU{Uv z50Rk=iIoR|it70K-SYO;>g=xG=*r~fwcO!|(covw+oaXns?^w7!`Dy2){)HAQn}AD zx6fO<&O^4%g2T&2u*4>&z%Qu3GN`^Jqq|eDx*?&sKB%@drL``ivMQjlIH9gEpR7)# zstJ;)BA2Evm7NujoezhRWP9_>0000ybW%=J{Qds^{{H^{{{H^`{QUm@{{H^{{{H^{ z{r&v>{QUdRME?H%{{H^{{{H^`{r&v>{QUg-)6vYv#>6}~fPdcr000AdNklhr14Uo4dRFzp*4u+R#hb_I~Ln zmwfYb@7^_`ZQitwsbcTwxcX4+5*<37uAroRL`_3OW4*f@Z;|W9jkaqz+{KI8T3XuL z>YAD-&(e-xIL|b3SlyD~1!2JtNqs)<w>j;6!B6WfSbSFThAynk~k%9)H z^pcQ-$T%;lSn`?_th#|;5Z<1vQZUf1EF~EwWMDsD(BvG(5Q}B4JDL@O-{HMC2}r`u z#^o>=3@etYwXSZbSTZE;Cj$!D^WQTv!hu>Wb`wRiN1{v4h33kD@k)_ou(5<1#F$vh zKwq$AaEm`Rh_xqxJgil!766gN3IHyr4q*=4_>#dibPm%q^8nU({1#b;!APu1 zJJ7QB?&K1|J_t*ZjjzM#U93n7FA?xLDx#E40L#Sq%4J#(A=ei)oNg^hgWF0uWYX>y@k8AC4%{t;MRm2&(HrVc2r+J zJ6lnqu0E%U0Oq53FhSY~{3oD@%r6?AhPZa=()9H7<;z!~z~pI7ARv;S6~9SDRwF-O zEE^U`fP+a#JYSypq@fSgI$ahm9TOdv0DA|Q+y*Zo3389bPaN*!ps>U!wEDN#;=s|; zF*8yK0U_w+aJXe(OUny=kfh&eQs83AU^WMXplcFtZ?@g9dgN%=91$2XjIxu3fT;Vx zb#`XI5Fzzit3MwwSSoG4K$5VoGWM4UWbF$L<$;x{X-{f^yb#sCyMz3$_zeP86Gg}^pExBzhD6>YDS7xV>z-=g6<(f9G)|rS0};8o UpB;d9@Bjb+07*qoM6N<$f|S*(_y7O^ literal 0 HcmV?d00001 diff --git a/polemarch/static/img/logo/logo_512x512.png b/polemarch/static/img/logo/logo_512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..8ec1de593b9fab7a09bc904528aed15de8611162 GIT binary patch literal 9128 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 literal 0 HcmV?d00001 diff --git a/polemarch/static/img/logo/logo_72x72.png b/polemarch/static/img/logo/logo_72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..4928a12185e82167d258250707a0d4a4d526651c GIT binary patch literal 2338 zcmZ8i2{hDg7ypOBkS$WEm(jw!XhD?ZLwuPQTPk@G3Ryyll*-81LWWTWk+E-M3^Qbx z!OX}qgX|_*LMD66FvdH2&-b10eD^%hz0bY(oZq?k_iWLY=9k1oR$lTkDas)5irUKv0b za<|7_KGT8dRN*2r4`i3Ogd!j$3P`Eu!K&ce`SV+VoKL{ZNFJ(y@D!iZxQQh2k-SF{#S<&#FbOia8C3Ff}^4M6*JILOMYggWaE8sEE!# z|2}(PVwNoO132!zWCRi%jyzS>Es;jlz~GfoneuVTBClfBSD-<>YY_O@+Wb13!)3F% z91dq|i+4=8T%Kj`+TXIx;jnE%|M7P1_BJoZVYAt+jsFev*1sWm30|tR)%yREyDpnO zGd(rY-AN(a-n=%SQUU-VcbJKhjV%c~=xRG+cu;6bTu|#V$#vl$Np#LNT;8J~ZrY}* zVJ=7bs5Lrv`1`_&D@4ri!FcK??uX3enGJjY4Mtjo=Ci)^@WjN#TY_TpM^83hyK&v8 zJ8*g3`|AwO3%-mx_Ug<@+cGD5!*(__yYye> z@sm1KN49IV#mXI2J7b|7W#sTA)6XOpN>gDX43H%<20rT4I0=(r+Y+NQdMlkld``ZzD8v@svs^yo6zXj zLNcj)>=o7=B;b~X$|4*ehGmqPyYC)N(iMNaTy=v_<4&Q1h_K3(KWN9mpFufX#)S)|}M=V-FVX5T1!JZm%fU5w6 z&pDj3Jn{4qMBPLQf@2}|c2)`9ErBvKF;V7lk^VQa^3_2goQiRfLa6&ye!(+}rc0FP zkU+bVRg$z#T!0;!c~ron2juRuIKz(ij3?t6zFgU}XceLqq!_GTFsXZ5C`>;IzF+*g zJ8gO#`EwPVaLP=N+`BhiUz=|^yj6cXMa#XCFf}t{k*4#YU)^A8+>ZriieK|Kbe~Er zhT{hBov1{HhlbMW^iTI)Ty(x6QGa8e*_^2YEP}ADC!~ce-J%6TePRT zIw$wR3D|sf=V(8^c{$ZS?YXFOW}%iQE3&Xc)fkyknA*{9cRk@mBc|sclb?*HWkQD$(8S))h_h$_rs%4CoBd zWIRGq!wLCr!RF1$9JhBka&kuXzZC_Y9S}lWynj#BcgQz5_#omJaYaT}Ss9khWU8AO z8-SOMl$C~jo4{a0#7wq`>1@J*QI|_1D;R4pHvLbbGGq|n!?kPOVX?v7G!TqZ z?sKffZ4jknhfWMr*SJ$^hIrnH4!A=#b~|??#`(;V)dcl>-`SU;dvyvs??DJS4^=}? zH?^n2KfQ{dmC8Nrk?h~Tkk=b`d@qFS=id_9X{>uf$>{xk*mB%AAp&f Ko0J+mz4{w{Mdt7T literal 0 HcmV?d00001 diff --git a/polemarch/static/img/logo/logo_96x96.png b/polemarch/static/img/logo/logo_96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..ca80224fb1206d37fbe90e7e9a84067df3bf888d GIT binary patch literal 2873 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 b2>xV$VV(F1bhRB}eF1>6p_u_z5B}_bkiW$Y literal 0 HcmV?d00001 diff --git a/polemarch/static/js/pmHistory.js b/polemarch/static/js/pmHistory.js index 679d367c..b5d5a1cc 100644 --- a/polemarch/static/js/pmHistory.js +++ b/polemarch/static/js/pmHistory.js @@ -494,23 +494,7 @@ var history_pk_mixin = { * Method, that gets lines and set them to this.lines async. */ getLines() { - if(app.files_cache.use_cache) { - return this.getLinesFromCache(); - } else { - return this.loadLines(); - } - }, - - /** - * Method, that gets lines from cache (if they exist there) or loads them from API. - */ - getLinesFromCache() { - return app.files_cache.getFile(this.lines_url).then(response => { - this.lines = JSON.parse(response.data); - return response; - }).catch(error => { - return this.loadLines(); - }); + return this.loadLines(); }, /** @@ -597,10 +581,6 @@ var history_pk_mixin = { this.lines.push(new_line); } } - - if(app.files_cache.use_cache) { - app.files_cache.setFile(this.lines_url, JSON.stringify(this.lines)); - } }, /** * Method, that returns html (line content with ansi_up classes). diff --git a/polemarch/static/templates/pmItems.html b/polemarch/static/templates/pmItems.html index f3c9280d..b54c684f 100644 --- a/polemarch/static/templates/pmItems.html +++ b/polemarch/static/templates/pmItems.html @@ -94,9 +94,9 @@

- -