def get(self, pod_name=None): """ Get all pods or a single pod :param pod_id: """ get_request = dict() if pod_name is not None: get_request["name"] = pod_name res = [] cursor = self.db.pod.find(get_request) while (yield cursor.fetch_next): pod = Pod.pod_from_dict(cursor.next_object()) res.append(pod.format()) meta = dict() meta["total"] = len(res) meta["success"] = True if len(res) > 0 else False answer = dict() answer["pods"] = res answer["meta"] = meta self.finish_request(answer)
def post(self): """ Create a POD""" if self.json_args is None: raise HTTPError(HTTP_BAD_REQUEST) query = {"name": self.json_args.get("name")} # check for existing name in db mongo_dict = yield self.db.pod.find_one(query) if mongo_dict is not None: raise HTTPError(HTTP_FORBIDDEN, "{} already exists as a pod".format(self.json_args.get("name"))) pod = Pod.pod_from_dict(self.json_args) pod.creation_date = datetime.now() future = self.db.pod.insert(pod.format()) result = yield future pod._id = result meta = dict() meta["success"] = True meta["uri"] = "/pods/{}".format(pod.name) answer = dict() answer["pod"] = pod.format_http() answer["meta"] = meta self.finish_request(answer)
def get_pods(product_type: str = None, coffee_flavor: str = None, pack_size: str = None): pods = [ Pod(sku=pod["sku"], product_type=pod["product_type"], coffee_flavor=pod["coffee_flavor"], pack_size=pod["pack_size"]) for pod in data.products["pods"] if (product_type is None or pod["product_type"] == product_type) and (coffee_flavor is None or pod["coffee_flavor"] == coffee_flavor) and ( pack_size is None or pod["pack_size"] == pack_size) ] return pods
def detect_nodes_and_pods(self): nodes_data = apiserver.get_nodes() pods_data = apiserver.get_pods() nodes = [Node(x) for x in nodes_data] pods = [Pod(x) for x in pods_data] nodes_map = {x.ip: x for x in nodes} for p in pods: if not p.isReady: print("Pod is not ready, skipping") continue if not p.hostIP in nodes_map: print("Pod is attached to an unknown host, skipping:", p.hostIP) continue nodes_map[p.hostIP].add(p) return [x for x in nodes if x.pods]