code: def add_node_from_appliance(self, appliance_id, x=0, y=0, compute_id=None):
          
          try:
              template = self.controller.appliances[appliance_id].data
          except KeyError:
              msg = "Appliance {} doesn't exist".format(appliance_id)
              log.error(msg)
              raise aiohttp.web.HTTPNotFound(text=msg)
          template["x"] = x
          template["y"] = y
          node_type = template.pop("node_type")
          compute = self.controller.get_compute(template.pop("server", compute_id))
          name = template.pop("name")
          default_name_format = template.pop("default_name_format", "{name}-{0}")
          name = default_name_format.replace("{name}", name)
          node_id = str(uuid.uuid4())
          node = yield from self.add_node(compute, name, node_id, node_type=node_type, **template)
          return node
docs: Create a node from an appliance