Implementation is the most important phase in software development. It is a realization of technical specification or algorithm as a program, software component through programming and deployment. Implementation is referenced by the work done in SRS and system design. This helps to categorize the modules, efficient pseudo codes are written to get effective user interface.
The purpose of implementation is:
- To define the organization of the code, in terms of implementation subsystems organized in layers
- To implement classes and objects in terms of component (source files, binaries, executables, and others)
- To test the developed components as units
- To integrate the results produced by individual implementers (or terms), into an executable system
USER INTERFACES: The OpenStack dashboard provides administrators and users a graphical interface to access, provision and automate cloud-based resources, but the part of project we did does not contain any user interface, everything is done in linux terminal.
DATABASE: MYSQL is world’s second most widely used open-source relational database management system. Here I have used MYSQL for building extension of Keystone.
PROGRAMMING LANGUAGE: The automated installation of OpenStack is done by using automation tool chef, which uses Ruby language, Keystone extension building is done using python and Logstash functionalities are developed using Chef with Ruby code itself.
PSUDEO CODE FOR AUTOMATED INSTALLATION OF OPENSTACK
BEGIN Install Git Set Git Timout Set Proxy variables Set Git global variables Create folder for Openstack installation Initialize Git within the folder created Clone Devstack of stable/juno version from Git hub Change permissions and owner of the directory Retrieve passwords from encrypted data bags and store in localrc file Add the owner to sudoers file Change protocol name in stackrc file from Git to https END
PSUEDO CODE FOR BUILDING EXTENSIONS:
BEGIN Define OS_Controller Write connection command pattern using controller Create an array ‘Extension data’ which contains details of extension /* name, ip etc */ Receive data entered in particular pattern by user If command pattern is correct Retrieve Project id Else Display error message End If user is admin Call get_project_users method If user is member Display error message get_project_users method Assign list of all user id’s to a variable For each user id in varaiable If user id belongs to the given project id add it to a variable Users_project Display Users_project END
PSEUDO CODE FOR LOGSTASH FUNCTIONALITIES:
Pseudo code for Logstash version Upgrade:
BEGIN Retrieve list of Nodes of OpenStack For each node in nodes If Logstash is installed in node If the current version of Logstash in the node is not new version Take backup of logs from the node Kill currently running Logstash and install new Reload the backup End End END
Pseudo code for Logs archiving:
BEGIN Assign the location of Logstash to be archived to a variable For log files in specified location Find the index of log file Find the date and time of log file till particular index /* in seconds */ Assign system date and time to a variable Convert system date and time into seconds If log file time is less than or equal to system time Add the log file to archives End End END
Pseudo code for Logs cleanup:
BEGIN Assign number of days for logs cleanup to be done to a variable Assign the location of Logstash archives to be cleared For each archived files Find the timestamp of Archived files If the timestamp of archived files is less than or equal to specified number of days Delete the archive file End End Assign the time interval in which cache is to be cleared Assign location of cache to a variable Command to clear the cache periodically in specified interval END
Download implementation report:
Download project report:
- Download Project synopsis
- Download project SRS
- Download system design
- Download implementation
- Download testing document