Deployer

Doc


The Deployer


View the Deployer notebook on [NbViewer](http://nbviewer.ipython.org/url/shareyoursystem.ouvaton.org/Deployer.ipynb)

Code



# -*- coding: utf-8 -*-
"""


<DefineSource>
@Date : Fri Nov 14 13:20:38 2014 \n
@Author : Erwan Ledoux \n\n
</DefineSource>


The Deployer

"""

#<DefineAugmentation>
import ShareYourSystem as SYS
BaseModuleStr="ShareYourSystem.Standards.Interfacers.Capturer"
DecorationModuleStr="ShareYourSystem.Standards.Classors.Classer"
SYS.setSubModule(globals())
#</DefineAugmentation>

#<ImportSpecificModules>
import os
import ftplib
#</ImportSpecificModules>

#<DefineClass>
@DecorationClass()
class DeployerClass(BaseClass):

    #Definition
    RepresentingKeyStrsList=[
                        'DeployingUrlStr',
                        'DeployingLoginStr',
                        'DeployingPwdStr',
                        'DeployingClientFilePathStrToServerFilePathStrOrderedDict',
                        'DeployedFtplibVariable',
                        'DeployedDirKeyStrsList'
                    ]

    def default_init(self,
                        _DeployingUrlStr="ftp.ouvaton.coop",
                        _DeployingLoginStr="shareyoursystemhz",
                        _DeployingPwdStr="share",
                        _DeployingClientFilePathStrToServerFilePathStrOrderedDict=None,
                        _DeployedFtplibVariable=None,
                        _DeployedDirKeyStrsList=None,
                        **_KwargVariablesDict
                    ):

        #Call the parent __init__ method
        BaseClass.__init__(self,**_KwargVariablesDict)

    def do_deploy(self):

        #open and login
        self.DeployedFtplibVariable = ftplib.FTP(self.DeployingUrlStr);
        self.DeployedFtplibVariable.login(
            user=self.DeployingLoginStr,
            passwd=self.DeployingPwdStr
        );

        """
        #delete all the files in the root folder
        self.DeployedFtplibVariable.cwd(self.DeployingServerFolderPathStr);
        for __ListedVariable in self.DeployedFtplibVariable.nlst():
            try:
                self.DeployedFtplibVariable.delete(__ListedVariable);
            except Exception:
                self.DeployedFtplibVariable.rmd(__ListedVariable);

        #delete the dir and create a new one
        try:
            self.DeployedFtplibVariable.rmd(self.DeployingServerFolderPathStr);
        except Exception:
            pass;
        self.DeployedFtplibVariable.mkd(self.DeployingServerFolderPathStr);
        """

        #debug
        self.debug(('self.',self,[
                                    'DeployingClientFilePathStrToServerFilePathStrOrderedDict'
                                ]))

        #store
        map(
                lambda __DeployingClientFilePathStrToServerFilePathStrItemTuple:
                self.DeployedFtplibVariable.storbinary(
                    'STOR '+__DeployingClientFilePathStrToServerFilePathStrItemTuple[1],
                    open(
                        __DeployingClientFilePathStrToServerFilePathStrItemTuple[0], 
                        'rb'
                        )
                ),
                self.DeployingClientFilePathStrToServerFilePathStrOrderedDict.items()
            )

        #ls
        self.DeployedDirKeyStrsList=map(
            lambda __DeployingClientFilePathStrToServerFilePathStrItemTuple:
            self.DeployedFtplibVariable.nlst(
                __DeployingClientFilePathStrToServerFilePathStrItemTuple[1]
            ),
            self.DeployingClientFilePathStrToServerFilePathStrOrderedDict.items()
        )

        #quit
        self.DeployedFtplibVariable.quit();

#</DefineClass>

View the Deployer sources on Github

#ImportModules
import ShareYourSystem as SYS

from ShareYourSystem.Standards.Interfacers import Folderer,Deployer

#Definition a Deployer
try:
    MyDeployer=Deployer.DeployerClass().deploy()
except:
    MyDeployer=Deployer.DeployerClass()

#Definition the AttestedStr
SYS._attest(
    [
        'MyDeployer is '+SYS._str(
        MyDeployer,
        **{
            'RepresentingBaseKeyStrsListBool':False,
            'RepresentingAlineaIsBool':False
        }
        )
    ]
)  

#Print
>>>

                    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
                    ////////////////////////////////
                    Deployer/__init__.py do_deploy
                    From Deployer/__init__.py do_deploy | site-packages/six.py exec_ | Celler/__init__.py do_cell | Notebooker/__init__.py do_notebook | Documenter/__init__.py do_inform | inform.py <module>
                    ////////////////////////////////

                    l.82 : 
                    *****
                    I am with []
                    *****
                    self.DeployingClientFilePathStrToServerFilePathStrOrderedDict is 
                       /{ 
                       /}

                    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx



*****Start of the Attest *****

MyDeployer is < (DeployerClass), 4540433488>
   /{ 
   /  '<New><Instance>IdInt' : 4540433488
   /  '<Spe><Class>DeployingLoginStr' : shareyoursystemhz
   /  '<Spe><Class>DeployingPwdStr' : share
   /  '<Spe><Class>DeployingUrlStr' : ftp.ouvaton.coop
   /  '<Spe><Instance>DeployedDirKeyStrsList' : []
   /  '<Spe><Instance>DeployedFtplibVariable' : <ftplib.FTP instance at 0x10e9e94d0>
   /  '<Spe><Instance>DeployingClientFilePathStrToServerFilePathStrOrderedDict' : 
   /   /{ 
   /   /}
   /}

*****End of the Attest *****