def CreateSnapshot(self,delete_existing=True,expiration_days=7):
		"""Take a Hypervisor level snapshot retained for between 1 and 10 days (7 is default).
		Currently only one snapshop may exist at a time, thus will delete snapshots if one already
		exists before taking this snapshot.

		>>> clc.v2.Server("WA1BTDIAPI219").CreateSnapshot(2)
		<clc.APIv2.queue.Requests object at 0x10d106cd0>
		>>> _.WaitUntilComplete()
		0

		"""

		if len(self.data['details']['snapshots']):
			if delete_existing:  self.DeleteSnapshot()
			else:  raise(clc.CLCException("Snapshot already exists cannot take another"))

		return(clc.v2.Requests(clc.v2.API.Call('POST','operations/%s/servers/createSnapshot' % (self.alias),
											   {'serverIds': self.id, 'snapshotExpirationDays': expiration_days},
											   session=self.session),
							   alias=self.alias,
							   session=self.session))