示例#1
0
def cluster(request):
    admin_class = admin_func().get('heketi_cluster')
    model_name = admin_class.model._meta.model_name
    if request.method == 'GET':
        logger("获取Cluster列表")
        Save_Data().save_cluster()
        model_name = admin_class.model._meta.model_name
        logger("Cluster列表获取成功".encode('utf-8'))
        querysets, filter_conditions = get_filter_objs(request, admin_class)
        querysets, q_val = get_search_objs(request, querysets, admin_class)
        querysets, new_order_key, order_column, last_orderby_key = get_orderby_objs(request, querysets)
        paginator = Paginator(querysets, admin_class.list_per_page)  # Show 25 contacts per page
        page = request.GET.get('_page')
        try:
            querysets = paginator.page(page)
        except PageNotAnInteger:
            # If page is not an integer, deliver first page.
            querysets = paginator.page(1)
        except EmptyPage:
            # If page is out of range (e.g. 9999), deliver last page of results.
            querysets = paginator.page(paginator.num_pages)
        return render(request, 'nodes/clusters/cluster_list.html', locals())
    elif request.method == 'POST':
        add_clust = Test_Heketi().create_cluster()
        return HttpResponse(json.dumps(add_clust))
示例#2
0
 def create_cluster(self):
     try:
         cluster_req['file'] = True
         cluster = c.cluster_create()
         cluster_func = cluster
         return cluster_func
     except ConnectionError as e:
         logger('%s' % e, logging.ERROR)
         return False
示例#3
0
def openshift_project(request):
    if request.method == 'GET':
        logger('获取Openshift服务器中的项目')
        namespace = Openshift_info().get_namespaces()

        return render(request, 'nodes/clusters/projects.html', locals())
    elif request.method == 'POST':
        ns_name = None
        for name in request.GET.get('name').split(','):
            ns_name = name.strip()
        pod_func = Openshift_info().get_pod_count(ns_name)
        return HttpResponse(json.dumps(pod_func))
示例#4
0
 def heketi_url(self):
     logger('获取Heketi RUL')
     heketi_url = os.environ.get('HEKETI_URL')
     if not heketi_url or heketi_url == '':
         logger('环境变量中未找到Heketi URL')
         logger('设置Heketi URL为默认地址: %s' % conf.HEKETI_SERVER)
         heketi_url = conf.HEKETI_SERVER
     return heketi_url
示例#5
0
 def heketi_user_key(self):
     logger('获取Heketi KEY')
     user_key = os.environ.get('HEKETI_KEY')
     if not user_key:
         logger('环境变量中未找到Heketi KEY')
         logger('设置Heketi KEY: %s' % conf.HEKETI_ADMIN_KEY)
         user_key = conf.HEKETI_ADMIN_KEY
     return user_key
示例#6
0
 def heketi_user(self):
     logger('获取Heketi USER')
     user = os.environ.get('HEKETI_USER')
     if not user:
         logger('环境变量中未找到Heketi USER')
         logger('设置Heketi USER: %s' % conf.HEKETI_USER)
         user = conf.HEKETI_USER
     return user
示例#7
0
    def check_cluster_id(self,cid):
        admin_class = self.save_func().get('heketi_cluster')
        model_class = admin_class.model.objects.all()
        if not model_class:
            logger('数据库是空的,不需要检查')
            return True
        cluster_id = []
        for c_id in model_class.values('cid'):
            logger('获取数据库中已有ClusterID')
            cluster_id.append(c_id.get('cid'))

        logger('匹配已有ClusterID')
        if cid in cluster_id:
            logger('ClusterID存在数据库中,不保存数据')
            return False
        else:
            return True
示例#8
0
def info_node(request,nid,model_name):
    logger('获取node 信息:%s' %nid  )
    node_info = Test_Heketi().info_node(nid.strip())
    return render(request,'nodes/clusters/cluster_info.html',locals())
示例#9
0
    def info_cluster(self,cid):

        info=c.cluster_info(cid)
        logger('cluster_id:%s info %s' %(cid,info))
        return info
示例#10
0
 def list_cluster(self):
     logger('已连接到cluster接口,获取数据中')
     logger('打印连接程序c: ' ,type(c.cluster_list()))
     list = c.cluster_list()
     print('list',type(list))
     return list
示例#11
0
 def save_cluster(self):
     admin_class = self.save_func().get('heketi_cluster')
     logger('获取cluster列表')
     cluster_id = self.list_cluster()
     logger('Cluster ID获取成功')
     logger('准备保存ClusterID')
     for cid in cluster_id.get('clusters'):
         logger('检查ClusterID是否存在')
         check_id = self.check_cluster_id(cid)
         logger('ClusterID检查完毕')
         if check_id:
             logger('ClusterID不存在,开始执行保存')
             admin_class.model.objects.create(cid=cid)
             logger('ClusterID已保存')
     return True
示例#12
0
 def get_namespaces(self):
     logger('已连接到服务器,正在获取项目列表')
     ns_func = client.CoreV1Api().list_namespace()
     logger('项目列表获取成功,返回项目列表')
     return ns_func