<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create(self, size, number, meta, name=None, image=None, attempts=3):
 """Create container VM nodes. Uses a container declaration which is undocumented. :param size: The machine type to use. :type size: ``str`` or :class:`GCENodeSize` :param number: Amount of nodes to be spawned. :type number: ``int`` :param meta: Metadata dictionary for the nodes. :type meta: ``dict`` or ``None`` :param name: The name of the node to create. :type name: ``str`` :param image: The image used to create the disk - optional for multiple nodes. :type image: ``str`` or :class:`GCENodeImage` or ``None`` :param attempts: The amount of tries to perform in case nodes fail to create. :type attempts: ``int`` :return: A list of newly created Node objects for the new nodes. :rtype: ``list`` of :class:`Node` """

        if name is None:
            name = Common.get_random_hostname()

        if image is None and number == 1:
            raise ComputeEngineManagerException("Base image not provided.")

        successful = 0
        nodes = []

        while number - successful > 0 and attempts > 0:
            if number == 1:
                # Used because of suffix naming scheme in ex_create_multiple_nodes() for a single node.
                nodes = [self.gce.create_node(name, size, image, **meta)]
            else:
                nodes = self.gce.ex_create_multiple_nodes(name, size, None, number - successful,
                                                          ignore_errors=False,
                                                          poll_interval=1,
                                                          **meta)
            for node in nodes:
                if isinstance(node, GCEFailedNode):
                    self.logger.error("Node failed to create, code %s error: %s", node.code, node.error)
                    continue
                successful += 1
                self.nodes.append(node)

            attempts -= 1

        if number != successful:
            self.logger.error("We tried but %d nodes failed to create.", number - successful)

        return nodes