openvcloud / 0-templates

Apache License 2.0
1 stars 5 forks source link

authentication method will throw an unreadable error in case of the jwt is expired #62

Closed 0xIslamTaha closed 6 years ago

0xIslamTaha commented 6 years ago

Description authentication method will throw an unreadable error in case of the jwt is expired

blueprint example

services:
  - github.com/openvcloud/0-templates/sshkey/0.0.1__sshkey1:
      passphrase: '147258'
  - github.com/openvcloud/0-templates/openvcloud/0.0.1__be-g8-3:
      address: 'be-g8-3.demo.greenitglobe.com'
      location: 'be-g8-3'
      token: '************************************************************************'
  - github.com/openvcloud/0-templates/account/0.0.1__kubernetes:
      openvcloud: be-g8-3  
  - github.com/openvcloud/0-templates/vdc/0.0.1__kubernetesVDC8:
      account: kubernetes
      openvcloud: be-g8-3
  - github.com/openvcloud/kubernetes/setup/0.0.1__k8s:
      vdc: kubernetesVDC8
      sshKey: sshkey1
      workers: 1

actions:
  - template: github.com/openvcloud/0-templates/vdc/0.0.1
    actions: ['install']
  - template: github.com/openvcloud/kubernetes/setup/0.0.1
    actions: ['install']

tracback

root@vm-2211:~# zrobot server start --listen :6601 --template-repo https://github.com/openvcloud/0-templates.git --template-repo https://github.com/openvcloud/kubernetes.git --data-repo https://github.com/john-kheir/0-robot6.git
[Sun18 10:33] - robot.py          :87  :j.zerorobot          - INFO     - data directory: /opt/code/github/john-kheir/0-robot6/zrobot_data
[Sun18 10:33] - robot.py          :116 :j.zerorobot          - INFO     - robot running at :6601
[Sun18 11:02] - pywsgi.py         :1146:j.zerorobot          - INFO     - ::ffff:127.0.0.1 - - [2018-03-18 11:02:55] "HEAD / HTTP/1.1" 200 277 0.004758
[Sun18 11:04] - pywsgi.py         :1146:j.zerorobot          - INFO     - ::ffff:127.0.0.1 - - [2018-03-18 11:04:11] "HEAD / HTTP/1.1" 200 277 0.001648
[Sun18 11:04] - pywsgi.py         :1146:j.zerorobot          - INFO     - ::ffff:127.0.0.1 - - [2018-03-18 11:04:11] "POST /blueprints HTTP/1.1" 200 652 0.317993
[Sun18 11:04] - OVCClient.py      :66  :nts.openvcloud.be-g8-3 - INFO     - Get OpenvCloud client on URL: be-g8-3.demo.greenitglobe.com
[Sun18 11:04] - base.py           :195 :service-303cced3-1101-4ec4-b84a-ed4a45d076e0 - ERROR    - error executing action install:
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/zerorobot/task/task.py", line 79, in execute
    self._result = self.func()
  File "/opt/code/github/openvcloud/0-templates/templates/vdc/vdc.py", line 86, in install
    acc = self.account
  File "/opt/code/github/openvcloud/0-templates/templates/vdc/vdc.py", line 67, in account
    self._account = ovc.account_get(self.data['account'], create=False)
  File "/opt/code/github/jumpscale/lib9/JumpScale9Lib/clients/openvcloud/OVCClient.py", line 139, in account_get
    for account in self.accounts:
  File "/opt/code/github/jumpscale/lib9/JumpScale9Lib/clients/openvcloud/OVCClient.py", line 110, in accounts
    ovc_accounts = self.api.cloudapi.accounts.list()
  File "/opt/code/github/jumpscale/lib9/JumpScale9Lib/clients/openvcloud/OVCClient.py", line 51, in api
    self._api.load_swagger(group='cloudapi')
  File "/opt/code/github/jumpscale/lib9/JumpScale9Lib/clients/portal/PortalClient.py", line 78, in load_swagger
    swagger = self.system.docgenerator.prepareCatalog(group=group)
  File "/opt/code/github/jumpscale/lib9/JumpScale9Lib/clients/portal/PortalClient.py", line 56, in __call__
    raise ApiError(response)
JumpScale9Lib.clients.portal.PortalClient.ApiError: 401 Unauthorized
b'\n<!DOCTYPE html>\n<html>\n<head>\n <meta charset="UTF-8">\n<link rel="shortcut icon" type="image/png" href="/system/.files/img/favicon/png" />\n<title>AccessDenied</title>\n<script  src=\'/jslib/jquery/jquery-2.2.1.min.js\' type=\'text/javascript\'></script>\n<script  src=\'/jslib/jquery/jquery-migrate-1.2.1.js\' type=\'text/javascript\'></script>\n<script  src=\'/jslib/jquery/jquery-ui.min.js\' type=\'text/javascript\'></script>\n<script  src=\'/jslib/bootstrap/js/bootstrap-3-3-6.min.js\' type=\'text/javascript\'></script>\n<link  href=\'/jslib/bootstrap/css/bootstrap-3-3-6.min.css\' type=\'text/css\' rel=\'stylesheet\' />\n<link  href=\'/jslib/flatui/css/flat-ui.css\' type=\'text/css\' rel=\'stylesheet\' />\n<link  href=\'/jslib/new-ui/new-ui.css\' type=\'text/css\' rel=\'stylesheet\' />\n<link  href=\'/jslib/new-ui/oocss.css\' type=\'text/css\' rel=\'stylesheet\' />\n<script  src=\'/jslib/pnotify/pnotify.js\' type=\'text/javascript\'></script>\n<script  src=\'/jslib/pnotify/pnotify.buttons.js\' type=\'text/javascript\'></script>\n<script  src=\'/system/.files/js/events.js\' type=\'text/javascript\'></script>\n<link  href=\'/jslib/pnotify/pnotify.css\' type=\'text/css\' rel=\'stylesheet\' />\n<script type=\'text/javascript\'>\n\n        $( function () {\n        $(\'body\').addClass(\'flatTheme\');\n\n        $(\'link[href="/jslib/old/breadcrumbs/breadcrumbs.css"]\').remove();\n        $(\'link[href="/jslib/swagger/css/reset.css"]\').remove();\n\n\n        $(\'.nav-collapse.collapse\').removeClass(\'nav-collapse\').addClass(\'navbar-collapse\');\n        $(\'.btn.btn-navbar\').replaceWith(\'<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".nav-collapse" aria-expanded="false">\' +\n            \'<span class="sr-only">Toggle navigation</span>\' +\n            \'<span class="icon-bar"></span>\' +\n            \'<span class="icon-bar"></span>\' +\n            \'<span class="icon-bar"></span>\' +\n          \'</button>\'\n        );\n        $(\'.brand\').removeClass(\'brand\').addClass(\'navbar-brand\');\n        $(\'.navbar-inner\').addClass(\'navbar-form\');\n        $(\'.search-query\').addClass(\'form-control\');\n        $(\'.newBreadcrumbArrow\').removeClass(\'newBreadcrumbArrow separator\').addClass(\'fui-arrow-right\');\n\n        $(\'.span1\').removeClass(\'span1\').addClass(\'col-md-1\');\n        $(\'.span2\').removeClass(\'span2\').addClass(\'col-md-2\');\n        $(\'.span3\').removeClass(\'span3\').addClass(\'col-md-3\');\n        $(\'.span4\').removeClass(\'span4\').addClass(\'col-md-4\');\n        $(\'.span5\').removeClass(\'span5\').addClass(\'col-md-5\');\n        $(\'.span6\').removeClass(\'span6\').addClass(\'col-md-6\');\n        $(\'.span7\').removeClass(\'span7\').addClass(\'col-md-7\');\n        $(\'.span8\').removeClass(\'span8\').addClass(\'col-md-8\');\n        $(\'.span9\').removeClass(\'span9\').addClass(\'col-md-9\');\n        $(\'.span10\').removeClass(\'span10\').addClass(\'col-md-10\');\n        $(\'.span11\').removeClass(\'spa11\').addClass(\'col-md-11\');\n        $(\'.span12\').removeClass(\'span12\').addClass(\'col-md-12\');\n\n        var toggles = document.querySelectorAll(".c-hamburger");\n        for (var i = toggles.length - 1; i >= 0; i--) {\n            var toggle = toggles[i];\n            toggleHandler(toggle);\n        };\n        function toggleHandler(toggle) {\n            toggle.addEventListener( "click", function(e) {\n              e.preventDefault();\n              (this.classList.contains("is-active") === true) ? this.classList.remove("is-active") : this.classList.add("is-active");\n              $(\'.page-content\').find(\'.sidebar-nav\').toggleClass(\'hide\');\n              $(\'.page-content\').find(\'.content\').toggleClass(\'less-wide\');\n              $(\'.page-content\').find(\'.navigation\').toggleClass(\'wide-sidebar\');\n            });\n        }\n    });\n     </script>\n<link  href=\'/system/.files/css/flatTheme.css\' type=\'text/css\' rel=\'stylesheet\' />\n<link  href=\'/system/.files/css/default.css\' type=\'text/css\' rel=\'stylesheet\' />\n\n<style type=\'text/css\' >html, body {\n    height: 100%\n}\n#external-iframe{\n    width:100%;\n    height:100% !important;\n}\n#PortalsHamburgerMenu{\n    margin-bottom: 0;\n    margin-top: -5px;\n    z-index: 5;\n    left: 0;\n    background: transparent;\n}\n#PortalsHamburgerMenu.light span,\n#PortalsHamburgerMenu.light span::before,\n#PortalsHamburgerMenu.light span::after,\n.slider-container.visible #PortalsHamburgerMenu span,\n.slider-container.visible #PortalsHamburgerMenu span::before,\n.slider-container.visible #PortalsHamburgerMenu span::after{\n    background: #fff;\n}\n.slider-container.visible #PortalsHamburgerMenu{\n    position: fixed !important;\n}\n#PortalsHamburgerMenu.dark span,\n#PortalsHamburgerMenu.dark span::before,\n#PortalsHamburgerMenu.dark span::after{\n    background: #000;\n}\n.portals-list{\n    padding-left: 0;\n    list-style: none;\n}\n.portals-list li{\n    padding: 5px 0;\n    border-bottom: 1px solid #D3DAE0;\n    border-left: 4px solid transparent;\n    margin-left: 5px;\n}\n.portals-list li:first-child{\n    border-top: 1px solid #D3DAE0;\n}\n.portals-list li a{\n    padding-left: 4px;\n    display: block;\n    color: #34495E;\n}\n.panel-heading:hover a::before{\n  color: #fff;\n}\n.accordion .panel-heading{\n  border-radius: 0;\n}\n.accordion .panel-heading:hover a, .portals-list .panel-collapse li:hover a{\n    border-left: 4px solid #34495E;\n    background-color: #95A5A6;\n    color: #fff;\n}\n.accordion{\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n}\n.accordion:hover{\n    border-top: 1px solid #C3C3C3;\n    border-bottom: 1px solid #C3C3C3;\n}\n.portals-list .space:hover a{\n    color: #fff;\n}\n.explore-portals{\n    background-color: #34495E;\n    color: #fff;\n    padding-bottom: 12px;\n    margin-bottom: 0;\n    margin-left: 0;\n    font-size: 15px;\n    margin-top: -5px;\n    padding-top: 5px;\n    display: block;\n    padding-left: 40px;\n    padding-right: 20px;\n    padding-top: 14px;\n}\n.fixed-slide-nav{\n    display: block;\n    top: 0;\n}\n.panel-heading .accordion-toggle::before {\n    font-family: \'Glyphicons Halflings\';\n    content: "\\e080";\n    float: left;\n    color: #6D7C94;\n    font-size: 12px;\n    margin-top: 2px;\n}\n.panel-heading .accordion-toggle.collapsed::before {\n    content: "\\e114";\n}\n.show-on-large.portals-navigation.visible{\n  width: 210px;\n}\n.spaces-nav {\n    display: none;\n}\n.space.push-left{\n    padding-left: 30px;\n}\n.navbar-inverse .navbar-toggle{\n    padding: 0;\n    margin: 0;\n    max-height: 25px;\n    line-height: 0;\n}\n.portals-navigation {\n  display: block;\n  background: #f8f8f8;\n  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);\n  border-radius: 3px;\n  height: 100%;\n}\n.fixed-slide-nav{\n  position: fixed;\n  left: -210px;\n  min-height: 50px;\n  z-index: 2;\n  height: 100%;\n  width: 210px;\n}\n.portals-navigation ul {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n  display: block;\n}\n.portals-navigation li {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n  display: block;\n  position: relative;\n  font-size: 17px;\n  color: #def1f0;\n}\n.portals-navigation li a {\n  padding: 3px 8px;\n  font-size: 15px;\n  display: block;\n  outline: 0;\n  font-weight: 400;\n}\n.portals-navigation li a:hover{\n  text-decoration: none;\n}\n.portals-navigation li:hover ul.dropdown {\n  display: block;\n}\n.portals-navigation li ul.dropdown {\n  position: relative;\n  display: none;\n  background: #00695b;\n  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);\n  padding-top: 0;\n}\n.portals-navigation li ul.dropdown li {\n  display: block;\n  list-style-type: none;\n}\n.portals-navigation li ul.dropdown li a {\n  padding: 10px;\n  font-size: 15px;\n  color: #fff;\n  display: block;\n  border-bottom: 1px solid #005c4d;\n  font-weight: 400;\n}\n.arrow-down {\n  width: 0;\n  height: 0;\n  border-left: 5px solid transparent;\n  border-right: 5px solid transparent;\n  border-top: 5px solid #def1f0;\n  position: relative;\n  top: 15px;\n  right: -5px;\n  content: \'\';\n}\n.side-nav-btn{\n\t/*display: none;*/\n}\n.portals-navigation.visible {\n  left: 0px;\n  transition: left 0.3s linear;\n  z-index: 1;\n  display: block;\n  position: fixed;\n}\n.margin-left-xlarge{\n  margin-left: 30px !important;\n}\n/*small*/\n@media (max-width:767px) {\n\t.explore-portals{\n\t\tpadding-top: 13px !important;\n    \tpadding-bottom: 16px !important;\n\t}\n  .navbar-brand{\n    margin-left: 25px;\n  }\n  .portals-navigation {\n      width: 210px;\n      height: 100%;\n      display: block;\n      position: fixed;\n      left: -210px;\n      top: 0px;\n      transition: left 0.3s linear;\n      margin: 0;\n      border: 0;\n      border-radius: 0;\n      overflow-y: auto;\n      overflow-x: hidden;\n      height: 100%;\n      padding-top: 0;\n    }\n\t.show-on-large.portals-navigation.visible{\n\t  left: 0;\n\t}\n\t#PortalsHamburgerMenu{\n    \tleft: 5px;\n    \ttop: 12px !important;\n    }\n    .portals-navigation li:first-child:hover a { border-radius: 0; }\n\n    .portals-navigation li ul.dropdown { position: relative; }\n\n    .portals-navigation li ul.dropdown li a {\n      background: #00695b !important;\n      border-bottom: none;\n      color: #fff !important;\n    }\n\n    .portals-navigation li ul.dropdown li:hover a {\n      background: #56b5ae !important;\n      color: #fff !important;\n    }\n\n    .portals-navigation li ul.dropdown li a {\n      padding: 10px 10px 10px 30px;\n    }\n\n    .portals-navigation li:hover .arrow-down {\n      border-top: 5px solid #fff;\n    }\n\n    .arrow-down {\n      border-top: 5px solid #505050;\n      position: absolute;\n      top: 20px;\n      right: 10px;\n    }\n\n    .opacity {\n      background: rgba(197, 197, 197, 0.7);\n      position: fixed;\n      top: 0;\n      bottom: 0;\n      left: 0;\n      right: 0;\n    }\n  }\n/* medium */\n@media (max-width:991px) {\n\t.explore-portals{\n\t\tmargin-top: -5px;\n\t    padding-bottom: 7px;\n\t    padding-top: 3px;\n\t}\n\t.navbar-brand img{\n\t\twidth: 87px;\n\t}\n}\n/* medium */\n@media (max-width:1131px) {\n\tform.navbar-search{\n\t\tdisplay: none;\n\t}\n\t.navbar-brand img{\n\t\twidth: 87px;\n\t}\n  #PortalsHamburgerMenu{\n    top: 6px;\n  }\n}\n/* medium */\n@media (max-width:1545px) {\n    .side-nav-btn{\n    \tdisplay: block;\n    }\n\t.explore-portals{\n\t\tmargin-top: -5px;\n\t    padding-bottom: 7px;\n\t    padding-top: 3px;\n\t}\n\t.portals-navigation {\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\tleft: -210px;\n\t\ttransition: left 0.3s linear;\n\t\tborder-radius: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: hidden;\n    }\n    /*.portals-navigation.visible.show-on-large{\n    \tleft: -210px;\n    }*/\n}\n/* medium */\n@media (min-width:767px) and (max-width:1545px) {\n\t.explore-portals{\n\t\tpadding-bottom: 13px;\n    \tpadding-top: 13px;\n\t}\n}\n</style>\n    <script type="text/javascript" src="/jslib/old/adminmenu/adminmenu.js"></script><link  href=\'/jslib/old/breadcrumbs/breadcrumbs.css\' type=\'text/css\' rel=\'stylesheet\' />\n\n<style type=\'text/css\'>body {padding-top: 60px; padding-bottom: 40px;}</style> \n</head>\n<body >\n    <div class="navbar navbar-inverse navbar-fixed-top"  >\n        <div class="navbar-inner">\n            <div class="container">\n                <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">\n                <span class="icon-bar"></span>\n                <span class="icon-bar"></span>\n                <span class="icon-bar"></span>\n                </a>\n                <a class="brand" href="/home"><img style="margin-top: -5px;" src="data:image/jpeg;base64, /9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wgARCAAhACADAREAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAABQYHAwT/xAAaAQADAQEBAQAAAAAAAAAAAAACAwQFAQAG/9oADAMBAAIQAxAAAAFm6EsWfFztIUTrSABLVv3JC5J5wvctK6soPVNSd7KI59q7HRl9JilWA95t83AsdXP/AP/EACAQAAICAgICAwAAAAAAAAAAAAQFAgMABgESETQUFTX/2gAIAQEAAQUCYg/F5aQZbTiJUUlZy84cZSTBM4+gB2Z1YyHr2Y+nlhtZJA6HYpTA2h1fYNz2ry8aoC9avuOg2jbwT1rthf7Wm+21/Xz/xAAfEQACAQMFAQAAAAAAAAAAAAAAAQIDERIEECExMkH/2gAIAQMBAT8BWyWyidcDMmZWRTmpxuifCFaXRqJ5TcfiNG7rErzxRlKDuSNB7ZX9bf/EACMRAAICAQIGAwAAAAAAAAAAAAECABEDBBIFEBMhMTIiQVH/2gAIAQIBAT8BYVAajNfblu5V3hxiBQTQEyq2J9pgstUIZexmhxdPEHPkziKfIP8As0uLe1/UKplWiIngTiXqs03pDP/EACoQAAEDAwIDCAMAAAAAAAAAAAEAAgMEERITISIxwRAyQVFhcXKBc6Hx/9oACAEBAAY/An5uub9U1lPRvbSNNwcbm6IqoHxiQYNeRsTzXJXnjxaT7KKkNPNO5j3MLoxsDe/VTaVNLC2EZ6z+Ei3ohlMJG+TgChE5sMxyybgb7+1loPiD6q+7MrXH2qiGeCJhlA4o3XvsFYghSwwd1jyC48ypZICGywkH6P8AP2hFMRqDcgeCxIuFJ81Vfh6hV3zPZ//EACMQAQACAQQCAQUAAAAAAAAAAAEAESExQVFhgaGREHGx4fD/2gAIAQEAAT8hV2QaYgjIp9RZlMG+Imw3SQ9fSHkYJWi60fED7sQdgvAfPMGd7H65l9eYxAtufJT7mPxDtjl2fMsXDBActW1O5TAteArqL60f3rL1p7htKBJaNbbYwQZRG2lsPUEnA4z3LrG6yT2H5nsIf0+Y6z//2gAMAwEAAgADAAAAEChYtdtBFxUv/8QAHhEBAQEAAgEFAAAAAAAAAAAAAQARITFRQXGBodH/2gAIAQMBAT8Qe2abY82QebF6JqPEBPacItySE2Qats48B+zufSBjeYxbjdn5voXf7x1f/8QAIREAAwABAwQDAAAAAAAAAAAAAAERIRAxYUGhsfCB0fH/2gAIAQIBAT8QiGNvByaHeIYtoknOkQKHxR4TGSkHsYdEum+LlL75+CLC/A1EYGeRe+07JeEd0zxo3H//xAAfEAEBAAIDAQADAQAAAAAAAAABEQAhMUFRYSCBkbH/2gAIAQEAAT8Q2CQjC8GDaCerMpYKxorZyAP7XUeEwALonpRzrU51gJPHuAiCuUizY2Ps4whPlRD4C80as2EFe83aNqJUiz41nLkZQvoYqENsoA7CFZ8ZbagwhmMqiPPHWFg08FWavg+BYrcodFKfPTFyIm2CoOdBruVafFaUYjTpjXeB0yVGkSzQoGvI9mcWO2zfos+bP7+EMJT/ADc//9k=" alt="home" title="home"></a>\n                <div class="nav-collapse collapse">\n                   <ul class="nav pull-left">\n                   \n                   <li><a href="/system">System Portal</a></li>\n\n                   \n                   </ul>\n                   \n<ul class="nav navbar pull-right">\n    <li>\n        <a href="/restmachine/system/oauth/authenticate?type=itsyouonline">Login</a>\n    </li>\n</ul>\n                   \n                   \n                </div>\n            </div>\n        </div>\n    </div>\n\n<div class="container">\n<div class="row-fluid page-content clearfix">\n<div class="span12 content">\n<ul class=\'breadcrumb\'><li><a href=\'/System\'>System Portal</a><span style=\'opacity: 0.5; margin-right: 8px; margin-left: 2px;\' class=\'icon-chevron-right\'></span></li><li class=\'active\'>AccessDenied</li></ul>\n<div class="container">\n<div class="row-fluid page-content clearfix">\n<div class="span12">\n<h4 class="title">Access Denied - <a href=\'/restmachine/system/oauth/authenticate?type=itsyouonline\'   >Login</a></h4>\n</div>\n</div>\n</div>\n</div>\n\n<script type=\'text/javascript\'>\nvar getUrlParameter = function getUrlParameter(sParam) {\n    var sPageURL = decodeURIComponent(window.location.search.substring(1)),\n        sURLVariables = sPageURL.split(\'&\'),\n        sParameterName,\n        i;\n\n    for (i = 0; i < sURLVariables.length; i++) {\n        sParameterName = sURLVariables[i].split(\'=\');\n\n        if (sParameterName[0] === sParam) {\n            return sParameterName[1] === undefined ? true : sParameterName[1];\n        }\n    }\n};\n\nfunction injectIframe(url) {\n    if (url === undefined) {\n        url = getUrlParameter(\'url\')\n    }\n    $(\'.flatTheme > .container\').html(\'\')\n    .addClass(\'height-full\')\n    .html("<iframe id=\'external-iframe\' class=\'border-none\' src=\'" + url + "\'></iframe>")\n    .removeClass(\'container\');\n    $(\'.flatTheme\').addClass(\'padding-top-none\');\n    $(\'.navbar-inverse\').remove();\n    $(\'.navmenu-fixed-left.offcanvas\').remove();\n    var div = $("<div class=\'navmenu navmenu-default navmenu-fixed-left offcanvas\'><a class=\'\'></a></div>");\n    div.find(\'a\').html($(\'#portalsHamburgerStructure\').html());\n    $(\'.height-full\').prepend(div);\n};\n\nfunction injectHamburgerButton(theme, external) {\n    function applyHamburgerButton() {\n      $(\'.slider-container\').append("<button id=\'PortalsHamburgerMenu\' class=\'c-hamburger c-hamburger--htla left side-nav-btn position-fixed " + theme + "\' title=\'Portals\'><span></span></button>");\n      if(external === true){\n        $(\'#PortalsHamburgerMenu\').addClass(\'margin-top-small\');\n        $(\'#external-iframe\').one("load", function() {\n          if($("#external-iframe").contents().find(".logo").length > 0){\n            if( $("#external-iframe").contents().find(".logo").hasClass("margin-left-large") === false){\n                $("#external-iframe").contents().find(".logo").addClass(\'margin-left-large\');\n            }\n          }\n\n          if(window.location.href.toLowerCase().indexOf(\'grafana\') > -1){\n            var $head = $("#external-iframe").contents().find("head");\n            $head.append($("<link/>",{ rel: "stylesheet", href: "/system/.files/css/grafana-custom.css", type: "text/css" }));\n            setTimeout(function() {\n              var grafanaSigninBtn = $("#external-iframe").contents().find(\'.sidemenu.sidemenu-small\').find(\'.sidemenu-item\').last();\n              grafanaSigninBtn.attr("href", "/grafana/login/github");\n            }, 400);\n          }\n\n        });\n      }\n    }\n    if($(\'#PortalsHamburgerMenu\').length > 0){\n      $(\'#PortalsHamburgerMenu\').remove();\n      applyHamburgerButton();\n    }else{\n      applyHamburgerButton();\n    }\n};\n\n$(function () {\n    function getSpaceinfo(){\n      var SpacesNavBtnTheme = "light";\n      var isSpaceExternal = false;\n      var isLinkOnHrd = false;\n      $(\'.navmenu-default\').find(\'a.space\').each(function() {\n        if(window.location.href.toLowerCase().indexOf($(this)[0].href.toLowerCase()) > -1){\n          SpacesNavBtnTheme = $(this).data().theme;\n          isSpaceExternal = $(this).data().external;\n          isLinkOnHrd = true;\n          $(this).siblings(\'.accordion-toggle\').click();\n          return false;\n        }\n      });\n      return {"theme":SpacesNavBtnTheme, "external":isSpaceExternal, "isLinkOnHrd":isLinkOnHrd};\n    };\n\n    $(document).on(\'click\', \'.accordion-toggle\', function(e) {\n      $(\'.panel-collapse\').removeClass(\'in\');\n      $(\'.accordion-toggle\').removeClass(\'collapsed\');\n      $(this).addClass(\'collapsed\');\n    });\n\n    if($(\'.navmenu.navmenu-default\').length === 0){\n      var div = $("<div class=\'navmenu navmenu-default navmenu-fixed-left offcanvas\'></div>");\n      div.html($(\'#portalsHamburgerStructure\').html());\n      $(\'.navbar-inner.navbar-form\').prepend(div);\n      var spaceinfo = getSpaceinfo();\n      injectHamburgerButton(spaceinfo["theme"], spaceinfo["external"]);\n    }\n\n    var currentPage = \'\';\n    if(window.location.pathname.indexOf(\'external\') > -1){\n        currentPage = \'external\';\n    }\n\n    if(currentPage == \'external\'){\n        injectIframe();\n        var spaceinfo = getSpaceinfo();\n        if(spaceinfo["isLinkOnHrd"] === false){\n          window.location.replace("/");\n          return false;\n        }\n        injectHamburgerButton(spaceinfo["theme"], spaceinfo["external"]);\n    }\n\n    $( ".openIframe" ).click(function(event) {\n        var $this = $(this);\n        if($this.attr(\'href\') == \'\') {\n            event.preventDefault();\n            return;\n        }\n        if( $this.data().external === true ){\n            event.preventDefault();\n            window.location.replace("/home/external?url=" + this["href"]);\n        }\n    });\n\n    $(\'.side-nav-btn\').click(function(){\n        $(\'.portals-navigation\').toggleClass(\'visible\');\n        $(\'.slider-container\').toggleClass(\'visible\');\n        $(\'.portals-navigation\').toggleClass(\'show-on-large\');\n        if($("#external-iframe").contents().find(".sidemenu-canvas").length > 0){\n          $("#external-iframe").contents().find(".sidemenu-canvas").toggleClass(\'grafana-push-left\');\n        }\n    });\n\n    function checkChangedBrowserSize() {\n\n        function showMenu(){\n          $(\'.portals-navigation\').addClass(\'visible\').addClass(\'show-on-large\');\n          $(\'.slider-container\').addClass(\'visible\');\n          $(\'#external-iframe\').one("load", function() {\n            if($("#external-iframe").contents().find(".sidemenu-canvas").length > 0 && window.location.href.toLowerCase().indexOf(\'grafana\') > -1){\n              $("#external-iframe").contents().find(".sidemenu-canvas").addClass(\'grafana-push-left\');\n            }\n          });\n        }\n        function hideMenu() {\n          $(\'.portals-navigation\').removeClass(\'visible\').removeClass(\'show-on-large\');\n          $(\'.slider-container\').removeClass(\'visible\');\n          $("#external-iframe").contents().find(".sidemenu-canvas").removeClass(\'grafana-push-left\');\n        }\n\n        if(window.location.pathname.indexOf(\'wiki_gcb\') > -1){\n          if($( window ).width() + 21 < 1710){\n              hideMenu();\n          }else{\n              showMenu();\n          }\n        }else{\n          if($( window ).width() + 21 < 1560){\n              hideMenu();\n          }else{\n              showMenu();\n          }\n        }\n\n    }\n\n    checkChangedBrowserSize();\n    $(\'.container\').click(function() {\n        checkChangedBrowserSize();\n    });\n\n    window.onresize = function (){\n        checkChangedBrowserSize();\n    };\n\n    var shiftWindow = function() {\n      scrollBy(0, -50)\n    };\n    if (location.hash) shiftWindow();\n    window.addEventListener("hashchange", shiftWindow);\n\n    $(\'#dynamic\').find(\'th\').click(function(event){\n      event.stopPropagation();\n    });\n});</script>\n</body>\n</html>'

[Sun18 11:04] - OVCClient.py      :66  :nts.openvcloud.be-g8-3 - INFO     - Get OpenvCloud client on URL: be-g8-3.demo.greenitglobe.com
[Sun18 11:04] - base.py           :195 :service-9a1848bd-4f5e-45b4-94a5-8986cd9e4033 - ERROR    - error executing action install:
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/zerorobot/task/task.py", line 79, in execute
    self._result = self.func()
  File "/opt/code/github/openvcloud/0-templates/templates/node/node.py", line 127, in install
    if self.machine:
  File "/opt/code/github/openvcloud/0-templates/templates/node/node.py", line 116, in machine
    self._machine = self.space.machines.get(self.name)
  File "/opt/code/github/openvcloud/0-templates/templates/node/node.py", line 110, in space
    spaceName=vdc
  File "/opt/code/github/jumpscale/lib9/JumpScale9Lib/clients/openvcloud/OVCClient.py", line 189, in space_get
    account = self.account_get(name=accountName, create=False)
  File "/opt/code/github/jumpscale/lib9/JumpScale9Lib/clients/openvcloud/OVCClient.py", line 139, in account_get
    for account in self.accounts:
  File "/opt/code/github/jumpscale/lib9/JumpScale9Lib/clients/openvcloud/OVCClient.py", line 110, in accounts
    ovc_accounts = self.api.cloudapi.accounts.list()
  File "/opt/code/github/jumpscale/lib9/JumpScale9Lib/clients/openvcloud/OVCClient.py", line 51, in api
    self._api.load_swagger(group='cloudapi')
  File "/opt/code/github/jumpscale/lib9/JumpScale9Lib/clients/portal/PortalClient.py", line 78, in load_swagger
    swagger = self.system.docgenerator.prepareCatalog(group=group)
  File "/opt/code/github/jumpscale/lib9/JumpScale9Lib/clients/portal/PortalClient.py", line 56, in __call__
    raise ApiError(response)
JumpScale9Lib.clients.portal.PortalClient.ApiError: 401 Unauthorized
b'\n<!DOCTYPE html>\n<html>\n<head>\n <meta charset="UTF-8">\n<link rel="shortcut icon" type="image/png" href="/system/.files/img/favicon/png" />\n<title>AccessDenied</title>\n<script  src=\'/jslib/jquery/jquery-2.2.1.min.js\' type=\'text/javascript\'></script>\n<script  src=\'/jslib/jquery/jquery-migrate-1.2.1.js\' type=\'text/javascript\'></script>\n<script  src=\'/jslib/jquery/jquery-ui.min.js\' type=\'text/javascript\'></script>\n<script  src=\'/jslib/bootstrap/js/bootstrap-3-3-6.min.js\' type=\'text/javascript\'></script>\n<link  href=\'/jslib/bootstrap/css/bootstrap-3-3-6.min.css\' type=\'text/css\' rel=\'stylesheet\' />\n<link  href=\'/jslib/flatui/css/flat-ui.css\' type=\'text/css\' rel=\'stylesheet\' />\n<link  href=\'/jslib/new-ui/new-ui.css\' type=\'text/css\' rel=\'stylesheet\' />\n<link  href=\'/jslib/new-ui/oocss.css\' type=\'text/css\' rel=\'stylesheet\' />\n<script  src=\'/jslib/pnotify/pnotify.js\' type=\'text/javascript\'></script>\n<script  src=\'/jslib/pnotify/pnotify.buttons.js\' type=\'text/javascript\'></script>\n<script  src=\'/system/.files/js/events.js\' type=\'text/javascript\'></script>\n<link  href=\'/jslib/pnotify/pnotify.css\' type=\'text/css\' rel=\'stylesheet\' />\n<script type=\'text/javascript\'>\n\n        $( function () {\n        $(\'body\').addClass(\'flatTheme\');\n\n        $(\'link[href="/jslib/old/breadcrumbs/breadcrumbs.css"]\').remove();\n        $(\'link[href="/jslib/swagger/css/reset.css"]\').remove();\n\n\n        $(\'.nav-collapse.collapse\').removeClass(\'nav-collapse\').addClass(\'navbar-collapse\');\n        $(\'.btn.btn-navbar\').replaceWith(\'<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".nav-collapse" aria-expanded="false">\' +\n            \'<span class="sr-only">Toggle navigation</span>\' +\n            \'<span class="icon-bar"></span>\' +\n            \'<span class="icon-bar"></span>\' +\n            \'<span class="icon-bar"></span>\' +\n          \'</button>\'\n        );\n        $(\'.brand\').removeClass(\'brand\').addClass(\'navbar-brand\');\n        $(\'.navbar-inner\').addClass(\'navbar-form\');\n        $(\'.search-query\').addClass(\'form-control\');\n        $(\'.newBreadcrumbArrow\').removeClass(\'newBreadcrumbArrow separator\').addClass(\'fui-arrow-right\');\n\n        $(\'.span1\').removeClass(\'span1\').addClass(\'col-md-1\');\n        $(\'.span2\').removeClass(\'span2\').addClass(\'col-md-2\');\n        $(\'.span3\').removeClass(\'span3\').addClass(\'col-md-3\');\n        $(\'.span4\').removeClass(\'span4\').addClass(\'col-md-4\');\n        $(\'.span5\').removeClass(\'span5\').addClass(\'col-md-5\');\n        $(\'.span6\').removeClass(\'span6\').addClass(\'col-md-6\');\n        $(\'.span7\').removeClass(\'span7\').addClass(\'col-md-7\');\n        $(\'.span8\').removeClass(\'span8\').addClass(\'col-md-8\');\n        $(\'.span9\').removeClass(\'span9\').addClass(\'col-md-9\');\n        $(\'.span10\').removeClass(\'span10\').addClass(\'col-md-10\');\n        $(\'.span11\').removeClass(\'spa11\').addClass(\'col-md-11\');\n        $(\'.span12\').removeClass(\'span12\').addClass(\'col-md-12\');\n\n        var toggles = document.querySelectorAll(".c-hamburger");\n        for (var i = toggles.length - 1; i >= 0; i--) {\n            var toggle = toggles[i];\n            toggleHandler(toggle);\n        };\n        function toggleHandler(toggle) {\n            toggle.addEventListener( "click", function(e) {\n              e.preventDefault();\n              (this.classList.contains("is-active") === true) ? this.classList.remove("is-active") : this.classList.add("is-active");\n              $(\'.page-content\').find(\'.sidebar-nav\').toggleClass(\'hide\');\n              $(\'.page-content\').find(\'.content\').toggleClass(\'less-wide\');\n              $(\'.page-content\').find(\'.navigation\').toggleClass(\'wide-sidebar\');\n            });\n        }\n    });\n     </script>\n<link  href=\'/system/.files/css/flatTheme.css\' type=\'text/css\' rel=\'stylesheet\' />\n<link  href=\'/system/.files/css/default.css\' type=\'text/css\' rel=\'stylesheet\' />\n\n<style type=\'text/css\' >html, body {\n    height: 100%\n}\n#external-iframe{\n    width:100%;\n    height:100% !important;\n}\n#PortalsHamburgerMenu{\n    margin-bottom: 0;\n    margin-top: -5px;\n    z-index: 5;\n    left: 0;\n    background: transparent;\n}\n#PortalsHamburgerMenu.light span,\n#PortalsHamburgerMenu.light span::before,\n#PortalsHamburgerMenu.light span::after,\n.slider-container.visible #PortalsHamburgerMenu span,\n.slider-container.visible #PortalsHamburgerMenu span::before,\n.slider-container.visible #PortalsHamburgerMenu span::after{\n    background: #fff;\n}\n.slider-container.visible #PortalsHamburgerMenu{\n    position: fixed !important;\n}\n#PortalsHamburgerMenu.dark span,\n#PortalsHamburgerMenu.dark span::before,\n#PortalsHamburgerMenu.dark span::after{\n    background: #000;\n}\n.portals-list{\n    padding-left: 0;\n    list-style: none;\n}\n.portals-list li{\n    padding: 5px 0;\n    border-bottom: 1px solid #D3DAE0;\n    border-left: 4px solid transparent;\n    margin-left: 5px;\n}\n.portals-list li:first-child{\n    border-top: 1px solid #D3DAE0;\n}\n.portals-list li a{\n    padding-left: 4px;\n    display: block;\n    color: #34495E;\n}\n.panel-heading:hover a::before{\n  color: #fff;\n}\n.accordion .panel-heading{\n  border-radius: 0;\n}\n.accordion .panel-heading:hover a, .portals-list .panel-collapse li:hover a{\n    border-left: 4px solid #34495E;\n    background-color: #95A5A6;\n    color: #fff;\n}\n.accordion{\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n}\n.accordion:hover{\n    border-top: 1px solid #C3C3C3;\n    border-bottom: 1px solid #C3C3C3;\n}\n.portals-list .space:hover a{\n    color: #fff;\n}\n.explore-portals{\n    background-color: #34495E;\n    color: #fff;\n    padding-bottom: 12px;\n    margin-bottom: 0;\n    margin-left: 0;\n    font-size: 15px;\n    margin-top: -5px;\n    padding-top: 5px;\n    display: block;\n    padding-left: 40px;\n    padding-right: 20px;\n    padding-top: 14px;\n}\n.fixed-slide-nav{\n    display: block;\n    top: 0;\n}\n.panel-heading .accordion-toggle::before {\n    font-family: \'Glyphicons Halflings\';\n    content: "\\e080";\n    float: left;\n    color: #6D7C94;\n    font-size: 12px;\n    margin-top: 2px;\n}\n.panel-heading .accordion-toggle.collapsed::before {\n    content: "\\e114";\n}\n.show-on-large.portals-navigation.visible{\n  width: 210px;\n}\n.spaces-nav {\n    display: none;\n}\n.space.push-left{\n    padding-left: 30px;\n}\n.navbar-inverse .navbar-toggle{\n    padding: 0;\n    margin: 0;\n    max-height: 25px;\n    line-height: 0;\n}\n.portals-navigation {\n  display: block;\n  background: #f8f8f8;\n  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);\n  border-radius: 3px;\n  height: 100%;\n}\n.fixed-slide-nav{\n  position: fixed;\n  left: -210px;\n  min-height: 50px;\n  z-index: 2;\n  height: 100%;\n  width: 210px;\n}\n.portals-navigation ul {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n  display: block;\n}\n.portals-navigation li {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n  display: block;\n  position: relative;\n  font-size: 17px;\n  color: #def1f0;\n}\n.portals-navigation li a {\n  padding: 3px 8px;\n  font-size: 15px;\n  display: block;\n  outline: 0;\n  font-weight: 400;\n}\n.portals-navigation li a:hover{\n  text-decoration: none;\n}\n.portals-navigation li:hover ul.dropdown {\n  display: block;\n}\n.portals-navigation li ul.dropdown {\n  position: relative;\n  display: none;\n  background: #00695b;\n  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);\n  padding-top: 0;\n}\n.portals-navigation li ul.dropdown li {\n  display: block;\n  list-style-type: none;\n}\n.portals-navigation li ul.dropdown li a {\n  padding: 10px;\n  font-size: 15px;\n  color: #fff;\n  display: block;\n  border-bottom: 1px solid #005c4d;\n  font-weight: 400;\n}\n.arrow-down {\n  width: 0;\n  height: 0;\n  border-left: 5px solid transparent;\n  border-right: 5px solid transparent;\n  border-top: 5px solid #def1f0;\n  position: relative;\n  top: 15px;\n  right: -5px;\n  content: \'\';\n}\n.side-nav-btn{\n\t/*display: none;*/\n}\n.portals-navigation.visible {\n  left: 0px;\n  transition: left 0.3s linear;\n  z-index: 1;\n  display: block;\n  position: fixed;\n}\n.margin-left-xlarge{\n  margin-left: 30px !important;\n}\n/*small*/\n@media (max-width:767px) {\n\t.explore-portals{\n\t\tpadding-top: 13px !important;\n    \tpadding-bottom: 16px !important;\n\t}\n  .navbar-brand{\n    margin-left: 25px;\n  }\n  .portals-navigation {\n      width: 210px;\n      height: 100%;\n      display: block;\n      position: fixed;\n      left: -210px;\n      top: 0px;\n      transition: left 0.3s linear;\n      margin: 0;\n      border: 0;\n      border-radius: 0;\n      overflow-y: auto;\n      overflow-x: hidden;\n      height: 100%;\n      padding-top: 0;\n    }\n\t.show-on-large.portals-navigation.visible{\n\t  left: 0;\n\t}\n\t#PortalsHamburgerMenu{\n    \tleft: 5px;\n    \ttop: 12px !important;\n    }\n    .portals-navigation li:first-child:hover a { border-radius: 0; }\n\n    .portals-navigation li ul.dropdown { position: relative; }\n\n    .portals-navigation li ul.dropdown li a {\n      background: #00695b !important;\n      border-bottom: none;\n      color: #fff !important;\n    }\n\n    .portals-navigation li ul.dropdown li:hover a {\n      background: #56b5ae !important;\n      color: #fff !important;\n    }\n\n    .portals-navigation li ul.dropdown li a {\n      padding: 10px 10px 10px 30px;\n    }\n\n    .portals-navigation li:hover .arrow-down {\n      border-top: 5px solid #fff;\n    }\n\n    .arrow-down {\n      border-top: 5px solid #505050;\n      position: absolute;\n      top: 20px;\n      right: 10px;\n    }\n\n    .opacity {\n      background: rgba(197, 197, 197, 0.7);\n      position: fixed;\n      top: 0;\n      bottom: 0;\n      left: 0;\n      right: 0;\n    }\n  }\n/* medium */\n@media (max-width:991px) {\n\t.explore-portals{\n\t\tmargin-top: -5px;\n\t    padding-bottom: 7px;\n\t    padding-top: 3px;\n\t}\n\t.navbar-brand img{\n\t\twidth: 87px;\n\t}\n}\n/* medium */\n@media (max-width:1131px) {\n\tform.navbar-search{\n\t\tdisplay: none;\n\t}\n\t.navbar-brand img{\n\t\twidth: 87px;\n\t}\n  #PortalsHamburgerMenu{\n    top: 6px;\n  }\n}\n/* medium */\n@media (max-width:1545px) {\n    .side-nav-btn{\n    \tdisplay: block;\n    }\n\t.explore-portals{\n\t\tmargin-top: -5px;\n\t    padding-bottom: 7px;\n\t    padding-top: 3px;\n\t}\n\t.portals-navigation {\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\tleft: -210px;\n\t\ttransition: left 0.3s linear;\n\t\tborder-radius: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: hidden;\n    }\n    /*.portals-navigation.visible.show-on-large{\n    \tleft: -210px;\n    }*/\n}\n/* medium */\n@media (min-width:767px) and (max-width:1545px) {\n\t.explore-portals{\n\t\tpadding-bottom: 13px;\n    \tpadding-top: 13px;\n\t}\n}\n</style>\n    <script type="text/javascript" src="/jslib/old/adminmenu/adminmenu.js"></script><link  href=\'/jslib/old/breadcrumbs/breadcrumbs.css\' type=\'text/css\' rel=\'stylesheet\' />\n\n<style type=\'text/css\'>body {padding-top: 60px; padding-bottom: 40px;}</style> \n</head>\n<body >\n    <div class="navbar navbar-inverse navbar-fixed-top"  >\n        <div class="navbar-inner">\n            <div class="container">\n                <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">\n                <span class="icon-bar"></span>\n                <span class="icon-bar"></span>\n                <span class="icon-bar"></span>\n                </a>\n                <a class="brand" href="/home"><img style="margin-top: -5px;" src="data:image/jpeg;base64, /9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wgARCAAhACADAREAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAABQYHAwT/xAAaAQADAQEBAQAAAAAAAAAAAAACAwQFAQAG/9oADAMBAAIQAxAAAAFm6EsWfFztIUTrSABLVv3JC5J5wvctK6soPVNSd7KI59q7HRl9JilWA95t83AsdXP/AP/EACAQAAICAgICAwAAAAAAAAAAAAQFAgMABgESETQUFTX/2gAIAQEAAQUCYg/F5aQZbTiJUUlZy84cZSTBM4+gB2Z1YyHr2Y+nlhtZJA6HYpTA2h1fYNz2ry8aoC9avuOg2jbwT1rthf7Wm+21/Xz/xAAfEQACAQMFAQAAAAAAAAAAAAAAAQIDERIEECExMkH/2gAIAQMBAT8BWyWyidcDMmZWRTmpxuifCFaXRqJ5TcfiNG7rErzxRlKDuSNB7ZX9bf/EACMRAAICAQIGAwAAAAAAAAAAAAECABEDBBIFEBMhMTIiQVH/2gAIAQIBAT8BYVAajNfblu5V3hxiBQTQEyq2J9pgstUIZexmhxdPEHPkziKfIP8As0uLe1/UKplWiIngTiXqs03pDP/EACoQAAEDAwIDCAMAAAAAAAAAAAEAAgMEERITISIxwRAyQVFhcXKBc6Hx/9oACAEBAAY/An5uub9U1lPRvbSNNwcbm6IqoHxiQYNeRsTzXJXnjxaT7KKkNPNO5j3MLoxsDe/VTaVNLC2EZ6z+Ei3ohlMJG+TgChE5sMxyybgb7+1loPiD6q+7MrXH2qiGeCJhlA4o3XvsFYghSwwd1jyC48ypZICGywkH6P8AP2hFMRqDcgeCxIuFJ81Vfh6hV3zPZ//EACMQAQACAQQCAQUAAAAAAAAAAAEAESExQVFhgaGREHGx4fD/2gAIAQEAAT8hV2QaYgjIp9RZlMG+Imw3SQ9fSHkYJWi60fED7sQdgvAfPMGd7H65l9eYxAtufJT7mPxDtjl2fMsXDBActW1O5TAteArqL60f3rL1p7htKBJaNbbYwQZRG2lsPUEnA4z3LrG6yT2H5nsIf0+Y6z//2gAMAwEAAgADAAAAEChYtdtBFxUv/8QAHhEBAQEAAgEFAAAAAAAAAAAAAQARITFRQXGBodH/2gAIAQMBAT8Qe2abY82QebF6JqPEBPacItySE2Qats48B+zufSBjeYxbjdn5voXf7x1f/8QAIREAAwABAwQDAAAAAAAAAAAAAAERIRAxYUGhsfCB0fH/2gAIAQIBAT8QiGNvByaHeIYtoknOkQKHxR4TGSkHsYdEum+LlL75+CLC/A1EYGeRe+07JeEd0zxo3H//xAAfEAEBAAIDAQADAQAAAAAAAAABEQAhMUFRYSCBkbH/2gAIAQEAAT8Q2CQjC8GDaCerMpYKxorZyAP7XUeEwALonpRzrU51gJPHuAiCuUizY2Ps4whPlRD4C80as2EFe83aNqJUiz41nLkZQvoYqENsoA7CFZ8ZbagwhmMqiPPHWFg08FWavg+BYrcodFKfPTFyIm2CoOdBruVafFaUYjTpjXeB0yVGkSzQoGvI9mcWO2zfos+bP7+EMJT/ADc//9k=" alt="home" title="home"></a>\n                <div class="nav-collapse collapse">\n                   <ul class="nav pull-left">\n                   \n                   <li><a href="/system">System Portal</a></li>\n\n                   \n                   </ul>\n                   \n<ul class="nav navbar pull-right">\n    <li>\n        <a href="/restmachine/system/oauth/authenticate?type=itsyouonline">Login</a>\n    </li>\n</ul>\n                   \n                   \n                </div>\n            </div>\n        </div>\n    </div>\n\n<div class="container">\n<div class="row-fluid page-content clearfix">\n<div class="span12 content">\n<ul class=\'breadcrumb\'><li><a href=\'/System\'>System Portal</a><span style=\'opacity: 0.5; margin-right: 8px; margin-left: 2px;\' class=\'icon-chevron-right\'></span></li><li class=\'active\'>AccessDenied</li></ul>\n<div class="container">\n<div class="row-fluid page-content clearfix">\n<div class="span12">\n<h4 class="title">Access Denied - <a href=\'/restmachine/system/oauth/authenticate?type=itsyouonline\'   >Login</a></h4>\n</div>\n</div>\n</div>\n</div>\n\n<script type=\'text/javascript\'>\nvar getUrlParameter = function getUrlParameter(sParam) {\n    var sPageURL = decodeURIComponent(window.location.search.substring(1)),\n        sURLVariables = sPageURL.split(\'&\'),\n        sParameterName,\n        i;\n\n    for (i = 0; i < sURLVariables.length; i++) {\n        sParameterName = sURLVariables[i].split(\'=\');\n\n        if (sParameterName[0] === sParam) {\n            return sParameterName[1] === undefined ? true : sParameterName[1];\n        }\n    }\n};\n\nfunction injectIframe(url) {\n    if (url === undefined) {\n        url = getUrlParameter(\'url\')\n    }\n    $(\'.flatTheme > .container\').html(\'\')\n    .addClass(\'height-full\')\n    .html("<iframe id=\'external-iframe\' class=\'border-none\' src=\'" + url + "\'></iframe>")\n    .removeClass(\'container\');\n    $(\'.flatTheme\').addClass(\'padding-top-none\');\n    $(\'.navbar-inverse\').remove();\n    $(\'.navmenu-fixed-left.offcanvas\').remove();\n    var div = $("<div class=\'navmenu navmenu-default navmenu-fixed-left offcanvas\'><a class=\'\'></a></div>");\n    div.find(\'a\').html($(\'#portalsHamburgerStructure\').html());\n    $(\'.height-full\').prepend(div);\n};\n\nfunction injectHamburgerButton(theme, external) {\n    function applyHamburgerButton() {\n      $(\'.slider-container\').append("<button id=\'PortalsHamburgerMenu\' class=\'c-hamburger c-hamburger--htla left side-nav-btn position-fixed " + theme + "\' title=\'Portals\'><span></span></button>");\n      if(external === true){\n        $(\'#PortalsHamburgerMenu\').addClass(\'margin-top-small\');\n        $(\'#external-iframe\').one("load", function() {\n          if($("#external-iframe").contents().find(".logo").length > 0){\n            if( $("#external-iframe").contents().find(".logo").hasClass("margin-left-large") === false){\n                $("#external-iframe").contents().find(".logo").addClass(\'margin-left-large\');\n            }\n          }\n\n          if(window.location.href.toLowerCase().indexOf(\'grafana\') > -1){\n            var $head = $("#external-iframe").contents().find("head");\n            $head.append($("<link/>",{ rel: "stylesheet", href: "/system/.files/css/grafana-custom.css", type: "text/css" }));\n            setTimeout(function() {\n              var grafanaSigninBtn = $("#external-iframe").contents().find(\'.sidemenu.sidemenu-small\').find(\'.sidemenu-item\').last();\n              grafanaSigninBtn.attr("href", "/grafana/login/github");\n            }, 400);\n          }\n\n        });\n      }\n    }\n    if($(\'#PortalsHamburgerMenu\').length > 0){\n      $(\'#PortalsHamburgerMenu\').remove();\n      applyHamburgerButton();\n    }else{\n      applyHamburgerButton();\n    }\n};\n\n$(function () {\n    function getSpaceinfo(){\n      var SpacesNavBtnTheme = "light";\n      var isSpaceExternal = false;\n      var isLinkOnHrd = false;\n      $(\'.navmenu-default\').find(\'a.space\').each(function() {\n        if(window.location.href.toLowerCase().indexOf($(this)[0].href.toLowerCase()) > -1){\n          SpacesNavBtnTheme = $(this).data().theme;\n          isSpaceExternal = $(this).data().external;\n          isLinkOnHrd = true;\n          $(this).siblings(\'.accordion-toggle\').click();\n          return false;\n        }\n      });\n      return {"theme":SpacesNavBtnTheme, "external":isSpaceExternal, "isLinkOnHrd":isLinkOnHrd};\n    };\n\n    $(document).on(\'click\', \'.accordion-toggle\', function(e) {\n      $(\'.panel-collapse\').removeClass(\'in\');\n      $(\'.accordion-toggle\').removeClass(\'collapsed\');\n      $(this).addClass(\'collapsed\');\n    });\n\n    if($(\'.navmenu.navmenu-default\').length === 0){\n      var div = $("<div class=\'navmenu navmenu-default navmenu-fixed-left offcanvas\'></div>");\n      div.html($(\'#portalsHamburgerStructure\').html());\n      $(\'.navbar-inner.navbar-form\').prepend(div);\n      var spaceinfo = getSpaceinfo();\n      injectHamburgerButton(spaceinfo["theme"], spaceinfo["external"]);\n    }\n\n    var currentPage = \'\';\n    if(window.location.pathname.indexOf(\'external\') > -1){\n        currentPage = \'external\';\n    }\n\n    if(currentPage == \'external\'){\n        injectIframe();\n        var spaceinfo = getSpaceinfo();\n        if(spaceinfo["isLinkOnHrd"] === false){\n          window.location.replace("/");\n          return false;\n        }\n        injectHamburgerButton(spaceinfo["theme"], spaceinfo["external"]);\n    }\n\n    $( ".openIframe" ).click(function(event) {\n        var $this = $(this);\n        if($this.attr(\'href\') == \'\') {\n            event.preventDefault();\n            return;\n        }\n        if( $this.data().external === true ){\n            event.preventDefault();\n            window.location.replace("/home/external?url=" + this["href"]);\n        }\n    });\n\n    $(\'.side-nav-btn\').click(function(){\n        $(\'.portals-navigation\').toggleClass(\'visible\');\n        $(\'.slider-container\').toggleClass(\'visible\');\n        $(\'.portals-navigation\').toggleClass(\'show-on-large\');\n        if($("#external-iframe").contents().find(".sidemenu-canvas").length > 0){\n          $("#external-iframe").contents().find(".sidemenu-canvas").toggleClass(\'grafana-push-left\');\n        }\n    });\n\n    function checkChangedBrowserSize() {\n\n        function showMenu(){\n          $(\'.portals-navigation\').addClass(\'visible\').addClass(\'show-on-large\');\n          $(\'.slider-container\').addClass(\'visible\');\n          $(\'#external-iframe\').one("load", function() {\n            if($("#external-iframe").contents().find(".sidemenu-canvas").length > 0 && window.location.href.toLowerCase().indexOf(\'grafana\') > -1){\n              $("#external-iframe").contents().find(".sidemenu-canvas").addClass(\'grafana-push-left\');\n            }\n          });\n        }\n        function hideMenu() {\n          $(\'.portals-navigation\').removeClass(\'visible\').removeClass(\'show-on-large\');\n          $(\'.slider-container\').removeClass(\'visible\');\n          $("#external-iframe").contents().find(".sidemenu-canvas").removeClass(\'grafana-push-left\');\n        }\n\n        if(window.location.pathname.indexOf(\'wiki_gcb\') > -1){\n          if($( window ).width() + 21 < 1710){\n              hideMenu();\n          }else{\n              showMenu();\n          }\n        }else{\n          if($( window ).width() + 21 < 1560){\n              hideMenu();\n          }else{\n              showMenu();\n          }\n        }\n\n    }\n\n    checkChangedBrowserSize();\n    $(\'.container\').click(function() {\n        checkChangedBrowserSize();\n    });\n\n    window.onresize = function (){\n        checkChangedBrowserSize();\n    };\n\n    var shiftWindow = function() {\n      scrollBy(0, -50)\n    };\n    if (location.hash) shiftWindow();\n    window.addEventListener("hashchange", shiftWindow);\n\n    $(\'#dynamic\').find(\'th\').click(function(event){\n      event.stopPropagation();\n    });\n});</script>\n</body>\n</html>'

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/zerorobot/task/task.py", line 79, in execute
    self._result = self.func()
  File "/opt/code/github/openvcloud/0-templates/templates/node/node.py", line 127, in install
    if self.machine:
  File "/opt/code/github/openvcloud/0-templates/templates/node/node.py", line 116, in machine
    self._machine = self.space.machines.get(self.name)
  File "/opt/code/github/openvcloud/0-templates/templates/node/node.py", line 110, in space
    spaceName=vdc
  File "/opt/code/github/jumpscale/lib9/JumpScale9Lib/clients/openvcloud/OVCClient.py", line 189, in space_get
    account = self.account_get(name=accountName, create=False)
  File "/opt/code/github/jumpscale/lib9/JumpScale9Lib/clients/openvcloud/OVCClient.py", line 139, in account_get
    for account in self.accounts:
  File "/opt/code/github/jumpscale/lib9/JumpScale9Lib/clients/openvcloud/OVCClient.py", line 110, in accounts
    ovc_accounts = self.api.cloudapi.accounts.list()
  File "/opt/code/github/jumpscale/lib9/JumpScale9Lib/clients/openvcloud/OVCClient.py", line 51, in api
    self._api.load_swagger(group='cloudapi')
  File "/opt/code/github/jumpscale/lib9/JumpScale9Lib/clients/portal/PortalClient.py", line 78, in load_swagger
    swagger = self.system.docgenerator.prepareCatalog(group=group)
  File "/opt/code/github/jumpscale/lib9/JumpScale9Lib/clients/portal/PortalClient.py", line 56, in __call__
    raise ApiError(response)
JumpScale9Lib.clients.portal.PortalClient.ApiError: 401 Unauthorized
b'\n<!DOCTYPE html>\n<html>\n<head>\n <meta charset="UTF-8">\n<link rel="shortcut icon" type="image/png" href="/system/.files/img/favicon/png" />\n<title>AccessDenied</title>\n<script  src=\'/jslib/jquery/jquery-2.2.1.min.js\' type=\'text/javascript\'></script>\n<script  src=\'/jslib/jquery/jquery-migrate-1.2.1.js\' type=\'text/javascript\'></script>\n<script  src=\'/jslib/jquery/jquery-ui.min.js\' type=\'text/javascript\'></script>\n<script  src=\'/jslib/bootstrap/js/bootstrap-3-3-6.min.js\' type=\'text/javascript\'></script>\n<link  href=\'/jslib/bootstrap/css/bootstrap-3-3-6.min.css\' type=\'text/css\' rel=\'stylesheet\' />\n<link  href=\'/jslib/flatui/css/flat-ui.css\' type=\'text/css\' rel=\'stylesheet\' />\n<link  href=\'/jslib/new-ui/new-ui.css\' type=\'text/css\' rel=\'stylesheet\' />\n<link  href=\'/jslib/new-ui/oocss.css\' type=\'text/css\' rel=\'stylesheet\' />\n<script  src=\'/jslib/pnotify/pnotify.js\' type=\'text/javascript\'></script>\n<script  src=\'/jslib/pnotify/pnotify.buttons.js\' type=\'text/javascript\'></script>\n<script  src=\'/system/.files/js/events.js\' type=\'text/javascript\'></script>\n<link  href=\'/jslib/pnotify/pnotify.css\' type=\'text/css\' rel=\'stylesheet\' />\n<script type=\'text/javascript\'>\n\n        $( function () {\n        $(\'body\').addClass(\'flatTheme\');\n\n        $(\'link[href="/jslib/old/breadcrumbs/breadcrumbs.css"]\').remove();\n        $(\'link[href="/jslib/swagger/css/reset.css"]\').remove();\n\n\n        $(\'.nav-collapse.collapse\').removeClass(\'nav-collapse\').addClass(\'navbar-collapse\');\n        $(\'.btn.btn-navbar\').replaceWith(\'<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".nav-collapse" aria-expanded="false">\' +\n            \'<span class="sr-only">Toggle navigation</span>\' +\n            \'<span class="icon-bar"></span>\' +\n            \'<span class="icon-bar"></span>\' +\n            \'<span class="icon-bar"></span>\' +\n          \'</button>\'\n        );\n        $(\'.brand\').removeClass(\'brand\').addClass(\'navbar-brand\');\n        $(\'.navbar-inner\').addClass(\'navbar-form\');\n        $(\'.search-query\').addClass(\'form-control\');\n        $(\'.newBreadcrumbArrow\').removeClass(\'newBreadcrumbArrow separator\').addClass(\'fui-arrow-right\');\n\n        $(\'.span1\').removeClass(\'span1\').addClass(\'col-md-1\');\n        $(\'.span2\').removeClass(\'span2\').addClass(\'col-md-2\');\n        $(\'.span3\').removeClass(\'span3\').addClass(\'col-md-3\');\n        $(\'.span4\').removeClass(\'span4\').addClass(\'col-md-4\');\n        $(\'.span5\').removeClass(\'span5\').addClass(\'col-md-5\');\n        $(\'.span6\').removeClass(\'span6\').addClass(\'col-md-6\');\n        $(\'.span7\').removeClass(\'span7\').addClass(\'col-md-7\');\n        $(\'.span8\').removeClass(\'span8\').addClass(\'col-md-8\');\n        $(\'.span9\').removeClass(\'span9\').addClass(\'col-md-9\');\n        $(\'.span10\').removeClass(\'span10\').addClass(\'col-md-10\');\n        $(\'.span11\').removeClass(\'spa11\').addClass(\'col-md-11\');\n        $(\'.span12\').removeClass(\'span12\').addClass(\'col-md-12\');\n\n        var toggles = document.querySelectorAll(".c-hamburger");\n        for (var i = toggles.length - 1; i >= 0; i--) {\n            var toggle = toggles[i];\n            toggleHandler(toggle);\n        };\n        function toggleHandler(toggle) {\n            toggle.addEventListener( "click", function(e) {\n              e.preventDefault();\n              (this.classList.contains("is-active") === true) ? this.classList.remove("is-active") : this.classList.add("is-active");\n              $(\'.page-content\').find(\'.sidebar-nav\').toggleClass(\'hide\');\n              $(\'.page-content\').find(\'.content\').toggleClass(\'less-wide\');\n              $(\'.page-content\').find(\'.navigation\').toggleClass(\'wide-sidebar\');\n            });\n        }\n    });\n     </script>\n<link  href=\'/system/.files/css/flatTheme.css\' type=\'text/css\' rel=\'stylesheet\' />\n<link  href=\'/system/.files/css/default.css\' type=\'text/css\' rel=\'stylesheet\' />\n\n<style type=\'text/css\' >html, body {\n    height: 100%\n}\n#external-iframe{\n    width:100%;\n    height:100% !important;\n}\n#PortalsHamburgerMenu{\n    margin-bottom: 0;\n    margin-top: -5px;\n    z-index: 5;\n    left: 0;\n    background: transparent;\n}\n#PortalsHamburgerMenu.light span,\n#PortalsHamburgerMenu.light span::before,\n#PortalsHamburgerMenu.light span::after,\n.slider-container.visible #PortalsHamburgerMenu span,\n.slider-container.visible #PortalsHamburgerMenu span::before,\n.slider-container.visible #PortalsHamburgerMenu span::after{\n    background: #fff;\n}\n.slider-container.visible #PortalsHamburgerMenu{\n    position: fixed !important;\n}\n#PortalsHamburgerMenu.dark span,\n#PortalsHamburgerMenu.dark span::before,\n#PortalsHamburgerMenu.dark span::after{\n    background: #000;\n}\n.portals-list{\n    padding-left: 0;\n    list-style: none;\n}\n.portals-list li{\n    padding: 5px 0;\n    border-bottom: 1px solid #D3DAE0;\n    border-left: 4px solid transparent;\n    margin-left: 5px;\n}\n.portals-list li:first-child{\n    border-top: 1px solid #D3DAE0;\n}\n.portals-list li a{\n    padding-left: 4px;\n    display: block;\n    color: #34495E;\n}\n.panel-heading:hover a::before{\n  color: #fff;\n}\n.accordion .panel-heading{\n  border-radius: 0;\n}\n.accordion .panel-heading:hover a, .portals-list .panel-collapse li:hover a{\n    border-left: 4px solid #34495E;\n    background-color: #95A5A6;\n    color: #fff;\n}\n.accordion{\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n}\n.accordion:hover{\n    border-top: 1px solid #C3C3C3;\n    border-bottom: 1px solid #C3C3C3;\n}\n.portals-list .space:hover a{\n    color: #fff;\n}\n.explore-portals{\n    background-color: #34495E;\n    color: #fff;\n    padding-bottom: 12px;\n    margin-bottom: 0;\n    margin-left: 0;\n    font-size: 15px;\n    margin-top: -5px;\n    padding-top: 5px;\n    display: block;\n    padding-left: 40px;\n    padding-right: 20px;\n    padding-top: 14px;\n}\n.fixed-slide-nav{\n    display: block;\n    top: 0;\n}\n.panel-heading .accordion-toggle::before {\n    font-family: \'Glyphicons Halflings\';\n    content: "\\e080";\n    float: left;\n    color: #6D7C94;\n    font-size: 12px;\n    margin-top: 2px;\n}\n.panel-heading .accordion-toggle.collapsed::before {\n    content: "\\e114";\n}\n.show-on-large.portals-navigation.visible{\n  width: 210px;\n}\n.spaces-nav {\n    display: none;\n}\n.space.push-left{\n    padding-left: 30px;\n}\n.navbar-inverse .navbar-toggle{\n    padding: 0;\n    margin: 0;\n    max-height: 25px;\n    line-height: 0;\n}\n.portals-navigation {\n  display: block;\n  background: #f8f8f8;\n  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);\n  border-radius: 3px;\n  height: 100%;\n}\n.fixed-slide-nav{\n  position: fixed;\n  left: -210px;\n  min-height: 50px;\n  z-index: 2;\n  height: 100%;\n  width: 210px;\n}\n.portals-navigation ul {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n  display: block;\n}\n.portals-navigation li {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n  display: block;\n  position: relative;\n  font-size: 17px;\n  color: #def1f0;\n}\n.portals-navigation li a {\n  padding: 3px 8px;\n  font-size: 15px;\n  display: block;\n  outline: 0;\n  font-weight: 400;\n}\n.portals-navigation li a:hover{\n  text-decoration: none;\n}\n.portals-navigation li:hover ul.dropdown {\n  display: block;\n}\n.portals-navigation li ul.dropdown {\n  position: relative;\n  display: none;\n  background: #00695b;\n  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);\n  padding-top: 0;\n}\n.portals-navigation li ul.dropdown li {\n  display: block;\n  list-style-type: none;\n}\n.portals-navigation li ul.dropdown li a {\n  padding: 10px;\n  font-size: 15px;\n  color: #fff;\n  display: block;\n  border-bottom: 1px solid #005c4d;\n  font-weight: 400;\n}\n.arrow-down {\n  width: 0;\n  height: 0;\n  border-left: 5px solid transparent;\n  border-right: 5px solid transparent;\n  border-top: 5px solid #def1f0;\n  position: relative;\n  top: 15px;\n  right: -5px;\n  content: \'\';\n}\n.side-nav-btn{\n\t/*display: none;*/\n}\n.portals-navigation.visible {\n  left: 0px;\n  transition: left 0.3s linear;\n  z-index: 1;\n  display: block;\n  position: fixed;\n}\n.margin-left-xlarge{\n  margin-left: 30px !important;\n}\n/*small*/\n@media (max-width:767px) {\n\t.explore-portals{\n\t\tpadding-top: 13px !important;\n    \tpadding-bottom: 16px !important;\n\t}\n  .navbar-brand{\n    margin-left: 25px;\n  }\n  .portals-navigation {\n      width: 210px;\n      height: 100%;\n      display: block;\n      position: fixed;\n      left: -210px;\n      top: 0px;\n      transition: left 0.3s linear;\n      margin: 0;\n      border: 0;\n      border-radius: 0;\n      overflow-y: auto;\n      overflow-x: hidden;\n      height: 100%;\n      padding-top: 0;\n    }\n\t.show-on-large.portals-navigation.visible{\n\t  left: 0;\n\t}\n\t#PortalsHamburgerMenu{\n    \tleft: 5px;\n    \ttop: 12px !important;\n    }\n    .portals-navigation li:first-child:hover a { border-radius: 0; }\n\n    .portals-navigation li ul.dropdown { position: relative; }\n\n    .portals-navigation li ul.dropdown li a {\n      background: #00695b !important;\n      border-bottom: none;\n      color: #fff !important;\n    }\n\n    .portals-navigation li ul.dropdown li:hover a {\n      background: #56b5ae !important;\n      color: #fff !important;\n    }\n\n    .portals-navigation li ul.dropdown li a {\n      padding: 10px 10px 10px 30px;\n    }\n\n    .portals-navigation li:hover .arrow-down {\n      border-top: 5px solid #fff;\n    }\n\n    .arrow-down {\n      border-top: 5px solid #505050;\n      position: absolute;\n      top: 20px;\n      right: 10px;\n    }\n\n    .opacity {\n      background: rgba(197, 197, 197, 0.7);\n      position: fixed;\n      top: 0;\n      bottom: 0;\n      left: 0;\n      right: 0;\n    }\n  }\n/* medium */\n@media (max-width:991px) {\n\t.explore-portals{\n\t\tmargin-top: -5px;\n\t    padding-bottom: 7px;\n\t    padding-top: 3px;\n\t}\n\t.navbar-brand img{\n\t\twidth: 87px;\n\t}\n}\n/* medium */\n@media (max-width:1131px) {\n\tform.navbar-search{\n\t\tdisplay: none;\n\t}\n\t.navbar-brand img{\n\t\twidth: 87px;\n\t}\n  #PortalsHamburgerMenu{\n    top: 6px;\n  }\n}\n/* medium */\n@media (max-width:1545px) {\n    .side-nav-btn{\n    \tdisplay: block;\n    }\n\t.explore-portals{\n\t\tmargin-top: -5px;\n\t    padding-bottom: 7px;\n\t    padding-top: 3px;\n\t}\n\t.portals-navigation {\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\tleft: -210px;\n\t\ttransition: left 0.3s linear;\n\t\tborder-radius: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: hidden;\n    }\n    /*.portals-navigation.visible.show-on-large{\n    \tleft: -210px;\n    }*/\n}\n/* medium */\n@media (min-width:767px) and (max-width:1545px) {\n\t.explore-portals{\n\t\tpadding-bottom: 13px;\n    \tpadding-top: 13px;\n\t}\n}\n</style>\n    <script type="text/javascript" src="/jslib/old/adminmenu/adminmenu.js"></script><link  href=\'/jslib/old/breadcrumbs/breadcrumbs.css\' type=\'text/css\' rel=\'stylesheet\' />\n\n<style type=\'text/css\'>body {padding-top: 60px; padding-bottom: 40px;}</style> \n</head>\n<body >\n    <div class="navbar navbar-inverse navbar-fixed-top"  >\n        <div class="navbar-inner">\n            <div class="container">\n                <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">\n                <span class="icon-bar"></span>\n                <span class="icon-bar"></span>\n                <span class="icon-bar"></span>\n                </a>\n                <a class="brand" href="/home"><img style="margin-top: -5px;" src="data:image/jpeg;base64, /9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wgARCAAhACADAREAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAABQYHAwT/xAAaAQADAQEBAQAAAAAAAAAAAAACAwQFAQAG/9oADAMBAAIQAxAAAAFm6EsWfFztIUTrSABLVv3JC5J5wvctK6soPVNSd7KI59q7HRl9JilWA95t83AsdXP/AP/EACAQAAICAgICAwAAAAAAAAAAAAQFAgMABgESETQUFTX/2gAIAQEAAQUCYg/F5aQZbTiJUUlZy84cZSTBM4+gB2Z1YyHr2Y+nlhtZJA6HYpTA2h1fYNz2ry8aoC9avuOg2jbwT1rthf7Wm+21/Xz/xAAfEQACAQMFAQAAAAAAAAAAAAAAAQIDERIEECExMkH/2gAIAQMBAT8BWyWyidcDMmZWRTmpxuifCFaXRqJ5TcfiNG7rErzxRlKDuSNB7ZX9bf/EACMRAAICAQIGAwAAAAAAAAAAAAECABEDBBIFEBMhMTIiQVH/2gAIAQIBAT8BYVAajNfblu5V3hxiBQTQEyq2J9pgstUIZexmhxdPEHPkziKfIP8As0uLe1/UKplWiIngTiXqs03pDP/EACoQAAEDAwIDCAMAAAAAAAAAAAEAAgMEERITISIxwRAyQVFhcXKBc6Hx/9oACAEBAAY/An5uub9U1lPRvbSNNwcbm6IqoHxiQYNeRsTzXJXnjxaT7KKkNPNO5j3MLoxsDe/VTaVNLC2EZ6z+Ei3ohlMJG+TgChE5sMxyybgb7+1loPiD6q+7MrXH2qiGeCJhlA4o3XvsFYghSwwd1jyC48ypZICGywkH6P8AP2hFMRqDcgeCxIuFJ81Vfh6hV3zPZ//EACMQAQACAQQCAQUAAAAAAAAAAAEAESExQVFhgaGREHGx4fD/2gAIAQEAAT8hV2QaYgjIp9RZlMG+Imw3SQ9fSHkYJWi60fED7sQdgvAfPMGd7H65l9eYxAtufJT7mPxDtjl2fMsXDBActW1O5TAteArqL60f3rL1p7htKBJaNbbYwQZRG2lsPUEnA4z3LrG6yT2H5nsIf0+Y6z//2gAMAwEAAgADAAAAEChYtdtBFxUv/8QAHhEBAQEAAgEFAAAAAAAAAAAAAQARITFRQXGBodH/2gAIAQMBAT8Qe2abY82QebF6JqPEBPacItySE2Qats48B+zufSBjeYxbjdn5voXf7x1f/8QAIREAAwABAwQDAAAAAAAAAAAAAAERIRAxYUGhsfCB0fH/2gAIAQIBAT8QiGNvByaHeIYtoknOkQKHxR4TGSkHsYdEum+LlL75+CLC/A1EYGeRe+07JeEd0zxo3H//xAAfEAEBAAIDAQADAQAAAAAAAAABEQAhMUFRYSCBkbH/2gAIAQEAAT8Q2CQjC8GDaCerMpYKxorZyAP7XUeEwALonpRzrU51gJPHuAiCuUizY2Ps4whPlRD4C80as2EFe83aNqJUiz41nLkZQvoYqENsoA7CFZ8ZbagwhmMqiPPHWFg08FWavg+BYrcodFKfPTFyIm2CoOdBruVafFaUYjTpjXeB0yVGkSzQoGvI9mcWO2zfos+bP7+EMJT/ADc//9k=" alt="home" title="home"></a>\n                <div class="nav-collapse collapse">\n                   <ul class="nav pull-left">\n                   \n                   <li><a href="/system">System Portal</a></li>\n\n                   \n                   </ul>\n                   \n<ul class="nav navbar pull-right">\n    <li>\n        <a href="/restmachine/system/oauth/authenticate?type=itsyouonline">Login</a>\n    </li>\n</ul>\n                   \n                   \n                </div>\n            </div>\n        </div>\n    </div>\n\n<div class="container">\n<div class="row-fluid page-content clearfix">\n<div class="span12 content">\n<ul class=\'breadcrumb\'><li><a href=\'/System\'>System Portal</a><span style=\'opacity: 0.5; margin-right: 8px; margin-left: 2px;\' class=\'icon-chevron-right\'></span></li><li class=\'active\'>AccessDenied</li></ul>\n<div class="container">\n<div class="row-fluid page-content clearfix">\n<div class="span12">\n<h4 class="title">Access Denied - <a href=\'/restmachine/system/oauth/authenticate?type=itsyouonline\'   >Login</a></h4>\n</div>\n</div>\n</div>\n</div>\n\n<script type=\'text/javascript\'>\nvar getUrlParameter = function getUrlParameter(sParam) {\n    var sPageURL = decodeURIComponent(window.location.search.substring(1)),\n        sURLVariables = sPageURL.split(\'&\'),\n        sParameterName,\n        i;\n\n    for (i = 0; i < sURLVariables.length; i++) {\n        sParameterName = sURLVariables[i].split(\'=\');\n\n        if (sParameterName[0] === sParam) {\n            return sParameterName[1] === undefined ? true : sParameterName[1];\n        }\n    }\n};\n\nfunction injectIframe(url) {\n    if (url === undefined) {\n        url = getUrlParameter(\'url\')\n    }\n    $(\'.flatTheme > .container\').html(\'\')\n    .addClass(\'height-full\')\n    .html("<iframe id=\'external-iframe\' class=\'border-none\' src=\'" + url + "\'></iframe>")\n    .removeClass(\'container\');\n    $(\'.flatTheme\').addClass(\'padding-top-none\');\n    $(\'.navbar-inverse\').remove();\n    $(\'.navmenu-fixed-left.offcanvas\').remove();\n    var div = $("<div class=\'navmenu navmenu-default navmenu-fixed-left offcanvas\'><a class=\'\'></a></div>");\n    div.find(\'a\').html($(\'#portalsHamburgerStructure\').html());\n    $(\'.height-full\').prepend(div);\n};\n\nfunction injectHamburgerButton(theme, external) {\n    function applyHamburgerButton() {\n      $(\'.slider-container\').append("<button id=\'PortalsHamburgerMenu\' class=\'c-hamburger c-hamburger--htla left side-nav-btn position-fixed " + theme + "\' title=\'Portals\'><span></span></button>");\n      if(external === true){\n        $(\'#PortalsHamburgerMenu\').addClass(\'margin-top-small\');\n        $(\'#external-iframe\').one("load", function() {\n          if($("#external-iframe").contents().find(".logo").length > 0){\n            if( $("#external-iframe").contents().find(".logo").hasClass("margin-left-large") === false){\n                $("#external-iframe").contents().find(".logo").addClass(\'margin-left-large\');\n            }\n          }\n\n          if(window.location.href.toLowerCase().indexOf(\'grafana\') > -1){\n            var $head = $("#external-iframe").contents().find("head");\n            $head.append($("<link/>",{ rel: "stylesheet", href: "/system/.files/css/grafana-custom.css", type: "text/css" }));\n            setTimeout(function() {\n              var grafanaSigninBtn = $("#external-iframe").contents().find(\'.sidemenu.sidemenu-small\').find(\'.sidemenu-item\').last();\n              grafanaSigninBtn.attr("href", "/grafana/login/github");\n            }, 400);\n          }\n\n        });\n      }\n    }\n    if($(\'#PortalsHamburgerMenu\').length > 0){\n      $(\'#PortalsHamburgerMenu\').remove();\n      applyHamburgerButton();\n    }else{\n      applyHamburgerButton();\n    }\n};\n\n$(function () {\n    function getSpaceinfo(){\n      var SpacesNavBtnTheme = "light";\n      var isSpaceExternal = false;\n      var isLinkOnHrd = false;\n      $(\'.navmenu-default\').find(\'a.space\').each(function() {\n        if(window.location.href.toLowerCase().indexOf($(this)[0].href.toLowerCase()) > -1){\n          SpacesNavBtnTheme = $(this).data().theme;\n          isSpaceExternal = $(this).data().external;\n          isLinkOnHrd = true;\n          $(this).siblings(\'.accordion-toggle\').click();\n          return false;\n        }\n      });\n      return {"theme":SpacesNavBtnTheme, "external":isSpaceExternal, "isLinkOnHrd":isLinkOnHrd};\n    };\n\n    $(document).on(\'click\', \'.accordion-toggle\', function(e) {\n      $(\'.panel-collapse\').removeClass(\'in\');\n      $(\'.accordion-toggle\').removeClass(\'collapsed\');\n      $(this).addClass(\'collapsed\');\n    });\n\n    if($(\'.navmenu.navmenu-default\').length === 0){\n      var div = $("<div class=\'navmenu navmenu-default navmenu-fixed-left offcanvas\'></div>");\n      div.html($(\'#portalsHamburgerStructure\').html());\n      $(\'.navbar-inner.navbar-form\').prepend(div);\n      var spaceinfo = getSpaceinfo();\n      injectHamburgerButton(spaceinfo["theme"], spaceinfo["external"]);\n    }\n\n    var currentPage = \'\';\n    if(window.location.pathname.indexOf(\'external\') > -1){\n        currentPage = \'external\';\n    }\n\n    if(currentPage == \'external\'){\n        injectIframe();\n        var spaceinfo = getSpaceinfo();\n        if(spaceinfo["isLinkOnHrd"] === false){\n          window.location.replace("/");\n          return false;\n        }\n        injectHamburgerButton(spaceinfo["theme"], spaceinfo["external"]);\n    }\n\n    $( ".openIframe" ).click(function(event) {\n        var $this = $(this);\n        if($this.attr(\'href\') == \'\') {\n            event.preventDefault();\n            return;\n        }\n        if( $this.data().external === true ){\n            event.preventDefault();\n            window.location.replace("/home/external?url=" + this["href"]);\n        }\n    });\n\n    $(\'.side-nav-btn\').click(function(){\n        $(\'.portals-navigation\').toggleClass(\'visible\');\n        $(\'.slider-container\').toggleClass(\'visible\');\n        $(\'.portals-navigation\').toggleClass(\'show-on-large\');\n        if($("#external-iframe").contents().find(".sidemenu-canvas").length > 0){\n          $("#external-iframe").contents().find(".sidemenu-canvas").toggleClass(\'grafana-push-left\');\n        }\n    });\n\n    function checkChangedBrowserSize() {\n\n        function showMenu(){\n          $(\'.portals-navigation\').addClass(\'visible\').addClass(\'show-on-large\');\n          $(\'.slider-container\').addClass(\'visible\');\n          $(\'#external-iframe\').one("load", function() {\n            if($("#external-iframe").contents().find(".sidemenu-canvas").length > 0 && window.location.href.toLowerCase().indexOf(\'grafana\') > -1){\n              $("#external-iframe").contents().find(".sidemenu-canvas").addClass(\'grafana-push-left\');\n            }\n          });\n        }\n        function hideMenu() {\n          $(\'.portals-navigation\').removeClass(\'visible\').removeClass(\'show-on-large\');\n          $(\'.slider-container\').removeClass(\'visible\');\n          $("#external-iframe").contents().find(".sidemenu-canvas").removeClass(\'grafana-push-left\');\n        }\n\n        if(window.location.pathname.indexOf(\'wiki_gcb\') > -1){\n          if($( window ).width() + 21 < 1710){\n              hideMenu();\n          }else{\n              showMenu();\n          }\n        }else{\n          if($( window ).width() + 21 < 1560){\n              hideMenu();\n          }else{\n              showMenu();\n          }\n        }\n\n    }\n\n    checkChangedBrowserSize();\n    $(\'.container\').click(function() {\n        checkChangedBrowserSize();\n    });\n\n    window.onresize = function (){\n        checkChangedBrowserSize();\n    };\n\n    var shiftWindow = function() {\n      scrollBy(0, -50)\n    };\n    if (location.hash) shiftWindow();\n    window.addEventListener("hashchange", shiftWindow);\n\n    $(\'#dynamic\').find(\'th\').click(function(event){\n      event.stopPropagation();\n    });\n});</script>\n</body>\n</html>'
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/gevent/greenlet.py", line 536, in run
    result = self._run(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.5/dist-packages/zerorobot/template/base.py", line 185, in _run
    task.execute()
  File "/usr/local/lib/python3.5/dist-packages/zerorobot/task/task.py", line 79, in execute
    self._result = self.func()
  File "/opt/code/github/openvcloud/kubernetes/templates/setup/setup.py", line 211, in install
    helper = self._ensure_helper()
  File "/opt/code/github/openvcloud/kubernetes/templates/setup/setup.py", line 101, in _ensure_helper
    raise task.eco
JumpScale9.errorhandling.ErrorConditionObject.ErrorConditionObject: 401 Unauthorized
b'\n<!DOCTYPE html>\n<html>\n<head>\n <meta charset="UTF-8">\n<link rel="shortcut icon" type="image/png" href="/system/.files/img/favicon/png" />\n<title>AccessDenied</title>\n<script  src=\'/jslib/jquery/jquery-2.2.1.min.js\' type=\'text/javascript\'></script>\n<script  src=\'/jslib/jquery/jquery-migrate-1.2.1.js\' type=\'text/javascript\'></script>\n<script  src=\'/jslib/jquery/jquery-ui.min.js\' type=\'text/javascript\'></script>\n<script  src=\'/jslib/bootstrap/js/bootstrap-3-3-6.min.js\' type=\'text/javascript\'></script>\n<link  href=\'/jslib/bootstrap/css/bootstrap-3-3-6.min.css\' type=\'text/css\' rel=\'stylesheet\' />\n<link  href=\'/jslib/flatui/css/flat-ui.css\' type=\'text/css\' rel=\'stylesheet\' />\n<link  href=\'/jslib/new-ui/new-ui.css\' type=\'text/css\' rel=\'stylesheet\' />\n<link  href=\'/jslib/new-ui/oocss.css\' type=\'text/css\' rel=\'stylesheet\' />\n<script  src=\'/jslib/pnotify/pnotify.js\' type=\'text/javascript\'></script>\n<script  src=\'/jslib/pnotify/pnotify.buttons.js\' type=\'text/javascript\'></script>\n<script  src=\'/system/.files/js/events.js\' type=\'text/javascript\'></script>\n<link  href=\'/jslib/pnotify/pnotify.css\' type=\'text/css\' rel=\'stylesheet\' />\n<script type=\'text/javascript\'>\n\n        $( function () {\n        $(\'body\').addClass(\'flatTheme\');\n\n        $(\'link[href="/jslib/old/breadcrumbs/breadcrumbs.css"]\').remove();\n        $(\'link[href="/jslib/swagger/css/reset.css"]\').remove();\n\n\n        $(\'.nav-collapse.collapse\').removeClass(\'nav-collapse\').addClass(\'navbar-collapse\');\n        $(\'.btn.btn-navbar\').replaceWith(\'<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".nav-collapse" aria-expanded="false">\' +\n            \'<span class="sr-only">Toggle navigation</span>\' +\n            \'<span class="icon-bar"></span>\' +\n            \'<span class="icon-bar"></span>\' +\n            \'<span class="icon-bar"></span>\' +\n          \'</button>\'\n        );\n        $(\'.brand\').removeClass(\'brand\').addClass(\'navbar-brand\');\n        $(\'.navbar-inner\').addClass(\'navbar-form\');\n        $(\'.search-query\').addClass(\'form-control\');\n        $(\'.newBreadcrumbArrow\').removeClass(\'newBreadcrumbArrow separator\').addClass(\'fui-arrow-right\');\n\n        $(\'.span1\').removeClass(\'span1\').addClass(\'col-md-1\');\n        $(\'.span2\').removeClass(\'span2\').addClass(\'col-md-2\');\n        $(\'.span3\').removeClass(\'span3\').addClass(\'col-md-3\');\n        $(\'.span4\').removeClass(\'span4\').addClass(\'col-md-4\');\n        $(\'.span5\').removeClass(\'span5\').addClass(\'col-md-5\');\n        $(\'.span6\').removeClass(\'span6\').addClass(\'col-md-6\');\n        $(\'.span7\').removeClass(\'span7\').addClass(\'col-md-7\');\n        $(\'.span8\').removeClass(\'span8\').addClass(\'col-md-8\');\n        $(\'.span9\').removeClass(\'span9\').addClass(\'col-md-9\');\n        $(\'.span10\').removeClass(\'span10\').addClass(\'col-md-10\');\n        $(\'.span11\').removeClass(\'spa11\').addClass(\'col-md-11\');\n        $(\'.span12\').removeClass(\'span12\').addClass(\'col-md-12\');\n\n        var toggles = document.querySelectorAll(".c-hamburger");\n        for (var i = toggles.length - 1; i >= 0; i--) {\n            var toggle = toggles[i];\n            toggleHandler(toggle);\n        };\n        function toggleHandler(toggle) {\n            toggle.addEventListener( "click", function(e) {\n              e.preventDefault();\n              (this.classList.contains("is-active") === true) ? this.classList.remove("is-active") : this.classList.add("is-active");\n              $(\'.page-content\').find(\'.sidebar-nav\').toggleClass(\'hide\');\n              $(\'.page-content\').find(\'.content\').toggleClass(\'less-wide\');\n              $(\'.page-content\').find(\'.navigation\').toggleClass(\'wide-sidebar\');\n            });\n        }\n    });\n     </script>\n<link  href=\'/system/.files/css/flatTheme.css\' type=\'text/css\' rel=\'stylesheet\' />\n<link  href=\'/system/.files/css/default.css\' type=\'text/css\' rel=\'stylesheet\' />\n\n<style type=\'text/css\' >html, body {\n    height: 100%\n}\n#external-iframe{\n    width:100%;\n    height:100% !important;\n}\n#PortalsHamburgerMenu{\n    margin-bottom: 0;\n    margin-top: -5px;\n    z-index: 5;\n    left: 0;\n    background: transparent;\n}\n#PortalsHamburgerMenu.light span,\n#PortalsHamburgerMenu.light span::before,\n#PortalsHamburgerMenu.light span::after,\n.slider-container.visible #PortalsHamburgerMenu span,\n.slider-container.visible #PortalsHamburgerMenu span::before,\n.slider-container.visible #PortalsHamburgerMenu span::after{\n    background: #fff;\n}\n.slider-container.visible #PortalsHamburgerMenu{\n    position: fixed !important;\n}\n#PortalsHamburgerMenu.dark span,\n#PortalsHamburgerMenu.dark span::before,\n#PortalsHamburgerMenu.dark span::after{\n    background: #000;\n}\n.portals-list{\n    padding-left: 0;\n    list-style: none;\n}\n.portals-list li{\n    padding: 5px 0;\n    border-bottom: 1px solid #D3DAE0;\n    border-left: 4px solid transparent;\n    margin-left: 5px;\n}\n.portals-list li:first-child{\n    border-top: 1px solid #D3DAE0;\n}\n.portals-list li a{\n    padding-left: 4px;\n    display: block;\n    color: #34495E;\n}\n.panel-heading:hover a::before{\n  color: #fff;\n}\n.accordion .panel-heading{\n  border-radius: 0;\n}\n.accordion .panel-heading:hover a, .portals-list .panel-collapse li:hover a{\n    border-left: 4px solid #34495E;\n    background-color: #95A5A6;\n    color: #fff;\n}\n.accordion{\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n}\n.accordion:hover{\n    border-top: 1px solid #C3C3C3;\n    border-bottom: 1px solid #C3C3C3;\n}\n.portals-list .space:hover a{\n    color: #fff;\n}\n.explore-portals{\n    background-color: #34495E;\n    color: #fff;\n    padding-bottom: 12px;\n    margin-bottom: 0;\n    margin-left: 0;\n    font-size: 15px;\n    margin-top: -5px;\n    padding-top: 5px;\n    display: block;\n    padding-left: 40px;\n    padding-right: 20px;\n    padding-top: 14px;\n}\n.fixed-slide-nav{\n    display: block;\n    top: 0;\n}\n.panel-heading .accordion-toggle::before {\n    font-family: \'Glyphicons Halflings\';\n    content: "\\e080";\n    float: left;\n    color: #6D7C94;\n    font-size: 12px;\n    margin-top: 2px;\n}\n.panel-heading .accordion-toggle.collapsed::before {\n    content: "\\e114";\n}\n.show-on-large.portals-navigation.visible{\n  width: 210px;\n}\n.spaces-nav {\n    display: none;\n}\n.space.push-left{\n    padding-left: 30px;\n}\n.navbar-inverse .navbar-toggle{\n    padding: 0;\n    margin: 0;\n    max-height: 25px;\n    line-height: 0;\n}\n.portals-navigation {\n  display: block;\n  background: #f8f8f8;\n  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);\n  border-radius: 3px;\n  height: 100%;\n}\n.fixed-slide-nav{\n  position: fixed;\n  left: -210px;\n  min-height: 50px;\n  z-index: 2;\n  height: 100%;\n  width: 210px;\n}\n.portals-navigation ul {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n  display: block;\n}\n.portals-navigation li {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n  display: block;\n  position: relative;\n  font-size: 17px;\n  color: #def1f0;\n}\n.portals-navigation li a {\n  padding: 3px 8px;\n  font-size: 15px;\n  display: block;\n  outline: 0;\n  font-weight: 400;\n}\n.portals-navigation li a:hover{\n  text-decoration: none;\n}\n.portals-navigation li:hover ul.dropdown {\n  display: block;\n}\n.portals-navigation li ul.dropdown {\n  position: relative;\n  display: none;\n  background: #00695b;\n  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);\n  padding-top: 0;\n}\n.portals-navigation li ul.dropdown li {\n  display: block;\n  list-style-type: none;\n}\n.portals-navigation li ul.dropdown li a {\n  padding: 10px;\n  font-size: 15px;\n  color: #fff;\n  display: block;\n  border-bottom: 1px solid #005c4d;\n  font-weight: 400;\n}\n.arrow-down {\n  width: 0;\n  height: 0;\n  border-left: 5px solid transparent;\n  border-right: 5px solid transparent;\n  border-top: 5px solid #def1f0;\n  position: relative;\n  top: 15px;\n  right: -5px;\n  content: \'\';\n}\n.side-nav-btn{\n\t/*display: none;*/\n}\n.portals-navigation.visible {\n  left: 0px;\n  transition: left 0.3s linear;\n  z-index: 1;\n  display: block;\n  position: fixed;\n}\n.margin-left-xlarge{\n  margin-left: 30px !important;\n}\n/*small*/\n@media (max-width:767px) {\n\t.explore-portals{\n\t\tpadding-top: 13px !important;\n    \tpadding-bottom: 16px !important;\n\t}\n  .navbar-brand{\n    margin-left: 25px;\n  }\n  .portals-navigation {\n      width: 210px;\n      height: 100%;\n      display: block;\n      position: fixed;\n      left: -210px;\n      top: 0px;\n      transition: left 0.3s linear;\n      margin: 0;\n      border: 0;\n      border-radius: 0;\n      overflow-y: auto;\n      overflow-x: hidden;\n      height: 100%;\n      padding-top: 0;\n    }\n\t.show-on-large.portals-navigation.visible{\n\t  left: 0;\n\t}\n\t#PortalsHamburgerMenu{\n    \tleft: 5px;\n    \ttop: 12px !important;\n    }\n    .portals-navigation li:first-child:hover a { border-radius: 0; }\n\n    .portals-navigation li ul.dropdown { position: relative; }\n\n    .portals-navigation li ul.dropdown li a {\n      background: #00695b !important;\n      border-bottom: none;\n      color: #fff !important;\n    }\n\n    .portals-navigation li ul.dropdown li:hover a {\n      background: #56b5ae !important;\n      color: #fff !important;\n    }\n\n    .portals-navigation li ul.dropdown li a {\n      padding: 10px 10px 10px 30px;\n    }\n\n    .portals-navigation li:hover .arrow-down {\n      border-top: 5px solid #fff;\n    }\n\n    .arrow-down {\n      border-top: 5px solid #505050;\n      position: absolute;\n      top: 20px;\n      right: 10px;\n    }\n\n    .opacity {\n      background: rgba(197, 197, 197, 0.7);\n      position: fixed;\n      top: 0;\n      bottom: 0;\n      left: 0;\n      right: 0;\n    }\n  }\n/* medium */\n@media (max-width:991px) {\n\t.explore-portals{\n\t\tmargin-top: -5px;\n\t    padding-bottom: 7px;\n\t    padding-top: 3px;\n\t}\n\t.navbar-brand img{\n\t\twidth: 87px;\n\t}\n}\n/* medium */\n@media (max-width:1131px) {\n\tform.navbar-search{\n\t\tdisplay: none;\n\t}\n\t.navbar-brand img{\n\t\twidth: 87px;\n\t}\n  #PortalsHamburgerMenu{\n    top: 6px;\n  }\n}\n/* medium */\n@media (max-width:1545px) {\n    .side-nav-btn{\n    \tdisplay: block;\n    }\n\t.explore-portals{\n\t\tmargin-top: -5px;\n\t    padding-bottom: 7px;\n\t    padding-top: 3px;\n\t}\n\t.portals-navigation {\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\tleft: -210px;\n\t\ttransition: left 0.3s linear;\n\t\tborder-radius: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: hidden;\n    }\n    /*.portals-navigation.visible.show-on-large{\n    \tleft: -210px;\n    }*/\n}\n/* medium */\n@media (min-width:767px) and (max-width:1545px) {\n\t.explore-portals{\n\t\tpadding-bottom: 13px;\n    \tpadding-top: 13px;\n\t}\n}\n</style>\n    <script type="text/javascript" src="/jslib/old/adminmenu/adminmenu.js"></script><link  href=\'/jslib/old/breadcrumbs/breadcrumbs.css\' type=\'text/css\' rel=\'stylesheet\' />\n\n<style type=\'text/css\'>body {padding-top: 60px; padding-bottom: 40px;}</style> \n</head>\n<body >\n    <div class="navbar navbar-inverse navbar-fixed-top"  >\n        <div class="navbar-inner">\n            <div class="container">\n                <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">\n                <span class="icon-bar"></span>\n                <span class="icon-bar"></span>\n                <span class="icon-bar"></span>\n                </a>\n                <a class="brand" href="/home"><img style="margin-top: -5px;" src="data:image/jpeg;base64, /9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wgARCAAhACADAREAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAABQYHAwT/xAAaAQADAQEBAQAAAAAAAAAAAAACAwQFAQAG/9oADAMBAAIQAxAAAAFm6EsWfFztIUTrSABLVv3JC5J5wvctK6soPVNSd7KI59q7HRl9JilWA95t83AsdXP/AP/EACAQAAICAgICAwAAAAAAAAAAAAQFAgMABgESETQUFTX/2gAIAQEAAQUCYg/F5aQZbTiJUUlZy84cZSTBM4+gB2Z1YyHr2Y+nlhtZJA6HYpTA2h1fYNz2ry8aoC9avuOg2jbwT1rthf7Wm+21/Xz/xAAfEQACAQMFAQAAAAAAAAAAAAAAAQIDERIEECExMkH/2gAIAQMBAT8BWyWyidcDMmZWRTmpxuifCFaXRqJ5TcfiNG7rErzxRlKDuSNB7ZX9bf/EACMRAAICAQIGAwAAAAAAAAAAAAECABEDBBIFEBMhMTIiQVH/2gAIAQIBAT8BYVAajNfblu5V3hxiBQTQEyq2J9pgstUIZexmhxdPEHPkziKfIP8As0uLe1/UKplWiIngTiXqs03pDP/EACoQAAEDAwIDCAMAAAAAAAAAAAEAAgMEERITISIxwRAyQVFhcXKBc6Hx/9oACAEBAAY/An5uub9U1lPRvbSNNwcbm6IqoHxiQYNeRsTzXJXnjxaT7KKkNPNO5j3MLoxsDe/VTaVNLC2EZ6z+Ei3ohlMJG+TgChE5sMxyybgb7+1loPiD6q+7MrXH2qiGeCJhlA4o3XvsFYghSwwd1jyC48ypZICGywkH6P8AP2hFMRqDcgeCxIuFJ81Vfh6hV3zPZ//EACMQAQACAQQCAQUAAAAAAAAAAAEAESExQVFhgaGREHGx4fD/2gAIAQEAAT8hV2QaYgjIp9RZlMG+Imw3SQ9fSHkYJWi60fED7sQdgvAfPMGd7H65l9eYxAtufJT7mPxDtjl2fMsXDBActW1O5TAteArqL60f3rL1p7htKBJaNbbYwQZRG2lsPUEnA4z3LrG6yT2H5nsIf0+Y6z//2gAMAwEAAgADAAAAEChYtdtBFxUv/8QAHhEBAQEAAgEFAAAAAAAAAAAAAQARITFRQXGBodH/2gAIAQMBAT8Qe2abY82QebF6JqPEBPacItySE2Qats48B+zufSBjeYxbjdn5voXf7x1f/8QAIREAAwABAwQDAAAAAAAAAAAAAAERIRAxYUGhsfCB0fH/2gAIAQIBAT8QiGNvByaHeIYtoknOkQKHxR4TGSkHsYdEum+LlL75+CLC/A1EYGeRe+07JeEd0zxo3H//xAAfEAEBAAIDAQADAQAAAAAAAAABEQAhMUFRYSCBkbH/2gAIAQEAAT8Q2CQjC8GDaCerMpYKxorZyAP7XUeEwALonpRzrU51gJPHuAiCuUizY2Ps4whPlRD4C80as2EFe83aNqJUiz41nLkZQvoYqENsoA7CFZ8ZbagwhmMqiPPHWFg08FWavg+BYrcodFKfPTFyIm2CoOdBruVafFaUYjTpjXeB0yVGkSzQoGvI9mcWO2zfos+bP7+EMJT/ADc//9k=" alt="home" title="home"></a>\n                <div class="nav-collapse collapse">\n                   <ul class="nav pull-left">\n                   \n                   <li><a href="/system">System Portal</a></li>\n\n                   \n                   </ul>\n                   \n<ul class="nav navbar pull-right">\n    <li>\n        <a href="/restmachine/system/oauth/authenticate?type=itsyouonline">Login</a>\n    </li>\n</ul>\n                   \n                   \n                </div>\n            </div>\n        </div>\n    </div>\n\n<div class="container">\n<div class="row-fluid page-content clearfix">\n<div class="span12 content">\n<ul class=\'breadcrumb\'><li><a href=\'/System\'>System Portal</a><span style=\'opacity: 0.5; margin-right: 8px; margin-left: 2px;\' class=\'icon-chevron-right\'></span></li><li class=\'active\'>AccessDenied</li></ul>\n<div class="container">\n<div class="row-fluid page-content clearfix">\n<div class="span12">\n<h4 class="title">Access Denied - <a href=\'/restmachine/system/oauth/authenticate?type=itsyouonline\'   >Login</a></h4>\n</div>\n</div>\n</div>\n</div>\n\n<script type=\'text/javascript\'>\nvar getUrlParameter = function getUrlParameter(sParam) {\n    var sPageURL = decodeURIComponent(window.location.search.substring(1)),\n        sURLVariables = sPageURL.split(\'&\'),\n        sParameterName,\n        i;\n\n    for (i = 0; i < sURLVariables.length; i++) {\n        sParameterName = sURLVariables[i].split(\'=\');\n\n        if (sParameterName[0] === sParam) {\n            return sParameterName[1] === undefined ? true : sParameterName[1];\n        }\n    }\n};\n\nfunction injectIframe(url) {\n    if (url === undefined) {\n        url = getUrlParameter(\'url\')\n    }\n    $(\'.flatTheme > .container\').html(\'\')\n    .addClass(\'height-full\')\n    .html("<iframe id=\'external-iframe\' class=\'border-none\' src=\'" + url + "\'></iframe>")\n    .removeClass(\'container\');\n    $(\'.flatTheme\').addClass(\'padding-top-none\');\n    $(\'.navbar-inverse\').remove();\n    $(\'.navmenu-fixed-left.offcanvas\').remove();\n    var div = $("<div class=\'navmenu navmenu-default navmenu-fixed-left offcanvas\'><a class=\'\'></a></div>");\n    div.find(\'a\').html($(\'#portalsHamburgerStructure\').html());\n    $(\'.height-full\').prepend(div);\n};\n\nfunction injectHamburgerButton(theme, external) {\n    function applyHamburgerButton() {\n      $(\'.slider-container\').append("<button id=\'PortalsHamburgerMenu\' class=\'c-hamburger c-hamburger--htla left side-nav-btn position-fixed " + theme + "\' title=\'Portals\'><span></span></button>");\n      if(external === true){\n        $(\'#PortalsHamburgerMenu\').addClass(\'margin-top-small\');\n        $(\'#external-iframe\').one("load", function() {\n          if($("#external-iframe").contents().find(".logo").length > 0){\n            if( $("#external-iframe").contents().find(".logo").hasClass("margin-left-large") === false){\n                $("#external-iframe").contents().find(".logo").addClass(\'margin-left-large\');\n            }\n          }\n\n          if(window.location.href.toLowerCase().indexOf(\'grafana\') > -1){\n            var $head = $("#external-iframe").contents().find("head");\n            $head.append($("<link/>",{ rel: "stylesheet", href: "/system/.files/css/grafana-custom.css", type: "text/css" }));\n            setTimeout(function() {\n              var grafanaSigninBtn = $("#external-iframe").contents().find(\'.sidemenu.sidemenu-small\').find(\'.sidemenu-item\').last();\n              grafanaSigninBtn.attr("href", "/grafana/login/github");\n            }, 400);\n          }\n\n        });\n      }\n    }\n    if($(\'#PortalsHamburgerMenu\').length > 0){\n      $(\'#PortalsHamburgerMenu\').remove();\n      applyHamburgerButton();\n    }else{\n      applyHamburgerButton();\n    }\n};\n\n$(function () {\n    function getSpaceinfo(){\n      var SpacesNavBtnTheme = "light";\n      var isSpaceExternal = false;\n      var isLinkOnHrd = false;\n      $(\'.navmenu-default\').find(\'a.space\').each(function() {\n        if(window.location.href.toLowerCase().indexOf($(this)[0].href.toLowerCase()) > -1){\n          SpacesNavBtnTheme = $(this).data().theme;\n          isSpaceExternal = $(this).data().external;\n          isLinkOnHrd = true;\n          $(this).siblings(\'.accordion-toggle\').click();\n          return false;\n        }\n      });\n      return {"theme":SpacesNavBtnTheme, "external":isSpaceExternal, "isLinkOnHrd":isLinkOnHrd};\n    };\n\n    $(document).on(\'click\', \'.accordion-toggle\', function(e) {\n      $(\'.panel-collapse\').removeClass(\'in\');\n      $(\'.accordion-toggle\').removeClass(\'collapsed\');\n      $(this).addClass(\'collapsed\');\n    });\n\n    if($(\'.navmenu.navmenu-default\').length === 0){\n      var div = $("<div class=\'navmenu navmenu-default navmenu-fixed-left offcanvas\'></div>");\n      div.html($(\'#portalsHamburgerStructure\').html());\n      $(\'.navbar-inner.navbar-form\').prepend(div);\n      var spaceinfo = getSpaceinfo();\n      injectHamburgerButton(spaceinfo["theme"], spaceinfo["external"]);\n    }\n\n    var currentPage = \'\';\n    if(window.location.pathname.indexOf(\'external\') > -1){\n        currentPage = \'external\';\n    }\n\n    if(currentPage == \'external\'){\n        injectIframe();\n        var spaceinfo = getSpaceinfo();\n        if(spaceinfo["isLinkOnHrd"] === false){\n          window.location.replace("/");\n          return false;\n        }\n        injectHamburgerButton(spaceinfo["theme"], spaceinfo["external"]);\n    }\n\n    $( ".openIframe" ).click(function(event) {\n        var $this = $(this);\n        if($this.attr(\'href\') == \'\') {\n            event.preventDefault();\n            return;\n        }\n        if( $this.data().external === true ){\n            event.preventDefault();\n            window.location.replace("/home/external?url=" + this["href"]);\n        }\n    });\n\n    $(\'.side-nav-btn\').click(function(){\n        $(\'.portals-navigation\').toggleClass(\'visible\');\n        $(\'.slider-container\').toggleClass(\'visible\');\n        $(\'.portals-navigation\').toggleClass(\'show-on-large\');\n        if($("#external-iframe").contents().find(".sidemenu-canvas").length > 0){\n          $("#external-iframe").contents().find(".sidemenu-canvas").toggleClass(\'grafana-push-left\');\n        }\n    });\n\n    function checkChangedBrowserSize() {\n\n        function showMenu(){\n          $(\'.portals-navigation\').addClass(\'visible\').addClass(\'show-on-large\');\n          $(\'.slider-container\').addClass(\'visible\');\n          $(\'#external-iframe\').one("load", function() {\n            if($("#external-iframe").contents().find(".sidemenu-canvas").length > 0 && window.location.href.toLowerCase().indexOf(\'grafana\') > -1){\n              $("#external-iframe").contents().find(".sidemenu-canvas").addClass(\'grafana-push-left\');\n            }\n          });\n        }\n        function hideMenu() {\n          $(\'.portals-navigation\').removeClass(\'visible\').removeClass(\'show-on-large\');\n          $(\'.slider-container\').removeClass(\'visible\');\n          $("#external-iframe").contents().find(".sidemenu-canvas").removeClass(\'grafana-push-left\');\n        }\n\n        if(window.location.pathname.indexOf(\'wiki_gcb\') > -1){\n          if($( window ).width() + 21 < 1710){\n              hideMenu();\n          }else{\n              showMenu();\n          }\n        }else{\n          if($( window ).width() + 21 < 1560){\n              hideMenu();\n          }else{\n              showMenu();\n          }\n        }\n\n    }\n\n    checkChangedBrowserSize();\n    $(\'.container\').click(function() {\n        checkChangedBrowserSize();\n    });\n\n    window.onresize = function (){\n        checkChangedBrowserSize();\n    };\n\n    var shiftWindow = function() {\n      scrollBy(0, -50)\n    };\n    if (location.hash) shiftWindow();\n    window.addEventListener("hashchange", shiftWindow);\n\n    $(\'#dynamic\').find(\'th\').click(function(event){\n      event.stopPropagation();\n    });\n});</script>\n</body>\n</html>'
Sun Mar 18 11:04:13 2018 <Greenlet at 0x7f55fe5f15a0: <bound method TemplateBase._run of <setup.Setup object at 0x7f55fe609780>>> failed with ErrorConditionObject
chrisvdg commented 6 years ago

This issue has been forwarded to jumpscale lib9 https://github.com/Jumpscale/lib9/issues/187

katia-e commented 6 years ago

This issue repeats issue https://github.com/Jumpscale/lib9/issues/187 Was solved in https://github.com/Jumpscale/lib9/pull/197