@@ -194,6 +194,8 @@ def __init__(
194
194
self ._cached_routine = None
195
195
self ._geometry = None
196
196
self ._kylov = None
197
+ self ._on_docker = None
198
+ self ._platform = None
197
199
198
200
# Setting up loggers
199
201
self ._log = logger .add_instance_logger (
@@ -3867,3 +3869,49 @@ def set(
3867
3869
)
3868
3870
else :
3869
3871
return output
3872
+
3873
+ def _check_mapdl_os (self ):
3874
+ platform = self .get_value ("active" , 0 , "platform" ).strip ()
3875
+ if "l" in platform .lower ():
3876
+ self ._platform = "linux"
3877
+ elif "w" in platform .lower (): # pragma: no cover
3878
+ self ._platform = "windows"
3879
+ else : # pragma: no cover
3880
+ raise MapdlRuntimeError ("Unknown platform: {}" .format (platform ))
3881
+
3882
+ @property
3883
+ def platform (self ):
3884
+ """Return the platform where MAPDL is running."""
3885
+ if self ._platform is None :
3886
+ self ._check_mapdl_os ()
3887
+ return self ._platform
3888
+
3889
+ def _check_on_docker (self ):
3890
+ """Check if MAPDL is running on docker."""
3891
+ # self.get_mapdl_envvar("ON_DOCKER") # for later
3892
+
3893
+ if self .platform == "linux" :
3894
+ self .sys (
3895
+ "if grep -sq 'docker\|lxc' /proc/1/cgroup; then echo 'true' > __outputcmd__.txt; else echo 'false' > __outputcmd__.txt;fi;"
3896
+ )
3897
+ elif self .platform == "windows" : # pragma: no cover
3898
+ return False # TODO: check if it is running a windows docker container. So far it is not supported.
3899
+
3900
+ if self .is_grpc and not self .is_local :
3901
+ return self ._download_as_raw ("__outputcmd__.txt" ).decode ().strip () == "true"
3902
+ else : # pragma: no cover
3903
+ file_ = os .path .join (self .directory , "__outputcmd__.txt" )
3904
+ with open (file_ , "r" ) as f :
3905
+ return f .read ().strip () == "true"
3906
+
3907
+ @property
3908
+ def on_docker (self ):
3909
+ """Check if MAPDL is running on docker."""
3910
+ if self ._on_docker is None :
3911
+ self ._on_docker = self ._check_on_docker ()
3912
+ return self ._on_docker
3913
+
3914
+ @property
3915
+ def is_local (self ):
3916
+ """Check if the instance is running locally or remotely."""
3917
+ return self ._local
0 commit comments