- 16 Jan, 2013 1 commit
-
-
Bernardo Dal Seno authored
This will be used for checks related to exclusive storage. Signed-off-by:
Bernardo Dal Seno <bdalseno@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- 21 Dec, 2012 1 commit
-
-
Bernardo Dal Seno authored
This makes the code more readable and easier to upgrade. bdev.LogicalVolume.GetPVInfo and the code that depends on it have been refactored to use the new class. utils.CheckVolumeGroupSize() has been moved to lib/utils/lvm.py, where more functions will be added. Signed-off-by:
Bernardo Dal Seno <bdalseno@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- 20 Dec, 2012 3 commits
-
-
Michael Hanselmann authored
Look up “NIC_MODE” only once, capitalize “NIC” in error messages. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Constantinos Venetsanopoulos authored
Add support for passing parameters to the ext template (ext-params). Take advantage of disk-params, that don't seem to make much sense in this template (ExtStorage Providers are not predefined and we don't know their needs) and use them to pass the ext-params dynamically to the template. ext-params are correlated with gnt-os-interface's os-params. All ext-params are exported to the ExtStorage Provider through it's environment, with variables prefixed with 'EXTP_' (similarly to the OS interface's 'OSP_' params). ext-params are passed via the --disk option. If the disk template is of type `ext', then any additional options passed to --disk and are not in IDISK_PARAMS are considered ext-params e.g.: gnt-instance add -t ext --disk=0:size=2G,param1=value1,param2=value2 Finally, we introduce a new IDISK_PARAM called IDISK_PROVIDER, that is mandatory for template `ext' and is used to select the desired ExtStorage Provider. This parameter is not a valid --disk option for any other template type. The IDISK_PROVIDER parameter becomes the first element of the disk's unique_id tuple e.g.: unique_id = ('sample_provider1', 'UUID.ext.diskX') Example selecting different ExtStorage Providers for each disk and passing different ext-params to them: -t ext --disk=0:size=2G,provider=sample_provider1,param1=value1 --disk=1:size=3G,provider=sample_provider2,param2=value2 Signed-off-by:
Constantinos Venetsanopoulos <cven@grnet.gr> Signed-off-by:
Iustin Pop <iustin@google.com> [iustin@google.com: small simplification in bdev code, pylint fixes] Reviewed-by:
Iustin Pop <iustin@google.com>
-
Constantinos Venetsanopoulos authored
With this commit we introduce the External Storage Interface to Ganeti, abbreviated: ExtStorage Interface. The ExtStorage Interface provides Ganeti with the ability to interact with externally connected shared storage pools, visible by all VM-capable nodes. This means that Ganeti is able to handle VM disks that reside inside a NAS/SAN or any distributed block storage provider. The ExtStorage Interface provides a clear API, heavily inspired by the gnt-os-interface API, that can be used by storage vendors or sysadmins to write simple ExtStorage Providers (correlated to gnt-os-interface's OS Definitions). Those Providers will glue externally attached shared storage with Ganeti, without the need of preprovisioned block devices on Ganeti VM-capable nodes as confined be the current `blockdev' disk template. To do so, we implement a new disk template called `ext' (of type DTS_EXT_MIRROR) that passes control to externally provided scripts (the ExtStorage Provider) for the template's basic functions: create / attach / detach / remove / grow The scripts reside under ES_SEARCH_PATH (correlated to OS_SEARCH_PATH) and only one ExtStorage Provider is supported called `ext'. The disk's logical id is the tuple ('ext', UUID.ext.diskX), where UUID is generated as in disk template `plain' and X is the disk's index. Signed-off-by:
Constantinos Venetsanopoulos <cven@grnet.gr> Signed-off-by:
Iustin Pop <iustin@google.com> [iustin@google.com: small simplification in bdev code, pylint fixes] Reviewed-by:
Iustin Pop <iustin@google.com>
-
- 18 Dec, 2012 1 commit
-
-
Bernardo Dal Seno authored
Some fixes, added more information in a few points, removed a stale (5+ year old) TODO comment. Signed-off-by:
Bernardo Dal Seno <bdalseno@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- 20 Nov, 2012 4 commits
-
-
Dimitris Aragiorgis authored
Signed-off-by:
Dimitris Aragiorgis <dimara@grnet.gr> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Dimitris Aragiorgis authored
Support: - gnt-network add --tags. - gnt-network list-tags/add-tags/remove-tags/. - gnt-network list -o +tags Signed-off-by:
Dimitris Aragiorgis <dimara@grnet.gr> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Dimitris Aragiorgis authored
If a nic has a network field then encapsulate a network object in netinfo slot for every rpc. This is needed to pass network info to scripts managing nics (kvm-vif-bridge). Introduce _BuildNetworkEnv(). Signed-off-by:
Dimitris Aragiorgis <dimara@grnet.gr> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Dimitris Aragiorgis authored
Config objects: * Introduce L{Network} with - IPv4 network field (mandatory) - IPv4 gateway, IPv6 (network/gateway), mac prefix, type (optional) * Modify existing config objects to support networks: - Add new slot 'network' to L{NIC} config object - Add new slot 'networks' to L{NodeGroup} config object Opcodes: * Introduce new opcodes for networks - add/remove/modify/query/connect/disconnect. * In InstanceCreate/InstanceSetParams add conflicts_check option Constants: * INIC_PARAM 'INIC_NETWORK' * NIC_IP_POOL for automaticaly obtain an IP from a pool * NETWORK_TYPE_PUBLIC/PRIVATE for network types Checking of network_type handled by the opcode parameter validation. Introduce _CheckCIDR*Notation() functions for network parameters validation. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> Signed-off-by:
Dimitris Aragiorgis <dimara@grnet.gr> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- 12 Sep, 2012 2 commits
-
-
Michael Hanselmann authored
objects.Disk.ComputeLDParams: Simplify structure, don't use and overwrite local variables. rpc.AnnotateDiskParams: Replace explicit loop. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
René Nussbaumer authored
As we will introduce another set of containers using the __slots__ trick we abstract away as much as possible to separate bases classes. The child classes then adapt them for their needs. This leads to less code duplication. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- 23 Aug, 2012 2 commits
-
-
Iustin Pop authored
Debian Wheezy will ship with this version, and it has many improved checks compared to 0.6, so let's: - bump version in the docs - silence some new checks that are wrong due to our indent=2 instead of 4 - fix lots of errors in the code where the indentation was wrong by 1 or 2 spaces - fix a few cases of == True, False, None and replace with 'is' - re-indent some cases where the code is OK, but pep8 complains Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
Since this is an inheritable parameter, having it as a MABYE_STRING creates only problems (per our derivation rules). We change it to STRING, with the default "", meaning no program. Note that most of the code already accepts this as valid for "no program", and some comments even say that this is the expected value. We have some other parameters like this, I'll have to investigate whether they need to be changed too. But right now I need this for the hconfd changes (it's a prerequisite for them, I forgot to send it in that patch series). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- 27 Jul, 2012 1 commit
-
-
Iustin Pop authored
It seems that 'explicitely' is wrong, and that the right form is 'explicitly'. This is just fixing the typo plus adjusting affected paragraphs. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- 19 Jul, 2012 1 commit
-
-
René Nussbaumer authored
On node groups we don't have the std field. However, the InstancePolicy object always verifies that the std value is within a given range. As we fill it up with defaults if not set (as it happens to be on node groups) and the min value is higher than the default std value (taken from constants.py) we fail. We overcome this situation by simply let the function know if we want to verify the std value at all. If we don't want to verify std, we just set it to a compliant value (min_v) and continue. We also slightly adapt the error message provided, as we don't have std values on groups. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- 18 Jul, 2012 1 commit
-
-
Iustin Pop authored
Commit cce46164 fixed upgrading from other 2.6 versions, but accidentally broke upgrading from 2.5 (disk.params was left as None, which breaks FillDict). The simplest way to handle params is to always set them to an empty dict (disregarding what they currently contain). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- 17 Jul, 2012 1 commit
-
-
René Nussbaumer authored
This bug was found during disk parameter debugging. While looking at the config some values seem present on the disk parameters, but that's not expected behaviour. This patch fixes this, and also fixes the "broken" configs automatically upon masterd restart. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- 15 May, 2012 1 commit
-
-
Iustin Pop authored
These are only used in CLI programs to parse command line options and such they do not belong in object.py (I will change them more and I don't want to add more code in objects.py). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- 14 May, 2012 1 commit
-
-
René Nussbaumer authored
This was a pretty non-obvious bug. A cluster looks sane after gnt-cluster init, however on a daemon restart the diskparameters had the default filled in. The same applies to gnt-group add. This is due to the nature that UpgradeConfig() from NodeGroups did just populate them with defaults if something was set on it. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- 10 May, 2012 5 commits
-
-
René Nussbaumer authored
Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
René Nussbaumer authored
Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
René Nussbaumer authored
Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
René Nussbaumer authored
Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
René Nussbaumer authored
Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- 18 Apr, 2012 1 commit
-
-
Michael Hanselmann authored
It was only used in one place and wasn't really necessary. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- 21 Feb, 2012 3 commits
-
-
René Nussbaumer authored
Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
Currently, we only upgrade the ndparams if they are missing completely, which creates problems if we add any new parameters on an already-upgraded cluster. Fix this by adding an UpgradeNDParams function. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Fix a typo, and cleanup the code a bit. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- 26 Jan, 2012 4 commits
-
-
Iustin Pop authored
This allows changing this value from the command line. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This adds the new parameter and changes the validation routines to handle IPOLICY_PARAMETER value as floats. Very very ugly code :(, should be redone much cleaner. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
As opposed to the initial situation, the PARAMETERS will be more than just the min/std/max ispecs. Let's rename it, before re-adding the PARAMETERS constant with a different meaning. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- 25 Jan, 2012 1 commit
-
-
Michael Hanselmann authored
With this change a new disk size can be specified when recreating disks. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- 24 Jan, 2012 1 commit
-
-
Iustin Pop authored
The ispecs (min/std/max) are different from the other ipolicy variables (disk templates for now, more in the future). As such, let's rename the ispecs-disk-templates to ipolicy-disk-templates for consistency with this logical difference. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- 23 Jan, 2012 2 commits
-
-
Constantinos Venetsanopoulos authored
Introduce the rbd disk template, which handles provisioning and management of instance disks as block devices mapped to rbd volumes on a RADOS cluster. The rbd template is of type DTS_EXT_MIRROR, meaning rbd-based instances can failover or migrate to any node, without primary-secondary limitations. Use of this template requires the rbd kernel driver and rbd tool on all VM-capable nodes, as well as an operational RADOS cluster, accessible by them. Signed-off-by:
Constantinos Venetsanopoulos <cven@grnet.gr> Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
When running from git HEAD, just initialising the ipolicy when non-existing is not good enough; we need to upgrade also missing keys, etc. This has downsides though, as it means we'll always 'rewrite' the ipolicy, which might create silent data loss for unhandled changes (e.g. key removal). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- 13 Jan, 2012 2 commits
-
-
Iustin Pop authored
As a followup from "Remove extraneous check in policy creation", there are more places where we build an ipolicy, and then manually check for its validity. This is very bad style, as it duplicates the verification code across many places. This patch removes all such explicit checks (except for one in cmdlib.py which is correct), and instead does a bit more validation in the builder functions or in the actual dedicated verification functions. It also fixes cluster init which used the wrong, non-completed ipolicy (this was not detected before as we did call check on it, but otherwise we ignored it), and fixes a too-strong assert (due to the call chain, we first create the ipolicy from cmdline params, and only then we fill it). Finally, it removes an extraneous logging.info which I forgot from debugging. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
This is a bit more complex patch, as it requires changing the assumption that all keys in the policy dict points to values that are themselves dicts. Right now we introduce an assumption that any non-dicts are lists, we'll see in the future if this holds or whether we need more complex type checking (manual, yay Python). The patch also does some trivial style changes. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- 11 Jan, 2012 1 commit
-
-
Iustin Pop authored
Cluster-level parameters must *not* be empty. Plus two more minor changes. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-