Bump new upstream version
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Merge branch 'stable-2.10-bpo2' into debian-2.10
Fix NIC env in case seq is 0
Commit bd770b4 introduced a bug where the INTERFACE_INDEX was notexported in scripts' environmenti if NIC's seq was 0. Fix this.
Add --dry-run option to gnt-cluster add-tags
This will be useful for checking snf-ganeti-eventd/snf-dispatchersanity. By running:
snf-ganeti-eventd should send a message that snf-dispatcher willreceive....
Fix tcpudp_port_pool in cfgupgrade
Use --fix-pool to fix tcpudp_port_pool and highest_used_portin case they are not in sync.
(ext) Pass disk geometry in kvm command
Currently we allow this feature only for ext templates thatallow arbitrary params per disk. If both 'heads' and 'secs'params are given then 'cyls' is calculated from the disk size.
TODO: export these params in IDISK_PARAMS since the can be...
(ext) Override disk_cache hvp with disk param in ext
This is a hack that brings disk_cache hypervisor paramat disk level. This is supported only for disks of exttemplate that allow arbitrary params. The correspondingparam that should be used is 'cache'....
(ext) Do not remove disks if --keep-disks and DT_EXT
(grnet) Remove deprecated physical_id if found
In 2.8 disks have been added to runtime files for hotplug support.Back then physical_id slot existed. Remove this slot in the earlystage of Disk.FromDict() otherwise an exception will be raised.
(grnet) Upgrade runtime files
Each disk entry should include (disk dict, link name, disk uri).
When hotplug was backported in 2.8 access uri was not supported.Thus the relevant entry for each disk entry might be missing fromthe runtime files. Add an empty string in this case....
(b64) Use base64 encoding in networks' bitarrays
This is needed for GRNET'S production environment.
(snap) LUInstanceSnapshot for the ext disk template
Add support for snapshotting disks of an instance. This willonly work for the ext disk template. Example:
gnt-instance snapshot --disk <ident>:snapshot_name=snap inst1
This will take a snapshot of the disk identified by <ident> (e.g...
Revert "Fix query mechanism wrt networks and vlans"
Synnefo 0.15.2 still expects only mode and link and not vlanin group_list field of the GetNetwork() query response.
Until it gets fixed we do not return the vlan netparam.
This reverts commit b6afa809538b9f6dd80953362e99a129147bf634.
ifdown: Use new methods to unconfigure NICs
We unconfigure a NIC (invoke ifdown script) during:
In case of migration we do only a local cleanup.
ifdown: Use new methods to create NIC files
NIC files containing corresponding tap name are created during:
For compatibility we continue creating indexed based NIC files alongwith uuid based ones.
ifdown: Introduce _UnconfigureNIC() helper method
This method takes a NIC object, creates the proper invironmentand invokes ifdown script.
It takes an extra boolean argument only_local which is passedto ifdown script as the second positional argument. It states...
ifdown: Make Read/LoadKVMRuntime classmethods
.. and make LoadKVMRuntime() take instance_name rather than thewhole instance object as first argument. This will be needed duringinstance cleanup where we the instance object is not available.
We are going to retrieve current NIC configuration from the runtime...
ifdown: Extract env creation from ConfigureNic()
Introduce new helper method that creates the environment passedto ifup/ifdown scripts. Instance tags and NIC index will be passedonly during ifup script since only then are available and valid.Both can change until a NIC gets removed and thus will not be passed...
ifdown: Introduce helper methods
Until now Ganeti upon TAP creation, a NIC file was createdunder $RUNDIR/kvm-hypervisor/nic/<instance_name>/<nic_index>
Since NICs have obtained a UUID, we are going to create anotherfile named after its UUID. This will be needed during ifdown...
ifdown: Change kvm-if* scripts
ifdown: Add example kvm-ifdown script
This script currently does nothing more that calling user theuser provided one if it exists.
User provided script should be placed under /etc/ganeti/and named `ganeti-kvm-ifdown`.
(2.13) Fix Xen's NIC file
Xen exports all environment variables to a file so that anexternal script (see vif_script hvparam) can source it.In case of multiple values per variable (e.g. TAGS), weshould use XXX="a b c" instead of XXX=a b c. Fix this.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>...
debian: Add new debian/changelog section
debian: ganeti.* -> snf-ganeti.* debian files
Change genscript.py to search for those files
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: ganeti -> snf-ganeti in control file
Change source and top binary package to snf-ganeti.
Move ganeti-instance-debootstrap to Suggests.
debian: Add vcs-version file
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: Remove debian patches
debian: Import debian files from backports
(2.13) kvm: Delegate socket handling to monitor module
Introduce @_ensure_connection decorator that properly handlesthe socket connection (i.e. connect, close) and propagatesany exceptions raised in the decorated method.
In general @_ensure_connection wraps external methods....
(2.13) kvm: Use vhostfds obtained by OpenTap
During instance startup, if vhost_net is True, OpenTap() opens/dev/vhost-net device to obtain some fds. These fds were neverused. This patch adds the vhostsfd option to the --netdev option.
(2.13) hotplug: Retry VerifyHotplugCommand up to 5 times
It seems that QMP upon device_del returns without QEMU havingcompletely removed the device from the PCI bus. This probably has todo PCI bus hotplug handlers (DeviceState->BusState->hotplug_handler)....
(2.13) Update hotplug design doc
..to reflect the transition from HMP to QMP during hotplugactions.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>Reviewed-by: Hrvoje Ribicic <riba@google.com>
(2.13) qmp: Log qmp commands and responses
Add debug logging for all qmp commands and responses, except forquery-commands, and qmp_capabilities, that are executed uponinitialization of QmpConnection (and their output is not reallyuseful).
(2.13) hotplug: Is not supported for QEMU < 1.7
Change the bulk check of whether hotplug is supported or not.Only versions >= 1.7 support the required qmp commands.
(2.13) hotplug: Remove unused code after refacoring
All HMP related code gets removed since everything is done via QMP.
(2.13) hotplug: Use QMP during HotDelDevice
During device hot-del use new QMP helper methods: HotDelDisk() fordisk hotplug and HotDelNic() for NIC hotplug.
(2.13) hotplug: Use QMP during HotAddDevice
During device hot-add use new QMP helper methods: GetFreePCISlot()for allocating a free PCI slot, HotAddDisk() for disk hotplug andHotAddNic() for NIC hotplug.
(2.13) kvm: Use the new interface during instance start
Use new OpenTap() and _GetNetworkDeviceFeatures() interfacesduring _ExecuteKVMRuntime().
(2.13) monitor: Extend HotAddNic() for advanced features
In case vhost is enabled we have to pass the vhostfds as returned byOpenTap() via SCM_RIGHTS prior issuing netdev_add command with vhostand vhostfds extra arguments.
In case multiqueue is enabled we add the mq and vectors extra...
(2.13) kvm: Refactor _GetNetworkDeviceFeatures() helper
Make _GetNetworkDeviceFeatures() return a tuple of (dict, str, str).The first item should be a dictionary including the enablednetdev/device features (vhost, vnet_hdr, mq). The other two arestrings to be appended to --netdev and --device qemu options....
(2.13) netdev: Refactor OpenTap for future use
Make OpenTap() helper method to take a dictionary with the featuresthat should be enabled or not. Currently these features are: vhost,vnet_hdr, multiqueue.
In case vhost is enabled, along with the tapfds we return a list of...
(2.13) hotplug: Use QMP in VerifyHotplugCommand
This used to check whether a specific hotplug action has succeeded.Use HasPCIDevice() qmp method to verify if the requested deviceexists or not.
(2.13) hotplug: Use QMP in VerifyHotplugSupport
This used to check whether a specific hotplug action is supported.Since everything is about to be done via qmp commands delegate thesechecks to QmpConnection class.
(2.13) monitor: Close socket fd if already connected
We close the socket fd only if we have an active connection.We hide this logic in the public close() method, and allthe actions are moved to a private method.
(2.13) kvm: New _with_qmp decorator
The decorator takes the hypervisor and the instance object as passedto all hotplug related commands and ensures a valid QmpConnection()object is found in hypervisor's qmp attribute.
This decorator is responsible for all actions related to the...
(2.13) qmp: Add Disk hotplugging related methods
HotAddDisk() uses blockdev-add and device_add after getting thedrive fd and passing it with the AddFd() helper method. Please notethat in case of userspace access mode this step will be omitted.
HotDelDisk() uses device_del. Please note that drive_del is...
(2.13) qmp: Add NIC hotplugging related methods
HotAddNic() uses netdev_add and device_add after passing the tapfdto the running process with the GetFd() helper method.
HotDelNic() uses device_del and netdev_del qmp commands.
(2.13) qmp: Helper methods for parsing query-pci output
Introduce GetPCIDevices() that gets the devices of the first PCI busof a running instance, HasPCIDevice() that will be used to verifyif a specific device is correctly hotplugged or not, andGetFreePCISlot() that will be used during hot-add to find the first...
(2.13) qmp: Add helper methods to verify hotplug support
Introduce CheckDiskHotAddSupport() and CheckNicHotAddSupport()helper methods that will be used to verify hotplug support.Both check for fdsend python module and if the required qmpcommands are supported....
(2.13) qmp: Add GetFd() wrapper around getfd command
getfd qmp command will be used to pass an fd using SCM_RIGHTSand name it properly so that NIC hot-add can take place.
(2.13) qmp: Refactor of add-fd and remove-fd commands
Instead of sending the qmp command along with the SCM_RIGHTS controlmessage we send just a blank (idea taken from qemu iotests). Then weinvoke the corresponding command (add-fd, remove-fd) with theregular way (qmp.Execute). Since the qmp connection does not close...
(2.13) utils: Introduce GetFreeSlot() function
Since this is a generic function that implements bitarray logic moveit from kvm to utils so that it can be easily used across all modules.
Make it raise errors.GenericError if it cannot find a free slot in...
(2.13) kvm: Minor refactor of MonitorSocket
Create socket upon connect(), keep the status of connection(self._connected = False) in close(), make existing connect()method protected and let connect() act as a reconnect method.
(2.13) Let drbd disks resync during cluster verify
Commit 9b0e86e issues an error during cluster verify if the statusof DRBD is degraded and if the local disk is not UpToDate.
Still in case of a newly created instance or a newly attached disk with--no-wait-for-sync, if a cluster verify runs it will report errors...
(2.12) Gen nic_type related opts inside _WriteNicConfig()
The xen-hvm hypervisor has two extra hvparams concerning NICS;nic_type, and vif_type. Let _WriteNicConfig() calculate all neededextra options for the instance's NICs based on its hvparams.
(2.12) Fix NIC options in Xen's config files
Commit e32cc48 added wrongly an extra comma between mac andtype in NIC options. Fix this.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Klaus Aehlig <aehlig@google.com>
(2.12) Refactor NIC configuration for Xen
Extract common code between the PVM and HVM Xen hypervisors regardingNIC configuration.
Signed-off-by: Jose A. Lopes <jabolopes@google.com>Reviewed-by: Hrvoje Ribicic <riba@google.com>
(2.12) Move 'ConfigureNIC' to 'hv_base'
... so it can be reused by the Xen hypervisor.
Signed-off-by: Jose A. Lopes <jabolopes@google.com>Reviewed-by: Hrvoje Ribicic <riba@google.com>Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
(2.13) Fix size handling in ExtStorage
Commit 9504487 introduced the Snapshot() method in ExtStrorage,where the snap_size was erroneously exported to the externalscript's environment without making it a string. This patch fixesthat in the following manner: The size/snap_size/grow of a disk are...
(2.13) Check if chroot/SM is used without add-fd support
..and raise HotplugError inside VerifyHotplugSupport(). Thisway disk hot-add is not supported only if chroot or user/poolsecurity model is used AND QMP does not support add-fd command(QEMU versions < 1.7) OR fdsend python module is missing....
(2.13) Support disk hot-add even with chroot or SM
Up until now we did not allow disk hot-add in case of chrootor pool/user security model because the running QEMU processdoes not have access permissions on the disk link.
This patch slightly changes the way we hot-add a disk; before...
(2.13) Some minor kvm refactoring wrt hotplug
Make _CallHotplugCommands() a classmethod, rename _PassTapFd()to _HMPPassFd() and make it a wrapper for MonitorSocket's GetFd().
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>Reviewed-by: Helga Velroyen <helgav@google.com>
(2.13) Add helper methods for passing fds via SCM_RIGHTS
..through qemu monitor sockets using fdsend.
For the hmp the `get-fd` command is used while for the qmp the`add-fd` command is used, where the fd is added to the firstavailable fdset. Currently the first one is used during NIC hot-add...
(2.13) Let the snapshot script be optional
..for the ExtStorage providers. This way we do not breakcompatibility with existing providers that do not implementsuch a functionality.
In case an action that is not supported is requested raisethe proper exception....
(2.13) Update docs wrt snapshot support for ext
Mention the new snapshot script and the new exported variablesin both docs and man pages.
(2.13) Add snap_name/size to the blockdev_snapshot RPC
Currently, this remains unused, until we add support forexplicitly snapshotting instance disks.
(2.13) Support Snapshot() for the ExtStorage interface
The `snapshot` script is added to the interface and the new variablesVOL_SNAPSHOT_NAME and VOL_SNAPSHOT_SIZE are exported to theenvironment.
(2.13) Introduce Snapshot() method at bdev
Currently the Snapshot() method is used only during`gnt-backup export` and is only implemented in the LogicalVolume()class.
This patch makes this method a BlockDev() method, changes itssignature so that it can take both snap_size and snap_name and...
(2.13) Export logical_id info to hooks env
..and let utils compute the hooks environment related to disks.
Until now, the only exported information regarding disks in hookscontext was their size, mode, name and uuid.
With this patch, depending on the disk template, we export the info...
(2.13) Allow NICs with routed mode and no IP
..in case attached to a network.
This allows us to define an IPv6 only network (currently with adummy IPv4 subnet) with connectivity mode 'routed' and let a NICinside this network have only an IPv6 address, e.g. an...
(2.13) Pass the access parameter to ExtStorage template
Add the ExtStorage template to the set of templates that accept the'access' parameter. The default 'access' of the node-group forExtStorage devices will be 'kernelspace'.
Update the man page for gnt-instance to state that ExtStorage templates...
(2.13) Handle IDISK_ACCESS parameter in ComputeDisks
The IDISK_ACCESS disk parameter was not handled in the 'ComputeDisks'function, thus the 'access' parameter was ignored during the instancecreation. This patch fixes this and also fixes a typo in'_VerifyDiskModification'....
(2.13) Implement GetUserspaceAccessUri for ExtStorage
Allow ExtStorage devices to support userspace access.The 'attach' script of an ExtStorage provider is now allowed to returnmore than one line. The first line will contain as always the blockdevice path. Each one of the extra lines will contain a URI to be used...
(2.13) Move ExtStorage code out from bdev
Move the ExtStorage related code out from bdev to a newfile called 'extstorage.py'.
Signed-off-by: Ilias Tsitsimpis <iliastsi@grnet.gr>Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Thomas Thrainer <thomasth@google.com>...
(2.13) Design document for ExtStorage userspace access
This patch extends the 'shared-storage' design document and morespecifically the ExtStorage Interface to support userspace disk access.
Signed-off-by: Ilias Tsitsimpis <iliastsi@grnet.gr>Signed-off-by: Thomas Thrainer <thomasth@google.com>...
(2.13) Add 'access' disk option to man pages
Update 'gnt-instance' man page and document the 'access' disk option.Also fix a typo in 'metavg' disk parameter.
Signed-off-by: Ilias Tsitsimpis <iliastsi@grnet.gr>Signed-off-by: Klaus Aehlig <aehlig@google.com>...
(2.13) Make 'access' an optional disk parameter
This patch makes 'access' an optional disk parameter just likespindles, mode, name, vg and metavg. This option can only be set to'kernelspace' or 'userspace'. When 'userspace' is used, the instancewill access this disk directly without going through a block device....
(2.12) Add support for KVM multiqueue virtio-net
This patch adds support for multiqueue virtio-net1 which sets a number ofqueues (file descriptors) from virtio_net_queues parameter for tap deviceto parallelize packets sending or receiving. Tap devices will be created with...
(2.12) Add DiskParams to Disk object
The 'DiskParams' slot was missing from Haskell's Disk objects.Since Wconfd is now responsible for writting the config file this wascausing the 'params' slot to not be written in the config file.
Signed-off-by: Ilias Tsitsimpis <iliastsi@grnet.gr>...
(2.12) Rename DiskParams to GroupDiskParams
DiskParams was used for the cluster/group disk parameters type. Thispatch renames it to GroupDiskParams and uses the DiskParams type forthe parameters of one single Disk object.
(2.12) QMP: make QmpConnection act as a context manager
This will allow automatic connection and socket cleanup on commandcompletion.
We also repeat the Qmp tests using the context manager. For this to befeasible, we move the test scenario to class variables and modify...
(2.12) QMP: always return the command result
According to the QEMU Machine Protocol Specification, the messages sentby QMP as a response to a command can be of two types: either an errormessage (identified by the "error" key), or a success message(identified by the "return" key)....
(2.12) QMP: keep greeting message version info
QMP will always report the QEMU version and package-specific string inthe greeting message, as per the QEMU Machine Protocol Specification. Westore this information and make it available to users of the monitor....
(2.12) QMP: test supported_commands
Add test for supported_commands.
Signed-off-by: Apollon Oikonomopoulos <apoikos@gmail.com>Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Thomas Thrainer <thomasth@google.com>
(2.12) QMP: raise exception on unsupported QMP command
Raise a special exception, qmp.QmpCommandNotSupported, whenever anunsupported QMP command is about to be executed. This is intended toassist in falling back to the human monitor for hotplug operations. As...
(2.12) QMP: fetch supported commands on connect
Store the set of supported QMP commands inQmpConnection.supported_commands. This allows selective error handlingto give the caller a chance to downgrade to HMP when unsupportedcommands are encountered.
The `query-commands` QMP command used to implement this, appeared in...
(2.12) KVM: move tap control functions to a submodule
Move all tap-related functionality to the hv_kvm.netdev submodule.We rename _OpenTap to OpenTap, since it will now be used as a publicfunction.
Also, change the hv_kvm tests to import the new code....
(2.12) Convert QmpMessage to a new-style class
Signed-off-by: Apollon Oikonomopoulos <apoikos@gmail.com>Reviewed-by: Hrvoje Ribicic <riba@google.com>
(2.12) KVM: move monitor & QMP classes to a submodule
We move the HMP and QMP classes to the hv_kvm.monitor module.
Signed-off-by: Apollon Oikonomopoulos <apoikos@gmail.com>Reviewed-by: Hrvoje Ribicic <riba@google.com>Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
(2.12) Convert hv_kvm to a package
Weighing in at 3k LOC, it is probably time to split hv_kvm into anumber of modules before adding new code.
(2.12) kvm: Add migration capabilities as an hvparam
Latest QEMU versions support various migration capabilities. Eachcan be enabled/disabled with 'migrate_set_capability' monitorcommand.
Version 1.7.0 defines x-rdma-pin-all, auto-converge, zero-blocks,...
(2.12) Add TAP interface name as argument in '_OpenTap'
This is necessary in order to create TAP interfaces for thecommunication mechanism, which are named 'gnt.com.%d', where '%d' is aunique number within a given node.
Signed-off-by: Jose A. Lopes <jabolopes@google.com>...
(2.12) Rename 'CdromOption' to '_CdromOption'
... because it is a protected definition.
Signed-off-by: Jose A. Lopes <jabolopes@google.com>Reviewed-by: Michele Tartara <mtartara@google.com>Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
(2.12) Fix KVM cdrom image URL in the second cdrom drive
(2.12) kvm: check that the ISO image is there if it's a URL
Perform a simple urllib2 check on ISO images specified as URL beforeinstance start, so as to work around qemu bug #597575 [1].
[1] https://bugs.launchpad.net/qemu/+bug/597575
Signed-off-by: Apollon Oikonomopoulos <apollon@noc.grnet.gr>...
(2.12) Allow KVM to boot from HTTP
New versions of KVM support booting from HTTP-hosted ISO images, vialibcurl. This patch adds a proper check to allow defining either a sane,absolute path or an HTTP URL as an iso image path.
Remove "format=raw" from the cdrom device options when iso_image starts...
(2.11) Add andRestArguments to IDiskParams
In this way, we cann pass through the opaque parametersrequired for disk creation and modification in the case ofexternal storage.
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Petr Pudlak <pudlak@google.com>...
(2.11) Add function providing the canonical andRestArguments
The field catching the remaining fields will always be of the sameshape, so add a function for this to make usage simple.
1 2 3 ... 161 Next » (1-100/16089) | Per page: 25, 50, 100
Also available in: Atom