[Pki-devel] [PATCH] 59-2 Fixing for comments given for Patch 59

Abhishek Koneru akoneru at redhat.com
Mon Jun 24 21:29:12 UTC 2013


Please review the patch with the changes suggested by Endi to refactor
code inorder to maintain references to the global variables and the
utility classes. 

A new class PKIDeployer is added to pkihelper.py, whose object is
created in pkispawn/pkidestroy to hold the references and be passed to
the PKIScriptlets. 

Declarations for pki_master_dict and pki_slots_dict have been moved to
init method in pkiparser.py from pkiconfig. The compose methods are
called in pkispawn/pkidestroy and then the references passed to the
PKIDeployer object.

This also fixes many issues of tpe E1120 reported by pylint.

--Abhishek 

On Wed, 2013-06-05 at 21:38 -0500, Endi Sukma Dewata wrote:
> On 5/31/2013 3:38 PM, Abhishek Koneru wrote:
> > Please review the patch which fixes a few errors reported by pylint in
> > dogtag's python code.
> >
> > Also find attached the remaining errors to be fixed. Will submit a
> > detailed report in my next mail.
> >
> > How i used pylint:
> >
> >    -- Installed pki packages.
> >    -- Executed the following command -
> >       cd /usr/lib/python2.7/sitepackages; pylint -E --include-ids=y pki/
> > pki/deployment/ pki/server/ `which pkispawn` `which pkidestroy` `which
> > pki-upgrade` `which pki-server-upgrade`
> >
> > --Abhishek
> 
> Looking at the pkihelper.py again, I'm not sure if this is the right 
> approach. In the original code the classes are instantiated into global 
> objects and we're calling the methods of these objects like this:
> 
>    uid = identity.get_uid()
> 
> In the new code the methods are converted into static methods:
> 
>    uid = Identity.get_uid()
> 
> The problem is many of these methods actually depend on other global 
> objects such as 'master', so we haven't really removed the dependency on 
> global variables.
> 
> I'm thinking we probably should encapsulate the global objects into an 
> object that we can pass around, then we access them as local variables. 
> For example, in pkispawn we generate the master object and put it in a 
> Deployer object. Then we pass the deployer object to the scriptlets.
> 
>      deployer = pki.server.Deployer(master)
> 
>      instance = scriptlet.PkiScriptlet()
>      instance.spawn(deployer)
> 
> The Deployer class will have methods that generate the old global 
> objects and we pass the master into those objects:
> 
>      def get_identity(self):
>         return Identity(master)
> 
> In the scriptlets we can call the methods this way:
> 
>      identity = deployer.get_identity()
>      uid = identity.get_uid()
> 
> What do you think?
> 
> If we do this, I'd suggest we do the conversion one global object at a 
> time so it's easier to review.
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: pki-akoneru-0059-2-Code-refactored-for-global-variables-and-utility-cla.patch
Type: text/x-patch
Size: 292471 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/pki-devel/attachments/20130624/73310595/attachment.bin>


More information about the Pki-devel mailing list