File size: 2,037 Bytes
17e971c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# coding: utf-8
# -------------------------------------------------------------------
# 宝塔Linux面板
# -------------------------------------------------------------------
# Copyright (c) 2015-2099 宝塔软件(http://bt.cn) All rights reserved.
# -------------------------------------------------------------------
# Author: zouhw <zhw@bt.cn>
# -------------------------------------------------------------------

# ------------------------------
# Docker模型
# ------------------------------
import public
import dk_public as dp

class main:

    # 获取docker主机列表
    def get_list(self,args=None):
        info = dp.sql("hosts").select()
        for i in info:
            if dp.docker_client(i['url']):
                i['status'] = True
            else:
                i['status'] = False
        return info

    # 添加docker主机
    def add(self,args):
        """
        :param url      连接主机的url
        :param remark   主机备注
        :return:
        """
        import time
        host_lists = self.get_list()
        for h in host_lists:
            if h['url'] == args.url:
                return public.returnMsg(False,"该主机已存在!")
        # 测试连接
        if not dp.docker_client(args.url):
            return public.returnMsg(False,"连接服务器失败,请检查docker是否已经启动!")
        pdata = {
            "url": args.url,
            "remark": public.xsssec(args.remark),
            "time": int(time.time())
        }
        dp.write_log("添加主机 [{}] 成功!".format(args.url))
        dp.sql('hosts').insert(pdata)
        return public.returnMsg(True,"添加docker主机成功!")

    def delete(self,args):
        """
        :param id      连接主机id
        :return:
        """
        data = dp.sql('hosts').where('id=?',args(args.id,)).find()
        dp.sql('hosts').delete(id=args.id)
        dp.write_log("删除主机 [{}] 成功!".format(data['url']))
        return public.returnMsg(True,"删除主机成功!")