def test_remove_device(self):
        ci = CI.get_by_content_object(self.device)
        self.assertIsNotNone(ci)
        self.device.delete()

        ci = CI.get_by_content_object(self.device)
        self.assertFalse(ci)
    def test_remove_businessline(self):
        ci = CI.get_by_content_object(self.business_line)
        self.assertIsNotNone(ci)

        self.business_line.delete()

        ci = CI.get_by_content_object(self.business_line)
        self.assertFalse(ci)
    def test_remove_network(self):
        ci = CI.get_by_content_object(self.network)
        self.assertIsNotNone(ci)

        self.network.delete()

        ci = CI.get_by_content_object(self.network)
        self.assertFalse(ci)
    def test_remove_datacenter(self):
        ci = CI.get_by_content_object(self.data_center)
        self.assertIsNotNone(ci)

        self.data_center.delete()

        ci = CI.get_by_content_object(self.data_center)
        self.assertFalse(ci)
    def test_remove_venture_role(self):
        ci = CI.get_by_content_object(self.venture_role)
        self.assertIsNotNone(ci)

        self.venture_role.delete()

        ci = CI.get_by_content_object(self.venture_role)
        self.assertFalse(ci)
    def test_update_ci(self):
        self.venture.name = 'New Venture name'
        self.venture.save()
        venture = Venture.objects.get(id=self.venture.id)
        ci = CI.get_by_content_object(venture)
        self.assertEqual(venture.name, ci.name)
        self.assertEqual(ci.name, 'New Venture name')

        self.device.barcode = '1111-1111-2222-2222'
        self.device.save()
        device = Device.objects.get(id=self.device.id)
        ci = CI.get_by_content_object(device)
        self.assertEqual(device.barcode, ci.barcode)
        self.assertEqual(ci.barcode, '1111-1111-2222-2222')
 def test_add_ci(self):
     assets = [
         self.venture, self.venture_role, self.data_center, self.network,
         self.device, self.service, self.business_line,
     ]
     for asset in assets:
         ci = CI.get_by_content_object(asset)
     self.assertIsNotNone(ci)
Exemple #8
0
    def get_context_data(self, **kwargs):
        ret = super(BaseMixin, self).get_context_data(**kwargs)
        details = self.kwargs.get('details', 'info')
        profile = self.request.user.get_profile()
        has_perm = profile.has_perm
        footer_items = []
        mainmenu_items = [
            MenuItem('Ventures',
                     fugue_icon='fugue-store',
                     view_name='ventures')
        ]
        if has_perm(Perm.read_dc_structure):
            mainmenu_items.append(
                MenuItem('Racks',
                         fugue_icon='fugue-building',
                         view_name='racks'))
        if has_perm(Perm.read_network_structure):
            mainmenu_items.append(
                MenuItem('Networks',
                         fugue_icon='fugue-weather-clouds',
                         view_name='networks'))
        if has_perm(Perm.read_device_info_reports):
            mainmenu_items.append(
                MenuItem('Reports',
                         fugue_icon='fugue-report',
                         view_name='reports'))
        if has_perm(Perm.edit_device_info_financial):
            mainmenu_items.append(
                MenuItem('Catalog',
                         fugue_icon='fugue-paper-bag',
                         view_name='catalog'))
        if ('ralph.cmdb' in settings.INSTALLED_APPS
                and has_perm(Perm.read_configuration_item_info_generic)):
            mainmenu_items.append(
                MenuItem('CMDB',
                         fugue_icon='fugue-thermometer',
                         href='/cmdb/changes/timeline'))
        if settings.BUGTRACKER_URL:
            mainmenu_items.append(
                MenuItem('Report a bug',
                         fugue_icon='fugue-bug',
                         pull_right=True,
                         href=settings.BUGTRACKER_URL))
        if self.request.user.is_staff:
            footer_items.append(
                MenuItem('Admin', fugue_icon='fugue-toolbox', href='/admin'))
        footer_items.append(
            MenuItem('%s (logout)' % self.request.user,
                     fugue_icon='fugue-user',
                     view_name='logout',
                     view_args=[details or 'info', ''],
                     pull_right=True,
                     href=settings.LOGOUT_URL))
        mainmenu_items.append(
            MenuItem('Advanced search',
                     name='search',
                     fugue_icon='fugue-magnifier',
                     view_args=[details or 'info', ''],
                     view_name='search',
                     pull_right=True))
        tab_items = []
        venture = (self.venture if self.venture and self.venture != '*' else
                   None) or (self.object.venture if self.object else None)

        def tab_href(name):
            return '../%s/%s?%s' % (name, self.object.id if self.object else
                                    '', self.request.GET.urlencode())

        if has_perm(Perm.read_device_info_generic, venture):
            tab_items.extend([
                MenuItem('Info',
                         fugue_icon='fugue-wooden-box',
                         href=tab_href('info')),
                MenuItem('Components',
                         fugue_icon='fugue-box',
                         href=tab_href('components')),
                MenuItem('Software',
                         fugue_icon='fugue-disc',
                         href=tab_href('software')),
                MenuItem('Addresses',
                         fugue_icon='fugue-network-ip',
                         href=tab_href('addresses')),
            ])
        if has_perm(Perm.edit_device_info_financial, venture):
            tab_items.extend([
                MenuItem('Prices',
                         fugue_icon='fugue-money-coin',
                         href=tab_href('prices')),
            ])
        if has_perm(Perm.read_device_info_financial, venture):
            tab_items.extend([
                MenuItem('Costs',
                         fugue_icon='fugue-wallet',
                         href=tab_href('costs')),
            ])
        if has_perm(Perm.read_device_info_history, venture):
            tab_items.extend([
                MenuItem('History',
                         fugue_icon='fugue-hourglass',
                         href=tab_href('history')),
            ])
        if has_perm(Perm.read_device_info_support, venture):
            tab_items.extend([
                MenuItem('Purchase',
                         fugue_icon='fugue-baggage-cart-box',
                         href=tab_href('purchase')),
            ])
        if has_perm(Perm.run_discovery, venture):
            tab_items.extend([
                MenuItem('Discover',
                         fugue_icon='fugue-flashlight',
                         href=tab_href('discover')),
            ])
        if ('ralph.cmdb' in settings.INSTALLED_APPS
                and has_perm(Perm.read_configuration_item_info_generic)):
            ci = ''
            try:
                device = self.kwargs['device']
            except KeyError:
                device = None
            if device:
                ci = CI.get_by_content_object(Device.objects.get(pk=device))
            if ci:
                tab_items.extend([
                    MenuItem('CMDB',
                             fugue_icon='fugue-thermometer',
                             href='/cmdb/ci/view/%s' % ci.id),
                ])
        if has_perm(Perm.read_device_info_reports, venture):
            tab_items.extend([
                MenuItem('Reports',
                         fugue_icon='fugue-reports-stack',
                         href=tab_href('reports')),
            ])
        if details == 'bulkedit':
            tab_items.extend([
                MenuItem('Bulk edit',
                         fugue_icon='fugue-pencil-field',
                         name='bulkedit'),
            ])
        ret.update({
            'section': self.section,
            'details': details,
            'mainmenu_items': mainmenu_items,
            'footer_items': footer_items,
            'url_query': self.request.GET,
            'search_url': reverse('search', args=[details, '']),
            'user': self.request.user,
            'tab_items': tab_items,
            'show_bulk': has_perm(Perm.bulk_edit),
        })
        return ret
Exemple #9
0
 def get_context_data(self, **kwargs):
     ret = super(BaseMixin, self).get_context_data(**kwargs)
     details = self.kwargs.get('details', 'info')
     profile = self.request.user.get_profile()
     has_perm = profile.has_perm
     footer_items = []
     mainmenu_items = [
         MenuItem('Ventures', fugue_icon='fugue-store',
                  view_name='ventures')
     ]
     if has_perm(Perm.read_dc_structure):
         mainmenu_items.append(
             MenuItem('Racks', fugue_icon='fugue-building',
                      view_name='racks'))
     if has_perm(Perm.read_network_structure):
         mainmenu_items.append(
             MenuItem('Networks', fugue_icon='fugue-weather-clouds',
                      view_name='networks'))
     if has_perm(Perm.read_device_info_reports):
         mainmenu_items.append(
             MenuItem('Reports', fugue_icon='fugue-report',
                      view_name='reports'))
     if has_perm(Perm.edit_device_info_financial):
         mainmenu_items.append(
             MenuItem('Catalog', fugue_icon='fugue-paper-bag',
                      view_name='catalog'))
     if ('ralph.cmdb' in settings.INSTALLED_APPS and
             has_perm(Perm.read_configuration_item_info_generic)):
         mainmenu_items.append(
             MenuItem('CMDB', fugue_icon='fugue-thermometer',
                      href='/cmdb/changes/timeline')
         )
     if settings.BUGTRACKER_URL:
         mainmenu_items.append(
             MenuItem(
                 'Report a bug', fugue_icon='fugue-bug', pull_right=True,
                 href=settings.BUGTRACKER_URL)
         )
     if self.request.user.is_staff:
         footer_items.append(
             MenuItem('Admin', fugue_icon='fugue-toolbox', href='/admin'))
     footer_items.append(
         MenuItem('%s (logout)' % self.request.user, fugue_icon='fugue-user',
                  view_name='logout', view_args=[details or 'info', ''],
                  pull_right=True, href=settings.LOGOUT_URL))
     mainmenu_items.append(
         MenuItem('Advanced search', name='search',
                  fugue_icon='fugue-magnifier', view_args=[details or 'info', ''],
                  view_name='search', pull_right=True))
     tab_items = []
     venture = (
             self.venture if self.venture and self.venture != '*' else None
         ) or (
             self.object.venture if self.object else None
         )
     def tab_href(name):
         return '../%s/%s?%s' % (
                 name,
                 self.object.id if self.object else '',
                 self.request.GET.urlencode()
             )
     if has_perm(Perm.read_device_info_generic, venture):
         tab_items.extend([
             MenuItem('Info', fugue_icon='fugue-wooden-box',
                      href=tab_href('info')),
             MenuItem('Components', fugue_icon='fugue-box',
                     href=tab_href('components')),
             MenuItem('Software', fugue_icon='fugue-disc',
                      href=tab_href('software')),
             MenuItem('Addresses', fugue_icon='fugue-network-ip',
                     href=tab_href('addresses')),
         ])
     if has_perm(Perm.edit_device_info_financial, venture):
         tab_items.extend([
             MenuItem('Prices', fugue_icon='fugue-money-coin',
                     href=tab_href('prices')),
         ])
     if has_perm(Perm.read_device_info_financial, venture):
         tab_items.extend([
             MenuItem('Costs', fugue_icon='fugue-wallet',
                     href=tab_href('costs')),
         ])
     if has_perm(Perm.read_device_info_history, venture):
         tab_items.extend([
             MenuItem('History', fugue_icon='fugue-hourglass',
                      href=tab_href('history')),
         ])
     if has_perm(Perm.read_device_info_support, venture):
         tab_items.extend([
             MenuItem('Purchase', fugue_icon='fugue-baggage-cart-box',
                      href=tab_href('purchase')),
         ])
     if has_perm(Perm.run_discovery, venture):
         tab_items.extend([
             MenuItem('Discover', fugue_icon='fugue-flashlight',
                      href=tab_href('discover')),
         ])
     if ('ralph.cmdb' in settings.INSTALLED_APPS and
         has_perm(Perm.read_configuration_item_info_generic)):
         ci = ''
         try:
             device = self.kwargs['device']
         except KeyError:
             device = None
         if device:
             ci = CI.get_by_content_object(Device.objects.get(pk=device))
         if ci:
             tab_items.extend([
                 MenuItem('CMDB', fugue_icon='fugue-thermometer',
                     href='/cmdb/ci/view/%s' % ci.id),
                 ])
     if has_perm(Perm.read_device_info_reports, venture):
         tab_items.extend([
             MenuItem('Reports', fugue_icon='fugue-reports-stack',
                      href=tab_href('reports')),
         ])
     if details == 'bulkedit':
         tab_items.extend([
             MenuItem('Bulk edit', fugue_icon='fugue-pencil-field',
                      name='bulkedit'),
         ])
     ret.update({
         'section': self.section,
         'details': details,
         'mainmenu_items': mainmenu_items,
         'footer_items': footer_items,
         'url_query': self.request.GET,
         'search_url': reverse('search', args=[details, '']),
         'user': self.request.user,
         'tab_items': tab_items,
         'show_bulk': has_perm(Perm.bulk_edit),
     })
     return ret