Example #1
0
 def get(self, *args, **kwargs):
     node_ip = self.get_argument('node_ip', None)
     #print(node_ip)
     if node_ip is None:
         self.write("Something Wrong")
         return
     else:
         node_port = NodeInfo.get_node_port(node_ip)[0][0]
         myswarm = Myswarm()
         con_data = myswarm.container_list(node_ip, node_port)
         #print("con_data",con_data)
         for con in con_data:
             #print(con_data[con]["id_num"],con_data[con]["con_ip"],node_ip)
             ret = NodeInfo.get_con_usage_info(con_data[con]["id_num"],
                                               node_ip)
             if len(ret) == 0:
                 NodeInfo.insert_con_usage(con_data[con]["id_num"],
                                           con_data[con]["con_ip"],
                                           con_data[con]["con_name"],
                                           node_ip)
             else:
                 continue
         self.render('node/rightnode.html',
                     con_data=con_data,
                     node_ip=node_ip)
Example #2
0
 def get(self, *args, **kwargs):
     group_name = self.get_argument('group_name', None)
     #print(group_name)
     data_list = {}
     self.num = 1
     node_ip_list = NodeInfo.get_node_ip(group_name)
     #print(node_ip_list,len(node_ip_list))
     for index in range(len(node_ip_list)):
         node_ip = node_ip_list[index][0]
         #print('---',node_ip)
         if node_ip is None:
             self.write("Something Wrong")
             return
         else:
             node_port = NodeInfo.get_node_port(node_ip)[0][0]
             myswarm = Myswarm()
             con_data = myswarm.container_list(node_ip, node_port)
             for con in con_data:
                 #print(con_data[con])
                 data_list[self.num] = con_data[con]
                 self.num += 1
     #print(data_list)
     self.render('node/groupconlist.html',
                 con_data=data_list,
                 node_ip=node_ip,
                 group_name=group_name)
Example #3
0
 def post(self, *args, **kwargs):
     con_dict = {}
     for key in ['name', 'node_ip', 'port', 'node_group']:
         con_dict[key] = self.get_argument(key)
     node_ip = con_dict["node_ip"]
     port = con_dict["port"]
     node_group = con_dict["node_group"]
     name = con_dict["name"]
     myswarm = Myswarm()
     if myswarm.ping_port(node_ip, port) == 0:
         if len(name) == 0:
             node_info = myswarm.node_info(node_ip, port)
             name = node_info["Name"]
         get_node_ret = NodeInfo.get_node_name_group(node_ip, port)
         #print(get_node_ret)
         if len(get_node_ret) == 0:
             NodeInfo.insert_node_usage(name, node_ip, port, node_group)
             self.write(u"Node [Ip:%s port:%s]  add successfully" %
                        (node_ip, port))
         elif get_node_ret[0][0] == node_group:
             self.write(
                 "There is already exists node[Ip:%s port:%s group:%s] of the node"
                 % (node_ip, port, node_group))
         else:
             NodeInfo.update_node_name_group(name, node_group, node_ip,
                                             port)
     else:
         self.write(u"Node [Ip:%s port:%s] Docker has not Running" %
                    (node_ip, port))
Example #4
0
 def start_container(self, node_ip, node_port, container_id):
     if len(container_id) > 0:
         container_ip = ""
         client_ins = docker.Client(base_url='tcp://' + node_ip + ":" +
                                    node_port,
                                    version='1.20',
                                    timeout=5)
         client_ins.start(container_id)
         time.sleep(0.5)
         con_info = self._container_detail(node_ip, node_port, container_id)
         ret = NodeInfo.get_con_usage_info(container_id, node_ip)
         print(ret)
         if len(ret) == 0:
             NodeInfo.insert_con_usage(
                 container_id[0:12],
                 con_info['NetworkSettings']['IPAddress'],
                 con_info['Name'].replace('/', ''), node_ip)
         else:
             #print('update_con_usage')
             #print(con_info['NetworkSettings']['IPAddress'], con_info['Name'].replace('/', ''), node_ip, container_id[0:12])
             NodeInfo.update_con_usage(
                 container_id[0:12],
                 con_info['NetworkSettings']['IPAddress'],
                 con_info['Name'].replace('/', ''), node_ip)
         return 0
     else:
         print("Please enter the Container ID")
         return
Example #5
0
 def _create_con(self, name_list, node_ip, node_port, json_ret):
     #print(name_list)
     for i in range(len(name_list)):
         #time.sleep(0.1)
         if len(name_list[i]) == 0:
             json_ret['Name'] = str(uuid.uuid4())[0:13]
             json_ret['Hostname'] = json_ret['Name']
         elif len(name_list[i]) == 13:
             json_ret['Name'] = name_list[i]
             json_ret['Hostname'] = name_list[i]
         else:
             json_ret['Name'] = name_list[i]
             json_ret['Hostname'] = str(uuid.uuid4())[0:13]
         print(u'节点:[%s],端口:[%s],容器ID:[%s],容器名:[%s]' %
               (node_ip, node_port, json_ret['Hostname'], json_ret['Name']))
         myswarm = Myswarm()
         if NodeInfo.get_con_usage_info(json_ret['Hostname'], node_ip):
             continue
         elif NodeInfo.get_con_usage_con_name(node_ip, json_ret['Name']):
             continue
         else:
             container_id = myswarm.create_container(
                 node_ip, node_port, json_ret)
             if not container_id:
                 print("Can not create the Container")
                 return
             #print(node_ip, node_port,container_id)
             ret = myswarm.start_container(node_ip, node_port, container_id)
             print(u"%s节点上容器%s创建并启动成功" % (node_ip, container_id[0:12]))
Example #6
0
 def get(self, *args, **kwargs):
     con_id = self.get_argument('con_id', 'none')
     if con_id == 'none':
         con_data = NodeInfo.con_usage_info()
     else:
         con_data = NodeInfo.get_con_usage_modify(con_id)
     con_data_handled = DataManage.manage_con_usage_info(con_data)
     self.render("node/con_list.html",
                 name=template_variables,
                 con_data=con_data_handled)
Example #7
0
 def _update_node(self):
     node_data = NodeInfo.node_info()  #获取Node节点信息
     myswarm = Myswarm()
     for line in node_data:
         node_ip = line[2]
         node_port = line[3]
         if myswarm.ping_port(node_ip, node_port) == 0:
             node_info = myswarm.node_info(node_ip, node_port)
             NodeInfo.update_node_info(
                 node_info, myswarm.ping_port(node_ip, node_port), node_ip)
         else:
             NodeInfo.update_node_state(
                 myswarm.ping_port(node_ip, node_port), node_ip, node_port)
             continue
Example #8
0
 def post(self):
     ret = {}
     node_ip = self.get_argument("node_ip")
     delete_node_ret = NodeInfo.delete_node_info(node_ip)
     if delete_node_ret == 0:
         delete_con_ret = NodeInfo.delete_con_usage_info(node_ip)
         if delete_con_ret == 0:
             self.write("Node %s delete ok" % node_ip)
             ret['message'] = "Node %s delete ok" % node_ip
             ret['status'] = 0
     else:
         #self.write("Node %s delete happend something roung" % node_ip)
         ret['message'] = "Node %s delete happend something roung" % node_ip
         ret['status'] = 1
     ret = json.dumps(ret)
     self.write(ret)
Example #9
0
 def get(self, *args, **kwarg):
     node_ip = self.get_argument('node_ip')
     node_data = NodeInfo.get_node_info(node_ip)
     node_data_handled = DataManage.manage_node_info(node_data)
     self.render("node/node_modify.html",
                 name=template_variables,
                 single_con_usage_data=node_data_handled)
Example #10
0
 def node_check(result, check):
     if check:
         node_ret = NodeInfo.get_node_modify(result['ip'])
         if not node_ret:
             return 0
     else:
         return
Example #11
0
 def get(self, *args, **kwargs):
     con_id = self.get_argument('con_id')
     con_data = NodeInfo.get_con_usage_modify(con_id)
     con_data_handled = DataManage.manage_con_usage_info(con_data)
     self.render("node/con_modify.html",
                 name=template_variables,
                 single_con_usage_data=con_data_handled)
Example #12
0
 def _getgroup(self):
     group_data = []
     group_ret = NodeInfo.group_list()
     for i in DataManage.group_list(group_ret):
         group_data.append(i)
     #print(group_data)
     return group_data
Example #13
0
 def ip_check(result, check):
     if check:
         ip_ret = NodeInfo.get_ip_modify(result['ip_addr'])
         print(ip_ret)
         if not ip_ret:
             return 0
     else:
         return
Example #14
0
 def get(self, *args, **kwargs):
     node_ip = self.get_argument('node_ip', None)
     if node_ip is None:
         self.write("Something Wrong")
         return
     else:
         node_port = NodeInfo.get_node_port(node_ip)[0][0]
         myswarm = Myswarm()
         images_data = myswarm.images_list(node_ip, node_port)
         self.render('node/con_create.html',
                     node_ip=node_ip,
                     images=images_data)
Example #15
0
    def post(self, *args, **kwargs):
        con_dict = {}
        for key in ['name', 'node_ip', 'port', 'node_group']:
            con_dict[key] = self.get_argument(key)

        name = con_dict["name"]
        node_ip = con_dict["node_ip"]
        port = con_dict["port"]
        node_group = con_dict["node_group"]
        myswarm = Myswarm()

        if myswarm.ping_port(node_ip, port) == 0:
            if len(name) == 0:
                node_info = myswarm.node_info(node_ip, port)
                name = node_info["Name"]
            if len(node_group) == 0:
                group_msg = NodeInfo.get_node_name_group(node_ip, port)
                node_group = group_msg[0][1]
            get_node_ret = NodeInfo.get_node_name_group(node_ip, port)
            if len(get_node_ret) == 0:
                NodeInfo.insert_node_usage(name, node_ip, port, node_group)
                self.write(u"Node [Ip:%s port:%s] add successfully" %
                           (node_ip, port))
            else:
                NodeInfo.update_node_name_group(name, node_group, node_ip,
                                                port)
                self.write(u"Node modify successfully")
        else:
            self.write(u"Node [Ip:%s port:%s] Docker has not Running" %
                       (node_ip, port))
Example #16
0
 def get(self, *args, **kwargs):
     threads = []
     node_update = threading.Thread(target=self._update_node)
     threads.append(node_update)
     node_pass = threading.Thread(target=self._get_pass)  #此函数在于构成for循环,用于异构
     threads.append(node_pass)
     for t in threads:
         t.setDaemon(True)
         t.start()
     node_data = NodeInfo.node_info()
     node_data_handled = DataManage.manage_node_info(
         node_data)  #对数据按页面要求的格式做格式化
     self.render("node/node_manage.html", node_data=node_data_handled)
Example #17
0
 def post(self, *args, **kwargs):
     con_dic = dict()
     for key in ['con_id', 'con_desc', 'con_app', 'user_name']:
         con_dic[key] = self.get_argument(key)
     con_ret = NodeInfo.set_con_usage_modify(con_dic)
     if con_ret == 0:
         url_cmd = ("<script language='javascript'>window.location.href='" +
                    "/conmanage?con_id=" + str(con_dic['con_id']) +
                    "';</script>")
         self.write(url_cmd)
     else:
         self.write(
             "<script language='javascript'>alert('修改失败');window.location.href='/conmanage';</script>"
         )
Example #18
0
    def get(self, *args, **kwargs):
        #node_ip = self.get_argument('node_ip')
        con_id = self.get_argument('con_id')
        con_node_ip = NodeInfo.get_con_usage_node_ip(con_id)
        #print(node_ip,con_node_ip[0][0])
        #if node_ip != con_node_ip[0][0]:
        #   node_ip = con_node_ip[0][0]
        node_ip = con_node_ip[0][0]
        port_ret = NodeInfo.get_node_port(node_ip)
        if len(port_ret) < 1:
            print("There is no port of the node")
            return
        else:
            node_port = port_ret[0][0]

        myswarm = Myswarm()
        con_data_handled = myswarm.container_info(node_ip, node_port, con_id)
        self.render("node/con_action.html",
                    name=template_variables,
                    node_ip=node_ip,
                    node_port=node_port,
                    con_id=con_id,
                    con_data=con_data_handled)
Example #19
0
 def delete_con_usage(self, container_id):
     if not container_id:
         return
     else:
         NodeInfo.delete_con_usage(container_id)
Example #20
0
 def _getcontainer(self, id, name):
     container_ret = NodeInfo.container_list(name)
     container_data = DataManage.container_list(container_ret, id, name)
     return container_data
Example #21
0
 def _getnode(self, id, name):
     node_ret = NodeInfo.node_list(name)
     node_data = DataManage.node_list(node_ret, id, name)
     return node_data
Example #22
0
    def post(self, *args, **kwargs):
        json_ret = json.loads(basejson[0])
        node_ip = self.get_argument('node_ip', 'None')
        if node_ip == 'None':
            print("There is no node ip")
            return

        port_ret = NodeInfo.get_node_port(node_ip)
        if len(port_ret) < 1:
            print("There is no port of the node")
            return
        else:
            node_port = port_ret[0][0]

        con_name = self.get_argument('con_name', None)
        con_num = self.get_argument('con_num', None)
        if len(con_num) == 0:
            con_num = 1
        con_num = int(con_num)
        print(u'待创建容器个数:%s' % (con_num))

        con_dict = {}
        for key in [
                'Cmd', 'Image', 'CpuPeriod', 'CpuQuota', 'CpuShares', 'Memory'
        ]:
            con_dict[key] = self.get_argument(key.lower())
            if key == 'Cmd' and con_dict[key] != "":
                json_ret[key] = con_dict[key].split()
            elif key == 'Image' and con_dict[key] != "":
                json_ret[key] = con_dict[key]
            elif con_dict[key] != "":
                json_ret['HostConfig'][key] = int(con_dict[key])

        name_list = []
        if con_num > 1:
            for num in range(con_num):
                #print(num + 1)
                if len(con_name) == 0:
                    con_name = str(uuid.uuid4())[0:13]
                    #print(u'待创建容器名:%s' % con_name)
                    name_list.append(con_name)
                    con_name = ''
                else:
                    con_name = '%s%s' % (con_name, str(num + 1))
                    #print(u'待创建容器名:%s' % con_name)
                    name_list.append(con_name)
                    con_name = con_name[:-len(str(num + 1))]
        else:
            if len(con_name) == 0:
                con_name = str(uuid.uuid4())[0:13]
            name_list.append(con_name)

        threads = []
        create_con = threading.Thread(target=self._create_con,
                                      args=(name_list, node_ip, node_port,
                                            json_ret))
        threads.append(create_con)
        create_pass = threading.Thread(
            target=self._create_pass)  #此函数在于构成for循环,用于异构
        threads.append(create_pass)
        #print(threads)
        for t in threads:
            t.setDaemon(True)
            t.start()
        t.join()
        #time.sleep(con_num*2)
        time.sleep(1)
        self.write(u"%s节点上容器创建并启动成功" % (node_ip))