[ 
https://issues.apache.org/jira/browse/NIFI-1537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15185040#comment-15185040
 ] 

ASF GitHub Bot commented on NIFI-1537:
--------------------------------------

Github user olegz commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/257#discussion_r55371374
  
    --- Diff: 
nifi-nar-bundles/nifi-snmp-bundle/nifi-snmp-processors/src/test/java/org/apache/nifi/snmp/processors/SetSNMPTest.java
 ---
    @@ -0,0 +1,411 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one or more
    + * contributor license agreements.  See the NOTICE file distributed with
    + * this work for additional information regarding copyright ownership.
    + * The ASF licenses this file to You under the Apache License, Version 2.0
    + * (the "License"); you may not use this file except in compliance with
    + * the License.  You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package org.apache.nifi.snmp.processors;
    +
    +import static org.junit.Assert.assertEquals;
    +import static org.junit.Assert.assertNotNull;
    +import static org.junit.Assert.assertTrue;
    +
    +import java.util.HashMap;
    +import java.util.Map;
    +
    +import org.apache.nifi.util.MockFlowFile;
    +import org.apache.nifi.util.TestRunner;
    +import org.apache.nifi.util.TestRunners;
    +import org.junit.AfterClass;
    +import org.junit.BeforeClass;
    +import org.junit.Test;
    +import org.snmp4j.AbstractTarget;
    +import org.snmp4j.CommunityTarget;
    +import org.snmp4j.Snmp;
    +import org.snmp4j.agent.mo.DefaultMOFactory;
    +import org.snmp4j.agent.mo.MOAccessImpl;
    +import org.snmp4j.mp.SnmpConstants;
    +import org.snmp4j.smi.Integer32;
    +import org.snmp4j.smi.OID;
    +import org.snmp4j.smi.OctetString;
    +
    +/**
    + * Class to test SNMP Get processor
    + */
    +public class SetSNMPTest {
    +
    +    /** agent for version v1 */
    +    private static TestSnmpAgentV1 agentv1 = null;
    +    /** agent for version v2c */
    +    private static TestSnmpAgentV2c agentv2c = null;
    +    /** OID for system description */
    +    private static final OID sysDescr = new OID("1.3.6.1.2.1.1.1.0");
    +    /** value we set for system description at set-up */
    +    private static final String value = "MySystemDescr";
    +    /** OID for read only access */
    +    private static final OID readOnlyOID = new OID("1.3.6.1.2.1.1.3.0");
    +    /** value we set for read only at set-up */
    +    private static final int readOnlyValue = 1;
    +    /** OID for write only access */
    +    private static final OID writeOnlyOID = new OID("1.3.6.1.2.1.1.3.0");
    +    /** value we set for write only at set-up */
    +    private static final int writeOnlyValue = 1;
    +
    +    /**
    +     * Method to set up different SNMP agents
    +     * @throws Exception Exception
    +     */
    +    @BeforeClass
    +    public static void setUp() throws Exception {
    +        agentv2c = new TestSnmpAgentV2c("0.0.0.0/2001");
    +        agentv2c.start();
    +        agentv2c.unregisterManagedObject(agentv2c.getSnmpv2MIB());
    +        agentv2c.registerManagedObject(
    +                DefaultMOFactory.getInstance().createScalar(sysDescr,
    +                        MOAccessImpl.ACCESS_READ_WRITE,
    +                        new OctetString(value)));
    +        agentv2c.registerManagedObject(
    +                DefaultMOFactory.getInstance().createScalar(readOnlyOID,
    +                        MOAccessImpl.ACCESS_READ_ONLY,
    +                        new Integer32(readOnlyValue)));
    +
    +        agentv1 = new TestSnmpAgentV1("0.0.0.0/2002");
    +        agentv1.start();
    +        agentv1.unregisterManagedObject(agentv1.getSnmpv2MIB());
    +        agentv1.registerManagedObject(
    +                DefaultMOFactory.getInstance().createScalar(sysDescr,
    +                        MOAccessImpl.ACCESS_READ_WRITE,
    +                        new OctetString(value)));
    +        agentv1.registerManagedObject(
    +                DefaultMOFactory.getInstance().createScalar(writeOnlyOID,
    +                        MOAccessImpl.ACCESS_WRITE_ONLY,
    +                        new Integer32(writeOnlyValue)));
    +    }
    +
    +    /**
    +     * Method to close SNMP Agent once the tests are completed
    +     * @throws Exception Exception
    +     */
    +    @AfterClass
    +    public static void tearDown() throws Exception {
    +        agentv1.stop();
    +        agentv2c.stop();
    +    }
    +
    +    //    /**
    +    //     * Test to check FlowFile handling when performing a SNMP Get.
    +    //     * First we set a new value for the OID we want to request, then 
we
    +    //     * request this OID and we check that the returned value if the 
one
    +    //     * we set just before.
    +    //     * @throws Exception Exception
    +    //     */
    +    //    @Test
    +    //    public void validateSuccessfullSnmpSetv2c() throws Exception {
    +    //        Snmp snmp = SNMPUtilsTest.createSnmp();
    +    //        CommunityTarget target = 
SNMPUtilsTest.createCommTarget("public", "127.0.0.1/2001", 
SnmpConstants.version2c);
    +    //
    +    //        try (SNMPSetter setter = new SNMPSetter(snmp, target)) {
    +    //            PDU pdu = new PDU();
    +    //            pdu.add(new VariableBinding(new OID(sysDescr), new 
OctetString("test")));
    +    //            pdu.setType(PDU.SET);
    +    //            ResponseEvent response = setter.set(pdu);
    +    //            if(response.getResponse().getErrorStatus() != 
PDU.noError ) {
    +    //                fail();
    +    //            }
    +    //            Thread.sleep(200);
    +    //
    +    //            SetSNMP pubProc = new LocalSetSnmp(snmp, target);
    +    //            TestRunner runner = TestRunners.newTestRunner(pubProc);
    +    //
    +    //            runner.setProperty(SetSNMP.OID, sysDescr.toString());
    +    //            runner.setProperty(SetSNMP.HOST, "127.0.0.1");
    +    //            runner.setProperty(SetSNMP.PORT, "2002");
    +    //            runner.setProperty(SetSNMP.SNMP_COMMUNITY, "public");
    +    //            runner.setProperty(SetSNMP.SNMP_VERSION, "SNMPv1");
    +    //
    +    //            runner.run();
    +    //            Thread.sleep(200);
    +    //            final MockFlowFile successFF = 
runner.getFlowFilesForRelationship(SetSNMP.REL_SUCCESS).get(0);
    +    //            assertNotNull(successFF);
    +    //            assertEquals("test", 
successFF.getAttributes().get(SNMPUtils.SNMP_PROP_PREFIX + 
sysDescr.toString()));
    +    //        }
    +    //    }
    +    //
    +    //    /**
    +    //     * Test to check FlowFile handling when performing a SNMP Get.
    +    //     * First we set a new value for the OID we want to request, then 
we
    +    //     * request this OID and we check that the returned value if the 
one
    +    //     * we set just before.
    +    //     * @throws Exception Exception
    +    //     */
    +    //    @Test
    +    //    public void validateSuccessfullSnmpSetv1() throws Exception {
    +    //        Snmp snmp = SNMPUtilsTest.createSnmp();
    +    //        CommunityTarget target = 
SNMPUtilsTest.createCommTarget("public", "127.0.0.1/2002", 
SnmpConstants.version1);
    +    //
    +    //        try (SNMPSetter setter = new SNMPSetter(snmp, target)) {
    +    //            PDU pdu = new PDU();
    +    //            pdu.add(new VariableBinding(new OID(sysDescr), new 
OctetString("test")));
    +    //            pdu.setType(PDU.SET);
    +    //            ResponseEvent response = setter.set(pdu);
    +    //            if(response.getResponse().getErrorStatus() != 
PDU.noError ) {
    +    //                fail();
    +    //            }
    +    //            Thread.sleep(200);
    +    //
    +    //            SetSNMP pubProc = new LocalSetSnmp(snmp, target);
    +    //            TestRunner runner = TestRunners.newTestRunner(pubProc);
    +    //
    +    //            runner.setProperty(SetSNMP.OID, sysDescr.toString());
    +    //            runner.setProperty(SetSNMP.HOST, "127.0.0.1");
    +    //            runner.setProperty(SetSNMP.PORT, "2002");
    +    //            runner.setProperty(SetSNMP.SNMP_COMMUNITY, "public");
    +    //            runner.setProperty(SetSNMP.SNMP_VERSION, "SNMPv1");
    +    //
    +    //            runner.run();
    +    //            Thread.sleep(200);
    +    //            final MockFlowFile successFF = 
runner.getFlowFilesForRelationship(SetSNMP.REL_SUCCESS).get(0);
    +    //            assertNotNull(successFF);
    +    //            assertEquals("test", 
successFF.getAttributes().get(SNMPUtils.SNMP_PROP_PREFIX + 
sysDescr.toString()));
    +    //        }
    +    //    }
    +
    --- End diff --
    
    Pierre, did you intent to keep commented code above?


> Add SNMP processors
> -------------------
>
>                 Key: NIFI-1537
>                 URL: https://issues.apache.org/jira/browse/NIFI-1537
>             Project: Apache NiFi
>          Issue Type: Improvement
>          Components: Extensions
>    Affects Versions: 0.5.0
>            Reporter: Pierre Villard
>            Assignee: Pierre Villard
>            Priority: Minor
>             Fix For: 0.6.0
>
>
> Add SNMP processors:
> - GetSNMP to allow "get"/"walk"
> - SetSNMP to allow "set"



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to