class UpdateAttributes(Processor):
    __rel_success = Relationship.Builder().description("Success").name(
        "success").build()

    def __init__(self):
        pass

    def initialize(self, context):
        pass

    def getRelationships(self):
        return set([self.__rel_success])

    def validate(self, context):
        pass

    def getPropertyDescriptors(self):
        descriptor = PropertyDescriptor.Builder().name(
            "for-attributes").addValidator(
                StandardValidators.NON_EMPTY_VALIDATOR).build()
        return [descriptor]

    def onPropertyModified(self, descriptor, newValue, oldValue):
        pass

    def onTrigger(self, context, sessionFactory):
        session = sessionFactory.createSession()
        try:
            # ensure there is work to do
            flowfile = session.get()
            if flowfile is None:
                return

            # extract some attribute values
            fromPropertyValue = context.getProperty(
                "for-attributes").getValue()
            fromAttributeValue = flowfile.getAttribute("for-attributes")

            # set an attribute
            flowfile = session.putAttribute(flowfile, "from-property",
                                            fromPropertyValue)
            flowfile = session.putAttribute(flowfile, "from-attribute",
                                            fromAttributeValue)
            flowfile = session.putAttribute(flowfile, "message", 'Hello-World')

            # transfer
            session.transfer(flowfile, self.__rel_success)
            session.commit()
        except:
            print sys.exc_info()[0]
            print "Exception in TestReader:"
            print '-' * 60
            traceback.print_exc(file=sys.stdout)
            print '-' * 60

            session.rollback(true)
            raise
Exemple #2
0
class CompressFlowFile(Processor):
    __rel_success = Relationship.Builder().description("Success").name(
        "success").build()

    def __init__(self):
        pass

    def initialize(self, context):
        pass

    def getRelationships(self):
        return set([self.__rel_success])

    def validate(self, context):
        pass

    def getPropertyDescriptors(self):
        descriptor = PropertyDescriptor.Builder().name("mode").allowableValues(
            "compress", "decompress").required(True).build()
        return [descriptor]

    def onPropertyModified(self, descriptor, newValue, oldValue):
        pass

    def onTrigger(self, context, sessionFactory):
        session = sessionFactory.createSession()
        try:
            # ensure there is work to do
            flowfile = session.get()
            if flowfile is None:
                return

            if context.getProperty("mode").getValue() == "compress":
                flowfile = session.write(flowfile, Compress())
            else:
                flowfile = session.write(flowfile, Decompress())

            # transfer
            session.transfer(flowfile, self.__rel_success)
            session.commitAsync()
        except:
            print sys.exc_info()[0]
            print "Exception in TestReader:"
            print '-' * 60
            traceback.print_exc(file=sys.stdout)
            print '-' * 60

            session.rollback(true)
            raise
Exemple #3
0
class ReadModulesPathAndStoreAsAttribute(Processor):
    __rel_success = Relationship.Builder().description("Success").name(
        "success").build()

    def __init__(self):
        pass

    def initialize(self, context):
        pass

    def getRelationships(self):
        return set([self.__rel_success])

    def validate(self, context):
        pass

    def getPropertyDescriptors(self):
        pass

    def onPropertyModified(self, descriptor, newValue, oldValue):
        pass

    def onTrigger(self, context, sessionFactory):
        session = sessionFactory.createSession()
        try:
            # ensure there is work to do
            flowfile = session.get()
            if flowfile is None:
                return

            # Extract sys.path and encode as a comma-separated string
            sysPathString = ','.join(sys.path)

            # set an attribute with the captured contents of sys.path
            flowfile = session.putAttribute(flowfile, "from-path",
                                            sysPathString)

            # transfer
            session.transfer(flowfile, self.__rel_success)
            session.commit()
        except:
            print sys.exc_info()[0]
            print "Exception in TestReader:"
            print '-' * 60
            traceback.print_exc(file=sys.stdout)
            print '-' * 60

            session.rollback(True)
            raise
Exemple #4
0
class ReadContentAndStoreAsAttribute(Processor):
    __rel_success = Relationship.Builder().description("Success").name(
        "success").build()

    def __init__(self):
        pass

    def initialize(self, context):
        pass

    def getRelationships(self):
        return set([self.__rel_success])

    def validate(self, context):
        pass

    def getPropertyDescriptors(self):
        pass

    def onPropertyModified(self, descriptor, newValue, oldValue):
        pass

    def onTrigger(self, context, sessionFactory):
        session = sessionFactory.createSession()
        try:
            # ensure there is work to do
            flowfile = session.get()
            if flowfile is None:
                return

            reader = ReadFirstLine()
            session.read(flowfile, reader)

            # set an attribute
            flowfile = session.putAttribute(flowfile, "from-content",
                                            reader.getLine())
            # transfer
            session.transfer(flowfile, self.__rel_success)
            session.commitAsync()
        except:
            print sys.exc_info()[0]
            print "Exception in TestReader:"
            print '-' * 60
            traceback.print_exc(file=sys.stdout)
            print '-' * 60

            session.rollback(True)
            raise