Exemplo n.º 1
0
    def __build_template__(self):
        self.pfm = M()
        greg('PFM', self.pfm)
        pnav = ''
        fnav = ''
        page = ''
        
        for p_name in self.products._porder:
            if p_name in self.products:
                self.pfm[p_name] = None
                pnav += '''                <a id="cw-pnav-%s" class="cw-pnav" onclick="show_product(\'%s\');">%s</a>\n''' % (p_name, p_name, self.products[p_name]._title)
                fnav += '            <ul id="cw-fnav-%s" class="nav navbar-nav side-nav cw-fnav">\n' % p_name
                now_sub = None
                for f_name in self.products[p_name]._forder:
                    if instof(f_name, tuple):
                        m_name, s_name = f_name
                        feature = self.products[p_name][m_name][s_name]
                        if now_sub != None and now_sub != m_name:
                            fnav += '''            </ul></li>
            <li id="cw-fnav-%s_%s" class="ftbar cw-fnavitem"><a href="javascript:;" data-toggle="collapse" data-target="#cw-fsnav-%s-%s" class="collapsed" aria-expanded="false"><i class="fa fa-fw %s"></i> %s <i class="fa fa-fw fa-caret-down"></i></a><ul id="cw-fsnav-%s-%s" class="collapse" aria-expanded="false">
''' % (p_name, m_name, p_name, m_name, self.products[p_name][m_name]._icon, self.products[p_name][m_name]._title, p_name, m_name)
                        if now_sub == None:
                            fnav += '''            <li id="cw-fnav-%s_%s" class="ftbar cw-fnavitem"><a href="javascript:;" data-toggle="collapse" data-target="#cw-fsnav-%s-%s" class="collapsed" aria-expanded="false"><i class="fa fa-fw %s"></i> %s <i class="fa fa-fw fa-caret-down"></i></a><ul id="cw-fsnav-%s-%s" class="collapse" aria-expanded="false">
''' % (p_name, m_name, p_name, m_name, self.products[p_name][m_name]._icon, self.products[p_name][m_name]._title, p_name, m_name)
                        now_sub = m_name
                        fnav += '            <li id="cw-fnav-%s_%s_%s" class="ftbar cw-fnavitem" onclick="show_feature(\'%s\',\'\');"><a><i class="fa fa-fw %s"></i> %s</a></li>' % (p_name, m_name, s_name, feature._code, feature._icon, feature._title)
                        page += '<div id="cw-page-%s_%s_%s" class="cw-page"></div>\n' % (p_name, m_name, s_name)
                        if self.pfm[p_name] == None: self.pfm[p_name] = feature
                        self.pfm[feature._code] = feature
                    else:
                        if now_sub != None:
                            fnav += '            </ul></li>\n'
                            now_sub = None
                        feature = self.products[p_name][f_name]
                        fnav += '            <li id="cw-fnav-%s_%s" class="ftbar cw-fnavitem" onclick="show_feature(\'%s\',\'\');"><a><i class="fa fa-fw %s"></i> %s</a></li>\n' % (p_name, f_name, feature._code, feature._icon, feature._title)
                        page += '<div id="cw-page-%s_%s" class="cw-page"></div>\n' % (p_name, f_name)
                        if self.pfm[p_name] == None: self.pfm[p_name] = feature
                        self.pfm[feature._code] = feature
                if now_sub != None:
                    fnav += '</ul></li>\n'
                fnav += '</ul>\n'
        self.pfm['dashboard'] = self.products.dashboard
            
        self.product_nav_tpl = Template(pnav).render(Context())
        self.feature_nav_tpl = Template(fnav).render(Context())
        self.page_html_tpl = Template(page).render(Context())
        
        self.page_js_products_tpl = Template('var pfm = %s;' % Struct.CODE2JSON(self.pfm)).render(Context())
        self.page_js_tpl = self.ciscowebkit_js_tpl.render({'pfm' : Template('var pfm = %s;' % Struct.CODE2JSON(self.pfm)).render(Context())})
        self.ciscowebkit_build = self.ciscowebkit_tpl.render({'cw_pnav' : self.product_nav_tpl,
                                                              'cw_fnav' : self.feature_nav_tpl,
                                                              'cw_page_html' : self.page_html_tpl,
                                                              'cw_page_js' : self.page_js_tpl})
Exemplo n.º 2
0
 def __load_product_managers__(self):
     self.acimng = ACIManager(mon_sec=60, mon_cnt=10)
     #uncomment for testing
     #         self.acimng.addDomain('DCLab1', '10.72.86.21/10.72.86.22/10.72.86.23', 'admin', '1234Qwer')
     greg('ACI', self.acimng)
Exemplo n.º 3
0
    def __build_template__(self):
        self.pfm = M()
        greg('PFM', self.pfm)
        pnav = ''
        fnav = ''
        page = ''

        for p_name in self.products._porder:
            if p_name in self.products:
                self.pfm[p_name] = None
                pnav += '''                <a id="cw-pnav-%s" class="cw-pnav" onclick="show_product(\'%s\');">%s</a>\n''' % (
                    p_name, p_name, self.products[p_name]._title)
                fnav += '            <ul id="cw-fnav-%s" class="nav navbar-nav side-nav cw-fnav">\n' % p_name
                now_sub = None
                for f_name in self.products[p_name]._forder:
                    if instof(f_name, tuple):
                        m_name, s_name = f_name
                        feature = self.products[p_name][m_name][s_name]
                        if now_sub != None and now_sub != m_name:
                            fnav += '''            </ul></li>
            <li id="cw-fnav-%s_%s" class="ftbar cw-fnavitem"><a href="javascript:;" data-toggle="collapse" data-target="#cw-fsnav-%s-%s" class="collapsed" aria-expanded="false"><i class="fa fa-fw %s"></i> %s <i class="fa fa-fw fa-caret-down"></i></a><ul id="cw-fsnav-%s-%s" class="collapse" aria-expanded="false">
''' % (p_name, m_name, p_name, m_name, self.products[p_name][m_name]._icon,
                            self.products[p_name][m_name]._title, p_name, m_name)
                        if now_sub == None:
                            fnav += '''            <li id="cw-fnav-%s_%s" class="ftbar cw-fnavitem"><a href="javascript:;" data-toggle="collapse" data-target="#cw-fsnav-%s-%s" class="collapsed" aria-expanded="false"><i class="fa fa-fw %s"></i> %s <i class="fa fa-fw fa-caret-down"></i></a><ul id="cw-fsnav-%s-%s" class="collapse" aria-expanded="false">
''' % (p_name, m_name, p_name, m_name, self.products[p_name][m_name]._icon,
                            self.products[p_name][m_name]._title, p_name, m_name)
                        now_sub = m_name
                        fnav += '            <li id="cw-fnav-%s_%s_%s" class="ftbar cw-fnavitem" onclick="show_feature(\'%s\',\'\');"><a><i class="fa fa-fw %s"></i> %s</a></li>' % (
                            p_name, m_name, s_name, feature._code,
                            feature._icon, feature._title)
                        page += '<div id="cw-page-%s_%s_%s" class="cw-page"></div>\n' % (
                            p_name, m_name, s_name)
                        if self.pfm[p_name] == None: self.pfm[p_name] = feature
                        self.pfm[feature._code] = feature
                    else:
                        if now_sub != None:
                            fnav += '            </ul></li>\n'
                            now_sub = None
                        feature = self.products[p_name][f_name]
                        fnav += '            <li id="cw-fnav-%s_%s" class="ftbar cw-fnavitem" onclick="show_feature(\'%s\',\'\');"><a><i class="fa fa-fw %s"></i> %s</a></li>\n' % (
                            p_name, f_name, feature._code, feature._icon,
                            feature._title)
                        page += '<div id="cw-page-%s_%s" class="cw-page"></div>\n' % (
                            p_name, f_name)
                        if self.pfm[p_name] == None: self.pfm[p_name] = feature
                        self.pfm[feature._code] = feature
                if now_sub != None:
                    fnav += '</ul></li>\n'
                fnav += '</ul>\n'
        self.pfm['dashboard'] = self.products.dashboard

        self.product_nav_tpl = Template(pnav).render(Context())
        self.feature_nav_tpl = Template(fnav).render(Context())
        self.page_html_tpl = Template(page).render(Context())

        self.page_js_products_tpl = Template(
            'var pfm = %s;' % Struct.CODE2JSON(self.pfm)).render(Context())
        self.page_js_tpl = self.ciscowebkit_js_tpl.render({
            'pfm':
            Template('var pfm = %s;' % Struct.CODE2JSON(self.pfm)).render(
                Context())
        })
        self.ciscowebkit_build = self.ciscowebkit_tpl.render({
            'cw_pnav':
            self.product_nav_tpl,
            'cw_fnav':
            self.feature_nav_tpl,
            'cw_page_html':
            self.page_html_tpl,
            'cw_page_js':
            self.page_js_tpl
        })
Exemplo n.º 4
0
    def __load_features__(self):
        self.products = M()
        self.products['_porder'] = L()
        greg('PRODUCTS', self.products)
        for p in PRODUCT_ORDER:
            self.products._porder << p.lower()

        p_paths = Dir.showall('product/')
        for p_path in p_paths:
            if not Dir.isDir(p_path) or not Dir.isDir(p_path): continue
            p_raw = os.path.split(p_path)[-1]
            p_name = p_raw.lower()
            p_code = p_name
            p_url = '/' + p_name + '/'
            p_title = p_raw.replace('_', ' ')
            self.products[p_name] = M()
            self.products[p_name]['_name'] = p_name
            self.products[p_name]['_code'] = p_code
            self.products[p_name]['_url'] = p_url
            self.products[p_name]['_title'] = p_title

            # Add-on Feature
            features = NameSpace(p_path, inherited=nameof(Feature))
            for f_raw, f_mod in iterkv(features):
                f_name = f_raw.lower()
                f_code = p_code + '_' + f_name
                f_url = p_url + f_name + '/'
                f_title = f_raw.replace('_', ' ')

                for cls_code, cls_obj in iterkv(f_mod):
                    if classof(cls_obj, Feature) and not classof(
                            cls_obj,
                            SubFeature) and nameof(cls_obj) != nameof(Feature):
                        self.products[p_name][f_name] = cls_obj.NEW()
                        self.products[p_name][f_name]['_term'] = True
                        self.products[p_name][f_name]['_name'] = f_name
                        self.products[p_name][f_name]['_code'] = f_code
                        self.products[p_name][f_name]['_url'] = f_url
                        self.products[p_name][f_name]['_title'] = f_title
                        if cls_obj.__doc__ != None:
                            self.products[p_name][f_name][
                                '_desc'] = ' ' + cls_obj.__doc__
                        if cls_obj.__doc__ == None:
                            self.products[p_name][f_name]['_desc'] = ''
                        break

                for cls_raw, cls_obj in iterkv(f_mod):
                    if classof(cls_obj, SubFeature
                               ) and nameof(cls_obj) != nameof(SubFeature):
                        cls_name = cls_raw.lower()
                        cls_code = f_code + '_' + cls_name
                        cls_url = f_url + cls_name + '/'
                        cls_title = cls_raw.replace('_', ' ')
                        self.products[p_name][f_name]['_term'] = False
                        self.products[p_name][f_name][cls_name] = cls_obj.NEW()
                        self.products[p_name][f_name][cls_name]['_term'] = True
                        self.products[p_name][f_name][cls_name][
                            '_name'] = cls_name
                        self.products[p_name][f_name][cls_name][
                            '_code'] = cls_code
                        self.products[p_name][f_name][cls_name][
                            '_url'] = cls_url
                        self.products[p_name][f_name][cls_name][
                            '_title'] = cls_title
                        if cls_obj.__doc__ != None:
                            self.products[p_name][f_name][cls_name][
                                '_desc'] = ' ' + cls_obj.__doc__
                        if cls_obj.__doc__ == None:
                            self.products[p_name][f_name][cls_name][
                                '_desc'] = ''

            # Ordering
            order = Module(p_path + '/__init__.py')
            self.products[p_name]['_forder'] = L()
            for f in order.FEATURE_ORDER:
                if '.' in f:
                    self.products[p_name]._forder << (f.lower().split('.')[0],
                                                      f.lower().split('.')[1])
                else:
                    self.products[p_name]._forder << f.lower()

        # Dashboard
        self.products['dashboard'] = Dashboard()
        self.products.dashboard['_term'] = True
        self.products.dashboard['_name'] = 'dashboard'
        self.products.dashboard['_code'] = 'dashboard'
        self.products.dashboard['_url'] = '/dashboard/'
        self.products.dashboard['_title'] = 'Dashboard'
        self.products.dashboard['_desc'] = 'Cisco Webkit'
Exemplo n.º 5
0
    def __load_product_managers__(self):
        self.acimng = ACIManager(mon_sec=60, mon_cnt=10)
        #uncomment for testing 
#         self.acimng.addDomain('DCLab1', '10.72.86.21/10.72.86.22/10.72.86.23', 'admin', '1234Qwer')
        greg('ACI', self.acimng)
Exemplo n.º 6
0
 def __load_features__(self):
     self.products = M()
     self.products['_porder'] = L()
     greg('PRODUCTS', self.products)
     for p in PRODUCT_ORDER: self.products._porder << p.lower()
     
     p_paths = Dir.showall('product/')
     for p_path in p_paths:
         if not Dir.isDir(p_path) or not Dir.isDir(p_path): continue
         p_raw = os.path.split(p_path)[-1]
         p_name = p_raw.lower()
         p_code = p_name
         p_url = '/' + p_name + '/'
         p_title = p_raw.replace('_', ' ')
         self.products[p_name] = M()
         self.products[p_name]['_name'] = p_name
         self.products[p_name]['_code'] = p_code
         self.products[p_name]['_url'] = p_url
         self.products[p_name]['_title'] = p_title
         
         # Add-on Feature
         features = NameSpace(p_path, inherited=nameof(Feature))
         for f_raw, f_mod in iterkv(features):
             f_name = f_raw.lower()
             f_code = p_code + '_' + f_name
             f_url = p_url + f_name + '/'
             f_title = f_raw.replace('_', ' ')
             
             for cls_code, cls_obj in iterkv(f_mod):
                 if classof(cls_obj, Feature) and not classof(cls_obj, SubFeature) and nameof(cls_obj) != nameof(Feature):
                     self.products[p_name][f_name] = cls_obj.NEW()
                     self.products[p_name][f_name]['_term'] = True
                     self.products[p_name][f_name]['_name'] = f_name
                     self.products[p_name][f_name]['_code'] = f_code
                     self.products[p_name][f_name]['_url'] = f_url
                     self.products[p_name][f_name]['_title'] = f_title
                     if cls_obj.__doc__ != None: self.products[p_name][f_name]['_desc'] = ' ' + cls_obj.__doc__
                     if cls_obj.__doc__ == None: self.products[p_name][f_name]['_desc'] = ''
                     break
             
             for cls_raw, cls_obj in iterkv(f_mod):
                 if classof(cls_obj, SubFeature) and nameof(cls_obj) != nameof(SubFeature):
                     cls_name = cls_raw.lower()
                     cls_code = f_code + '_' + cls_name
                     cls_url = f_url + cls_name + '/'
                     cls_title = cls_raw.replace('_', ' ')
                     self.products[p_name][f_name]['_term'] = False
                     self.products[p_name][f_name][cls_name] = cls_obj.NEW()
                     self.products[p_name][f_name][cls_name]['_term'] = True
                     self.products[p_name][f_name][cls_name]['_name'] = cls_name
                     self.products[p_name][f_name][cls_name]['_code'] = cls_code
                     self.products[p_name][f_name][cls_name]['_url'] = cls_url
                     self.products[p_name][f_name][cls_name]['_title'] = cls_title
                     if cls_obj.__doc__ != None: self.products[p_name][f_name][cls_name]['_desc'] = ' ' + cls_obj.__doc__
                     if cls_obj.__doc__ == None: self.products[p_name][f_name][cls_name]['_desc'] = ''
         
         # Ordering
         order = Module(p_path + '/__init__.py')
         self.products[p_name]['_forder'] = L()
         for f in order.FEATURE_ORDER:
             if '.' in f: self.products[p_name]._forder << (f.lower().split('.')[0], f.lower().split('.')[1])
             else: self.products[p_name]._forder << f.lower()
             
     # Dashboard
     self.products['dashboard'] = Dashboard()
     self.products.dashboard['_term'] = True
     self.products.dashboard['_name'] = 'dashboard'
     self.products.dashboard['_code'] = 'dashboard'
     self.products.dashboard['_url'] = '/dashboard/'
     self.products.dashboard['_title'] = 'Dashboard'
     self.products.dashboard['_desc'] = 'Cisco Webkit'