Esempio n. 1
0
 def setUp(self):
     self.connection = Connection('127.0.0.1')
     self.connection._access_token = "123456789"
     self.machines = machines.VirtualMachines(self.connection)
     self.policies = policies.Policies(self.connection)
     self.datastores = datastores.Datastores(self.connection)
     self.clusters = omnistack_clusters.OmnistackClusters(self.connection)
 def setUp(self):
     self.connection = Connection('127.0.0.1')
     self.connection._access_token = "123456789"
     self.policies = policies.Policies(self.connection)
     self.clusters = clusters.OmnistackClusters(self.connection)
     self.hosts = hosts.Hosts(self.connection)
     self.cluster_groups = cluster_groups.ClusterGroups(self.connection)
Esempio n. 3
0
    def copy(self, cluster=None, external_store_name=None, timeout=-1):
        """Copies the specified backup to another omnistack_cluster or external store
        Args:
            cluster: Destination OmnistackCluster object/name.
            external_store_name: The name of the external store.
            timeout: Time out for the request in seconds.

        Returns:
            object: Returns the new backup object.
        """

        resource_uri = "{}/{}/copy".format(URL, self.data["id"])
        data = {}
        if cluster:
            if not isinstance(cluster, omnistack_clusters.OmnistackCluster):
                # if passed name of the cluster
                clusters_obj = omnistack_clusters.OmnistackClusters(
                    self._connection)
                cluster = clusters_obj.get_by_name(cluster)
            data['destination_id'] = cluster.data['id']

        if external_store_name:
            data['external_store_name'] = external_store_name

        affected_object = self._client.do_post(resource_uri, data, timeout)[0]
        return self._backups.get_by_id(affected_object["object_id"])
Esempio n. 4
0
    def create(self, datastore_name, cluster, policy, size=0, timeout=-1):
        """Creates a new datastore.

        Args:
            datastore_name: The name of the new datastore created from this action.
            cluster: Destination OmnistackCluster object/name.
            policy: Object/name of the policy to assocaited with the new datastore.
            size: The size in bytes of the new datastore.
            timeout: Time out for the request in seconds.

        Returns:
            object: Datastore object.
        """
        method_url = "{}".format(URL)

        if not isinstance(cluster, omnistack_clusters.OmnistackCluster):
            # if passed name of the cluster
            clusters_obj = omnistack_clusters.OmnistackClusters(
                self._connection)
            cluster = clusters_obj.get_by_name(cluster)

        if not isinstance(policy, policies.Policy):
            # if passed name of the policy
            policies_obj = policies.Policies(self._connection)
            policy = policies_obj.get_by_name(policy)

        data = {
            "name": datastore_name,
            "omnistack_cluster_id": cluster.data['id'],
            "policy_id": policy.data['id'],
            "size": size
        }

        out = self._client.do_post(method_url, data, timeout, None)
        return self.get_by_id(out[0]["object_id"])
 def setUp(self):
     self.connection = Connection('127.0.0.1')
     self.connection._access_token = "123456789"
     self.backups = backups.Backups(self.connection)
     self.datastores = datastores.Datastores(self.connection)
     self.virtual_machines = virtual_machines.VirtualMachines(self.connection)
     self.clusters = omnistack_clusters.OmnistackClusters(self.connection)
     self.cluster_groups = cluster_groups.ClusterGroups(self.connection)
Esempio n. 6
0
    def register_external_store(self,
                                management_ip,
                                name,
                                cluster,
                                username,
                                password,
                                management_port=9387,
                                storage_port=9388,
                                external_store_type='StoreOnceOnPrem',
                                timeout=-1):
        """ Register the external store.
        Args:
            management_ip: The IP address of the external store
            name: The name of the external_store
            cluster: Destination OmnistackCluster object/name.
            username: The client name of the external store
            password: The client password of the external store
            management_port: The management IP port of the external store. Default: 9387
            storage_port: The storage IP port of the external store. Default: 9388
            external_store_type: The type of external store. Default: StoreOnceOnPrem
            timeout: Time out for the request in seconds.

        Returns:
            object: External store object.
        """

        data = {
            'management_ip': management_ip,
            'management_port': management_port,
            'name': name,
            'username': username,
            'password': password,
            'storage_port': storage_port,
            'type': external_store_type
        }

        if not isinstance(cluster, omnistack_clusters.OmnistackCluster):
            # if passed name of the cluster
            clusters_obj = omnistack_clusters.OmnistackClusters(
                self._connection)
            cluster = clusters_obj.get_by_name(cluster)

        data['omnistack_cluster_id'] = cluster.data['id']
        custom_headers = {
            'Content-type': 'application/vnd.simplivity.v1.11+json'
        }
        self._client.do_post(URL, data, timeout, custom_headers)

        return self.get_by_name(name)
    def create_backup(self,
                      backup_name,
                      cluster=None,
                      app_consistent=False,
                      consistency_type=None,
                      retention=0,
                      timeout=-1):
        """Backs up a virtual machine.

        Args:
            backup_name: The name of the new backup created from this action.
            cluster: Destination OmnistackCluster object/name.
            app_consistent: An indicator to show if the backup represents
              a snapshot of a virtual machine with data that was first flushed to disk.
            consistency_type: The consistency type of the backup.
            retention: The number of minutes to keep backups.
            timeout: Time out for the request in seconds.

        Returns:
            Backup object: object of the newly created backup.
        """
        method_url = "{}/{}/backup".format(URL, self.data["id"])

        if cluster and not isinstance(cluster,
                                      omnistack_clusters.OmnistackCluster):
            # if passed name of the omnistack cluster
            clusters_obj = omnistack_clusters.OmnistackClusters(
                self._connection)
            cluster = clusters_obj.get_by_name(cluster)

        data = {
            "backup_name": backup_name,
            "app_consistent": app_consistent,
            "consistency_type": consistency_type,
            "retention": retention
        }

        if cluster:
            data["destination_id"] = cluster.data["id"]

        backup = self._client.do_post(method_url, data, timeout, None)[0]
        return backups.Backups(self._connection).get_by_id(backup["object_id"])
    def unregister_external_store(self, cluster, timeout=-1):
        """ Removes the external store as a backup destination for the cluster.
        Backups remain on the external store,but they can no longer be managed by HPE SimpliVity.
        Args:
            cluster: Destination OmnistackCluster object/name.
            timeout: Time out for the request in seconds.

        Returns:
            None
        """

        resource_uri = "{}/unregister".format(URL)
        data = {'name': self.data["name"]}
        if not isinstance(cluster, omnistack_clusters.OmnistackCluster):
            # if passed name of the cluster
            clusters_obj = omnistack_clusters.OmnistackClusters(
                self._connection)
            cluster = clusters_obj.get_by_name(cluster)

        data['omnistack_cluster_id'] = cluster.data['id']
        custom_headers = {
            'Content-type': 'application/vnd.simplivity.v1.15+json'
        }
        self._client.do_post(resource_uri, data, timeout, custom_headers)
 def setUp(self):
     self.connection = Connection('127.0.0.1')
     self.connection._access_token = "123456789"
     self.external_stores = external_stores.ExternalStores(self.connection)
     self.clusters = clusters.OmnistackClusters(self.connection)
 def setUp(self):
     self.connection = Connection('127.0.0.1')
     self.connection._access_token = "123456789"
     self.clusters = clusters.OmnistackClusters(self.connection)