- Feb 16, 2009
-
-
Iustin Pop authored
This patch adds auto-archiving of jobs older than 6 hours to the watcher. Reviewed-by: imsnah
-
- Feb 13, 2009
-
-
Iustin Pop authored
This patch fixes the version and does some update to the RAPI resources docs. Reviewed-by: imsnah
-
Iustin Pop authored
This patch fixes many small issues related to write functions: - update documentations w.r.t. how to add users - update the instance add function for latest API - add instance delete - fix addition of tags - update some error messages Reviewed-by: imsnah
-
Iustin Pop authored
This patch modifies the fake hypervisor to substract the memory “used” by “running” instances from the free memory, so the actual node information changes based on the running instances. Also some style changes and fixes are added. Reviewed-by: ultrotter
-
Iustin Pop authored
This patch adds back to the instance creation command (gnt-instace add, gnt-backup import) the ‘-s’ short form option for specifying a single-disk instance. Also a small bug in gnt-backup import is fixed. Reviewed-by: ultrotter
-
Guido Trotter authored
Currently we export the old instance "as is" and any nic changes get lost, so hooks won't know of a different ip, bridge, or mac address. This patch fixes it by putting the nics in the override dict, if any changes are done. Reviewed-by: iustinp
-
Guido Trotter authored
The cli FIXME is not something broken, but rather some better handling feature we'd rather have, and the two backend FIXME are done (disks have their read only parameter set, and the error is raised and thus reaches the master). Reviewed-by: iustinp
-
Iustin Pop authored
This patch changes the format of the HTTP error messages from text/html, which is hard to parse from RAPI clients, to JSON which can be automatically parsed. The error message is an object, which contains always three keys: - code, an integer with the error code - message, a short description - explain, holding (if available) a description of the error In order to implement this, there is a bit of change to the http server and executor classes. I've tested and the error handling still works (but less optimal, no error message) in case the error formatting itself raises an exception. Reviewed-by: imsnah
-
Iustin Pop authored
This changes the RAPI error codes for luxi errors; a timeout error is now reported properly as 504, while any other luxi error is reported as 502. It would be good to convert even more errors into proper return codes in the future. Reviewed-by: imsnah
-
Iustin Pop authored
This patch displays a nicer error message compared to the default stacktrace. Reviewed-by: imsnah
-
- Feb 12, 2009
-
-
Iustin Pop authored
Currently we only log "Error in opcode ...", but we don't log the error itself. This is not good for debugging. Reviewed-by: ultrotter
-
Guido Trotter authored
CheckArguments: Use constants.VALUE_NONE rather than hardcoding the string "none" If we're adding a nic fill the nic_dict with default values Check if the mac is syntactically valid, if we have one Don't allow the mac to be 'auto' when modifying a nic CheckPrereq: Check that bridge and mac if present in the dict are not None (before this wasn't handled at all) Generate the nic mac address here if demanded Exec: Do not generate nics and macs Reviewed-by: iustin
-
Guido Trotter authored
There is a race condition in CreateInstance, since the mac address is generated early and only added to the config (and thus really assured to be unique) only at this point. Since it's possible that another instance gets the same mac address in the meantime with this check we'll make the instance creation fail before modifying the config data and thus having a wrong in-memory config (which is bad!!). Note that the same race condition exists, for example, in SetInstanceParams, and should be fully addressed by a way to revert config changes if writing them fails! Reviewed-by: iustin
-
Guido Trotter authored
We want the real nic to be shown to the hooks and the allocators, so we'll generate them in CheckPrereq. We also write a comment about the race condition we generate. This race condition existed even before, so moving this generation will just lenghen it a bit. A separate patch mitigates its effects. This patch also adds an ENDIF comment for a very long if, and removes a double empty line inside the CheckPrereq function of LUCreateInstance. Reviewed-by: iustin
-
Iustin Pop authored
While running burnin: File "/usr/lib/python2.4/site-packages/ganeti/objects.py", line 497, in __str__ val += ", size=%dm)>" % self.size TypeError: int argument required This happened while handling another error, so we lose the original error information. So we should try to handle this better. Reviewed-by: ultrotter
-
Iustin Pop authored
This patch updates the gnt-* scripts to show the new 2.0 syntax. It's not guaranteed to be 80% complete. Reviewed-by: ultrotter
-
Iustin Pop authored
This patch changes the gnt-node and gnt-job list commands to accept argument and list only the selected items, which is useful when having many nodes or jobs. It also removes the “--units” option from gnt-job list as we don't actually use it. Reviewed-by: imsnah
-
Iustin Pop authored
In case of 'None' logical or physical IDs, we don't need to check them for duplicates. This case can happen for DRBD devices in case of newly added disks, for example. Reviewed-by: imsnah
-
Iustin Pop authored
This patch adds a temporary set for MACs that have been requested but are not yet in the configuration (as part of an instance NIC). The MACs of an instance are automatically removed from this set when the instance is updated (or first added to the config). Reviewed-by: ultrotter
-
Iustin Pop authored
This patch changes the scripts so that the short name for the “--iallocator” option is always ‘-I’. Reviewed-by: ultrotter
-
Iustin Pop authored
Currently the batcher hypervisor parameter must be a dict with one element (e.g. {"xen-hvm": { "acpi": true }}). This is overly complex and hard to validate correctly; the patch splits it in two: - one "hypervisor" string parameter, with the name of the hypervisor - one "hvparams" dictionary, with the hypervisor parameters The patch also changes the error handling in parsing the definition file - since this is not a long-running file, we are less concerned with safe closing of the file, and more with presenting meaningful error messages. Reviewed-by: killerfoxi
-
Iustin Pop authored
This patch removes the admin_ram LUQueryInstances field (is broken anyway) and fixes the VNC address checks in the Xen Hypervisor. Reviewed-by: imsnah
-
Iustin Pop authored
The query fields are now regular expressions. We need to quote the dots, otherwise invalid fields will be accepted but they will lose special formatting in the cli scripts. Reviewed-by: imsnah
-
Guido Trotter authored
In the current Ganeti version when modifying /etc/hosts we mistakenly give it the permissions of the temporary file we create to define its content, which is by default 0600. This breaks most non-root applications, and thus must be corrected. This patch forces the mode to be 0644 (but we might decide to just use the mode of the previous /etc/hosts, if we want to be more polite against any eventual administrative choice). We also add a new assertFileMode() method for unit tests and actually check in the SetEtcHostsEntry and RemoveEtcHostsEntry tests that the mode is correct, to be sure not to reintroduce this bug again. Also, a FIXME is added in the original functions stating that it would be nice to use WriteFile+fn() rather than reimplementing its functionality again. Reviewed-by: iustinp
-
Iustin Pop authored
For (status, data)-style RPC calls, the result data is in the ‘payload’ attribute. This was missed in the conversion patch, with the only side effect that gnt-instance activate-disks didn't show a nice output anymore. Reviewed-by: ultrotter
-
Iustin Pop authored
This patch adds new man pages for the master and RAPI daemons, and updates the node daemon and watcher man pages. Reviewed-by: ultrotter
-
Iustin Pop authored
This patch introduces a 'force' mode for the master daemon startup where the voting process is not done, but the user has to confirm manually the startup (before forking, of course). Reviewed-by: imsnah
-
Iustin Pop authored
LOCALSTATEDIR is added twice to the sed variables. Reviewed-by: imsnah
-
Iustin Pop authored
This patch adds a safety check for duplicate disk logical/physical IDs, in order to prevent possible software bugs. Reviewed-by: imsnah
-
Iustin Pop authored
This patch changes the return type from this RPC call to include status information and renames the backend method to match the RPC call name. The patch is a little bigger than the reboot one, since this call is used in more than one place. However, all the points of call have the same usage pattern, so the patch is trivial. Reviewed-by: ultrotter
-
Iustin Pop authored
This small patch changes the return type from this RPC call to include status information and renames the backend method to match the RPC call name. Reviewed-by: ultrotter
-
- Feb 11, 2009
-
-
Guido Trotter authored
In FileStorage there is a TODO: decide whether we should check for existing files and abort or not After Ganeti ate my instance data I decided. Let's abort. In general there is no reason we should overwrite existing files, and doing it can be very harmful for preexisting files on the host. Reviewed-by: iustinp
-
Guido Trotter authored
It's hvparams, not opts.hvparams. Reviewed-by: iustinp
-
Guido Trotter authored
Currently when adding disks the base for the index is not taken into account, and disk 0 is added twice. Reviewed-by: iustinp
-
Guido Trotter authored
If hvparams is not set it will be [], so dict() will transform it to an empty dict, which is safe in all cases. Reviewed-by: iustinp
-
Guido Trotter authored
We need this directory for locks, so if for any reason it's not there we'll create it. The permissions are the standard /var/lock permissions. Reviewed-by: iustinp
-
Guido Trotter authored
Currently we use the HTS_USE_VNC constant only to copy the vnc password file. While KVM uses vnc it currently has no password support, nor we'll be on time making one for 2.0, so renaming the constant to HTS_COPY_VNC_PASSWORD and only putting Xen HVM in it. In the future (2.1) password handling will need to be reworked anyway. Reviewed-by: iustinp
-
- Feb 10, 2009
-
-
Iustin Pop authored
The patch sorts the instance list in gnt-node info output, in order to make it more readable (and stable). Reviewed-by: imsnah
-
Iustin Pop authored
The patch changes the pre-checks in node-add and re-add: - if the node is not already in the cluster, refuse to re-add - when re-adding, reuse the secondary IP from the cluster configuration - when re-adding, reset the offline and drained flags, so that RPC calls work (and we can actually upload the keys) The patch also adds a missing log entry in LUSetNodeParams. Reviewed-by: imsnah
-
Guido Trotter authored
We want all the hv/be parameters to have a known type, rather than a random mix of empty string, boolean values, and None, so we declare the type of each variable and we enforce/convert it. - Add some new constants for enforceable value types - Add new constants dicts HVS_PARAMETER_TYPES and BES_PARAMETER_TYPES holding not only the valid parameters but also their types - Drop the old HVS_PARAMETERS and BES_PARAMETERS constants and calculate the values from the type dict - Convert all the default parameters to a valid type value - Create a new ForceDictType utils function, to check/enforce a dict's element value types, with relevant unit tests - Drop a few custom functions to check/convert the BE param types in utils and cli, in favor of ForceDictType - Double-check the parameter types using ForceDictType in both scripts and LogicalUnits, when possible. As a bonus: - Remove some old commented-out code in gnt-instance - Remove some already fixed FIXME - Fix a bug which prevented VALUE_DEFAULT to be applied to BE parameters in SetInstanceParams because the value was checked for validity before that transformation was made - Fix a bug which prevented initing a cluster and passing hvparams to work at all - ForceDictType allows an allowed_values for exceptions, which makes us able to do the checking even when some values must not be converted/typechecked (for example the 'default' string in SetInstanceParameters) Reviewed-by: iustinp
-