コード例 #1
0
ファイル: command.py プロジェクト: ahua/python
 def doit(self, dest, server, app):
     if self.options.dir_name == "source":
         self.deploy(dest, server, app, "source")
     elif self.options.dir_name == "conf":
         self.get_conf(dest, server, app)
         if not self.options.debug:
             self.deploy(dest, server, app, "conf") 
     else:
         safe_exit("Not support dir_name.\n")
コード例 #2
0
ファイル: command.py プロジェクト: ahua/python
 def __init__(self, command, options):
     self.command = command
     self.options = options
     self.settings = get_settings()    
             
     if not self.settings.has_key("PROJECT_NAME") or not self.settings.get("PROJECT_NAME"):
         safe_exit("You must specify PROJECT_NAME in your settings file.\n", 1)
     
     self.PROJECT_NAME = self.settings.get("PROJECT_NAME")
     
     self.AVAILABLE_DIR = self.settings.get("AVAILABLE_DIR", "/var/%s/available"%(self.PROJECT_NAME))
     self.ENABLED_DIR = self.settings.get("ENABLED_DIR", "/var/%s/enabled"%(self.PROJECT_NAME))
     self.LOG_DIR = self.settings.get("LOG_DIR", "/var/%s/log"%(self.PROJECT_NAME))
     self.DATA_DIR = self.settings.get("DATA_DIR", "/var/%s/data"%(self.PROJECT_NAME))
コード例 #3
0
ファイル: fabriclib.py プロジェクト: ahua/python
def connect_host(dest, server):
    config = get_config(dest)

    dns = config.get(server, 'dns')
    user = config.get(server, 'user')
    key_filename = config.get(server, 'key_filename') if config.has_option(server, 'key_filename') else None
    password = config.get(server, 'password') if config.has_option(server, 'password') else None
    
    if not key_filename and not password:
        safe_exit("Cann't find key_filename or password in %s %s config file.\n"%(dest, server), 1, sys.stderr)
    
    env.host_string = join_host_strings(user, dns)
    env.password = password
    env.key_filename = key_filename
コード例 #4
0
ファイル: command.py プロジェクト: ahua/python
 def doit(self, dest, server, app):   
     dir_name = self.options.dir_name  # dir_name = "source" or "conf"
     if dir_name not in ["source", "conf"]:
         safe_exit("Not support dir_name.\n")
     
     ensure_remote_dir(os.path.join(self.AVAILABLE_DIR, app, dir_name))
     current_version = self._get_current_version_number(app, dir_name)
     version = self._get_previous_version_number(app, dir_name)
     
     if not version:
         safe_exit("%s %s %s %s version number error.\n"%(dest, server, app, dir_name), 1)
     
     available = os.path.join(self.AVAILABLE_DIR, app, dir_name, version)
     enabled = os.path.join(self.ENABLED_DIR, app)
     
     run("rm -f %s"%(os.path.join(enabled, dir_name)))
     run("ln -s %s %s"%(os.path.join(available, dir_name), os.path.join(enabled, dir_name)))
     run("rm -r %s"%(os.path.join(self.AVAILABLE_DIR, app, dir_name, current_version)))
コード例 #5
0
ファイル: command.py プロジェクト: ahua/python
 def deploy(self, dest, server, app, dir_name):  # dir_name is a sub directory of app. eg. source, conf .    
     ensure_remote_dir(os.path.join(self.AVAILABLE_DIR, app, dir_name))
     version = self._get_next_version_number(app, dir_name)
     available = os.path.join(self.AVAILABLE_DIR, app, dir_name, version)
     enabled = os.path.join(self.ENABLED_DIR, app)
     ensure_remote_dir(available)
     ensure_remote_dir(enabled)
     
     if dir_name == "source":
         local("cd %s; tar cvzf /tmp/%s.tar.gz --exclude='.svn' ./%s;"%(os.path.join(PROJECT_DIR, app), dir_name, dir_name))
     elif dir_name == "conf":
         local("cd %s; tar cvzf /tmp/%s.tar.gz --exclude='.svn' ./%s;"%
               (os.path.join("/tmp/", self.PROJECT_NAME, dest, server, app), dir_name, dir_name))
     else:
         safe_exit("Not support dir_name.\n")
           
     put("/tmp/%s.tar.gz"%(dir_name), available)
     with cd(available):
         run("tar zvxf %s.tar.gz"%(dir_name))
         run("rm -f %s"%(os.path.join(enabled, dir_name)))
         run("ln -s %s %s"%(os.path.join(available, dir_name), os.path.join(enabled, dir_name)))