示例#1
0
    def test_create_eventbuffer_with_multiple_things(self):
        fclient = FClient(host=host, token=token)
        eventbuffer = Schemas.Eventbuffer()
        eventbuffer.set_name('Motor Health' + str(random.random()))
        eventbuffer.set_time_identifier('time')
        eventbuffer.set_time_format('iso_8601')
        eventbuffer.set_thing_identifier('thing')
        try:
            response = fclient.create_eventbuffer(eventbuffer)
            self.assertEqual(isinstance(response, Schemas.Eventbuffer), True,
                             'Invalid Eventbuffer object after creation')
            self.assertEqual(isinstance(response.get_id(), unicode), True,
                             'Invalid Eventbuffer object after creation')
            self.assertEqual(response.get_name(), eventbuffer.get_name(),
                             'Invalid Eventbuffer object after creation')
            self.assertEqual(len(response.get_schema()), 1,
                             'Invalid Eventbuffer object after creation')
            self.assertEqual(len(response.get_subscriptions()), 1,
                             'Invalid Eventbuffer object after creation')
            self.assertEqual(response.get_thing_identifier(),
                             eventbuffer.get_thing_identifier(),
                             'Invalid Eventbuffer object after creation')

            # tear down
            try:
                fclient.delete_eventbuffer(response.get_id())
            except Exception as e:
                pass
        except Exception as e:
            print(e.message)
            self.assertEqual(0, 1, 'Cannot create Eventbuffer')
    def test_add_data_single_thing(self):
        fclient = FClient(host=host, token=token)
        eventbuffer = Schemas.Eventbuffer()
        eventbuffer.set_name('Motor Health')
        eventbuffer.set_time_identifier('time')
        eventbuffer.set_time_format('iso_8601')
        try:
            eventbuffer = fclient.create_eventbuffer(eventbuffer)
            try:
                data = '{"time" :"2016-03-01 01:01:01", "current" : 12.4, "vibration" : 3.4, "state" : "On"}'
                response = fclient.add_input_data(eventbuffer.get_id(), 'json',
                                                  {}, data)
                self.assertNotEqual(response['__$id'], None,
                                    'Cannot add input data to eventbuffer')

                # tear down
                try:
                    fclient.delete_pipeline(created_pipeline.get_id())
                    fclient.delete_eventbuffer(eventbuffer.get_id())
                except Exception as e:
                    pass
            except Exception as e:
                print(e.message)
                self.assertEqual(0, 1, 'Cannot add input data to eventbuffer')
        except Exception as e:
            print(e.message)
            self.assertEqual(0, 1, 'Cannot create eventbuffer')
示例#3
0
    def test_create_eventbuffer_with_pipeline_outflow_subscription(self):
        fclient = FClient(host=host, token=token)
        eventbuffer = Schemas.Eventbuffer()
        eventbuffer.set_name('Motor Health' + str(random.random()))
        eventbuffer.set_time_identifier('time')
        eventbuffer.set_time_format('iso_8601')

        subscription = Schemas.Subscription()
        subscription.set_type('PIPELINEOUTFLOW') \
            .set_path('urn:falkonry:pipeline:qaerscdtxh7rc3')

        try:
            eventbuffer = fclient.create_eventbuffer(eventbuffer)
            try:
                response = fclient.create_subscription(eventbuffer.get_id(),
                                                       subscription)
                self.assertNotEqual(
                    response.get_key(), None,
                    'Invalid Subscription object after creation')
                self.assertEqual(response.get_type(), 'PIPELINEOUTFLOW',
                                 'Invalid Subscription object after creation')
                self.assertEqual(response.get_path(), subscription.get_path(),
                                 'Invalid Subscription object after creation')
            except Exception as e:
                print(e.message)
                self.assertEqual(0, 1, 'Cannot create Subscription')

            # tear down
            try:
                fclient.delete_eventbuffer(eventbuffer.get_id())
            except Exception as e:
                pass
        except Exception as e:
            print(e.message)
            self.assertEqual(0, 1, 'Cannot create Eventbuffer')
示例#4
0
    def test_get_assessment_historical_output(self):
        fclient = FClient(host=host, token=token,options=None)
        try:
            options = {'startTime':'2011-01-02T01:00:00.000Z','endTime':'2013-06-13T01:00:00.000Z','responseFormat':'application/json'}
            response = fclient.get_historical_output(assessment, options)
            '''If data is not readily available then, a tracker id will be sent with 202 status code. While falkonry will genrate ouptut data
             Client should do timely pooling on the using same method, sending tracker id (__id) in the query params
             Once data is available server will response with 200 status code and data in json/csv format.'''

            if response.status_code is 202:
                trackerResponse = Schemas.Tracker(tracker=json.loads(response.text))

                # get id from the tracker
                trackerId = trackerResponse.get_id()

                # use this tracker for checking the status of the process.
                options = {"trackerId": trackerId, "responseFormat":"application/json"}
                newResponse = fclient.get_historical_output(assessment, options)

                # if status is 202 call the same request again

            if response.status_code is 200:
                # if status is 200, output data will be present in response.text field
                self.assertEqual(len(response.text) > 0, True, 'Error getting historical output of a Assessment')
        except Exception as e:
            print(exception_handler(e))
            self.assertEqual(0, 1, 'Error getting output of a Assessment')
示例#5
0
    def test_get_assessment_output_with_offset(self):
        fclient = FClient(host=host, token=token, options=None)

        try:
            stream = fclient.get_output(assessment, {})
            lastOffset = 0
            for event in stream.events():
                print(json.dumps(json.loads(event.data)))
                lastOffset = json.loads(
                    event.data
                )['offset']  # keep track of offset sent in falkonry output event

        except Exception as e:
            print(exception_handler(e))
            ''' Assuming there was some exception occured and you want to listen the output again 
            then use the offset value and set it in the options parameter. 
            '''
            # assuming last offset was 10
            options = {"offset": lastOffset}
            try:
                stream = fclient.get_output(assessment, options)
                for event in stream.events():
                    self.assertEqual(
                        json.loads(event.data)['offset'] >= lastOffset, True)
                    print(json.dumps(json.loads(event.data)))
            except Exception as e:
                print(exception_handler(e))
                self.assertEqual(0, 1, 'Error getting output of a Assessment')
    def test_get_assessment_output(self):
        fclient = FClient(host=host, token=token, options=None)

        try:
            stream = fclient.get_output(assessment, {})
            for event in stream.events():
                print(json.dumps(json.loads(event.data)))

        except Exception as e:
            print(e.message)
            self.assertEqual(0, 1, 'Error getting output of a Assessment')
    def test_get_pipeline_output(self):
        fclient = FClient(host=host, token=token)

        try:
            response = fclient.get_output(pipeline, 1456794061)
            with open('/tmp/pipeline_' + pipeline + 'output.json', 'w') as f:
                for line in response:
                    f.write(line + '\n')

        except Exception as e:
            print(e.message)
            self.assertEqual(0, 1, 'Error getting output of a Pipeline')
示例#8
0
    def test_add_json_verification(self):
        fclient = FClient(host=host, token=token)
        eventbuffer = Schemas.Eventbuffer()
        eventbuffer.set_name('Motor Health' + str(random.random()))
        eventbuffer.set_time_identifier('time')
        eventbuffer.set_time_format('iso_8601')
        try:
            eventbuffer = fclient.create_eventbuffer(eventbuffer)
            try:
                data = '{"time" :"2016-03-01 01:01:01", "current" : 12.4, "vibration" : 3.4, "state" : "On"}'
                response = fclient.add_input_data(eventbuffer.get_id(), 'json',
                                                  {}, data)
                pipeline = Schemas.Pipeline()
                signals = {
                    'current': 'Numeric',
                    'vibration': 'Numeric',
                    'state': 'Categorical'
                }
                assessment = Schemas.Assessment()
                assessment.set_name('Health') \
                    .set_input_signals(['current', 'vibration', 'state'])
                pipeline.set_name('Motor Health 1') \
                    .set_eventbuffer(eventbuffer.get_id()) \
                    .set_input_signals(signals) \
                    .set_assessment(assessment)

                try:
                    resp_pipeline = fclient.create_pipeline(pipeline)
                    data = io.open('./verificationData.json')

                    response = fclient.add_verification(
                        resp_pipeline.get_id(), 'json', {}, data)
                    # tear down
                    try:
                        fclient.delete_pipeline(resp_pipeline.get_id())
                        fclient.delete_eventbuffer(eventbuffer.get_id())
                    except Exception as e:
                        pass
                except Exception as e:
                    print(e.message)
                    try:
                        fclient.delete_eventbuffer(eventbuffer.get_id())
                    except Exception as e:
                        pass
                    self.assertEqual(0, 1, 'Cannot create pipeline')
            except Exception as e:
                print(e.message)
                self.assertEqual(0, 1, "Cannot add data")
        except Exception as e:
            print(e.message)
            self.assertEqual(0, 1, 'Cannot create eventbuffer')
示例#9
0
    def test_create_eventbuffer_with_mqtt_subscription(self):
        fclient = FClient(host=host, token=token)
        eventbuffer = Schemas.Eventbuffer()
        eventbuffer.set_name('Motor Health' + str(random.random()))
        eventbuffer.set_time_identifier('time')
        eventbuffer.set_time_format('iso_8601')

        subscription = Schemas.Subscription()
        subscription.set_type('MQTT') \
            .set_path('mqtt://test.mosquito.com') \
            .set_topic('falkonry-eb-1-test') \
            .set_username('test-user') \
            .set_password('test')

        try:
            eventbuffer = fclient.create_eventbuffer(eventbuffer)
            try:
                response = fclient.create_subscription(eventbuffer.get_id(),
                                                       subscription)
                self.assertNotEqual(
                    response.get_key(), None,
                    'Invalid Subscription object after creation')
                self.assertEqual(response.get_type(), 'MQTT',
                                 'Invalid Subscription object after creation')
                self.assertEqual(response.get_topic(),
                                 subscription.get_topic(),
                                 'Invalid Subscription object after creation')
                self.assertEqual(response.get_path(), subscription.get_path(),
                                 'Invalid Subscription object after creation')
                self.assertEqual(response.get_username(),
                                 subscription.get_username(),
                                 'Invalid Subscription object after creation')
                self.assertEqual(response.get_time_identifier(),
                                 eventbuffer.get_time_identifier(),
                                 'Invalid Subscription object after creation')
                self.assertEqual(response.get_time_format(),
                                 eventbuffer.get_time_format(),
                                 'Invalid Subscription object after creation')
            except Exception as e:
                print(e.message)
                self.assertEqual(0, 1, 'Cannot create Subscription')

            # tear down
            try:
                fclient.delete_eventbuffer(eventbuffer.get_id())
            except Exception as e:
                pass
        except Exception as e:
            print(e.message)
            self.assertEqual(0, 1, 'Cannot create Eventbuffer')
示例#10
0
    def test_create_eventbuffer_for_narrow_format_data(self):
        fclient = FClient(host=host, token=token)
        eventbuffer = Schemas.Eventbuffer()
        eventbuffer.set_name('Motor Health' + str(random.random()))
        eventbuffer.set_time_identifier('time')
        eventbuffer.set_time_format('iso_8601')
        eventbuffer.set_signals_tag_field("tag")
        eventbuffer.set_signals_delimiter("_")
        eventbuffer.set_signals_location("prefix")
        eventbuffer.set_value_column("value")

        try:
            response = fclient.create_eventbuffer(eventbuffer)
            self.assertEqual(isinstance(response, Schemas.Eventbuffer), True,
                             'Invalid Eventbuffer object after creation')
            self.assertEqual(isinstance(response.get_id(), unicode), True,
                             'Invalid Eventbuffer object after creation')
            self.assertEqual(response.get_name(), eventbuffer.get_name(),
                             'Invalid Eventbuffer object after creation')
            self.assertEqual(len(response.get_schema()), 1,
                             'Invalid Eventbuffer object after creation')
            self.assertEqual(len(response.get_subscriptions()), 1,
                             'Invalid Eventbuffer object after creation')
            self.assertEqual(response.get_signals_tag_field(),
                             eventbuffer.get_signals_tag_field(),
                             'Invalid Eventbuffer object after creation')
            self.assertEqual(response.get_signals_delimiter(),
                             eventbuffer.get_signals_delimiter(),
                             'Invalid Eventbuffer object after creation')
            self.assertEqual(response.get_signals_location(),
                             eventbuffer.get_signals_location(),
                             'Invalid Eventbuffer object after creation')
            self.assertEqual(response.get_value_column(),
                             eventbuffer.get_value_column(),
                             'Invalid Eventbuffer object after creation')
            # tear down
            try:
                fclient.delete_eventbuffer(response.get_id())
            except Exception as e:
                pass
        except Exception as e:
            print(e.message)
            self.assertEqual(0, 1, 'Cannot create Eventbuffer')
    def test_get_pipelines(self):
        fclient = FClient(host=host, token=token)
        eventbuffer = Schemas.Eventbuffer()
        options = {
            'timeIdentifier' : 'time',
            'timeFormat'     : 'iso_8601'
        }
        eventbuffer.set_name('Motor Health')
        try:
            eventbuffer = fclient.create_eventbuffer(eventbuffer, options)
            pipeline = Schemas.Pipeline()
            signals  = {
                'current': 'Numeric',
                'vibration': 'Numeric',
                'state': 'Categorical'
            }
            assessment = Schemas.Assessment()
            assessment.set_name('Health') \
                .set_input_signals(['current', 'vibration', 'state'])
            pipeline.set_name('Motor Health 1') \
                .set_eventbuffer(eventbuffer.get_id()) \
                .set_input_signals(signals) \
                .set_thing_name('Motor') \
                .set_assessment(assessment)

            try:
                response  = fclient.create_pipeline(pipeline)
                pipelines = fclient.get_pipelines()
                self.assertGreater(len(pipelines), 0, 'Cannot fetch Pipelines')

                # tear down
                try:
                    fclient.delete_pipeline(response.get_id())
                    fclient.delete_eventbuffer(eventbuffer.get_id())
                except Exception as e:
                    pass
            except Exception as e:
                print(e.message)
                self.assertEqual(0, 1, 'Cannot fetch Pipelines')
        except Exception as e:
            print(e.message)
            self.assertEqual(0, 1, 'Cannot create eventbuffer')
 def setUp(self):
     self.fclient = FClient(host=host, token=token, options=None)
     pass
示例#13
0
    def test_create_publication_of_splunk_type(self):
        fclient = FClient(host=host, token=token)
        eventbuffer = Schemas.Eventbuffer()
        eventbuffer.set_name('Motor Health')
        eventbuffer.set_time_identifier('time')
        eventbuffer.set_time_format('iso_8601')
        try:
            eventbuffer = fclient.create_eventbuffer(eventbuffer)
            pipeline = Schemas.Pipeline()
            signals = {
                'current': 'Numeric',
                'vibration': 'Numeric',
                'state': 'Categorical'
            }
            assessment = Schemas.Assessment()
            assessment.set_name('Health') \
                .set_input_signals(['current', 'vibration', 'state'])
            pipeline.set_name('Motor Health 1') \
                .set_eventbuffer(eventbuffer.get_id()) \
                .set_input_signals(signals) \
                .set_thing_name('Motor') \
                .set_assessment(assessment)

            try:
                pipeline = fclient.create_pipeline(pipeline)
                try:
                    publication = Schemas.Publication() \
                                      .set_type('SPLUNK') \
                                      .set_topic('falkonry-test-pipeline') \
                                      .set_path('https://test.splunk.com/') \
                                      .set_headers({
                                          'Authorization': 'Token 1234567890'
                                      })
                    response = fclient.create_publication(
                        pipeline.get_id(), publication)

                    self.assertEqual(
                        isinstance(response, Schemas.Publication), True,
                        'Invalid Publication object after creation')
                    self.assertEqual(
                        isinstance(response.get_key(), unicode), True,
                        'Invalid Publication object after creation')
                    self.assertEqual(
                        response.get_type(), 'SPLUNK',
                        'Invalid Publication object after creation')
                    self.assertEqual(
                        response.get_topic(), 'falkonry-test-pipeline',
                        'Invalid Publication object after creation')
                    self.assertEqual(
                        response.get_path(), 'https://test.splunk.com/',
                        'Invalid Publication object after creation')
                except Exception as e:
                    print(e.message)
                    self.assertEqual(0, 1, 'Cannot create publication')

                # tear down
                try:
                    fclient.delete_pipeline(pipeline.get_id())
                    fclient.delete_eventbuffer(eventbuffer.get_id())
                except Exception as e:
                    pass
            except Exception as e:
                print(e.message)
                self.assertEqual(0, 1, 'Cannot create pipeline')
        except Exception as e:
            print(e.message)
            self.assertEqual(0, 1, 'Cannot create eventbuffer')
    def test_create_pipeline_for_single_thing_with_eventType(self):
        fclient = FClient(host=host, token=token)
        eventbuffer = Schemas.Eventbuffer()
        eventbuffer.set_name('Motor Health' + str(random.random()))
        eventbuffer.set_time_identifier('time')
        eventbuffer.set_time_format('iso_8601')
        try:
            eventbuffer = fclient.create_eventbuffer(eventbuffer)
            data = '{"time" :"2016-03-01 01:01:01", "current" : 12.4, "vibration" : 3.4, "state" : "On"}'
            try:
                response = fclient.add_input_data(eventbuffer.get_id(), 'json',
                                                  {}, data)

                pipeline = Schemas.Pipeline()
                signals = {
                    'current': ['Numeric', 'Occurrences'],
                    'vibration': ['Numeric', 'Samples'],
                    'state': 'Categorical'
                }
                assessment = Schemas.Assessment()
                assessment.set_name('Health') \
                    .set_input_signals(['current', 'vibration', 'state'])
                pipeline.set_name('Motor Health 1') \
                    .set_eventbuffer(eventbuffer.get_id()) \
                    .set_input_signals(signals) \
                    .set_assessment(assessment)

                try:
                    response = fclient.create_pipeline(pipeline)
                    self.assertEqual(isinstance(response,
                                                Schemas.Pipeline), True,
                                     'Invalid Pipeline object after creation')
                    self.assertEqual(isinstance(response.get_id(),
                                                unicode), True,
                                     'Invalid Pipeline object after creation')
                    self.assertEqual(response.get_name(), pipeline.get_name(),
                                     'Invalid Pipeline object after creation')
                    self.assertNotEqual(
                        response.get_thing_name(), None,
                        'Invalid Pipeline object after creation')
                    self.assertEqual(len(response.get_input_signals()), 3,
                                     'Invalid Pipeline object after creation')
                    self.assertEqual(len(response.get_assessments()), 1,
                                     'Invalid Pipeline object after creation')
                    self.assertEqual(response.get_eventbuffer(),
                                     eventbuffer.get_id(),
                                     'Invalid Pipeline object after creation')

                    # tear down
                    try:
                        fclient.delete_pipeline(response.get_id())
                        fclient.delete_eventbuffer(eventbuffer.get_id())
                    except Exception as e:
                        pass
                except Exception as e:
                    print(e.message)
                    try:
                        fclient.delete_eventbuffer(eventbuffer.get_id())
                    except Exception as e:
                        pass
                    self.assertEqual(0, 1, 'Cannot create pipeline')
            except Exception as e:
                print(e.message)
                self.assertEqual(0, 1, 'Cannot add data')
        except Exception as e:
            print(e.message)
            self.assertEqual(0, 1, 'Cannot create eventbuffer')
    def test_get_entity_meta(self):
        fclient = FClient(host=host, token=token, options=None)
        datastream = Schemas.Datastream()
        datastream.set_name('Motor Health' + str(random.random()))

        datasource = Schemas.Datasource()
        field = Schemas.Field()
        time = Schemas.Time()
        signal = Schemas.Signal()

        time.set_zone("GMT")
        time.set_identifier("time")
        time.set_format("iso_8601")
        field.set_signal(signal)
        datasource.set_type("STANDALONE")
        field.set_time(time)
        datastream.set_datasource(datasource)
        datastream.set_field(field)

        try:
            datastreamResponse = fclient.create_datastream(datastream)
            self.created_datastreams.append(datastreamResponse.get_id())

            self.assertEqual(
                isinstance(datastreamResponse, Schemas.Datastream), True,
                'Invalid Datastream object after creation')
            self.assertEqual(isinstance(datastreamResponse.get_id(), str),
                             True, 'Invalid id of datastream after creation')
            data = [{
                "sourceId": "testId",
                "label": "testName",
                "path": "root/path"
            }]

            # add EntityMeta
            entityMetaResponse = fclient.add_entity_meta(
                datastreamResponse.get_id(), {}, data)
            self.assertEqual(isinstance(entityMetaResponse, list), True,
                             'Invalid entityMeta object after creation')
            self.assertEqual(
                len(entityMetaResponse) > 0, True,
                'Invalid length of entityMeta')

            entityMetaResp = entityMetaResponse.__getitem__(0)
            self.assertEqual(isinstance(entityMetaResp, Schemas.EntityMeta),
                             True, 'Invalid entityMeta object after creation')
            self.assertEqual(isinstance(entityMetaResp.get_id(), str), True,
                             'Invalid id of entityMeta after creation')
            self.assertEqual(entityMetaResp.get_label(), 'testName',
                             'Invalid label of entityMeta after creation')
            self.assertEqual(entityMetaResp.get_path(), 'root/path',
                             'Invalid path of entityMeta after creation')
            self.assertEqual(entityMetaResp.get_sourceId(), 'testId',
                             'Invalid sourceId of entityMeta after creation')

            #get entity meta
            getEntityMetaResponse = fclient.get_entity_meta(
                datastreamResponse.get_id())
            self.assertEqual(isinstance(getEntityMetaResponse, list), True,
                             'Invalid entityMeta object after creation')
            self.assertEqual(
                len(getEntityMetaResponse) > 0, True,
                'Invalid length of entityMeta')
            getEntityMetaResp = getEntityMetaResponse.__getitem__(0)
            self.assertEqual(isinstance(getEntityMetaResp, Schemas.EntityMeta),
                             True, 'Invalid entityMeta object after creation')
            self.assertEqual(isinstance(getEntityMetaResp.get_id(), str), True,
                             'Invalid id of entityMeta after creation')
            self.assertEqual(getEntityMetaResp.get_label(), 'testName',
                             'Invalid label of entityMeta after creation')
            self.assertEqual(getEntityMetaResp.get_path(), 'root/path',
                             'Invalid path of entityMeta after creation')
            self.assertEqual(getEntityMetaResp.get_sourceId(), 'testId',
                             'Invalid sourceId of entityMeta after creation')

        except Exception as e:
            print(exception_handler(e))
            self.assertEqual(0, 1, 'Cannot add entityMeta to datastream')
示例#16
0
 def setUp(self):
     self.fclient = FClient(host=host, token=token, options=None)
     self.created_datastreams = []
     pass
示例#17
0
    def test_create_datastream_with_batch_identifier(self):
        fclient = FClient(host=host, token=token, options=None)
        datastream = Schemas.Datastream()
        datasource = Schemas.Datasource()
        field = Schemas.Field()
        time = Schemas.Time()
        signal = Schemas.Signal()
        input1 = Schemas.Input()
        input2 = Schemas.Input()
        input3 = Schemas.Input()

        datastream.set_name('Motor Health' +
                            str(random.random()))  # set name of the Datastream

        input1.set_name("Signal1")  # set name of input signal
        input1.set_value_type(
            "Numeric"
        )  # set value type of input signal (Numeric for number, Categorical for string type)
        input1.set_event_type("Samples")  # set event type of input signal
        input2.set_name("Signal2")  # set name of input signal
        input2.set_value_type(
            "Numeric"
        )  # set value type of input signal (Numeric for number, Categorical for string type)
        input2.set_event_type("Samples")  # set event type of input signal
        input3.set_name("Signal3")  # set name of input signal
        input3.set_value_type(
            "Numeric"
        )  # set value type of input signal (Numeric for number, Categorical for string type)
        input3.set_event_type("Samples")  # set event type of input signal
        inputs = []
        inputs.append(input1)
        inputs.append(input2)
        inputs.append(input3)

        time.set_zone("GMT")  # set timezone of the datastream
        time.set_identifier("time")  # set time identifier of the datastream
        time.set_format("iso_8601")  # set time format of the datastream
        field.set_time(time)
        field.set_signal(signal)  # set signal in field
        field.set_batchIdentifier("batch")  # set batchIdentifier in field
        datasource.set_type("STANDALONE")  # set datastource type in datastream
        datastream.set_datasource(datasource)
        datastream.set_field(field)
        datastream.set_inputs(inputs)

        try:
            # create Datastream
            response = fclient.create_datastream(datastream)
            self.created_datastreams.append(response.get_id())

            self.assertEqual(isinstance(response, Schemas.Datastream), True,
                             'Invalid Datastream object after creation')
            self.assertEqual(isinstance(response.get_id(), unicode), True,
                             'Invalid id of datastream after creation')
            self.assertEqual(response.get_name(), datastream.get_name(),
                             'Invalid name of Datastream after creation')

            fieldResponse = response.get_field()
            self.assertEqual(
                isinstance(fieldResponse, Schemas.Field), True,
                'Invalid field in  Datastream object after creation')
            self.assertEqual(
                fieldResponse.get_entityIdentifier(), "entity",
                'Invalid entity identifier object after creation')
            self.assertEqual(fieldResponse.get_entityName(),
                             response.get_name(),
                             'Invalid entity name object after creation')
            self.assertEqual(fieldResponse.get_batchIdentifier(), "batch",
                             'Invalid batchIdentifier after creation')

            timeResponse = fieldResponse.get_time()
            self.assertEqual(isinstance(timeResponse, Schemas.Time), True,
                             'Invalid time object after creation')
            self.assertEqual(timeResponse.get_zone(), time.get_zone(),
                             'Invalid zone object after creation')
            self.assertEqual(timeResponse.get_identifier(),
                             time.get_identifier(),
                             'Invalid time identifier object after creation')
            self.assertEqual(timeResponse.get_format(), time.get_format(),
                             'Invalid time format object after creation')

            inputs = response.get_inputs()
            self.assertEqual(isinstance(inputs, list), True,
                             'Invalid inputs object after creation')
            self.assertEqual(len(inputs), 3,
                             'Invalid inputs object after creation')
            inputResp1 = inputs.__getitem__(0)
            inputResp2 = inputs.__getitem__(1)
            inputResp3 = inputs.__getitem__(2)
            self.assertEqual(inputResp1.get_name(), input1.get_name(),
                             'Invalid input after object creation')
            self.assertEqual(inputResp1.get_value_type(),
                             input1.get_value_type(),
                             'Invalid input value type after object creation')
            self.assertEqual(inputResp2.get_name(), input2.get_name(),
                             'Invalid input after object creation')
            self.assertEqual(inputResp2.get_value_type(),
                             input2.get_value_type(),
                             'Invalid input value type after object creation')
            self.assertEqual(inputResp3.get_name(), input3.get_name(),
                             'Invalid input after object creation')
            self.assertEqual(inputResp3.get_value_type(),
                             input3.get_value_type(),
                             'Invalid input value type after object creation')

        except Exception as e:
            print(e.message)
            self.assertEqual(0, 1, 'Cannot create datastream')
示例#18
0
    def test_create_publication_of_mqtt_type(self):
        fclient = FClient(host=host, token=token)
        eventbuffer = Schemas.Eventbuffer()
        eventbuffer.set_name('Motor Health')
        eventbuffer.set_time_identifier('time')
        eventbuffer.set_time_format('iso_8601')

        try:
            eventbuffer = fclient.create_eventbuffer(eventbuffer)
            pipeline = Schemas.Pipeline()
            signals = {
                'current': 'Numeric',
                'vibration': 'Numeric',
                'state': 'Categorical'
            }
            assessment = Schemas.Assessment()
            assessment.set_name('Health') \
                .set_input_signals(['current', 'vibration', 'state'])
            pipeline.set_name('Motor Health 1') \
                .set_eventbuffer(eventbuffer.get_id()) \
                .set_input_signals(signals) \
                .set_thing_name('Motor') \
                .set_assessment(assessment)

            try:
                pipeline = fclient.create_pipeline(pipeline)
                try:
                    publication = Schemas.Publication() \
                        .set_type('MQTT') \
                        .set_topic('falkonry-test-pipeline') \
                        .set_path('mqtt://test.mosquito.com') \
                        .set_username('test-user') \
                        .set_password('test-password') \
                        .set_content_type('application/json')
                    response = fclient.create_publication(
                        pipeline.get_id(), publication)

                    self.assertEqual(
                        isinstance(response, Schemas.Publication), True,
                        'Invalid Publication object after creation')
                    self.assertEqual(
                        isinstance(response.get_key(), unicode), True,
                        'Invalid Publication object after creation')
                    self.assertEqual(
                        response.get_type(), 'MQTT',
                        'Invalid Publication object after creation')
                    self.assertEqual(
                        response.get_topic(), 'falkonry-test-pipeline',
                        'Invalid Publication object after creation')
                    self.assertEqual(
                        response.get_username(), 'test-user',
                        'Invalid Publication object after creation')
                    self.assertEqual(
                        response.get_content_type(), 'application/json',
                        'Invalid Publication object after creation')
                except Exception as e:
                    print(e.message)
                    self.assertEqual(0, 1, 'Cannot create publication')

                # tear down
                try:
                    fclient.delete_pipeline(pipeline.get_id())
                    fclient.delete_eventbuffer(eventbuffer.get_id())
                except Exception as e:
                    pass
            except Exception as e:
                print(e.message)
                self.assertEqual(0, 1, 'Cannot create pipeline')
        except Exception as e:
            print(e.message)
            self.assertEqual(0, 1, 'Cannot create eventbuffer')