- Jul 29, 2010
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Document that it should only be called from within RunTask and add an assertion for this. This means we can no longer use a method on the pool and hence remove WorkerPool.ShouldWorkerTerminate. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
HasRunningTask is never used except for an assertion, where we don't really need the lock. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This way fewer private variables of the pool are accesssed by the worker. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
This is related to issue 105. 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>
-
- Jul 28, 2010
-
-
Iustin Pop authored
Most (all?) of our commands use dash-separator: replace-disks, verify-disks, add-tags, etc. “gnt-cluster masterfailover” is an old exception to this rule. The patch replaces it with master-failover, add a compatiblity alias, and updates the documentation for this change. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Since the RAPI QA suite doesn't seem to offer easy testing of failed creations, I didn't add this to the QA. Pointers on how to do it are welcome. The patch also changes the 'os' argument to be required, since that is how the LU expects it, and without it we just fail later instead of directly at submission time. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
“find .” requires that “-path” arguments start with a dot, otherwise they are not matches. Additionally, we also include the QA files in the tags, for easier search while modifying the QA suite. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Currently, if the cli.JobExecutor class is being used, and one of the jobs is being archived before it can check its result, it will raise a stracktrace as _ChooseJob is not prepared to handle this case. This case makes JobExecutor work better with lost jobs (it still reports them as 'failed', but it doesn't break and returns a proper error message), and modifies the generic FormatError to report the JobLost exception properly, instead of as "Unhandled Ganeti Exception". Since JobExecutor is hard to test properly, I only tested this manually, via a fake invocation. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This patch adds handling of permission errors so that we don't show tracebacks when a non-root user runs a gnt-* command. Since in the future we'll have different permissions, we need to handle this in RAPI too. It also fixes a typo in RAPI error message and the docstrings of LUXI errors. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Michael Hanselmann authored
The new name is then displayed by the clients. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Manuel Franceschini <livewire@google.com>
-
Manuel Franceschini authored
This patch fixes a bug when gnt-instance rename was invoked with --no-name-check. It renames the internal variables to be consistent with the ones in equivalent instance add code. Furthermore it checks whether and instance rename is invoked with --no-name-check but without --no-ip-check and throws an exception if so. Signed-off-by:
Manuel Franceschini <livewire@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Jul 26, 2010
-
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
This doesn't allow addition/removal of individual volumes, only wholesale replace of the entire list. It can be improved later, if we ever get generic container parameters. The man page changes replaces some tabs with spaces (hence the whitespace changes). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
This parameter, which is a list of regular expression patterns, will make cluster verify ignore any such LVs. It will not prevent creation or removal of such volumes by the backend code. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
Currently, backend.StartMaster (the function behind this RPC call) will activate the master IP and then, if the start_daemons parameter is true, it will also activate the master role. While this works, it has two issues: - first, it will activate the master IP unconditionally, even if this node will not start the master daemon due to missing votes - second, the activation of the IP is done twice if start_daemons is true, because the master daemon does its own activation too This behaviour seems to be unmodified since Summer 2008, so probably any rationale on why this is done in two places is forgotten. The patch changes so that this function does *either* IP activation or master role activation but not both. So the IP will be activated only once (from the master daemon or from LURenameCluster), and it will only be done if the masterd got enough votes for startup. I can see only one downside to this change: if masterd won't actually start (due to missing votes), RAPI will still start, and without the master IP activated. But this is no worse than before, when both RAPI was running and the IP was activated. Note that the behaviour of StopMaster remains the same, as noone else does the IP removal. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
Currently, the master IP activation is done in the Exec function. Since the original masterd process returns after forking, and Exec is run in the (grand)child process, this means that after 'ganeti-masterd' has returned there are still initialization tasks running. Normally this is not a problem, but in cases where one does quick master failovers, this creates a race condition which hits the QA scripts especially hard. To solve this, and make the startup process cleaner (the system is in steady state after the command has returned, even though masterd startup could still fail), we move the IP activation to Check(). This also allows error messages about the IP activation to be seen on the console. With this patch enabled, I can no longer reproduce the double-failover errors, which were occuring before in 4/5 cases. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
This is needed because not just the cli scripts need this decorator, but the master daemon too (and it already duplicated the code once). In cli.py we just leave a stub, so that we don't have to modify all the scripts to import rpc.py. We then change the master daemon code to reuse this decorator, instead of duplicating it. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
This patch implements a few changes to the instance handling. First, old instances which no longer exist on the cluster are removed from the state file, to keep things clean. Second, the instance restart counters are reset every 8 hours, since some error cases might be transient (e.g. networking issues, or machine temporarily down), and if the problem takes more than 5 restarts but is not permanent, watcher will not restart the instance. The value of 8 hours is, I think, both conservative (as not to hammer the cluster too often with restarts) and fast enough to clear semi-transient problems. And last, if an instance is not restarted due to exhausted retries, this should be warned, otherwise it's hard to understand why watcher doesn't want to restart an ERROR_down instance. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Jul 23, 2010
-
-
Iustin Pop authored
This patch adds handling of the new 'mode' parameter to the RAPI server, while keeping compatibility with the old mode. Note that in the old mode (when 'live' is being passed), the auto-mode doesn't work. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
See the discussion on the previous patch about this. Basically unless we want to a add a new 'feature' marking for the live migration parameter, there is no simple way to handle this nicely in the client. Given that the client was/is marked as experimental, this patch simply replaces live with mode. This means that this client won't work with 2.1 clusters… Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
This is breakage from the original 'live' parameter changes. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
This is needed as now the parameter is no longer boolean, but tri-state. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
This is in preparation for the rename of the opcode 'live' parameter to 'mode'. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Manuel Franceschini authored
Signed-off-by:
Manuel Franceschini <livewire@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Jul 22, 2010
-
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
If we pass the current primary node, the conversion will fail horribly with LVM creation errors. Instead, we catch and check for this condition in CheckPrereq. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Jul 21, 2010
-
-
Guido Trotter authored
The 2.1 and 2.2 designs contain sections with no actual content, as they are detailed for each single change. Removing the global empty ones. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Manuel Franceschini <livewire@google.com>
-
Manuel Franceschini authored
Signed-off-by:
Manuel Franceschini <livewire@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Manuel Franceschini authored
Due to the current switch of the RPC client to PycURL, a bug with newer versions of libcurl surfaced. When the 'Subject' or 'Issuer' of 'server.pem' were empty, SSL handshake failed. This patch changes the certificate generation functions such that they always use "ganeti.example.com" as commonName (CN) for 'Subject' and 'Issuer'. Signed-off-by:
Manuel Franceschini <livewire@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Jul 20, 2010
-
-
René Nussbaumer authored
This prepares the remote node to be joined into a cluster Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
René Nussbaumer authored
Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
René Nussbaumer authored
Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
René Nussbaumer authored
This is required to use this function over paramiko sftp file handles. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Jul 19, 2010
-
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Michael Hanselmann authored
If the body consists of an empty dict, it should also be encoded. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
This patch adds a new vcs-version file that is generated via git (and can be adapted if VCS is changed) and then embebbded as VCS_VERSION in the constants module. This means two things: - local modifications without committing to git (or when using a tar.gz archive + mods) will not be reflected - version is fixed at the time of the last make regen-vcs-version (dist time, or devel/upload which calls this) Thus this is more geared at developers rather than end users. The patch: - adds rules for generating the vcs-version file - adds a dist-hook for re-generating the file (if possible) and copying the updated version to the distdir - modifies devel/upload to re-generate the file before upload The output of --version will look like: gnt-cluster (ganeti v2.2.0beta0-184-gebca7e6) 2.2.0~beta0 Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-