Ejemplo n.º 1
0
class GLPI_Manager_TestCase(unittest.TestCase):
	"""
	"""
	def setUp(self):
		management.call_command('loaddata', 'test_host.json', database='default', verbosity=0)
		management.call_command('loaddata', 'test_reference.json', database='default', verbosity=0)
		self.manager = GLPI_Manager()

	def test_objects_management(self):
		"""
		Tests to manage computers, do cris
		eation, listing, get and delete.
		"""
		glpi_status = self.manager.is_on()

		# Create a computer and try to find in list of them
		computer = self.manager.create(computer=[{'name':'Test'}])['computer'][0]
		computers = self.manager.list('computer')
		self.assertIn((computer['id'],computer['name']), [ (c['id'],c.get('name','')) for c in computers ])

		# Try to get it
		self.assertEqual(computer, self.manager.get('computer', computer['id']))

		# Try to delete it and don't find it in list
		self.manager.delete(computer=[computer['id']])
		computers = self.manager.list('computer')
		self.assertNotIn((computer['id'],computer['name']), [ (c['id'],c.get('name','')) for c in computers ])
		
	def test_ticket_management(self):
		from os.path import join
		from base64 import b64encode

		E = create_event(create_alert())
		E.create_ticket()

		# Try to add a picture to a document
		b64doc = b64encode(open(join(settings.BASEDIR, '../sendim/tests/python.png'), 'r').read())
		doc = b64doc
		self.manager.add_ticket_document(E.glpi, doc, 'python.png')

		# Try to add a follow-up
		self.manager.add_follow_up(E.glpi, 'Test follow-up')

		# Try to get the ticket and find added info
		ticket = self.manager.get_ticket(E.glpi)
		self.assertEqual(ticket['documents'][0]['filename'], 'python.png')
		self.assertEqual(ticket['followups'][0]['content'], 'Test follow-up')
Ejemplo n.º 2
0
    def handle(self, *args, **options) :

        try :
            for host in GLPI_Manager.list('computer') :
                try :
                    if 'name' in host :
                        H = Host.objects.create(
                          name=host['name'],
                          glpi_id=host['id'],
                          host_type='computer'
                        )
                        logger.info('Add computer : "'+H.name +'"')
                except IntegrityError :
					logger.warning('Computer "' +host['name']+ '" already exists')

            for host in GLPI_Manager.list('networkequipment') :
                try :
                    if 'name' in host :
                        H = Host.objects.create(
                          name=host['name'],
                          glpi_id=host['id'],
                          host_type='networkequipment'
                        )
                        logger.info('Add computer : "'+H.name +'"')
                except IntegrityError :
					logger.warning('Computer "' +host['name']+ '" already exists')

            for user in GLPI_Manager.list('user') :
                try:
                    GU = GlpiUser.objects.create(
                      name=user['name'].encode('latin-1').decode('utf-8'),
                      glpi_id=user['id']
                    )
                    logger.info('Add GLPI user : '******'User "' +user['name']+ '" already exists')

            for group in GLPI_Manager.list('group') :
                try:
                    GG = GlpiGroup.objects.create(
                      name=group['name'].encode('latin-1').decode('utf-8'),
                      glpi_id=group['id']
                    )
                    logger.info('Add GLPI group : '+GG.name)
                except IntegrityError :
					logger.warning('Group "' +group['name']+ '" already exists')

            for supplier in GLPI_Manager.list('supplier') :
                try:
                    S = GlpiSupplier.objects.create(
                      name=supplier['name'].encode('latin-1').decode('utf-8'),
                      glpi_id=user['id']
                    )
                    logger.info('Add GLPI supplier : "' +supplier['name']+ '"')
                except IntegrityError :
					logger.warning('Supplier "' +supplier['name']+ '" already exists')

            for category in GLPI_Manager.list('ITILCategory') :
                try:
                    C = GlpiCategory.objects.create(
                      name=category['name'].encode('latin-1').decode('utf-8'),
                      glpi_id=user['id']
                    )
                    logger.info('Add GLPI ITIL category : "' +category['name']+ '"')
                except IntegrityError :
					logger.warning('Category "' +category['name']+ '" already exists')

        except UnableToConnectGLPI, e :
            logger.info('Impossible to connect to GLPI : '+str(e.message))
Ejemplo n.º 3
0
	def glpi_list(self):
		"""List objects from GLPI."""
		from sendim.glpi_manager import GLPI_Manager
		GLPI_Manager = GLPI_Manager()
		return GLPI_Manager.list(self.type)