(ext) Export logical_id info to hooks env
DISK_ID as the second part of logical_id
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
(b64) Use base64 encoding in networks' bitarrays
This is needed for GRNET'S production environment.
(snap) Snapshot support for ExtStorage
Extend existing RPC params with the snapshot name andadd allow snapshot not only for LVM but also for EXT.
(grnet) Enable -device option for old disks upon migration
Change _GenerateDeviceKVMId() to take device index as anextra argument. In case device has uuid and pci infowe return proper device id. In case idx is given we returna dummy id (e.g. hotdisk-0). Otherwise we raise an Exception....
(grnet) Remove deprecated idx slot from NIC/Disk objects
This code will run when reading old kvm runtime files createdby hot-plugging related code back in Ganeti 2.6.2
(grnet) Move disk options before nic ones in kvm command
Older versions of Ganeti did ensure that during startupdisk devices will be inserted before nic devices in PCIconfiguration space. KVM inserts devices to PCI slotsdepending on the order of command line options....
(grnet) Hotplug: cfgupgrade for deprecated fields
Add cfgupgrade so that we remove any deprecated fields hotplugimplementation used in the past.
(2.10) Introduce _UpgradeSerializedRuntime() method
This method is invoked during _AnalizeSerializedRuntime() and ismeant to modify runtime files in the way cfgupgrade does forconfig.data. This could remove deprecated fields, change theformat of the file, add/remove sections, etc....
(2.10) Export NIC's UUID and name to network scripts
In case of kvm None values are not allowed in env dictso we have to add name only if not None.
In case of Xen since we are writing on a file thatis going to be sourced we should not add INTERFACE_NAME=None....
(2.10) Use HooksDict() to export network options in Xen
Remove duplicate code that exports network options to environmentvariables.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Thomas Thrainer <thomasth@google.com>...
(2.10) Export tags via GetTags() to network scripts
Use GetTags() instance method in order to export instance tagsto NIC configuration scripts and files of kvm and xen hypervisors.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>Signed-off-by: Thomas Thrainer <thomasth@google.com>...
(2.10) Fix net-common script in case of routed mode
setup_route should run in case or routed mode and notopenvswitch.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Thomas Thrainer <thomasth@google.com>
(2.10) Introduce --hotplug-if-possible option
This will be useful for an external entity using RAPI thatwants to modify devices of instances.
The common use case for that is:"I want to add a NIC/disk to an instance. If it is runningthen try to hotplug the device. If not, then just add it to config."...
(2.10) RAPI: Make use of request_body in Reboot/Remove
Until now, the shutdown_timeout parameter could only be passed toShutdownInstance() inside kwargs, causing it to be included in therequest body. Based on that, extend RebootInstance() andRemoveInstance() so that they can take extra arguments (e.g....
(2.10) Allow instances to obtain externally reserved IPs
The administrator should be able to assign an externally reserved IPto a Ganeti instance manually, if desired. Currently this is notsupported. External reservations should act as holes in the pool and...
(2.10) RAPI: Pass depends body arg (if any) to opcode
Most rlib2 classes override the default _GetDefaultData() method withcustom methods that parse a request's body and query args and return a(body, specific_static) tuple eventually passed to FillOpCode()....
(2.10) Mark cluster's IPs as externally reserved
Currently, upon network creation, nodes' and master's IPsare reserved in the pool.
This leads to pool reservations ('X' in map) that cannot be changedafterwards, although they may need to (e.g. in case of node...
(2.10) Check if hotplug is supported in CheckPrereq
Introduce new RPC hotplug_supported that invokes the correspondinghypervisor's method which checks if hotplug is generallysupported. Call this RPC early in CheckPrereq() and abort ifhotplug is not supported. Currently only KVM hypervisor with...
(2.10) SimpleRetry on BlockDev.Remove()
Sometimes, upon disk removal, corresponding file descriptorsare kept briefly open by various processes (hypervisor, blkid, etc.).With this patch, we retry several times before raising the appropriateerror, thus making disk removal more robust against those corner cases....
(2.10) drive_del after device_del in disk hot-remove
This is needed so that qemu process really releases thecorresponding file descriptor and thus we can dmsetup/lvremovethe device without errors.
(2.10) Minor changes regarding hotplug support
(2.10) Fix in RPC
Use _SingleDiskDictDP() instead of _ObjectDict() for serializinga disk.
In stable-2.10 rpc methods take node as first argument....
(2.10) block_devices -> kvm_disks renaming
and a couple more styple fixes.block_devices are misleading so rename them to kvm_disk (just like kvm_nics)
(2.10) Make hotplug related method raise HotplugError
Hotplug is not supported by default and thus we raiseHotplugError() for hotplug related methods.If a hypervisor wants to support it, we must override VerifyHotplugSupport()and implement the Hot* method....
(2.10) Some fixes in _GenerateKVMBlockDevicesOptions()
(2.10) Add unittests for Hotplug support
Try base InstanceSetParams tests that modify instance'sdevices with hotplug=True.
Add some unittests for kvm hypervisor regarding runtime filemanipulation. Based on a sample runtime file search forspecific disk and nic entries based on their UUID....
(2.10) Extend qa to test hotplug support
Only if default hypervisor is KVM try all hotplug related actions.
(2.10) Hotplug: Update manpages and NEWS
Add --hotplug entry in gnt-instance manpage.Add NEWS entry for hotplug support.In both cases mention that hotplug is only supported forthe KVM Hypervisor version >= 1.0.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>...
(2.10) Hotplug: client support
Add --hotplug option. Only used in OpInstanceSetParams.If this is omitted, modifications become effective after reboot.
Ask user confirmation in case NIC modify + hotplug because it willbe done via removing old NIC (and the corresponding tap) and adding...
(fix) SetDiskID() before blockdev_assemble()
Before blockdev_assemble we call SetDiskID() in order to fill upphysical_id of disk needed by bdev.Assemble and eventually byconstructor of each BlockDev.
This is not needed in 2.10 since physical_id has become deprecated....
(2.10) Return link_name in blockdev_assemble rpc
Until now this RPC returned only dev_path. Since we use it inhotplug we have to know the simlink of the device so that wepass it to the corresponding hypervisor command and include itin block_devices entry in runtime files....
(2.10) Hotplug: cmdlib support
Hotplugging is done by functions invoked by ApplyContainerMods(). Inorder hotplugging to take place the --hotplug option must be passedotherwise the modifications will take place after reboot.
NIC hotplug supports add, remove and modify. The modify is done by removing...
(2.10) Hotplug: rpc support
Introduce new RPC that eventually invoke hypervisor specifichotplug functions. In order to be generic it has the followingarguments: device type, action, device, extra info, seq.Device type can be NIC or DISK, action can be ADD, REMOVE,...
(2.10) Introduce hotplug methods (hypervisor inteface)
4 new methods: HotAddDevice, HotDelDevice, HotModDevice, HotplugSupportedAll these are the hypervisor interface with the backend.In general they read current runtime info, do the actual hotplugand update the runtime file....
(2.10) Extract socket related code from QmpMonitor class
Separate unix socket related code from QmpMonitor class andmake the latter extend the newly introduced one: MonitorSocket
(2.10) Helper methods that check for hotplug support
Hotplug is currently not supported for:
- KVM < 1.0 - existing devices in the cluster - python-fdsend module is not installed (NIC hotplug) - chroot (Disk hotplug) - security mode other than None (Disk hotplug)...
(2.10) Use -device with pci info if possible
Extend kvm_cmd with -device option for the case of paravirualDisks and NICs.
(2.10) Helper methods for PCI slots and device ids
Device naming:QEMU monitor expects devices to be uniquely named. Device ids derivefrom the following function:kvm_devid = <device_type>-<part of uuid>-pci-<pci_slot>Device ids must be reproduce-able when we want to remove them....
(fix) Remove uri slot from block_devices
In stable-2.10 we have userspace access mode for rbd. Backendcalculates uri along with link and dev_path. Thus we havethree items in block_devices and kvm_disks tuples.
We this patch we remove the third value....
(2.10) Prepare kvm options to support -device for disks
Newer kvm version support -device driver,... option where availabledrivers can be found by running kvm -device ? command. Currentlyganeti uses `if` property of driver to define the disk type to use...
(2.10) Prepare block_devices runtime entry
With this patch we add another entry in runtime files along withkvm_cmd, kvm_nics, and hvparams. block_devices that used to beencapsulated inside kvm_cmd, live now separately just like nics dobut in tupples of (L{objects.Disk}, dev_path)....
(2.10) Introduce _GenerateKVMBlockDevicesOptions()
Simply move logic that generates block device relatedoptions out of _GenerateKVMRuntime().
NOTE: Back-port corresponding commit from stable-2.10
- 2.8 does not have user-space access support for rbd
(2.10) Hotplug: objects and constants additions
Add pci slot in NIC/Disk objects. This slot will be used onlyby hypervisor code. Currently only KVM will use it and store ittemporarily in runtime files.Add HOTPLUG_* constants to define device types an hotplug actions....
(2.9) Document vif-ganeti usage
In order to be able to use it as vif-script one has tocreate a symbolic link inside /etc/xen/scripts pointingto /usr/lib/ganeti/vif-ganeti and then add is a hypervisorparameter.
(2.9) Refactor NIC configuration scripts
Add new script vif-ganeti that could be used instead ofdefault vif-bridge in order NIC customization can be moreflexible.
Extract common code from kvm-ifup and insert it in a newfile net-common that is being sourced by kvm-ifup and...
(2.9) Make NIC setup more flexible in case of Xen
For every NIC write down a file that contains NIC'sinfo (MAC, mode, link, network details), that canbe sourced by any vif script. The file location is:/var/run/ganeti/xen-hypervisor/nic/<domname>/<nicidx>....
(2.8r) Workaround for Issue 621
Upon LUNetworkDisconnect() and LUNetworkConnect() try to acquireall cluster's instances.
By that _LS_ACQUIRE_ALL acquire mode is set and not_LS_ACQUIRE_EXACT and thus the deleted lock does cause any problem.
NOTE: This workaround is not merged upstream. They prefer to have...
(debian) Bump new upstream version
(debian) Add new debian/changelog section
(debian) Change source package to snf-ganeti
..and make ganeti2 dummy package depend on snf-ganeti.
(debian) Remove debian patch that cannot apply
Since we run autogen.sh inside debian rules Makefile.in is notincluded in original source tree and thus a debian patch thatchanges this file cannot apply.
(debian) ganeti -> snf-ganeti in debian/rules
Override dh_install init, cron, logrotate with --name option.
Additional changes: - Let ganeti run as root - Do not enable restricted commands and do not require specific user/group.
(debian) Run ./autogen.sh before configure
This is needed so that packaging can be done by using officialsrc tree found on git repo.
Official debian packages provide in orig tarball the filesthat get generated by automake, autoconf, and aclocal:
(debian) Rename ganeti.* debian files to snf-ganeti.*
Change genscript.py to search for those files
(debian) ganeti -> snf-ganeti in debian/control
snf-ganeti Provides, Replaces, Conflicts ganetiganeti-haskell replaces snf-ganeti - /usr/share/man/man8/ganeti-confd.8.gz was in Ganeti 2.6 but now is provided by ganeti-haskellganeti still replaces deprecated ganeti2 package...
(debian) Remove debian patch that does not apply on 2.8
(debian) Import debian files from wheezy-backports
(debian) Add vcs-version file
Add aliases for nodes
This patch adds a single alias for the secondary_ip property of thenode.
Signed-off-by: Hrvoje Ribicic <riba@google.com>Reviewed-by: Thomas Thrainer <thomasth@google.com>
Add the RAPI symmetry test for nodes
This patch adds the RAPI symmetry test for nodes.
Add renaming of group custom ndparams, ipolicy, diskparams
This patch adds the ability to set the group-specific parameters in thesame way they are described when returned by the info command - withthe "custom_" prefix.
Signed-off-by: Hrvoje Ribicic <riba@google.com>...
Add test for group custom parameter renaming
This patch introduces a simple test checking if a custom_* parameter isrenamed and passed to the opcode correctly.
Extend RAPI symmetry tests with RAPI-only aliases
This patch allows users to specify specific parameter aliases enabledby RAPI, and test whether their value can be retrieved and set.
Add RAPI symmetry tests for groups
This patch invokes the RAPI symmetry tests for groups.
Add renaming of instance custom params
Much like the groups before, this patch allows custom_* params to besubmitted under the same name they can be retrieved as in the infocall.
Add unittests for instance modify parameter renaming
The get/put QA test could be used for instances as well, but unlikeother objects, instances have a very large number of discrepancies andmissing fields. To avoid enumerating every discrepancy and testing...
Sort imports
This patch does some housecleaning and sorts imports.
Provide tests for GET/PUT symmetry
The RAPI should allow all the parameters of objects to be gotten andset under the same names. This patch adds a test that checks if this isthe case by using the underlying opcode arguments.
Add support for value aliases to RAPI
This patch extends the metaclass used to generate RAPI handlers toallow creating aliases of certain values returned by GET methods.
Add aliases for cluster parameters
This patch adds aliases for two cluster parameters.
Fix failing cluster query test
This patch makes a mock use a dictionary instead of an object, allowingalias finding to work on it.
Add cluster RAPI symmetry test
This patch adds the test for RAPI symmetry at the cluster level. Thereare some fields that have not been exposed yet, and their absence wasnoted.
Allow choice of HTTP method for modification
The original design of the RAPI symmetry test assumed that all RAPIcalls that modify parameters use the PUT method. This is not true inthe case of the node parameter modification method, and while thatitself should be addressed or at least examined, the test method has...
Add reason parameter to RAPI client functions
Only the functions for starting, stopping and rebooting a VM had a reasonparameter. Now, all the RAPI client functions generating opcodes do.
Also, one test is expanded to verify that a RAPI request with both body and...
Also consider filter fields for deciding if using live data
If the query fields don't require live data, we use the shortcutand don't request live data. However, we cannot take this shortcutif the fields the filter depends on requires live data.
Signed-off-by: Klaus Aehlig <aehlig@google.com>...
Document the python-fdsend dependency
KVM NIC hotplugging requires python-fdsend to be installed, but thisis only reported in the hotplug design document. We add mentions inINSTALL and NEWS.
Signed-off-by: Apollon Oikonomopoulos <apoikos@gmail.com>Signed-off-by: Thomas Thrainer <thomasth@google.com>...
Merge branch 'stable-2.9' into stable-2.10
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Thomas Thrainer <thomasth@google.com>
Make watcher submit queries low priority
Make the watcher collect its data using low-priority jobs,to avoid blocking user/admin jobs. Note that repair jobs arestill submitted normal priority. Fixes issue 772.
Bump version to 2.10.2
Change the release version to 2.10.2 in configure.ac.
Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Helga Velroyen <helgav@google.com>
Prepare NEWS file for 2.10.2
Mention all relevant changes / fixes which go into this release.
Allow releases scheduled 5 days in advance
With the really slow QA's it makes sense to schedule releases more than3 days in advance, like in this case where the release on Monday isscheduled on Thursday.
Signed-off-by: Thomas Thrainer <thomasth@google.com>...
Merge branch 'stable-2.8' into stable-2.9
Include qa/patch in Makefile
Fix the build by including the qa/patch directory in Makefile.am.
Handle empty patches better
The previous patch loading utilities omitted empty patches, as theywere thought to be of no significance, and when no patches were used,the import and therefore dependency should not be used. If a user hasadded an empty patch file, and made an entry in the order file, the QA...
Move message formatting functions to separate file
The formatting functions in qa_utils.py cannot be used by modulesimported there, such as qa_config. This patch factors the functioncalls into a separate file. Also reorders imports in touched files.
Add optional ordering of QA patch files
To explicitly specify the order of patches executed, the QA provides an"order" file. It can contain names of patches that will be executedfirst, and in the order listed, before all the other patches that stillfollow an alphabetical order....
Allow multiple QA patches
This patch allows support for multiple patches placed in the "patch" directory, which are executed in alphabetical order.
Signed-off-by: Hrvoje Ribicic <riba@google.com>Reviewed-by: Michele Tartara <mtartara@google.com>
Refactor current patching code
Fix conflict between virtio + spice or soundhw
With regard to PCI slot occupied by a KVM instance we haveobserved the following:
1) Slot 0 will always be Host bridge.2) Slot 1 will always be ISA bridge.3) Slot 2 will always be VGA controller (even with -display none)....
Fix bitarray ops wrt PCI slots
Introduce new method `_GetFreeSlot()` responsible only for bitarrayoperations. It fixes search in case of bitarray is either '0000..'or '1111..'.
Use it instead of `_UpdatePCISlots()` and in `_GetFreePCISlot()`.
Fix error introduced during merge
A parameter was lost while resolving a conflict in the signature of a function.
Signed-off-by: Michele Tartara <mtartara@google.com>Reviewed-by: Klaus Aehlig <aehlig@google.com>
gnt-cluster copyfile: accept relative paths
If, on the command line, the argument to gnt-cluster copyfile isa relative path, consider this a shorthand for the correspondingabsolute path.
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Michele Tartara <mtartara@google.com>
Merge branch 'origin/stable-2.8' into stable-2.9
Improve RAPI detection of the watcher
If the watcher is not allowed to access RAPI, it doesn't mean that it is deadand needs to be restarted.
Fixes Issue 752.
Signed-off-by: Michele Tartara <mtartara@google.com>Reviewed-by: Hrvoje Ribicic <riba@google.com>
Add patching QA configuration files on buildbots
Enable a timeout for instance shutdown
Add the timeout parameter to the StopInstance function of the hypervisor baseclass and to all its implementations.
Also, change the tests as required by this change.
Signed-off-by: Michele Tartara <mtartara@google.com>...
Allow KVM commands to have a timeout
Modify the function that sends commands to the KVM monitor so that it ispossible to specify an optional timeout after which the command is killed.
Allow xen commands to have a timeout
Modify the function that runs Xen commands so that it is possible to specify anoptional timeout after which the command is killed.
« Previous 1 2 3 4 5 ... 120 Next » (201-300/11958) | Per page: 25, 50, 100
Also available in: Atom