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)
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"])
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)
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)