def install(job): from JumpScale.baselib.atyourservice81.AtYourServiceBuild import build def build_func(cuisine): cuisine.apps.s3server.install(storageLocation="/data/data", metaLocation="/data/meta/", start=False) build(job.service, build_func)
def install(job): from JumpScale.baselib.atyourservice81.AtYourServiceBuild import build def build_func(cuisine): cuisine.systemservices.g8osfs.build(start=False, reset=True) build(job.service, build_func)
def install(job): from JumpScale.baselib.atyourservice81.AtYourServiceBuild import build def build_func(cuisine): # remove previous code if any to_clean = '$appDir/ays_bot/' if cuisine.core.file_exists(to_clean): cuisine.core.dir_remove(to_clean) cuisine.apps.aysbot.install(start=False, link=False) js_script = r""" from JumpScale import j paths = [] paths.append("/usr/lib/python3/dist-packages") paths.append("/usr/lib/python3.5/") paths.append("/usr/local/lib/python3.5/dist-packages") base_dir = j.tools.cuisine.local.core.dir_paths['base'] dest = j.sal.fs.joinPaths(base_dir, 'lib') excludeFileRegex = ["-tk/", "/lib2to3", "-34m-", ".egg-info", "lsb_release"] excludeDirRegex = ["/JumpScale", "\.dist-info", "config-x86_64-linux-gnu", "pygtk"] for path in paths: j.tools.sandboxer.copyTo(path, dest, excludeFileRegex=excludeFileRegex, excludeDirRegex=excludeDirRegex) j.tools.sandboxer.copyTo('/usr/local/bin/', '%s/bin/' % base_dir, excludeFileRegex=excludeFileRegex, excludeDirRegex=excludeDirRegex) if not j.sal.fs.exists("%s/bin/python" % base_dir): j.sal.fs.symlink("%s/bin/python3" % base_dir, "%s/bin/python3.5" % base_dir, overwriteTarget=True) j.tools.sandboxer.sandboxLibs("%s/lib" % base_dir, recursive=True) j.tools.sandboxer.sandboxLibs("%s/bin" % base_dir, recursive=True) """ cuisine.core.execute_jumpscript(js_script) build(job.service, build_func)
def install(job): from JumpScale.baselib.atyourservice81.AtYourServiceBuild import build def build_func(cuisine): cuisine.apps.nodejs.install() build(job.service, build_func)
def install(job): from JumpScale.baselib.atyourservice81.AtYourServiceBuild import build def build_func(cuisine): cuisine.apps.caddy.install(start=False) build(job.service, build_func)
def install(job): from JumpScale.baselib.atyourservice81.AtYourServiceBuild import build def build_func(cuisine): cuisine.development.rust.install() build(job.service, build_func)
def install(job): from JumpScale.baselib.atyourservice81.AtYourServiceBuild import build def build_func(cuisine): cuisine.apps.redis.build(reset=True) build(job.service, build_func)
def install(job): from JumpScale.baselib.atyourservice81.AtYourServiceBuild import build def build_func(cuisine): cuisine.development.rust.install() cuisine.apps.tidb.build(install=True, start=False) build(job.service, build_func)
def install(job): from JumpScale.baselib.atyourservice81.AtYourServiceBuild import build def build_func(cuisine): cuisine.package.mdupdate() cuisine.development.python.install() cuisine.development.js8.installDeps() build(job.service, build_func)
def install(job): from JumpScale.baselib.atyourservice81.AtYourServiceBuild import build service = job.service def build_func(cuisine): # remove previous code if any to_clean = ['$appDir/portals/', '$jsLibDir/portal'] for path in to_clean: if cuisine.core.file_exists(path): cuisine.core.dir_remove(path) cuisine.apps.portal.install(start=False, installdeps=True, branch=service.model.data.branch) # replace symbolic link with actual file directories = [ cuisine.core.dir_paths['binDir'], cuisine.core.dir_paths['libDir'], cuisine.core.args_replace('$appDir/portals') ] skip = ['npm'] for directory in directories: links = cuisine.core.fs_find(directory, type='l') for link in links: if j.sal.fs.getBaseName(link) in skip: continue _, dest, _ = cuisine.core.run('readlink {}'.format(link)) cuisine.core.run('rm {link}; cp -vr {dest} {link}'.format( link=link, dest=dest)) js_script = r""" from JumpScale import j paths = [] paths.append("/usr/lib/python3/dist-packages") paths.append("/usr/lib/python3.5/") paths.append("/usr/local/lib/python3.5/dist-packages") base_dir = j.tools.cuisine.local.core.dir_paths['base'] dest = j.sal.fs.joinPaths(base_dir, 'lib') excludeFileRegex = ["-tk/", "/lib2to3", "-34m-", ".egg-info", "lsb_release"] excludeDirRegex = ["/JumpScale", "\.dist-info", "config-x86_64-linux-gnu", "pygtk"] for path in paths: j.tools.sandboxer.copyTo(path, dest, excludeFileRegex=excludeFileRegex, excludeDirRegex=excludeDirRegex) j.tools.sandboxer.copyTo('/usr/local/bin/', '%s/bin/' % base_dir, excludeFileRegex=excludeFileRegex, excludeDirRegex=excludeDirRegex) if not j.sal.fs.exists("%s/bin/python" % base_dir): j.sal.fs.symlink("%s/bin/python3" % base_dir, "%s/bin/python3.5" % base_dir, overwriteTarget=True) j.tools.sandboxer.sandboxLibs("%s/lib" % base_dir, recursive=True) j.tools.sandboxer.sandboxLibs("%s/bin" % base_dir, recursive=True) """ cuisine.core.execute_jumpscript(js_script) build(job.service, build_func)
def install(job): from JumpScale.baselib.atyourservice81.AtYourServiceBuild import build def build_func(cuisine): cuisine.package.install('shellinabox') bin_path = cuisine.bash.cmdGetPath('shellinaboxd') cuisine.core.dir_ensure('$binDir') if bin_path != j.sal.fs.pathClean( cuisine.core.args_replace("$binDir/shellinaboxd")): cuisine.core.file_copy(bin_path, "$binDir/shellinaboxd", overwrite=True) build(job.service, build_func)
def install(job): from JumpScale.baselib.atyourservice81.AtYourServiceBuild import build def build_func(cuisine): service = job.service cuisine.tools.sandbox.cleanup() js_script = r""" from JumpScale import j paths = [] paths.append("/usr/lib/python3/dist-packages") paths.append("/usr/lib/python3.5/") paths.append("/usr/local/lib/python3.5/dist-packages") base_dir = j.tools.cuisine.local.core.dir_paths['base'] dest = j.sal.fs.joinPaths(base_dir, 'lib') excludeFileRegex = ["-tk/", "/lib2to3", "-34m-", ".egg-info", "lsb_release"] excludeDirRegex = ["/JumpScale", "\.dist-info", "config-x86_64-linux-gnu", "pygtk"] for path in paths: j.tools.sandboxer.copyTo(path, dest, excludeFileRegex=excludeFileRegex, excludeDirRegex=excludeDirRegex) j.tools.sandboxer.copyTo('/usr/local/bin/', '%s/bin/' % base_dir, excludeFileRegex=excludeFileRegex, excludeDirRegex=excludeDirRegex) if not j.sal.fs.exists("%s/bin/python" % base_dir): j.sal.fs.symlink("%s/bin/python3" % base_dir, "%s/bin/python3.5" % base_dir, overwriteTarget=True) j.tools.sandboxer.sandboxLibs("%s/lib" % base_dir, recursive=True) j.tools.sandboxer.sandboxLibs("%s/bin" % base_dir, recursive=True) """ cuisine.core.execute_jumpscript(js_script) sshkey = service.producers['sshkey'][0] cuisine.core.file_write("/root/.ssh/store_rsa", sshkey.model.data.keyPriv) cuisine.core.file_attribs('/root/.ssh/store_rsa', mode='0600') upload = r""" from JumpScale import j j.do.loadSSHKeys('/root/.ssh/store_rsa') stor_exec = j.tools.executor.getSSHBased('{store_addr}') stor_cuisine = j.tools.cuisine.get(stor_exec) ### upload to stor sp = stor_cuisine.tools.stor.getStorageSpace('{namespace}') sp.upload('{flist}', source='{source}', excludes=['/__pycache__/', '(.*)\\.pyc$', '^\/opt\/code.*']) """.format(store_addr=service.model.data.storeAddr, namespace=service.model.data.namespace, source=service.model.data.sandboxPath, flist=service.model.data.flistName) cuisine.core.execute_jumpscript(upload) build(job.service, build_func)
def install(job): from JumpScale.baselib.atyourservice81.AtYourServiceBuild import build service = job.service def build_func(cuisine): if cuisine.core.dir_exists('$appDir/ays_api'): cuisine.core.dir_remove('$appDir/ays_api') cuisine.solutions.cockpit.install(start=False, branch=service.model.data.branch) # replace symbolic link with actual file directories = [ cuisine.core.args_replace('$appDir/ays_api/api_server'), cuisine.core.args_replace('$appDir/ays_api/ays_api') ] for directory in directories: links = cuisine.core.fs_find(directory, type='l') for link in links: _, dest, _ = cuisine.core.run('readlink {}'.format(link), showout=False) cuisine.core.run('rm {link}; cp -rv {dest} {link}'.format( link=link, dest=dest)) js_script = r""" from JumpScale import j paths = [] paths.append("/usr/lib/python3/dist-packages") paths.append("/usr/lib/python3.5/") paths.append("/usr/local/lib/python3.5/dist-packages") base_dir = j.tools.cuisine.local.core.dir_paths['base'] dest = j.sal.fs.joinPaths(base_dir, 'lib') excludeFileRegex = ["-tk/", "/lib2to3", "-34m-", ".egg-info", "lsb_release"] excludeDirRegex = ["/JumpScale", "\.dist-info", "config-x86_64-linux-gnu", "pygtk"] for path in paths: j.tools.sandboxer.copyTo(path, dest, excludeFileRegex=excludeFileRegex, excludeDirRegex=excludeDirRegex) j.tools.sandboxer.copyTo('/usr/local/bin/', '%s/bin/' % base_dir, excludeFileRegex=excludeFileRegex, excludeDirRegex=excludeDirRegex) if not j.sal.fs.exists("%s/bin/python" % base_dir): j.sal.fs.symlink("%s/bin/python3" % base_dir, "%s/bin/python3.5" % base_dir, overwriteTarget=True) j.tools.sandboxer.sandboxLibs("%s/lib" % base_dir, recursive=True) j.tools.sandboxer.sandboxLibs("%s/bin" % base_dir, recursive=True) """ cuisine.core.execute_jumpscript(js_script) build(job.service, build_func)
def install(job): from JumpScale.baselib.atyourservice81.AtYourServiceBuild import build service = job.service def build_func(cuisine): cuisine.core.dir_remove('$codeDir/github/jumpscale/jumpscale_core8') cuisine.development.js8.install(deps=False, keep=True, reset=True, branch=service.model.data.branch) # replace symbolic link with actual file directories = [ cuisine.core.dir_paths['binDir'], cuisine.core.dir_paths['libDir'] ] skip = ['npm'] for directory in directories: links = cuisine.core.fs_find(directory, type='l') for link in links: if j.sal.fs.getBaseName(link) in skip: continue _, dest, _ = cuisine.core.run('readlink {}'.format(link), showout=False) cuisine.core.run('rm {link}; cp -rv {dest} {link}'.format( link=link, dest=dest)) # copy binaries that are left on the system into the sandbox jspython_path = cuisine.core.command_location('jspython') if cuisine.core.file_exists('$binDir/jspython'): cuisine.core.file_unlink('$binDir/jspython') cuisine.core.file_copy(jspython_path, '$binDir/jspython') script = r"""cd /opt/jumpscale8/bin cp /usr/local/bin/bro . cp /usr/bin/tarantool* . cp /usr/bin/lua* . cp /usr/local/bin/capnp* . cp /usr/local/lib/luarocks/rocks/lua-capnproto/0.1.3-1/bin/* . cp /usr/local/lib/luarocks/rocks/lua-cjson/2.1.0-1/bin/* . cp /usr/local/lib/libluajit-5.1.so . cp /usr/local/lib/lua/5.1/* . rsync -rv /usr/local/share/lua/5.1/ /opt/jumpscale8/lib/lua/ rsync -rv /usr/local/share/luajit-2.1.0-beta2/ /opt/jumpscale8/lib/lua/ mkdir -p /opt/jumpscale8/lib/lua/luarocks/ rsync -rv /usr/share/lua/5.1/luarocks/ /opt/jumpscale8/lib/lua/luarocks/ mkdir -p /opt/jumpscale8/lib/lua/tarantool/ rsync -rv /usr/share/tarantool/ /opt/jumpscale8/lib/lua/tarantool/""" cuisine.core.execute_bash(script) cuisine.tools.sandbox.cleanup() js_script = r""" from JumpScale import j paths = [] paths.append("/usr/lib/python3/dist-packages") paths.append("/usr/lib/python3.5/") paths.append("/usr/local/lib/python3.5/dist-packages") base_dir = j.tools.cuisine.local.core.dir_paths['base'] dest = j.sal.fs.joinPaths(base_dir, 'lib') excludeFileRegex = ["-tk/", "/lib2to3", "-34m-", ".egg-info", "lsb_release"] excludeDirRegex = ["/JumpScale", "\.dist-info", "config-x86_64-linux-gnu", "pygtk"] for path in paths: j.tools.sandboxer.copyTo(path, dest, excludeFileRegex=excludeFileRegex, excludeDirRegex=excludeDirRegex) j.tools.sandboxer.copyTo('/usr/local/bin/', '%s/bin/' % base_dir, excludeFileRegex=excludeFileRegex, excludeDirRegex=excludeDirRegex) if not j.sal.fs.exists("%s/bin/python" % base_dir): j.sal.fs.symlink("%s/bin/python3" % base_dir, "%s/bin/python3.5" % base_dir, overwriteTarget=True) j.tools.sandboxer.sandboxLibs("%s/lib" % base_dir, recursive=True) j.tools.sandboxer.sandboxLibs("%s/bin" % base_dir, recursive=True) """ cuisine.core.execute_jumpscript(js_script) build(job.service, build_func)