示例#1
0
 def setUpClass(cls):
     cls.client = client = OlogClient(url=getDefaultTestConfig('url'), username=getDefaultTestConfig('username'), password=getDefaultTestConfig('password'))
     cls.text = 'test python log entry with attachment ' + datetime.now().isoformat(' ')
     cls.testAttachment = Attachment(open('debug.log', 'rb'))
     cls.testLogbook = Logbook(name='testLogbook', owner='testOwner')
     cls.client.createLogbook(cls.testLogbook);
     cls.testTag = Tag(name='testTag') 
     cls.client.createTag(cls.testTag)               
     cls.testProperty = Property(name='testLogProperty', attributes={'id':'testSearchId', 'url':'www.bnl.gov'})
     cls.client.createProperty(cls.testProperty)
     cls.t1 = str(time.time()).split('.')[0]
     client.log(LogEntry(text=cls.text,
                        owner='testOwner',
                        logbooks=[cls.testLogbook],
                        tags=[cls.testTag],
                        attachments=[cls.testAttachment],
                        properties=[cls.testProperty]))
     cls.t2 = str(time.time()).split('.')[0]
     client.log(LogEntry(text=cls.text + ' - entry2',
                        owner='testOwner',
                        logbooks=[cls.testLogbook]))
     cls.t3 = str(time.time()).split('.')[0]
     cls.testLogEntry1 = client.find(search=cls.text)[0]
     cls.testLogEntry2 = client.find(search=cls.text + ' - entry2')[0]
     pass
示例#2
0
 def testCmp(self):
     tags = [ Tag(name='Timing'), Tag(name='Magnets') ]
     logbooks = [ Logbook(name='experiment', owner='controls') ]
     logEntry1 = LogEntry(text='Turning on LINAC', owner='controls', logbooks=logbooks, tags=tags, id=1234)
     logEntry2 = LogEntry(text='Turning on LINAC', owner='controls', logbooks=logbooks, tags=tags, id=1234)
     self.assertEqual(logEntry1, logEntry2, 'Failed LogEntry equality')
     self.assertIn(logEntry1, [logEntry2])
示例#3
0
 def createTextEntryMultipleLogbooks():
     logs = client.listLogbooks()
     print('Creating a text entry in all logbooks')
     text = 'This is a demo python log entry created on ' + datetime.now(
     ).isoformat(' ')
     testLog = LogEntry(text=text, owner='owner', logbooks=logs)
     client.log(logEntry=testLog)
示例#4
0
    def testCreateEntryWithMultipleAttributes(self):
        client = OlogClient(url=getDefaultTestConfig('url'), username=getDefaultTestConfig('username'), password=getDefaultTestConfig('password'))
        text = 'test python log entry with multiple attributes ' + datetime.now().isoformat(' ')
        testImageAttachment = Attachment(open('Desert.jpg', 'rb'))
        testTextAttachment = Attachment(open('debug.log', 'rb'))
        logbooks = client.listLogbooks()
        tags = client.listTags()
        properties = client.listProperties()    
#        for property in properties:
#            for attribute in property.getAttributeNames():
#                property.Attributes[attribute] = 'testValue'+attribute
        testLog = LogEntry(text=text,
                           owner='testOwner',
                           logbooks=logbooks,
                           tags=tags,
#                           properties=properties,
                           attachments=[testImageAttachment, testTextAttachment]
                           )
        client.log(testLog)
        logEntries = client.find(search=text)
        self.assertEqual(len(logEntries), 1, 'Failed to create log entry with multiple attributes')
        logEntry = logEntries[0]
        self.assertListEqual(logbooks, logEntry.getLogbooks(), 'Failed to create log entry with all the logbooks')
        self.assertListEqual(tags, logEntry.getTags(), 'Failed to create log entry with all the tags')
#        self.assertListEqual(properties, logEntry.getProperties(), 'Failed to create log Entry with all the properties')
        client.delete(logEntryId=logEntry.getId()) 
        self.assertEqual(len(client.find(search=text)), 0, 'Failed to cleanup log entry with attachment')      
示例#5
0
def update_olog_id(logid, text, attachments):
    '''Update olog book  logid entry with text and attachments files
    logid: integer, the log entry id
    text: the text to update, will add this text to the old text
    attachments: add new attachment files
    An example:
    
    filename1 = '/XF11ID/analysis/2016_2/yuzhang/Results/August/af8f66/Report_uid=af8f66.pdf'
    atch=[  Attachment(open(filename1, 'rb')) ] 
    
    update_olog_id( logid=29327, text='add_test_atch', attachmenents= atch )    
    
    '''
    url = 'https://logbook.nsls2.bnl.gov/Olog-11-ID/Olog'
    olog_client = SimpleOlogClient(url=url,
                                   username='******',
                                   password='******')

    client = OlogClient(url='https://logbook.nsls2.bnl.gov/Olog-11-ID/Olog',
                        username='******',
                        password='******')

    old_text = olog_client.find(id=logid)[0]['text']
    upd = LogEntry(
        text=old_text + '\n' + text,
        attachments=attachments,
        logbooks=[Logbook(name='Operations', owner=None, active=True)])
    upL = client.updateLog(logid, upd)
    print(
        'The url=%s was successfully updated with %s and with the attachments'
        % (url, text))
示例#6
0
 def testCreateBasicEntry(self):
     client = OlogClient(url='https://localhost:8181/Olog', username='******', password='******')
     testLogbook = Logbook(name='testLogbook', owner='testOwner')
     client.createLogbook(testLogbook)
     text = 'test python log entry ' + datetime.now().isoformat(' ')
     testLog = LogEntry(text=text,
                        owner='testOwner',
                        logbooks=[testLogbook])
     client.log(logEntry=testLog)
     logEntries = client.find(search=testLog.getText())
     self.assertTrue(len(logEntries) == 1, 'Failed to create test log entry')
     client.delete(logEntryId=logEntries[0].getId())
     self.assertTrue(len(client.find(search=testLog.getText())) == 0, 'Failed to delete test log entry')
     client.delete(logbookName='testLogbook')
     self.assertTrue(testLogbook not in client.listLogbooks(), 'failed to cleanup the testLogbook')
     pass
示例#7
0
    def updateLogEntry():
        lb = Logbook(name='CODAC')
        print('Creating a log entry which will be updated in logbook ' +
              lb.getName())
        text = 'This is a demo python log entry which will be updated, created on ' + datetime.now(
        ).isoformat(' ')
        testLog = LogEntry(text=text, owner='owner', logbooks=[lb])
        log = client.log(logEntry=testLog)

        textupdate = '<br>And this is update text to python log entry ' + datetime.now(
        ).isoformat(' ')
        updatedLogEntry = LogEntry(text=text + textupdate,
                                   owner='owner',
                                   logbooks=[lb])
        updatedLog = client.update(log.getId(), updatedLogEntry)
        logEntries = client.find(search=text)
示例#8
0
 def testCreateBasicEntry(self):
     client = OlogClient(url=getDefaultTestConfig('url'), username=getDefaultTestConfig('username'), password=getDefaultTestConfig('password'))
     testLogbook = Logbook(name='testLogbook', owner='testOwner')
     client.createLogbook(testLogbook)
     text = 'test python log entry ' + datetime.now().isoformat(' ')
     testLog = LogEntry(text=text,
                        owner='testOwner',
                        logbooks=[testLogbook])
     client.log(logEntry=testLog)
     logEntries = client.find(search=testLog.getText())
     self.assertTrue(len(logEntries) == 1, 'Failed to create test log entry')
     client.delete(logEntryId=logEntries[0].getId())
     self.assertTrue(len(client.find(search=testLog.getText())) == 0, 'Failed to delete test log entry')
     client.delete(logbookName='testLogbook')
     self.assertTrue(testLogbook not in client.listLogbooks(), 'failed to cleanup the testLogbook')
     pass
示例#9
0
 def testUpdate(self):
     text = 'test python log entry ' + datetime.now().isoformat(' ')
     testLog = LogEntry(text=text,
                        owner='testOwner',
                        logbooks=[self.testLogbook])
     logId = self.client.log(log_entry=testLog)
     
     text = 'test update python log entry ' + datetime.now().isoformat(' ')
     updatedLogEntry = LogEntry(text=text,
                        owner='testOwner',
                        logbooks=[self.testLogbook])
     updatedLog = self.client.updateLog(logId, updatedLogEntry)
     
     logEntries = self.client.find(search=text)
     self.assertTrue(len(logEntries) == 1, 'Failed to update log Entry with Tag')
     self.client.delete(logEntryId=logId)
示例#10
0
 def testCreateEntryWithAttachments(self):
     client = OlogClient(url=getDefaultTestConfig('url'), username=getDefaultTestConfig('username'), password=getDefaultTestConfig('password'))
     testLogbook = Logbook(name='testLogbook', owner='testOwner')
     client.createLogbook(testLogbook);
     text = 'test python log entry with attachments ' + datetime.now().isoformat(' ')
     testImageAttachment = Attachment(open('Desert.jpg', 'rb'))
     testTextAttachment = Attachment(open('debug.log', 'rb'))
     testLog = LogEntry(text=text,
                        owner='testOwner',
                        logbooks=[testLogbook],
                        attachments=[testImageAttachment, testTextAttachment]
                        )
     client.log(testLog)
     logEntries = client.find(search=text)
     self.assertEqual(len(logEntries), 1, 'Failed to create log entry with attachment')
     attachments = client.listAttachments(logEntryId=logEntries[0].getId())
     self.assertEqual(len(attachments), 2, 'Failed to create log entry with attachment');
     for attachment in attachments:
         if attachment.getFile().name.endswith('.log'):
             print attachment.getFile().readline()
             print attachment.getFile().fileno(), open('debug.log', 'rb').fileno()      
     client.delete(logEntryId=logEntries[0].getId()) 
     self.assertEqual(len(client.find(search=text)), 0, 'Failed to cleanup log entry with attachment')      
     client.delete(logbookName=testLogbook.getName())
     self.assertTrue(testLogbook not in client.listLogbooks(), 'failed to cleanup the testLogbook')
     pass
示例#11
0
 def createTextEntry():
     lb = Logbook(name='CODAC')
     print('Creating a text entry in the logbook ' + lb.getName())
     text = 'This is a demo python log entry created on ' + datetime.now(
     ).isoformat(' ')
     '''owner doesn't play any role here but it is required'''
     testLog = LogEntry(text=text, owner='owner', logbooks=[lb])
     client.log(logEntry=testLog)
示例#12
0
 def createEntryWithTags():
     lb = Logbook(name='CODAC')
     tags = client.listTags()
     print('Creating a text entry with a tag ' + tags[0].getName() +
           ' in the logbook ' + lb.getName())
     text = 'This is a demo python log entry created on ' + datetime.now(
     ).isoformat(' ')
     testLog = LogEntry(text=text,
                        owner='owner',
                        logbooks=[lb],
                        tags=[tags[0]])
     client.log(logEntry=testLog)
示例#13
0
 def testCreateEntryWithTag(self):
     client = OlogClient(url=getDefaultTestConfig('url'), username=getDefaultTestConfig('username'), password=getDefaultTestConfig('password'))
     testLogbook = Logbook(name='testLogbook', owner='testOwner')
     client.createLogbook(testLogbook);
     testTag = Tag(name='testTag')
     client.createTag(testTag)        
     text = 'test python log entry with tag ' + datetime.now().isoformat(' ')
     testLog = LogEntry(text=text,
                        owner='testOwner',
                        logbooks=[testLogbook],
                        tags=[testTag])
     client.log(testLog)
     logEntries = client.find(search=testLog.getText())
     self.assertTrue(len(logEntries) == 1, 'Failed to create log Entry with Tag')
     self.assertTrue(testTag in logEntries[0].getTags(), 'testTag not attached to the testLogEntry1')
     '''cleanup'''
     client.delete(logEntryId=logEntries[0].getId())
     self.assertTrue(len(client.find(search=testLog.getText())) == 0, 'Failed to delete log Entry with Tag')
     client.delete(logbookName=testLogbook.getName())
     self.assertTrue(testLogbook not in client.listLogbooks(), 'failed to cleanup the testLogbook')
     client.delete(tagName=testTag.getName())
     self.assertTrue(testTag not in client.listTags(), 'failed to cleanup the testTag')
     pass
示例#14
0
 def createEntryWithAttachment():
     lb = Logbook(name='CODAC')
     print('Creating a text entry with an attached image in the logbook ' +
           lb.getName())
     text = 'This is a demo python log entry  wtih image attachment created on ' + datetime.now(
     ).isoformat(' ')
     pp = os.path.dirname(os.path.abspath(__file__))
     path = os.path.relpath('Desert.png', pp)
     image = Attachment(open(path, 'rb'))
     testLog = LogEntry(text=text,
                        owner='owner',
                        logbooks=[lb],
                        attachments=[image])
     client.log(logEntry=testLog)
示例#15
0
 def testProcess(self):
     client = OlogClient(url=getDefaultTestConfig('url'), username=getDefaultTestConfig('username'), password=getDefaultTestConfig('password'))
     property = Property(name='Process',
                         attributes={'processType':'diffCalc',
                                     'processId':'1234',
                                     'processAttchments':'debug.log'})
     client.createProperty(property)
     # load Data
     client.log(LogEntry(text='Initial setup',
                        owner='experimenter',
                        logbooks=[self.testLogbook],
                        properties=[property],
                        attachments=[Attachment(open('debug.log', 'rb'))]
                        ))
     # run scan
     property = Property(name='Process',
                         attributes={'processType':'diffCalc.process',
                                     'processId':'1234',
                                     'processAttchments':'.log'})
     client.log(LogEntry(text='Initial setup',
                        owner='experimenter',
                        logbooks=[self.testLogbook],
                        properties=[property]
                        ))
示例#16
0
    def testCreateLog(self):
        '''
        '''
        tags = [ Tag(name='Timing'), Tag(name='Magnets') ]
        logbooks = [ Logbook(name='experiment', owner='controls') ]
        logEntry = LogEntry(text='Turning on LINAC', owner='controls', logbooks=logbooks, tags=tags)
        self.assertEqual(logEntry.getText(), 'Turning on LINAC', 'msg')
        self.assertEqual(logEntry.getOwner(), 'controls', 'msg')
        self.assertEqual(logEntry.getTags(), tags, 'msg')
#        self.assertTrue(logEntry.hasTag('Timing'), 'msg')
        self.assertEqual(logEntry.getLogbooks(), logbooks, 'msg')
#        self.assertTrue(logEntry.hasLogbook('experiment'), 'msg')
        pass
示例#17
0
    def testCreateEntryWithProperties(self):
        client = OlogClient(url=getDefaultTestConfig('url'), username=getDefaultTestConfig('username'), password=getDefaultTestConfig('password'))
        testLogbook = Logbook(name='testLogbook', owner='testOwner')
        client.createLogbook(testLogbook);
        testProperty = Property(name='testLogProperty', attributes={'id':None, 'url':None})
#        client.createProperty(testProperty)
        text = 'test python log entry with attachment ' + datetime.now().isoformat(' ')
        property = Property(name='testLogProperty', attributes={'id':'prop1234', 'url':'www.bnl.gov'})
        testLog = LogEntry(text=text,
                           owner='testOwner',
                           logbooks=[testLogbook],
                           properties=[property]
                           )
        client.log(testLog)
        logEntries = client.find(search=text)
        self.assertEqual(len(logEntries), 1, 'Failed to create log entry with property')
        properties = logEntries[0].getProperties()
        self.assertIn(property, properties, 'TestLogEntry does not contain property ' + property.getName())
        '''Cleanup'''
        client.delete(logEntryId=logEntries[0].getId()) 
        self.assertEqual(len(client.find(search=text)), 0, 'Failed to cleanup log entry with property') 
        client.delete(logbookName=testLogbook.getName())
        self.assertTrue(testLogbook not in client.listLogbooks(), 'failed to cleanup the ' + testLogbook.getName())
        pass