Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
dedal
Manage
Activity
Members
Labels
Plan
Issues
2
Issue boards
Milestones
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Harbor Registry
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
EBRAINS RI
Tech Hub
Platform
EBRAINS Software Distribution
dedal
Commits
53ddcc41
Commit
53ddcc41
authored
1 month ago
by
Adrian Ciu
Browse files
Options
Downloads
Patches
Plain Diff
esd-spack-installation: added spack env exceptions
parent
49f82dfb
No related branches found
Branches containing commit
No related tags found
2 merge requests
!7
Dedal Release
,
!5
Methods for caching; CLI
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
esd/error_handling/exceptions.py
+5
-0
5 additions, 0 deletions
esd/error_handling/exceptions.py
esd/spack_manager/SpackManager.py
+17
-9
17 additions, 9 deletions
esd/spack_manager/SpackManager.py
with
22 additions
and
9 deletions
esd/error_handling/exceptions.py
+
5
−
0
View file @
53ddcc41
...
...
@@ -11,3 +11,8 @@ class BashCommandException(SpackException):
"""
To be thrown when an invalid input is received.
"""
class
NoSpackEnvironmentException
(
SpackException
):
"""
To be thrown when an invalid input is received.
"""
\ No newline at end of file
This diff is collapsed.
Click to expand it.
esd/spack_manager/SpackManager.py
+
17
−
9
View file @
53ddcc41
...
...
@@ -2,7 +2,7 @@ import os
from
abc
import
ABC
,
abstractmethod
from
pathlib
import
Path
from
esd.error_handling.exceptions
import
BashCommandException
from
esd.error_handling.exceptions
import
BashCommandException
,
NoSpackEnvironmentException
from
esd.logger.logger_builder
import
get_logger
from
esd.model.SpackModel
import
SpackModel
from
esd.utils.utils
import
run_command
,
git_clone_repo
...
...
@@ -90,7 +90,7 @@ class SpackManager(ABC):
else
:
self
.
logger
.
debug
(
f
'
Spack repository
{
repo
.
env_name
}
already added
'
)
def
spack_repo_exists
(
self
,
repo_name
:
str
)
->
bool
:
def
spack_repo_exists
(
self
,
repo_name
:
str
)
->
bool
|
None
:
"""
Check if the given Spack repository exists.
"""
if
self
.
env
is
None
:
result
=
run_command
(
"
bash
"
,
"
-c
"
,
...
...
@@ -101,11 +101,15 @@ class SpackManager(ABC):
if
result
is
None
:
return
False
else
:
result
=
run_command
(
"
bash
"
,
"
-c
"
,
if
self
.
spack_env_exists
():
result
=
run_command
(
"
bash
"
,
"
-c
"
,
f
'
source
{
self
.
spack_setup_script
}
&& spack env activate -p
{
self
.
env_path
}
&& spack repo list
'
,
check
=
True
,
capture_output
=
True
,
text
=
True
,
logger
=
self
.
logger
,
debug_msg
=
f
'
Checking if repository
{
repo_name
}
was added
'
)
else
:
self
.
logger
.
debug
(
'
No spack environment defined
'
)
raise
NoSpackEnvironmentException
(
'
No spack environment defined
'
)
if
result
is
None
:
return
False
return
any
(
line
.
strip
().
endswith
(
repo_name
)
for
line
in
result
.
stdout
.
splitlines
())
...
...
@@ -122,12 +126,16 @@ class SpackManager(ABC):
def
add_spack_repo
(
self
,
repo_path
:
Path
,
repo_name
:
str
):
"""
Add the Spack repository if it does not exist.
"""
run_command
(
"
bash
"
,
"
-c
"
,
f
'
source
{
self
.
spack_setup_script
}
&& spack env activate -p
{
self
.
env_path
}
&& spack repo add
{
repo_path
}
/
{
repo_name
}
'
,
check
=
True
,
logger
=
self
.
logger
,
debug_msg
=
f
"
Added
{
repo_name
}
to spack environment
{
self
.
env
.
env_name
}
"
,
exception_msg
=
f
"
Failed to add
{
repo_name
}
to spack environment
{
self
.
env
.
env_name
}
"
,
exception
=
BashCommandException
)
if
self
.
spack_env_exists
():
run_command
(
"
bash
"
,
"
-c
"
,
f
'
source
{
self
.
spack_setup_script
}
&& spack env activate -p
{
self
.
env_path
}
&& spack repo add
{
repo_path
}
/
{
repo_name
}
'
,
check
=
True
,
logger
=
self
.
logger
,
debug_msg
=
f
"
Added
{
repo_name
}
to spack environment
{
self
.
env
.
env_name
}
"
,
exception_msg
=
f
"
Failed to add
{
repo_name
}
to spack environment
{
self
.
env
.
env_name
}
"
,
exception
=
BashCommandException
)
else
:
self
.
logger
.
debug
(
'
No spack environment defined
'
)
raise
NoSpackEnvironmentException
(
'
No spack environment defined
'
)
def
get_spack_installed_version
(
self
):
spack_version
=
run_command
(
"
bash
"
,
"
-c
"
,
f
'
source
{
self
.
spack_setup_script
}
&& spack --version
'
,
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment