def rapi(self): """ retrieves the rapi client for this cluster. """ # XXX always pass self in. not only does it avoid querying this object # from the DB a second time, it also prevents a recursion loop caused # by __init__ fetching info from the Cluster return get_rapi(self.hash, self)
def get(self, request, *args, **kwargs): cluster_slug = self.kwargs['cluster_slug'] instance_hostname = self.kwargs['instance_hostname'] cluster = Cluster.objects.get(slug=cluster_slug) r = get_rapi(cluster.hash, cluster.cluster_id) selected_fields = ('beparams', 'nic.bridges', 'network_port', 'status', 'os') # Blocking request to Ganeti RAPI to return instance info. instance_info = r.GetInstance(instance_hostname) useful_instance_info = dict((useful_key, instance_info[useful_key]) for useful_key in selected_fields) instance_info_json = json.dumps(useful_instance_info) return HttpResponse(instance_info_json, content_type='application/json')
def rapi(self): return get_rapi(self.cluster_hash, self.cluster_id)