Skip to content
This repository has been archived by the owner on Feb 3, 2021. It is now read-only.

Commit

Permalink
Conda, Apt-Get and Pip Install Plugins (#594)
Browse files Browse the repository at this point in the history
* Added install plugins

* Moved packages to directory

* Removed channel from conda install

* changed default to none

* Added line

* fixed template

* Fixed naming of apt get
  • Loading branch information
brnleehng committed Jun 6, 2018
1 parent fa3ac0e commit fbf1bab
Show file tree
Hide file tree
Showing 14 changed files with 90 additions and 2 deletions.
3 changes: 3 additions & 0 deletions aztk/models/plugins/internal/plugin_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ class PluginManager:
tensorflow_on_spark=plugins.TensorflowOnSparkPlugin,
openblas=plugins.OpenBLASPlugin,
nvblas=plugins.NvBLASPlugin,
apt_get=plugins.AptGetPlugin,
pip_install=plugins.PipPlugin,
conda_install=plugins.CondaPlugin
)

def __init__(self):
Expand Down
2 changes: 1 addition & 1 deletion aztk/models/plugins/internal/plugin_reference.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class PluginReference(Model):
script = fields.String(default=None)
target = fields.Enum(PluginTarget, default=None)
target_role = fields.Enum(PluginTargetRole, default=None)
args = fields.String(default=None)
args = fields.Field(default=None)

def get_plugin(self) -> PluginConfiguration:
self.validate()
Expand Down
2 changes: 1 addition & 1 deletion aztk/models/plugins/plugin_configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class PluginConfiguration(Model):
runOn: Where the plugin should run
execute: Path to the file to execute(This must match the target of one of the files)
files: List of files to upload
args: List of argumenets to pass to the executing script
args: List of arguments to pass to the executing script
env: Dict of environment variables to pass to the script
"""
name = fields.String()
Expand Down
3 changes: 3 additions & 0 deletions aztk/spark/models/plugins/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@
from .tensorflow_on_spark import TensorflowOnSparkPlugin
from .openblas import OpenBLASPlugin
from .nvblas import NvBLASPlugin
from .install.conda import CondaPlugin
from .install.apt_get import AptGetPlugin
from .install.pip import PipPlugin
1 change: 1 addition & 0 deletions aztk/spark/models/plugins/install/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .configuration import *
1 change: 1 addition & 0 deletions aztk/spark/models/plugins/install/apt_get/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .configuration import *
14 changes: 14 additions & 0 deletions aztk/spark/models/plugins/install/apt_get/configuration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import os
from aztk.models.plugins.plugin_configuration import PluginConfiguration, PluginPort, PluginTargetRole
from aztk.models.plugins.plugin_file import PluginFile
from aztk.spark.models.plugins.install import InstallPlugin
from aztk.utils import constants

dir_path = os.path.dirname(os.path.realpath(__file__))

def AptGetPlugin(packages=None):
return InstallPlugin(
name="apt-get",
command="apt-get update && apt-get install -y",
packages=packages
)
1 change: 1 addition & 0 deletions aztk/spark/models/plugins/install/conda/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .configuration import *
14 changes: 14 additions & 0 deletions aztk/spark/models/plugins/install/conda/configuration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import os
from aztk.models.plugins.plugin_configuration import PluginConfiguration, PluginPort, PluginTargetRole
from aztk.models.plugins.plugin_file import PluginFile
from aztk.spark.models.plugins.install import InstallPlugin
from aztk.utils import constants

dir_path = os.path.dirname(os.path.realpath(__file__))

def CondaPlugin(packages=None):
return InstallPlugin(
name="conda",
command="conda install -y",
packages=packages
)
18 changes: 18 additions & 0 deletions aztk/spark/models/plugins/install/configuration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import os
from aztk.models.plugins.plugin_configuration import PluginConfiguration, PluginPort, PluginTargetRole
from aztk.models.plugins.plugin_file import PluginFile
from aztk.utils import constants

dir_path = os.path.dirname(os.path.realpath(__file__))

def InstallPlugin(name, command, packages=None):
return PluginConfiguration(
name=name,
target_role=PluginTargetRole.All,
execute="install.sh",
files=[
PluginFile("install.sh", os.path.join(dir_path, "install.sh"))
],
args=packages,
env=dict(COMMAND=command)
)
3 changes: 3 additions & 0 deletions aztk/spark/models/plugins/install/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash

eval $COMMAND $@
1 change: 1 addition & 0 deletions aztk/spark/models/plugins/install/pip/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .configuration import *
14 changes: 14 additions & 0 deletions aztk/spark/models/plugins/install/pip/configuration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import os
from aztk.models.plugins.plugin_configuration import PluginConfiguration, PluginPort, PluginTargetRole
from aztk.models.plugins.plugin_file import PluginFile
from aztk.spark.models.plugins.install import InstallPlugin
from aztk.utils import constants

dir_path = os.path.dirname(os.path.realpath(__file__))

def PipPlugin(packages=None):
return InstallPlugin(
name="pip",
command="pip install",
packages=packages
)
15 changes: 15 additions & 0 deletions aztk_cli/config/cluster.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,21 @@ plugins:
# - name: tensorflow_on_spark
# - name: openblas
# - name: nvblas
# - name: apt_get
# args:
# packages:
# - 'vim'
# - 'htop'
# - name: pip_install
# args:
# packages:
# - 'numpy==1.14.2'
# - 'requests'
# - name: conda_install
# args:
# packages:
# - 'numpy=1.14.2'
# - 'requests'

# Allow master node to also be a worker <true/false> (Default: true)
# worker_on_master: true
Expand Down

0 comments on commit fbf1bab

Please sign in to comment.