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))
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
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))
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
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
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
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
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())
def info_cluster(self,cid): info=c.cluster_info(cid) logger('cluster_id:%s info %s' %(cid,info)) return info
def list_cluster(self): logger('已连接到cluster接口,获取数据中') logger('打印连接程序c: ' ,type(c.cluster_list())) list = c.cluster_list() print('list',type(list)) return list
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
def get_namespaces(self): logger('已连接到服务器,正在获取项目列表') ns_func = client.CoreV1Api().list_namespace() logger('项目列表获取成功,返回项目列表') return ns_func