Hi,

I received a response for the query made regarding setting up an embedded
Thrift server in PCA integration test. Based on that I was able to start a
Thrift test server and receive events published by PCA. I had to explicitly
set the cipher suite in PCA to "DEFAULT:!ECDH" in order to make it work
with Thrift test server. This was due to cipher suite incompatibility and
currently Thrift test server do not have the capability to initialize the
SSL context with a custom SSL cipher suite. This might not be ideal for
production systems since Elliptic Curve Diffie–Hellman (ECDH) key exchange
protocol is the most preferred method. I think we should make the cipher
suite configurable via agent.conf and exclude ECDH for integration tests.
wdyt?

We now have the capability to write complex integration tests for verifying
health stat publishing scenarios. Also with this we can move PCA live tests
to regular build.

Thanks.

On Sun, Aug 30, 2015 at 1:04 PM, Akila Ravihansa Perera <raviha...@wso2.com>
wrote:

> Hi Imesh,
>
> Yes, thanks for correcting :)
>
> I made a wrong assumption since Thrift required generating service
> classes. It seems Thrift is more like a RPC framework but not bounded to
> RPC.
>
> As you noticed, Thrift client is expecting a session id so we need to
> implement session handling part if we go down Java sockets path. I tried to
> embed a Thrift server but hit a blocker since Apache Thrift library
> required generating service classes. I've raised this question on WSO2 dev
> list [1] to see if CEP Thrift receiver could be embedded. Will dig into
> this and figure out a better approach.
>
> [1] [Test Automation] Mocking Thrift server for an integration test
>
> Thanks.
>
>
> On Sun, Aug 30, 2015 at 12:58 AM, Imesh Gunaratne <im...@apache.org>
> wrote:
>
>> As we discussed offline I do not think Thrift is a RPC based protocol.
>> IMO it can be used for implementing RPC based services but the protocol may
>> not RPC based.
>>
>> I had a look at the Thrift client code, its waiting for a session id from
>> the server after connecting. Therefore a standard socket might not work.
>> Your guess should be correct.
>>
>> May be we can try to start a Thrift Data Receiver in a separate thread
>> and see whether we can use that to mock a CEP server.
>>
>> Thanks
>>
>> On Sun, Aug 30, 2015 at 12:22 AM, Akila Ravihansa Perera <
>> raviha...@wso2.com> wrote:
>>
>>> Hi Imesh,
>>>
>>> It won't work since Thrift is a RPC based protocol not a messaging based
>>> one. So you need to have those service classes generated via a tool (like
>>> Axis2). I was looking for a way to mock the CEP server but didn't have
>>> enough time to complete it. For now we can run a CEP server externally and
>>> assert the stat publishing by checking agent's log. That's not the ideal
>>> approach. But that will give a certain level of assurance until we find a
>>> proper way.
>>>
>>> Thanks.
>>>
>>> On Sun, Aug 30, 2015 at 12:16 AM, Imesh Gunaratne <im...@apache.org>
>>> wrote:
>>>
>>>> Thanks for the quick response!
>>>>
>>>> I prefer if we can simplify this. Why would not a socket
>>>> (java.net.ServerSocket) work with Thrift? Then again is there a way for the
>>>> live test to assert statistics published via the external CEP?
>>>>
>>>> Thanks
>>>>
>>>> On Sun, Aug 30, 2015 at 12:07 AM, Akila Ravihansa Perera <
>>>> raviha...@wso2.com> wrote:
>>>>
>>>>> Hi Imesh,
>>>>>
>>>>> I've added a test to verify PCA health stat publishing. For this you
>>>>> need to run a WSO2 CEP or Stratos server. Regular http sockets will not
>>>>> work with thrift protocol so I removed thrift socket creation from the
>>>>> test. Since this is a live test, it won't impact the build.
>>>>>
>>>>> Thanks.
>>>>>
>>>>> On Sun, Aug 30, 2015 at 12:00 AM, Imesh Gunaratne <im...@apache.org>
>>>>> wrote:
>>>>>
>>>>>> Hi Akila,
>>>>>>
>>>>>> I see $subject in 4.1.x branch, any thoughts?
>>>>>>
>>>>>> [2015-08-29 23:59:06,219]  INFO - [PythonAgentTestManager]
>>>>>> [2015-08-29 23:59:06,184] DEBUG 
>>>>>> {cartridgeagentutils.py:check_ports_active}
>>>>>> - Port '7712' is not active
>>>>>> [2015-08-29 23:59:06,219]  INFO - [PythonAgentTestManager]
>>>>>> [2015-08-29 23:59:06,189] DEBUG {subscriber.py:on_message} - Message
>>>>>> received: instance/status/InstanceActivatedEvent:
>>>>>> [2015-08-29 23:59:06,219]  INFO - [PythonAgentTestManager]
>>>>>> [2015-08-29 23:59:06,189] DEBUG {subscriber.py:run} - Event handler not
>>>>>> found for event : 'InstanceActivatedEvent'
>>>>>> [2015-08-29 23:59:11,266]  INFO - [PythonAgentTestManager]
>>>>>> [2015-08-29 23:59:11,189] INFO
>>>>>> {cartridgeagentutils.py:wait_until_ports_active} - Waiting for ports to 
>>>>>> be
>>>>>> active: [ip] 'localhost' [ports] ['7712']
>>>>>> [2015-08-29 23:59:11,266]  INFO - [PythonAgentTestManager]
>>>>>> [2015-08-29 23:59:11,190] DEBUG 
>>>>>> {cartridgeagentutils.py:check_ports_active}
>>>>>> - Port '7712' is not active
>>>>>> [2015-08-29 23:59:16,293]  INFO - [PythonAgentTestManager]
>>>>>> [2015-08-29 23:59:16,191] INFO
>>>>>> {cartridgeagentutils.py:wait_until_ports_active} - Waiting for ports to 
>>>>>> be
>>>>>> active: [ip] 'localhost' [ports] ['7712']
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> --
>>>>>> Imesh Gunaratne
>>>>>>
>>>>>> Senior Technical Lead, WSO2
>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Akila Ravihansa Perera
>>>>> WSO2 Inc.;  http://wso2.com/
>>>>>
>>>>> Blog: http://ravihansa3000.blogspot.com
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Imesh Gunaratne
>>>>
>>>> Senior Technical Lead, WSO2
>>>> Committer & PMC Member, Apache Stratos
>>>>
>>>
>>>
>>>
>>> --
>>> Akila Ravihansa Perera
>>> WSO2 Inc.;  http://wso2.com/
>>>
>>> Blog: http://ravihansa3000.blogspot.com
>>>
>>
>>
>>
>> --
>> Imesh Gunaratne
>>
>> Senior Technical Lead, WSO2
>> Committer & PMC Member, Apache Stratos
>>
>
>
>
> --
> Akila Ravihansa Perera
> WSO2 Inc.;  http://wso2.com/
>
> Blog: http://ravihansa3000.blogspot.com
>



-- 
Akila Ravihansa Perera
WSO2 Inc.;  http://wso2.com/

Blog: http://ravihansa3000.blogspot.com

Reply via email to