Skip to main content

Posts

Showing posts from August, 2018

My GSoC experience with CERN-HSF, Summer 2018

The Google Summer of Code (GSoC) program is one of the most prestigious programs for student developers, who are eager to work and demonstrate their skills in a full-fledged working environment. The program gives this opportunity to students all around the world and I feel good that I was selected for this program with the CERN-HSF organization, one of the pioneer organizations for nuclear research. My experience started before the GSoC program, with the first contact with the current mentor, Federico Stagni where we discussed the proposed project and my suitability for it by performing some tasks that are available here . Based on performance and my timelines, I submitted my proposal which went through multiple revisions with inputs from my mentor Federico and self-improvements. Finally, almost after a month of wait, students selected for GSoC 2018's program were announced and found myself fortunate to be selected with the following project with CERN-HSF:-  Monitoring and...

Week 12 :- CERN-HSF @ GSoC 2018

Being the final week of the GSoC program, I was involved with wrapping up the previous tasks as well as studying the Python3 support that the DIRACGrid project intends to port to by the year 2020, as discussed within our bi-weekly developer meetings. As some of the modules used by the project are still only written for Python 2 and hence it becomes difficult to write test codes that can verify the codes modified to support Python 3 to be tested. So this week, I majorly worked on finding mocking methods which can mock imports of modules not available for  Python 3.  A list of faults/not supported/switches in Python 3 can be found in this open Google document . The work described above can be found in the commit here .

Week 11 :- CERN-HSF @ GSoC 2018

This week as discussed with my immediate mentor, I started working on the last problem of creating tests for the Workload Management System (WMS) Agents. These agents were till now not covered in the tests and hence it becomes important to incorporate them as most of the summer I worked on WMS module components. This involved studying about mock and pytest python modules as using pytest reduced the verbose to be written for unit tests. With this knowledge, I wrote four tests for the following WMS agents: JobAgent.py JobCleaningAgent.py PilotStatusAgent.py StalledJobAgent.py Apart from writing these tests, it was important that each of the function was accessible from the agent's module. Hence, modified the above-mentioned Agents modules for testing purposes. The work done in this week can be found in the following Pull Request 3771 .

Week 10 :- CERN-HSF @ GSoC 2018

This week, I started with the work that was optional and beyond the scope of the work as per the proposal. I started adapting the codes I modified or wrote for simultaneous support for Python2 and Python3. This needed first going through the guides which explain the porting process as well as following the guides as prescribed by the LHC project at CERN. I used the python-modernize library which supported this modification along with keeping the original support. Using this module, I modified most of the files involving ElasticSearch support as well as some of the codes I introduced/modified as part of the earlier works described in various posts of the blog. The series of commits can be found in Pull Request 3765 . Note: The work still needs to incorporate due to various other issues in automatic porting methods.

Week 9 :- CERN-HSF @ GSoC 2018

This week I was involved with working on Pull Request 3744  where some changes were demanded by other members of the organization as per the requirements of other components of the project. Firstly, as we moved towards adding a Jobs Status table (discussed in another post of the blog), which has eased and increased efficiency for query processing, we need to take care of the modules that accessed that table during any of there functions. Hence, it became important to analyze and test every module available in the Workload Management System as well as other modules that are accessing the table. A string of commits can be found below for the work done during this week: 0b1a63594eec932c12669d3274d5da705d9e2ffb fdda6f1fa473f866f0b552b838761f1201bc3c5b All the commits related to this issue can be found in this Pull Request .

Week 8 :- CERN-HSF @ GSoC 2018

This week I worked on adding Clients to Workload Managment System (WMS) and using them accordingly in different modules of WMS. The main idea behind using Clients is that it allows an interface via which the DBs are accessible. It is not preferable that every module present in the project is accessing DBs directly using the DB objects available in every component of the project. The summary of the work done in this week can be found below: Add WMS/Client/JobStateUpdateClient.py Add WMS/Client/JobManagerClient.py Use the above Client classes instead of invoking RPCClient() Implementation and Pull request can be found in the link here .