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()
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)
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
def _createInterfaces(self): for iface in self.interfaceSetAll(): vzctl.addInterface(self.host, self.getVmid(), iface.name)