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)
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)