def _install_single(self, sqlexecutor: SQLQueryExecutor, package_file: str, scope: Scope, is_target=False, out_file: str = None): name = str(get_package_name_from_file(package_file)) version = str(get_package_version_from_file(package_file)) print("Installing {name} version: {version}".format(name=name, version=version)) with tempfile.TemporaryDirectory() as temporary_directory: prezip = os.path.join(temporary_directory, name + "PREZIP.zip") with zipfile.ZipFile(prezip, 'w') as zipf: zipf.write(package_file, os.path.basename(package_file)) builder = CreateLibraryBuilder(pkg_name=name, pkg_filename=prezip, scope=scope, language_name=self._language_name) sqlexecutor.execute(builder, out_file=out_file) builder = CheckLibraryBuilder(pkg_name=name, scope=scope, language_name=self._language_name) sqlexecutor.execute(builder, out_file=out_file)
def _install_single(sqlexecutor: SQLQueryExecutor, package_file: str, scope: Scope, is_target=False): name = get_package_name_from_file(package_file) version = get_package_version_from_file(package_file) with tempfile.TemporaryDirectory() as temporary_directory: prezip = os.path.join(temporary_directory, name + "PREZIP.zip") with zipfile.ZipFile(prezip, 'w') as zipf: zipf.write(package_file, os.path.basename(package_file)) builder = CreateLibraryBuilder(pkg_name=name, pkg_filename=prezip, scope=scope) sqlexecutor.execute(builder)
def _install_many(self, target_package_file: str, dependency_files, scope: Scope, out_file: str = None): target_name = get_package_name_from_file(target_package_file) with SQLQueryExecutor(connection=self._connection_info) as sqlexecutor: sqlexecutor._cnxn.autocommit = False try: print("Installing dependencies...") for pkgfile in dependency_files: self._install_single(sqlexecutor, pkgfile, scope, out_file=out_file) print("Done with dependencies, installing main package...") self._install_single(sqlexecutor, target_package_file, scope, True, out_file=out_file) sqlexecutor._cnxn.commit() except Exception as e: sqlexecutor._cnxn.rollback() raise RuntimeError( "Package installation failed, installed dependencies were rolled back." ) from e
def _install_many(self, target_package_file: str, dependency_files, scope: Scope): target_name = get_package_name_from_file(target_package_file) with SQLQueryExecutor(connection=self._connection_info) as sqlexecutor: transaction = SQLTransaction(sqlexecutor, clean_library_name(target_name) + "InstallTransaction") transaction.begin() try: for pkgfile in dependency_files: self._install_single(sqlexecutor, pkgfile, scope) self._install_single(sqlexecutor, target_package_file, scope, True) transaction.commit() except Exception: transaction.rollback() raise RuntimeError("Package installation failed, installed dependencies were rolled back.")