- Oct 25, 2010
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Oct 22, 2010
-
-
Iustin Pop authored
A simple typo… Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Oct 15, 2010
-
-
Apollon Oikonomopoulos authored
This patch disables the SSL session ID cache for all cURL operations. This is needed because http.HttpBase's PyOpenSSL implementation does not currently set a context using SSL_set_session_id_context(3SSL), cURL tries to re-use the session ID and, according to SSL_set_session_id_context(3SSL): If the session id context is not set on an SSL/TLS server and client certificates are used, stored sessions will not be reused but a fatal error will be flagged and the handshake will fail. Ideally, session caching should be either controlled, or disabled in HttpBase, however PyOpenSSL does not seem to implement SSL_CTX_set_session_cache_mode nor SSL_CTX_set_session_id_context which are used for these purposes (it seems that only M2Crypto's SSL module supports these). Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Oct 12, 2010
-
-
Apollon Oikonomopoulos authored
As per SSL_CTX_set_client_CA_list(3SSL), set the list of acceptable CAs advertised to SSL clients to include the server's own certificate. This evidently fixes the pycurl/gnutls RPC client. During the TLS Handshake, when client verification is requested, the Server sends a CertificateRequest message which states that the client should send a valid certificate as a response. The CertificateRequest message contains a section called "certificate_authorities", which, according to the standard, is a list of the Distinguished Names (DNs) of acceptable certification authorities. The client uses this list to send a certificate signed by one of the acceptable CAs. Under OpenSSL's server implementation, this list must be set manually using some appropriate call, otherwise the list is empty. TLS 1.0[1] does not state whether the list may be left blank, whereas TLS 1.1[2] and 1.2[3] state that in case the list is blank, then the client *may* send any certificate of a valid type (valid types are specified elsewhere in the handshake). OpenSSL clients seem to obey the behaviour specified in TLS 1.1+, whereas at least curl+GnuTLS does not send any certificates if the list is empty (which is not wrong per the spec, but also evidently not configurable). [1] http://tools.ietf.org/html/rfc2246 [2] http://tools.ietf.org/html/rfc4346 [3] http://tools.ietf.org/html/rfc5246 Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> Reviewed-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Oct 11, 2010
-
-
Iustin Pop authored
This patch solves the very slow (~8-9 seconds) gnt-instance modify behaviour. Well, it solves in general the slow RPC behaviour, but it was most visible in that LU. It seems that curl's behaviour with regard to file uploads (via PUT) and the 'Expect' header are interacting badly with our http server. First, our http server doesn't properly handle this header. According to RFC 2616: Requirements for HTTP/1.1 origin servers: Upon receiving a request which includes an Expect request-header field with the "100-continue" expectation, an origin server MUST either respond with 100 (Continue) status and continue to read from the input stream, or respond with a final status code. Our server doesn't do this, and hence it triggers this behaviour in curl (from the curl FAQ): 4.16 My HTTP POST or PUT requests are slow! libcurl makes all POST and PUT requests (except for POST requests with a very tiny request body) use the "Expect: 100-continue" header. This header allows the server to deny the operation early so that libcurl can bail out already before having to send any data. This is useful in authentication cases and others. However, many servers don't implement the Expect: stuff properly and if the server doesn't respond (positively) within 1 second libcurl will continue and send off the data anyway. You can disable libcurl's use of the Expect: header the same way you disable any header, using -H / CURLOPT_HTTPHEADER, or by forcing it to use HTTP 1.0. This behaviour was detected by watching the captured traffic (in non-SSL mode), where between the initial HTTP headers (ending with the Expect one), there was a ~1-2 second pause until curl was sending the body. Properly RTFM-ing would have saved ~1 day of digging around, but hey… Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Oct 05, 2010
-
-
Michael Hanselmann authored
Use utils.CommaJoin to add spaces after comma, clean up code a bit. Before: Tag(s) 'bar','baz','foo','moo' not found After: Tag(s) 'bar', 'baz', 'foo', 'moo' not found Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Retrieving tags can be done while the lock is shared. Only writing needs to be exclusive. Also add a FIXME for cluster tags, where the code currently doesn't use any locks except the config lock. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This will be used by LUXI client programs to display the VG name. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This function will also be used in tools/move-instance. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Guido Trotter authored
Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Miguel Di Ciurcio Filho authored
Using hugepages, KVM instances can get a good performance boost. To activate that, we need to pass the -mem-path argument to KVM along with the mount point of the hugetlbfs file system on the node. For the sake of memory availability computation, we use the -mem-prealloc argument when enabling hugepages, so KVM will reserve all hugepages it needs when it starts. This avoids allocating an instance on a node that will not have enough pages in case other instance needs more than what is available after it boots. Signed-off-by:
Miguel Di Ciurcio Filho <miguel.filho@gmail.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Per the mailing list discussion, rename _oss to _os, both in cluster parameters and in the rest of the code. This is just an s/_oss/_os, with the exception of a small bit of cleanup around the helper_os function in cmdlib.py. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Oct 04, 2010
-
-
Guido Trotter authored
Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Committ 3fe11ba3 broke the instance rename as we don't use the FQDN anymore. This fixes it. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Sep 30, 2010
-
-
Iustin Pop authored
Committ 3fe11ba3 broke the instance rename as we don't use the FQDN anymore. This fixes it. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
The OS list and variants as returned from LUDiagnoseOS is not sorted, and gnt-instance reinstall doesn't sort it either. This means that it the menu that users are present with is inconsistent across clusters, and that is confusing. To make this consistent across all users of the LU, we sort the names in the LU itself. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This patch changes the behaviour of OpDiagnoseOS with regards to the 'valid' field to be similar to the one for the hidden/blacklisted fields: unless this field is requested, invalid OSes are filtered out. The rationale is that, except for the gnt-os info/diagnose, all other users of this opcode are requesting the valid field just to filter out invalid OSes, and not for any other use. Thus, changing this behaviour makes these callers simpler. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
These are useful for more in-depth checking of some kinds of arguments. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
This changes the behaviour of LUDiagnoseOS significantly. The addition of hidden/blacklisted OSes would mean that each user-facing client would have to filter intentionally such OSes from display, which is not a good choice. Rather, the patch makes LUDiagnoseOS not return any hidden or blacklisted OSes unless the hidden or respectively the blacklisted status is requested. While unconventional, this makes `gnt-instance reinstall --select-os` work as intended without any changes; similar for gnt-os list. gnt-os diagnose/gnt-os info are changed to query for, and display the new fields. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
The new variables are: - a list of hidden OSes, that should not be displayed to the users in interactive selection (e.g. reinstall); however, if they are selected, they can be used - a list of OSes that should be hidden and blocked from install-time selection The filtering will apply at pure OS name level, not OS+variant level. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Currently, the computation of the 'pure' name or the variant is hardcoded and spread around the functions that need it. This is not nice, and in the future we'd spread it even more with more usage of variants/pure os names. This patch abstracts these functions into the OS class, and then replaces the hardcoded uses with the new functions. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Sep 22, 2010
-
-
Iustin Pop authored
Currently, the mac checker regex could match a corner case of 11:22:33:44:55:66: (one extra colon at the end). We fix this, and we also move the regex compilation outside of this function, at module level. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Sep 20, 2010
-
-
Vitaly Kuznetsov authored
New KVMs (0.12.1.2-el6 and 0.13.5 tested) exit immediately after unsuccessful network connection when they are in "-incoming" mode. The simple check netutils.TcpPing causes remote kvm to exit so the migration will always fail. This check is also redundant by the way as if the network port is closed migration will fail with guarantee. This commit removes this check. Signed-off-by:
Vitaly Kuznetsov <vitty@altlinux.ru> Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
They'll be used for job priorities. Also add an empty line to gnt-os where it's missing. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Sep 16, 2010
-
-
Iustin Pop authored
Currently, opcodes like NODE_EVAC_STRATEGY look bad: 89684 error NODE_EVAC_STRATEGY([u'node3']) With this patch, we try to render list arguments a little bit better: 89684 error NODE_EVAC_STRATEGY(node3) Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Sep 15, 2010
-
-
Michael Hanselmann authored
The parameter “name” is be None for cluster tags. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Otherwise parameter verification in the master daemon fails. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Sep 13, 2010
-
-
Michael Hanselmann authored
This is no longer needed with the new lock monitor. One callback is kept to check for cancelled jobs. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This reverts commit 4008c8ed. While it worked in my initial tests, I've now found cases where this doesn't work properly as it is. More work is needed and will be done as part of the Ganeti 2.3 job queue changes. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Vitaly Kuznetsov authored
This was introduced in efaa9b06. in OSCoreEnv: inst_os.name is pure operating system name (without variant) as variant is stripped in OSFromDisk(). So we always get variant = inst_os.supported_variants[0] (first variant in variants list). Adding argument os_name with full name (including variant) solves this problem. Signed-off-by:
Vitaly Kuznetsov <vitty@altlinux.ru> Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com> [modified by iustin to handle the call to OSCoreEnv from ValidateOS too] Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Sep 10, 2010
-
-
Michael Hanselmann authored
My bad for not seeing this before: R0201:614:HttpBase.GetSslCiphers: Method could be a function Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Users of this class, such as the RAPI server, might want to override or adjust the default SSL cipher defined in a constant. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
After an unclean restart of ganeti-masterd, jobs in the “waitlock” status can be safely restarted. They hadn't modified the cluster yet. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Michael Hanselmann authored
This makes the __init__ function a lot smaller while not changing functionality. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Michael Hanselmann authored
This reduced the number of updates to the job files. It's used in two places while processing a job and the file is updated just afterwards. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This was already outdated when the initial version of SharedLock was added in commit 162c1c1f (February 2008). Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Sep 07, 2010
-
-
Michael Hanselmann authored
The completion script for bash has to know about these options. Until now the list was in two places--once in cli.py and once in autotools/build-bash-completion. A shared list is used with this patch. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Comes with unittest. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-