コード例 #1
0
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)
コード例 #2
0
ファイル: actions.py プロジェクト: Jumpscale/ays_build
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)
コード例 #3
0
ファイル: actions.py プロジェクト: Jumpscale/ays_build
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)
コード例 #4
0
ファイル: actions.py プロジェクト: Jumpscale/ays_build
def install(job):
    from JumpScale.baselib.atyourservice81.AtYourServiceBuild import build

    def build_func(cuisine):
        cuisine.apps.nodejs.install()

    build(job.service, build_func)
コード例 #5
0
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)
コード例 #6
0
ファイル: actions.py プロジェクト: Jumpscale/ays_build
def install(job):
    from JumpScale.baselib.atyourservice81.AtYourServiceBuild import build

    def build_func(cuisine):
        cuisine.development.rust.install()

    build(job.service, build_func)
コード例 #7
0
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)
コード例 #8
0
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)
コード例 #9
0
ファイル: actions.py プロジェクト: Jumpscale/ays_build
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)
コード例 #10
0
ファイル: actions.py プロジェクト: Jumpscale/ays_build
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)
コード例 #11
0
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)
コード例 #12
0
ファイル: actions.py プロジェクト: Jumpscale/ays_build
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)
コード例 #13
0
ファイル: actions.py プロジェクト: Jumpscale/ays_build
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)
コード例 #14
0
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)