def copy_to_storage_server(live_folder, live_repo, update_version=True):
     # live_folder, live_repo = get_live_repository()
     try:
         if Config.get_environment().lower() == 'prod':
             tag = get_last_tag_on_current_commit(live_repo, TRAX_ACE_LIVE)
             if not tag:
                 raise Exception('LiveTagNotExistsOnCurrentCommit')
             if update_version:
                 ProjectDeployment.update_version_file(live_folder, tag)
         tar_file_stream = ProjectDeployment.make_tarfile(live_folder)
         for cloud in CLOUDS:
             print 'bucket name', STORAGE_BUCKET, 'cloud to store', cloud
             storage_connector = StorageFactory.get_connector(
                 mybucket=STORAGE_BUCKET, region='us-east-1', cloud=cloud)
             env = Config.get_environment().lower()
             # deploy the project only in one env
             storage_folder_name = ProjectDeployment.get_trax_ace_live_folder(
                 env)
             print "Uploading file to Remote folder-> {}".format(
                 storage_folder_name)
             DeploymentUtils.save_file_stream(storage_connector,
                                              storage_folder_name,
                                              TAR_FILE_NAME,
                                              tar_file_stream)
     except Exception as e:
         print e
         raise
     finally:
         shutil.rmtree(live_folder)
Пример #2
0
def deploy_single_project(ace_live_git_folder, ace_live_repo, project_name,
                          sdk_factory_git_folder):
    environment = Config.get_environment().lower()
    print 'deploy START project={}'.format(project_name)
    # get the local tmp sdk_factory dir and remote git object
    kpi_factory_git_folder, kpi_repo = get_kpi_factory_repository()
    converted_project_name = project_name.replace('-', '_').upper()
    root_path = os.path.join(ace_live_git_folder, 'Projects',
                             converted_project_name)
    print "root path={}".format(root_path)
    ProjectDeployment.delete_pyc_files(ace_live_git_folder)
    ProjectDeployment.delete_pyc_files(sdk_factory_git_folder)
    ProjectDeployment.delete_pyc_files(kpi_factory_git_folder)
    copy_to_ace_live(sdk_factory_git_folder, ace_live_git_folder,
                     kpi_factory_git_folder, converted_project_name)
    ProjectValidator.modules_checkup(root_path)
    kpi_tag = ''
    ProjectDeployment.delete_pyc_files(ace_live_git_folder)
    if environment == 'prod':
        kpi_tag = ProjectDeploy.push_factory_new_tag(converted_project_name,
                                                     kpi_repo)
        ProjectDeploy.upload_to_live_git(ace_live_git_folder,
                                         ace_live_repo,
                                         converted_project_name,
                                         project_tag=kpi_tag)
    return kpi_tag
 def dump_logs_to_file_and_upload_to_bucket(self):
     file_path = self.errorHandler.dump_to_file()
     error_file_link = Utilities.upload_file_to_s3(
         file_path, '{}.log'.format(self.execution_unique_id),
         os.path.join(Parameters.BUCKET_FOLDER,
                      Config.get_environment().upper(),
                      self.project.upper()), Parameters.LOG_FILE_BUCKET)
     return error_file_link
 def make_tarfile(source_dir):
     files_and_dirs_to_copy = [
         PROJECT_FOLDER, KPI_UTILS, KPI_UTILS_V2, OUT_OF_THE_BOX
     ]
     if Config.get_environment().lower() == 'prod':
         files_and_dirs_to_copy.append('version.txt')
     return DeploymentUtils.make_tar_file_for_files(source_dir,
                                                    files_and_dirs_to_copy)
 def __init__(self):
     env = Config.get_environment()
     self._base_file_path = os.path.join(local_repository_path(), env,
                                         'sftp')
     create_folder(self._base_file_path)