Esempio n. 1
0
File: openvz.py Progetto: m3z/ToMaTo
	def interfacesRename(self, name, properties):
		iface = self.interfaceSetGet(name).upcast()
		if self.state == State.PREPARED or self.state == State.STARTED:
			vzctl.deleteInterface(self.host, self.getVmid(), iface.name)
		try:
			fault.check(not self.interfaceSetGet(properties["name"]), "Duplicate interface name: %s" % properties["name"])
		except Interface.DoesNotExist: #pylint: disable-msg=W0702
			pass
		iface.name = properties["name"]
		if self.state == State.PREPARED or self.state == State.STARTED:
			vzctl.addInterface(self.host, self.getVmid(), iface.name)
		if self.state == State.STARTED:
			self.connectToBridge(iface, self.getBridge(iface))
			iface._configureNetwork()
		iface.save()
Esempio n. 2
0
	def interfacesAdd(self, name, properties):
		fault.check(self.state != State.STARTED, "OpenVZ does not support adding interfaces to running VMs: %s" % self.name)
		import re
		fault.check(re.match("eth(\d+)", name), "Invalid interface name: %s" % name)
		try:
			fault.check(not self.interfaceSetGet(name), "Duplicate interface name: %s" % name)
		except Interface.DoesNotExist: #pylint: disable-msg=W0702
			pass
		iface = ConfiguredInterface()
		iface.name = name
		iface.device = self
		iface.init()
		if self.state == State.PREPARED or self.state == State.STARTED:
			vzctl.addInterface(self.host, self.getVmid(), iface.name)
		iface.configure(properties)
		iface.save()
		Device.interfaceSetAdd(self, iface)
Esempio n. 3
0
	def _prepareDev(self):
		#assign host
		self._assignHost()
		host = self.host
		
		self._assignTemplate()
		
		self._assignBridges()
		
		if not self.getVmid():
			self.host.takeId("vmid", self.setVmid)
			fault.check(self.getVmid(), "No free vmid")
		vmid = self.getVmid()
		
		state = vzctl.getState(host, vmid)
		if state == State.STARTED:
			vzctl.stop(host, vmid)
			state = vzctl.getState(host, vmid)
		if state == State.PREPARED:
			vzctl.destroy(host, vmid)
			state = vzctl.getState(host, vmid)
		assert state == State.CREATED
		
		#nothing happened until here
		
		vzctl.create(host, vmid, self.getTemplate())
		try:
			self._configureVm()
			for iface in self.interfaceSetAll():
				vzctl.addInterface(host, vmid, iface.name)
			self.state = State.PREPARED
			self.save()
		except:
			try:
				vzctl.destroy(host, vmid)
			except:
				pass
			raise
Esempio n. 4
0
	def _createInterfaces(self):
		for iface in self.interfaceSetAll():
			vzctl.addInterface(self.host, self.getVmid(), iface.name)