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)
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
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