- Nov 06, 2012
-
-
Michael Hanselmann authored
This replaces direct calls to “os.access” and “os.path.exists”/“os.path.isfile”. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Up until now “IsBelowDir("/", …)” would never return True. The reason was that an additional slash was added to the root path resulting in “//", which is “implementation-defined” in posix and treated specially by “os.path.normpath”. This patch fixes the behaviour for this special case and adds tests (also for IsNormAbsPath). A typo in the docstring is fixed. Calls to “assert_” and “assertFalse” are changed to pass a message by keyword argument. It is a bit of a mess, but I hope the resulting behaviour is correct. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Dato Simó <dato@google.com>
-
- Nov 01, 2012
-
-
Michael Hanselmann authored
When a job is still waiting for locks and the queue is shutting down, they should be returned and not actually start processing. Until now jobs which transitioned from “queued” to “waiting” were already considered to be running as far as the shutdown code was concerned. This fixes issue 296. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Commit 52c47e4e (July 2010) added the exact test twice, probably due to a copy & paste error. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Oct 26, 2012
-
-
Michael Hanselmann authored
When file storage is used this file is now mandatory. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
With the move away from “setup-ssh”, Paramiko is no longer necessary to configure SSH on nodes. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This new function returns the file paths for all of a user's SSH-related files (RSA, DSA and authorized_keys). Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This patch changes “utils.RunCmd” to accept a file-like object or a numeric file descriptor which will be used as the command's standard input. One use-case will be to pass all necessary data to “prepare-node-join”. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Other places, such as “ssh.GetUserFiles”, use a structure where the private key comes before the private key. Until now prepare-node-join did the opposite, that is the public key came first. To avoid confusion and potential bugs, this is changed. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
A public key already includes the necessary prefix (“ssh-rsa” or “ssh-dss”), so there is no need to add it again. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Without this parameter, either an error would be raised or “.ssh” would have to be created. Now it is possible to retrieve the paths without requiring the “.ssh” directory to exist. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Oct 25, 2012
-
-
Iustin Pop authored
Note that this commit has no Makefile.am changes, as the files were not actually used. So it's better to actually remove them. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
An earlier version of this patch series verified all paths in cmdlib in the master daemon. With this change all that verification code is moved to bdev to run inside the node daemon. The checks are much stricter now--it is no longer possible to use forbidden paths (e.g. /bin) to manipulate file storage devices (once these checks are being used). Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Oct 23, 2012
-
-
Michael Hanselmann authored
This is a new tool as per the design document “design-ssh-setup”. It receives a JSON data structure on its standard input and configures the SSH daemon and root's SSH keys accordingly. Unit tests are included. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This patch changes “ssh.GetUserFiles” to support two different kinds of SSH keys, RSA and DSA. Before it would always use DSA. Newly written unit tests are included. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Oct 19, 2012
-
-
Michael Hanselmann authored
For simple SSH keys, that is those without options such as “command="…"”, only the first two parts need to be compared. The third field is a free-form comment. This patch changes the comparison used in AddAuthorizedKey/RemoveAuthorizedKey to take this into account. Lines with options are still compared in full. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Oct 18, 2012
-
-
Michael Hanselmann authored
There might be more, but at least replace all these low-hanging fruits. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Helga Velroyen <helgav@google.com>
-
- Oct 17, 2012
-
-
Dato Simó authored
This commit adds a Group.allTags field to store the tags of node groups, and teaches each loader backend in HTools to populate it (additionally, the IAllocator class in lib/cmdlib.py now includes tags for groups too). Test data is updated to include an empty set of tags for node groups in all affected test cases. Signed-off-by:
Dato Simó <dato@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Dato Simó authored
In preparation for future modifications in the exclusion tags field, add a test that verifies that exclusion tags are being honored: in a test cluster with two instances of the same exclusion group in each node, hbal should shuffle instances around to improve the score. Signed-off-by:
Dato Simó <dato@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
New parameters, “--pending”, “--queued” and “--waiting”, are added to select all jobs in the respective state. If one of those options is used and “--force” is not given, the user is asked to confirm the operation. Unit tests are included. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Oct 16, 2012
-
-
Michael Hanselmann authored
There is no need for the “_IsUniqueSequence” function anymore, it can easily be replaced by utils.FindDuplicates. Also, pass the message as a keyword parameter and use the more commonly used assert* functions. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This constant contains the job status' “queued”, “waiting” and “cancelled”. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Oct 11, 2012
-
-
Michael Hanselmann authored
/etc/hosts is a bit special as it's a system-wide file and the virtual cluster/node root doesn't apply. The modification of /etc/hosts should be disabled in virtual clusters. If it isn't, however, the vcluster functions would raise an exception complaining about a path outside of the virtual node root. This patch adds a whitelist to exclude /etc/hosts. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
All data kinds (used to restrict the data collected) referenced in a filter can be requested once it's been “compiled”. However, the kinds of fields used in boolean expressions (e.g. ["?", "xyz"]) were not recorded. This patch changes the code accordingly and provides a unit test update. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This attribute is set to True for jobs which were restored from an archived file. A new filter will act on this field. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This patch adds some unit tests for “gnt-cluster epo”. Not everything is covered, but at least the bug fixed in the previous patch is. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Oct 08, 2012
-
-
Michael Hanselmann authored
An error like “invalid literal for int() with base 10” can be quite confusing. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
As I wrote during/after the review on commit 2958c56e, “ganeti-cleaner: Separate queue cleaning code”, while I appreciated the permission separation, I didn't like too much the file-based approach: - it is a very simple script, and lots of the code is duplicated between the two; I wouldn't like to see "ganeti-vmcapable-cleaner", "ganeti-master-candidate-cleaner", etc. in the future - ganeti-master-cleaner "pollutes" the namespace, creating tab-completion conflicts with ganeti-masterd This patch simply merges the master-cleaner back into cleaner, while keeping the separate user permissions scheme, separate log files, etc. Additionally, it fixes two bugs in the unit-test (not run with set -u and wrong path in the master-cleaner log files test; yay for even worse safety than Python?). And finally, since we have now support for --help-completion, it adds bash completion support for this script :) (needs to be applied on top of my argument support patch series). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Oct 05, 2012
-
-
Bernardo Dal Seno authored
Now "gnt-instance recreate-disks" uses the default iallocator when "." is specified as the iallocator. For uniformity, the same behavior applies to these commands: gnt-node evacuate gnt-instance migrate gnt-instance add "." is used instead of "default" becuse the latter could be a valid name for an iallocator. Signed-off-by:
Bernardo Dal Seno <bdalseno@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Michael Hanselmann authored
- LoadAllowedFileStoragePaths: Loads a list of allowed file storage paths from a file - CheckFileStoragePath: Checks a path against the list of allowed paths The unit test for “utils.IsBelowDir” is updated with cases which weren't tested before. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
We don't use generators often and lists are easier to re-use. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Bernardo Dal Seno <bdalseno@google.com>
-
Michael Hanselmann authored
- Don't hardcode node name in some places - Don't define functions inside functions - Simplify code for testing with and without offset, this is now in two separate tests Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Bernardo Dal Seno <bdalseno@google.com>
-
Michael Hanselmann authored
This patch adds code to wipe newly added disk space when growing disks using “gnt-instance grow-disk”. “New disk space” is defined as the delta between the old block device size (not necessarily equal to the amount recorded in the configuration) and the new recorded size. Extra caution is taken to avoid overwriting existing data. Unit tests are included. A small typo in gnt-cluster(8) (“it's”) is also fixed. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This is in preparation for adding disk wipe on growing disks. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Bernardo Dal Seno <bdalseno@google.com>
-
- Oct 04, 2012
-
-
Michael Hanselmann authored
I somehow forgot this in the previous patch. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Bernardo Dal Seno <bdalseno@google.com>
-
- Oct 02, 2012
-
-
Michael Hanselmann authored
This patch is somewhat longer than was anticipated. Before, commands like “gnt-instance --help” would exit with the status code 1 (failure). With this patch, those commands exits with 0 (success) while unknown commands still print the usage screen and exit with status 1. To achieve this goal without too much ugly code some refactoring on cli._ParseArgs was necessary. Printing the version and usage screen was separated. At the same time this allows for some unit testing. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Bernardo Dal Seno <bdalseno@google.com>
-
- Sep 28, 2012
-
-
Michael Hanselmann authored
This code does not need to run as root, therefore it's better to split it out. It is now run with the same permissions as the master daemon. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Some parts of the code still use a hardcoded user name: root. This patch replaces all with a constant specified at build time. The end goal is to make it possible to run a Ganeti cluster without any special privileges (of course this will prevent some functionality from working). Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Sep 27, 2012
-
-
René Nussbaumer authored
It was very easy to refactor CreateInstance to repurpose some part of it for the instance multi allocation request. So we do this. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
René Nussbaumer authored
This is needed so we can load it as an opcode. However, this information should not be available on the client, so we inject that info when we receive the request. Provided unittest to verify behaviour. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-