Ejemplo n.º 1
0
 def get(self, id):
     """
     get a job details
     """
     job = CoOpJobService.get_by_id(id)
     if job:
         return Response.success(
             CoOpJobSchema().dump(job),
             status_code=HttpStatusCode.OK,
             message="Detail of the job.")
     else:
         return Response.error({},
                               status_code=HttpStatusCode.NOT_FOUND,
                               message="Job does not exist")
Ejemplo n.º 2
0
 def delete(self, id):
     """
     soft deleting the Job.
     """
     deleted, error = CoOpJobService.delete_by_id(id)
     if deleted:
         return Response.success(
             {"id": id},
             status_code=HttpStatusCode.OK,
             message="Job Deleted Successful")
     else:
         return Response.error(
             error,
             status_code=HttpStatusCode.NOT_FOUND,
             message="Job does not exist.")
Ejemplo n.º 3
0
def uptime():
    try:
        hostUtil = HostUtil()
        message = hostUtil.get_uptime_stat()
    except Exception, e:
        message = "error get uptime, Ex:%s" % (str(e))
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 4
0
def stats():
    try:
        dockerUtil = DockerUtil()
        stats = dockerUtil.getDockerStats(request.values.get("ids"))
    except Exception, e:
        message = "error stats container, Ex:%s" % str(e)
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 5
0
    def post(self):
        """
        create new job
        """
        payload = request.json
        schema = CoOpJobSchema()
        try:
            result = schema.load(payload)
        except ValidationError as err:
            return Response.error(err.messages,
                                  status_code=HttpStatusCode.BAD_REQUEST,
                                  message="Form validation error.")

        return Response.success(schema.dump(result),
                                status_code=HttpStatusCode.CREATED,
                                message="Job created successful.")
Ejemplo n.º 6
0
def inspect():
    try:
        dockerUtil = DockerUtil()
        containerInfo = dockerUtil.getDockerInspect(request.args.get("id"))
    except Exception, e:
        message = "error get container info, Ex:%s" % str(e)
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 7
0
def truncatlogs():
    try:
        dockerUtil = DockerUtil()
        message = dockerUtil.truncatDockerLogFile(request.values.get("id"))
    except Exception, e:
        message = "error truncat logs, Ex:%s" % str(e)
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 8
0
def diskPathDu():
    try:
        hostUtil = HostUtil()
        message = hostUtil.get_path_du(request.args.get("path"))

    except Exception, e:
        message = "error get disk device stat, Ex:%s" % (str(e))
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 9
0
def dockerVolumnRmDangling():
    try:
        dockerUtil = DockerUtil()
        message = dockerUtil.rmDockerDanglingVolumn()

    except Exception, e:
        message = "error rm dangling volumn, Ex:%s" % str(e)
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 10
0
def dockerInfo():
    try:
        dockerUtil = DockerUtil()
        message = dockerUtil.getDockerInfo()

    except Exception, e:
        message = "error get docker info, Ex:%s" % str(e)
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 11
0
def execCommand():
    try:
        hostUtil = HostUtil()
        message = hostUtil.exec_command(request.values.get("cmd"))
    except Exception, e:
        message = "error get sys process list, cmd(%s) Ex:%s" % (
            request.values.get("cmd"), str(e))
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 12
0
def getProcessList():

    try:
        hostUtil = HostUtil()
        message = hostUtil.processList()
    except Exception, e:
        message = "error get sys process list, Ex:%s" % (str(e))
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 13
0
def networkList():
    try:
        hostUtil = HostUtil()
        message = hostUtil.network_list()

    except Exception, e:
        message = "error get network list, Ex:%s" % str(e)
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 14
0
def networkInfo(ifname):
    try:
        hostUtil = HostUtil()
        message = hostUtil.networkinfo(ifname)

    except Exception, e:
        message = "error get network %s info, Ex:%s" % (ifname, str(e))
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 15
0
def diskUsage():
    try:
        hostUtil = HostUtil()
        message = hostUtil.disk_usage(request.args.get("mountpoint"))

    except Exception, e:
        message = "error get disk device stat, Ex:%s" % (str(e))
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 16
0
def diskPartitions():
    try:
        hostUtil = HostUtil()
        message = hostUtil.disk_partitions()

    except Exception, e:
        message = "error get disk partitions, Ex:%s" % (str(e))
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 17
0
def loadavg():
    try:
        hostUtil = HostUtil()
        message = hostUtil.get_load_stat()

    except Exception, e:
        message = "error get cpu loadavg, Ex:%s" % (str(e))
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 18
0
def memInfo():
    try:
        hostUtil = HostUtil()
        message = hostUtil.get_memory_stat()

    except Exception, e:
        message = "error get mem info, Ex:%s" % (str(e))
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 19
0
def imageList():
    try:
        dockerUtil = DockerUtil()
        message = dockerUtil.getDockerImages()

    except Exception, e:
        message = "error get docker images list, Ex:%s" % (str(e))
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 20
0
    def put(self, id):
        """
        update the given id job
        """
        payload = request.json
        schema = CoOpJobSchema()
        current_job = CoOpJobService.get_by_id(id)
        try:
            result = schema.load(payload, instance=current_job, partial=True)
        except ValidationError as err:
            return Response.error(err.messages,
                                  status_code=HttpStatusCode.BAD_REQUEST,
                                  message="Form validation error.")

        return Response.success(schema.dump(result),
                                status_code=HttpStatusCode.OK,
                                message="Job updated successful.")
Ejemplo n.º 21
0
def getUname():
    try:
        hostUtil = HostUtil()
        message = hostUtil.uname()

    except Exception, e:
        message = "error get uname, Ex:%s" % str(e)
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 22
0
def save_code(code_id):
    source_code = request.form.get('code', '')
    breakpoints = request.form.get('breakpoints', '[]')
    arch =  request.form.get('arch', 'x86_64')

    DBManager.create_code(code_id=code_id, source_code=source_code, breakpoints=breakpoints, arch=arch)

    return Response(success_save=True)
Ejemplo n.º 23
0
def list():
    try:
        dockerUtil = DockerUtil()
        resContainerList = dockerUtil.getDockerPs(
            filters=request.args.getlist("filter"))

    except Exception, e:
        message = "error list container, Ex:%s" % str(e)
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 24
0
def exec_command():
    try:
        dockerUtil = DockerUtil()

        message = dockerUtil.getDockerExec(request.values.get("id"),
                                           request.values.get("cmd"))
    except Exception, e:
        message = "exec cmd `%s` error, ex:%s" % (request.values.get("cmd"),
                                                  str(e))
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 25
0
    def get(self):
        """
        Return all jobs
        """
        jobs = CoOpJobService.get_all()

        return Response.success(
            CoOpJobSchema().dump(jobs, many=True),
            HttpStatusCode.OK,
            message="List of jobs")
Ejemplo n.º 26
0
def logs():
    try:
        dockerUtil = DockerUtil()
        num = request.args.get("num")
        if num:
            num = int(num)

        logs = dockerUtil.getDockerLogs(request.values.get("id"), num)
    except Exception, e:
        message = "error get logs, Ex:%s" % str(e)
        return Response.make_json_response(message, success=False, code=-1)
Ejemplo n.º 27
0
    def auth(self, request):
        try:
            credentials = Request(request).data
            credentials["password"] = hashlib.md5(
                credentials["password"]).hexdigest()
            query = translate(UsuarioSerializer, credentials)
        except KeyError:
            return Response({}, status.HTTP_400_BAD_REQUEST,
                            "Envio erroneo de parametros")

        try:
            usuarios = Usuario.objects.filter(**query)

            if usuarios.count() is not 1:
                raise ObjectDoesNotExist

        except ObjectDoesNotExist:
            return Response({}, status.HTTP_404_NOT_FOUND,
                            "No se encontro el usuario")

        token = Token.getToken(UsuarioSerializer(usuarios[0]).data)

        return Response({'token': token})
Ejemplo n.º 28
0
from app.response import Response
from app.host import host


@host.route('/docker/version', methods=['GET'])
@session_require
def dockerVersion():
    try:
        dockerUtil = DockerUtil()
        message = dockerUtil.getDockerVerion()

    except Exception, e:
        message = "error get docker version, Ex:%s" % str(e)
        return Response.make_json_response(message, success=False, code=-1)

    return Response.make_json_response(message)


@host.route('/docker/info', methods=['GET'])
@session_require
def dockerInfo():
    try:
        dockerUtil = DockerUtil()
        message = dockerUtil.getDockerInfo()

    except Exception, e:
        message = "error get docker info, Ex:%s" % str(e)
        return Response.make_json_response(message, success=False, code=-1)

    return Response.make_json_response(message)
Ejemplo n.º 29
0
from app.container import container


@container.route('/list', methods=['GET'])
@session_require
def list():
    try:
        dockerUtil = DockerUtil()
        resContainerList = dockerUtil.getDockerPs(
            filters=request.args.getlist("filter"))

    except Exception, e:
        message = "error list container, Ex:%s" % str(e)
        return Response.make_json_response(message, success=False, code=-1)

    return Response.make_json_response(resContainerList)


@container.route('/info', methods=['GET'])
@session_require
def inspect():
    try:
        dockerUtil = DockerUtil()
        containerInfo = dockerUtil.getDockerInspect(request.args.get("id"))
    except Exception, e:
        message = "error get container info, Ex:%s" % str(e)
        return Response.make_json_response(message, success=False, code=-1)

    return Response.make_json_response(containerInfo)

Ejemplo n.º 30
0
    def decorator(*args, **kwargs):
        # 现在是模拟登录,获取用户名,项目开发中获取session
        # username = request.args.get('username')
        #        username = '******'
        #        user = getattr(g, 'username', None)
        #        if user is None :
        #            print 'username is None'
        #        else :
        #            print g.username
        try:
            # 1.获取参数
            timestamp = request.args.get('timestamp')
            access_id = request.args.get('access_id')
            sign = request.args.get('sign')

            # 2.验证timestamp的有效性
            now = int(time.time())
            ltime = abs(now - int(timestamp))
            if ltime > 60 * 10:
                raise CustomAuthException('Timestamp timeout.')

            # 3.验证认证是否正确
            octopusConfig = OctopusConfig()
            apiOptions = octopusConfig.getApiOptions()

            _access_key = apiOptions.get("access_key")
            _access_id = apiOptions.get("access_id")
            _access_ips = apiOptions.get("access_ips")

            # print "remote addr %s" % request.remote_addr
            currentIp = ipaddr.IPv4Network(request.remote_addr)

            if not access_id or not _access_id or not _access_key or not _access_ips or access_id != _access_id:
                raise CustomAuthException(
                    'Authentication failed, access_id invalid.')

            ary_access_ip = _access_ips.split(";")
            ipAllow = False
            for tmp_ip in ary_access_ip:
                if currentIp and currentIp in ipaddr.IPNetwork(tmp_ip):
                    ipAllow = True
                    break
            if not ipAllow:
                raise CustomAuthException(
                    'Authentication failed, not allowed to access from ip %s,allow ip: %s.'
                    % (request.remote_addr, _access_ips))

            util = EncryptUtil()
            mysign = util.getSign(timestamp, access_id, _access_key)
            mysign = mysign.lower()
            sign = sign.lower()
            if cmp(mysign, sign) != 0:
                raise CustomAuthException(
                    'Authentication failed, sign invalid.')

            # 4.exec business
            g.username = access_id
            return func(*args, **kwargs)

            # 判断用户名存在且用户名是什么的时候直接那个视图函数
            # if username and username == 'admin':
            #    g.username = username
            # args = (username,) + args
            #    return func(*args, **kwargs)
            # else:
            #    #如果没有就重定向到登录页面
            #    return redirect("login")
        except CustomAuthException, e:
            message = "error auth: %s" % str(e)
            return Response.make_json_response(message, success=False, code=-2)