:mod:`cloudmesh-cloud.cloudmesh.compute.virtualbox.Provider` ============================================================ .. py:module:: cloudmesh-cloud.cloudmesh.compute.virtualbox.Provider Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: cloudmesh-cloud.cloudmesh.compute.virtualbox.Provider.Provider .. class:: Provider(name=None, configuration='~/.cloudmesh/.cloudmesh.yaml') Bases: :class:`cloudmesh.abstract.ComputeNodeABC.ComputeNodeABC` .. attribute:: kind :annotation: = virtualbox .. attribute:: output .. method:: run_command(self, command) .. method:: update_dict(self, entry, kind='node') .. method:: version(self) This command returns the versions ov vagrant and virtual box :return: A dict with the information Description: The output looks like this {'vagrant': '2.2.4', 'virtualbox': {'extension': { 'description': 'USB 2.0 and USB 3.0 Host ' 'Controller, Host Webcam, ' 'VirtualBox RDP, PXE ROM, Disk ' 'Encryption, NVMe.', 'extensionpack': True, 'revision': '128413', 'usable': 'true', 'version': '6.0.4'}, 'version': '6.0.4'}} .. method:: images(self) Lists the images on the cloud :return: dict .. method:: delete_image(self, name=None) .. method:: add_image(self, name=None) .. method:: _check_version(self, r) checks if vagrant version is up to date :return: .. method:: start(self, name) start a node :param name: the unique node name :return: The dict representing the node .. method:: vagrant_nodes(self, verbose=False) list all nodes id :return: an array of dicts representing the nodes .. method:: create(self, **kwargs) creates a named node :param group: a list of groups the vm belongs to :param name: the name of the node :param image: the image used :param size: the size of the image :param timeout: a timeout in seconds that is invoked in case the image does not boot. The default is set to 3 minutes. :param kwargs: additional arguments passed along at time of boot :return: .. method:: execute(self, name, command, cwd=None) .. method:: to_dict(self, lst, id='name') .. method:: _convert_assignment_to_dict(self, content) .. method:: find(self, nodes=None, name=None) .. method:: info(self, name=None) gets the information of a node with a given name :param name: :return: The dict representing the node including updated status .. method:: suspend(self, name=None) NOT IMPLEMENTED suspends the node with the given name :param name: the name of the node :return: The dict representing the node .. method:: resume(self, name=None) NOT IMPLEMENTED Default: resume(start) all the VMs specified. If @name is provided, only the named VM is started. :param name: [optional], name of the Vagrant VM. :return: .. method:: resume(self, name=None) resume the named node :param name: the name of the node :return: the dict of the node .. method:: stop(self, name=None) NOT IMPLEMENTED stops the node with the given name :param name: the name of the node :return: The dict representing the node .. method:: destroy(self, name=None) Destroys the node :param name: the name of the node :return: the dict of the node .. method:: delete(self, name=None) .. method:: vagrantfile(self, **kwargs) .. method:: _get_specification(self, cloud=None, name=None, port=None, image=None, **kwargs) .. method:: create_spec(self, name=None, image=None, size=1024, timeout=360, port=80, **kwargs) creates a named node :param port: :param name: the name of the node :param image: the image used :param size: the size of the image :param timeout: a timeout in seconds that is invoked in case the image does not boot. The default is set to 3 minutes. :param kwargs: additional arguments passed along at time of boot :return: .. method:: find_image(cls, keywords) :classmethod: Finds an image on hashicorps web site :param keywords: The keywords to narrow down the search .. method:: list(self, raw=True) list all nodes id :return: an array of dicts representing the nodes .. method:: rename(self, name=None, destination=None) rename a node :param destination: :param name: the current name :return: the dict with the new name .. method:: list_os(self) :return: the dict with the new name .. method:: key_upload(self, key) :abstractmethod: uploads the key specified in the yaml configuration to the cloud :param key: :return: