Michael Hanselmann [Thu, 3 Nov 2011 16:12:19 +0000 (17:12 +0100)]
Use node resource lock for replacing instance disks
If early-release is not used, the resource lock is kept while waiting
for disks to sync.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 3 Nov 2011 16:19:30 +0000 (17:19 +0100)]
Hold node resource locks while setting instance parameters
Important for when disks are converted. Release locks once they're not
needed anymore. Make liberal use of assertions.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 3 Nov 2011 16:08:26 +0000 (17:08 +0100)]
Hold node resource lock while moving instance
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 3 Nov 2011 16:04:05 +0000 (17:04 +0100)]
Acquire node resource lock when removing instance
Removing an instance affects available disk space and memory.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 3 Nov 2011 15:58:00 +0000 (16:58 +0100)]
Use node resource lock when recreating instance disks
Recreating disks conflicts with other disk operations, therefore the
node resource lock must be acquired.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 3 Nov 2011 15:40:06 +0000 (16:40 +0100)]
LUClusterRepairDiskSizes: Use node resource locks
Since this doesn't really touch the node, but it conflicts with e.g.
growing a disk, the resource lock must be acquired.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Wed, 2 Nov 2011 15:55:33 +0000 (16:55 +0100)]
LUInstanceGrowDisk: Use node resource lock
Also add one more feedback line. Downgrade instance lock to shared mode
while we're only waiting for disks to sync. The node lock is released
when not needed anymore.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Wed, 2 Nov 2011 15:33:46 +0000 (16:33 +0100)]
LUInstanceCreate: Hold node resource lock
The node resource lock is released once the disks are in sync (that is,
after wiping).
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Mon, 14 Nov 2011 13:12:08 +0000 (14:12 +0100)]
LUNodeQueryvols: Acquire all locks in shared mode
Nothing is being written to.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Mon, 14 Nov 2011 13:11:48 +0000 (14:11 +0100)]
LUNodeQueryStorage: Acquire all locks in shared mode
Nothing is written to.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Mon, 14 Nov 2011 09:36:50 +0000 (10:36 +0100)]
cmdlib: Share lock in LUInstanceConsole
No writes are being done.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Fri, 11 Nov 2011 17:04:55 +0000 (18:04 +0100)]
Document OpNodeMigrate's result for RAPI
- Commit
b7a1c8161 changed the LU to generate jobs
- Mention documented results in NEWS
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 3 Nov 2011 16:22:34 +0000 (17:22 +0100)]
LUNodeQuery: Call implementation's DeclareLocks function
Just in case we ever add locks for querying nodes. Currently
_NodeQuery's DeclareLocks is a no-op function.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Andrea Spadaccini [Tue, 25 Oct 2011 09:54:10 +0000 (10:54 +0100)]
Use master IP address setup script in backend
Replace the code in backend.ActivateMasterIp and
backend.DeactivateMasterIp with the master IP address setup script,
either the default one or the one provided by the user.
- Convert to string the netmask parameter in _BuildMasterIpEnv
- Add the _RunMasterSetupScript function and let ActivateMasterIp and
DeactivateMasterIp become wrappers for it;
- Change the failure model of DeactivateMasterIp, raising errors if the
script fails instead of silently ignoring the failure
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Andrea Spadaccini [Tue, 8 Nov 2011 17:09:56 +0000 (17:09 +0000)]
Change master IP address RPCs for external script
Change the master IP address RPC call chain to accept the
use_external_master_ip_script parameter. Introduces an unused parameter
in backend.ActivateMasterIp and backend.DeactivateMasterIp, that will be
used in the next commit.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Andrea Spadaccini [Tue, 8 Nov 2011 16:29:52 +0000 (16:29 +0000)]
Update cluster verify to check IP address scripts
Update cluster-verify to check the integrity of the default master IP
address setup script and the presence and executability of the external
one (if currently in use by the cluster).
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Andrea Spadaccini [Tue, 8 Nov 2011 15:32:13 +0000 (15:32 +0000)]
Add --use-external-mip-script flag
- add a command line flag to gnt-cluster init and modify to change the
value of the cluster parameter use_external_mip_script;
- add two constants representing the paths of the default script and of
the external script;
- add documentation for the new option in the gnt-cluster man page;
- add use_external_mip_script to gnt-cluster info output.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Andrea Spadaccini [Tue, 8 Nov 2011 14:41:12 +0000 (14:41 +0000)]
Add use_external_mip_script cluster parameter
Add the use_external_mip_script cluster parameter, that represents
whether the master IP address turnup/turndown procedures must use a
script provided by the user (True) or the one provided by Ganeti
(False).
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Andrea Spadaccini [Mon, 24 Oct 2011 16:38:10 +0000 (17:38 +0100)]
Add the default master-ip-setup script
Add a shell script that will be the default replacement for the body of
backend.ActivateMasterIp and backend.DeactivateMasterIp.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Vangelis Koukis [Thu, 27 Oct 2011 17:04:20 +0000 (20:04 +0300)]
Ensure unused ports return to the free port pool
Ensure ports previously allocated by calling ConfigWriter's AllocatePort() are
returned to the pool of free ports when no longer needed:
* Return the network_port of an instance when it is removed
* Return the port used by a DRBD-based disk when it is removed
Signed-off-by: Vangelis Koukis <vkoukis@grnet.gr>
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Iustin Pop [Mon, 14 Nov 2011 09:01:06 +0000 (10:01 +0100)]
Re-wrap a paragraph to eliminate a sphinx warning
This just makes sure that the paragraph doesn't contains lines that
start with :, which make Sphinx (1.0.7) complain.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Fri, 11 Nov 2011 12:47:24 +0000 (13:47 +0100)]
check-python-code: Detect old-style pylint disable-msg lines
Commit
b459a848d was supposed to replace all, but one was missed. Add a
check to autotools/check-python-code.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Andrea Spadaccini <spadaccio@google.com>
Guido Trotter [Thu, 10 Nov 2011 13:46:54 +0000 (13:46 +0000)]
Fix newer pylint's E0611 error in compat.py
These are triggered by our "stay-compatible" approach.
Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: René Nussbaumer <rn@google.com>
René Nussbaumer [Thu, 3 Nov 2011 12:52:51 +0000 (13:52 +0100)]
Adding basic elements for the new node params
This patch adds the new fields to the objects.py as well as defines the
constants used in the dicts and their type.
Signed-off-by: René Nussbaumer <rn@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Tue, 8 Nov 2011 17:17:37 +0000 (18:17 +0100)]
rpc: Fix another result processor
I forgot to change this in commit
d9da5065c0.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Tue, 8 Nov 2011 15:40:18 +0000 (16:40 +0100)]
rpc: Fix issue with “test_delay”'s timeout
I passed the timeout calculation function in the wrong field of the
definition. A small change is also needed in “build-rpc” to not abort
when writing the docstring.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Tue, 8 Nov 2011 15:39:32 +0000 (16:39 +0100)]
rpc: Call result processor once for each node result
… instead of calling it with the whole results dictionary. This
fixes an issue when replacing disks (and all other cases where
result processors are used).
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Mon, 7 Nov 2011 19:42:31 +0000 (20:42 +0100)]
Fail if node/group evacuation can't evacuate instances
If an instance can't be evacuated, only a message would be printed. With
this change the operation always aborts. Newly added unittests check for
this behaviour.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Wed, 2 Nov 2011 19:13:58 +0000 (20:13 +0100)]
LUNodeSetParams: Lock affected instances only
Until now LUNodeSetParams would lock all instances if a node's
secondary IP address was to be changed and would then release
all instances it didn't actually need. With this patch the LU
optimistically locks instances and, once it got the locks,
checks whether they're still correct. This is similar to how
node group locking is done.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 3 Nov 2011 15:48:56 +0000 (16:48 +0100)]
Check BGL when adding/removing node
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: René Nussbaumer <rn@google.com>
Michael Hanselmann [Thu, 3 Nov 2011 19:35:27 +0000 (20:35 +0100)]
RPC/test_delay: Use callable for timeout calculation
This avoids having to override the function in the RPC runner.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: René Nussbaumer <rn@google.com>
Michael Hanselmann [Thu, 3 Nov 2011 19:16:46 +0000 (20:16 +0100)]
rpc: Move post-processor functions into definitions file
This way the generated code no longer contains arbitrary code.
Post-processing functions are used by reference.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: René Nussbaumer <rn@google.com>
Michael Hanselmann [Thu, 3 Nov 2011 19:05:42 +0000 (20:05 +0100)]
rpc: Use definitions directly instead of via generated code
Until now “autotools/build-rpc” would read the definition of all RPCs
and write them to a new file, “lib/_generated_rpc.py” with some
modifications. With this patch the generated code loads the definitions
and, at module load time, gets references to the actual definitions.
Further patches will even remove the calls to the post-processing
functions from the generated code.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 3 Nov 2011 18:46:43 +0000 (19:46 +0100)]
Convert RPC definitions to dictionaries
This is in preparation to reducing the amount of generated code.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 3 Nov 2011 18:12:32 +0000 (19:12 +0100)]
query: Use new SequenceToDict utility
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: René Nussbaumer <rn@google.com>
Andrea Spadaccini [Fri, 4 Nov 2011 16:35:16 +0000 (16:35 +0000)]
Improve error handling in netmask change
- check if the master IP with the old netmask is up before attempting to
change the netmask (to avoid a failed change netmask resulting in an
undesired activation of the master IP);
- improve error messages of the backend function;
- in case of error, report the problem but otherwise change the cluster
master_netmask parameter;
- remove duplicate error feedback.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Andrea Spadaccini [Fri, 4 Nov 2011 15:27:14 +0000 (15:27 +0000)]
Add master_netmask to Cluster.UpgradeConfig
And also suppress pylint R0902 error about an object instance having
more than 20 attributes.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Guido Trotter [Fri, 4 Nov 2011 09:57:03 +0000 (09:57 +0000)]
Update init script description
Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Andrea Spadaccini <spadaccio@google.com>
Andrea Spadaccini [Fri, 4 Nov 2011 13:33:59 +0000 (13:33 +0000)]
Fix cluster start failure due to missing netmask
If the cluster version is upgraded from a version before commit
5a8648eb609f7e3a8d7ad7f82e93cfdd467a8fb5 to a version after that commit,
the master startup will fail because the ssconf file with the master
netmask will not be present, and it is read during the master voting
process.
This patch fixes this bug, making ssconf.GetMasterNetmask return a
default netmask value, and also corrects the docstring of this method.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: René Nussbaumer <rn@google.com>
René Nussbaumer [Fri, 4 Nov 2011 09:22:13 +0000 (10:22 +0100)]
ganeti(7): Adding documentation about env variables
Signed-off-by: René Nussbaumer <rn@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Michael Hanselmann [Fri, 4 Nov 2011 07:51:36 +0000 (08:51 +0100)]
LUInstanceRename: Compare name with name
… instead of object with name.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: René Nussbaumer <rn@google.com>
Michael Hanselmann [Thu, 3 Nov 2011 18:03:48 +0000 (19:03 +0100)]
utils.algo: Add utility to convert sequence to dictionary
Useful for converting list of query fields to a dictionary and to
convert RPC definitions. Includes duplicate detection.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 3 Nov 2011 19:22:50 +0000 (20:22 +0100)]
Add QA test for “gnt-debug delay”
This would have caught a bug introduced with the recent RPC changes.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 3 Nov 2011 19:18:25 +0000 (20:18 +0100)]
rpc: Make “test_delay” RPC actually work
Until now it would just call itself, eventually failing.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 3 Nov 2011 15:42:16 +0000 (16:42 +0100)]
LUClusterRepairDiskSizes: Acquire instance locks in exclusive mode
Instances are modified if their disk size doesn't match.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Wed, 2 Nov 2011 19:17:29 +0000 (20:17 +0100)]
QA: Add test for setting node's secondary IP address
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Andrea Spadaccini <spadaccio@google.com>
Michael Hanselmann [Wed, 2 Nov 2011 15:54:51 +0000 (16:54 +0100)]
cmdlib: Allow specifying lock level when calculating node locks
This is needed to lock node resources.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Wed, 26 Oct 2011 11:49:47 +0000 (13:49 +0200)]
Show RPC calls from config in lock monitor
With this patch all RPC calls at runtime of masterd will show up in the
lock monitor. There is a chicken-and-egg issue with initializing the
configuration with a context since the lock manager, containing the
monitor, requires the configuration. This is worked around by setting
the config's context only once the lock monitor is available.
Example:
rpc/node19.example.com/write_ssconf_files Jq9/Job32/N_SET_PARAMjobqueue_update Jq2/Job27/C_VERIFY_CONFIG
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Thu, 3 Nov 2011 15:40:44 +0000 (16:40 +0100)]
Update synopsis for “gnt-cluster repair-disk-sizes”
Mention that instances can be passed on the CLI when “--help” is used.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Andrea Spadaccini <spadaccio@google.com>
Andrea Spadaccini [Wed, 2 Nov 2011 18:18:04 +0000 (18:18 +0000)]
Derive IP hooks env variables from RPC parameter
Let the environment variables of the master IP turnup/turndown be
derived from the parameter of the RPC itself (that is of type
objects.MasterNetworkParameters in both cases).
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Andrea Spadaccini [Wed, 2 Nov 2011 17:51:58 +0000 (17:51 +0000)]
Pass MasterNetworkParameters instances in RPCs
Pass instances of objects.MasterNetworkParameters when calling RPCs for
activation and deactivation of master IP.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Andrea Spadaccini [Wed, 2 Nov 2011 16:43:31 +0000 (16:43 +0000)]
Use MasterNetworkParameters attributes for RPC
Instead of manually unpacking the return values of
cfg.GetMasterNetworkParameters, let it return an instance of
objects.MasterNetworkParameters and pass its attributes.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Andrea Spadaccini [Wed, 2 Nov 2011 15:55:32 +0000 (15:55 +0000)]
Add object representing the master network params
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Andrea Spadaccini [Wed, 2 Nov 2011 15:33:21 +0000 (15:33 +0000)]
Uniform master IP activation and deactivation
Add the master IP family parameter to the master IP deactivation RPCs,
so that the activation and deactivation interfaces are uniform.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
René Nussbaumer [Wed, 2 Nov 2011 15:07:15 +0000 (16:07 +0100)]
Make it possible to pass in flags using ENV variables
Signed-off-by: René Nussbaumer <rn@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
René Nussbaumer [Wed, 2 Nov 2011 15:06:10 +0000 (16:06 +0100)]
utils.algo: Add a function to insert a list into a list
Signed-off-by: René Nussbaumer <rn@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Andrea Spadaccini [Wed, 2 Nov 2011 13:34:17 +0000 (13:34 +0000)]
Fix pylint deprecated directive in check-header
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Andrea Spadaccini [Wed, 2 Nov 2011 13:31:52 +0000 (13:31 +0000)]
Fix overriding of ActivateMasterIp params
In the process of reworking the patches for master, I forgot to remove a
call to GetMasterInfo() that overrides the parameters passed via RPC.
This patch fixes this issue.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Andrea Spadaccini [Wed, 2 Nov 2011 11:47:28 +0000 (11:47 +0000)]
Add netmask and IP version to master IP hooks env
Add the master netmask and master IP version parameters to the hooks and
document them. In this way, the hook environment building function can
be reused for the planned master IP turnup changes.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Andrea Spadaccini [Thu, 27 Oct 2011 18:34:57 +0000 (19:34 +0100)]
Explicitly pass params to change_master_netmask
Make the master explicitly pass the parameters to the
change_master_netmask RPC, and change all the call flow to use the new
interface.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Andrea Spadaccini [Thu, 27 Oct 2011 18:18:00 +0000 (19:18 +0100)]
Explicitly pass params to deactivate_master_ip
Make the master explicitly pass the parameters to the
deactivate_master_ip RPC, and change all the call flow to use the new
interface.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Andrea Spadaccini [Fri, 28 Oct 2011 10:29:51 +0000 (11:29 +0100)]
Change the semantics of stop_master RPC
To avoid polluting the stop_master RPC interface with network
parameters, this patch removes the deactivation of the master IP from
this RPC.
The call to deactivate_master_ip is then added before every stop_master
call.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Andrea Spadaccini [Thu, 27 Oct 2011 16:08:34 +0000 (17:08 +0100)]
Explicitly pass params to activate_master_ip
To remove the usage of ssconf in the backend, the master needs to push
the parameters of activate_master_ip to the backend.
This patch changes the entire call path of activate_master_ip to use the
new interface.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Michael Hanselmann [Wed, 2 Nov 2011 12:19:01 +0000 (13:19 +0100)]
locking: Make level names consistent, add check
- Change all lock level names to their singular form
- Add assertion checking consistency between level names and lockset
name
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Wed, 2 Nov 2011 12:15:38 +0000 (13:15 +0100)]
Add new lock level for node resource modifications
This is in preparation for implementing a new resource model.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Tue, 1 Nov 2011 15:42:36 +0000 (16:42 +0100)]
Add tool to check Python file headers
Ensures licence and copyright headers are correct.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: René Nussbaumer <rn@google.com>
Andrea Spadaccini [Tue, 1 Nov 2011 18:45:27 +0000 (18:45 +0000)]
Move hooks PATH environment variable to constants
Move the contents of the PATH environment variable for hooks to
constants, and use its value in the code and in the hooks documentation.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Andrea Spadaccini [Tue, 1 Nov 2011 14:15:05 +0000 (14:15 +0000)]
Check the results of master IP RPCs
A failed gnt-cluster (de)activate-master-ip would not produce any output
to the user. This patch adds code that checks for the results of the
RPCs and raise an exception if appropriate.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Andrea Spadaccini [Tue, 11 Oct 2011 11:20:44 +0000 (12:20 +0100)]
Add documentation for the master IP hooks
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Andrea Spadaccini [Tue, 25 Oct 2011 15:17:37 +0000 (16:17 +0100)]
Add master IP turnup and turndown hooks
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Andrea Spadaccini [Tue, 25 Oct 2011 14:58:41 +0000 (15:58 +0100)]
Add RunLocalHooks decorator
Add the RunLocalHooks decorator, that allows the execution of hooks
locally. Also, add a RunLocalHooks method to HooksRunner, to adapt the
signature of HooksRunner.RunHooks to the one expected by HooksMaster,
and also to check that the hooks are being executed locally.
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Andrea Spadaccini [Tue, 25 Oct 2011 12:58:50 +0000 (13:58 +0100)]
Generalize HooksMaster
- remove any dependence on Logical Units from the HooksMaster;
- add a new function parameter to the constructor, a function that is
expected to convert the results of the hooks execution in a format
understood by the HooksMaster;
- add a factory method that builds a HooksMaster from a LU, keeping the
interface of the old constructor of HooksMaster;
- remove usage of Processor.hmclass from external classes, introducing
the Processor.BuildHooksMaster method;
- update unit tests.
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Andrea Spadaccini [Tue, 11 Oct 2011 11:20:44 +0000 (12:20 +0100)]
Add documentation for the master IP hooks
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Andrea Spadaccini [Tue, 25 Oct 2011 15:17:37 +0000 (16:17 +0100)]
Add master IP turnup and turndown hooks
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Andrea Spadaccini [Tue, 25 Oct 2011 14:58:41 +0000 (15:58 +0100)]
Add RunLocalHooks decorator
Add the RunLocalHooks decorator, that allows the execution of hooks
locally. Also, add a RunLocalHooks method to HooksRunner, to adapt the
signature of HooksRunner.RunHooks to the one expected by HooksMaster,
and also to check that the hooks are being executed locally.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Andrea Spadaccini [Tue, 25 Oct 2011 12:58:50 +0000 (13:58 +0100)]
Generalize HooksMaster
- remove any dependence on Logical Units from the HooksMaster;
- add a new function parameter to the constructor, a function that is
expected to convert the results of the hooks execution in a format
understood by the HooksMaster;
- add a factory method that builds a HooksMaster from a LU, keeping the
interface of the old constructor of HooksMaster;
- remove usage of Processor.hmclass from external classes, introducing
the Processor.BuildHooksMaster method;
- update unit tests.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Michael Hanselmann [Tue, 1 Nov 2011 15:02:16 +0000 (16:02 +0100)]
RAPI: Fix issue when replacing disks
This is another fallout from a suboptimal merge.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Andrea Spadaccini <spadaccio@google.com>
Michael Hanselmann [Mon, 31 Oct 2011 19:09:22 +0000 (20:09 +0100)]
rpc: Improve argument definitions
Instead of in-place code now each argument has an (optional) kind
assigned. The RPC client will then take care of encoding each argument
according to its definition. A new base (_RpcClientBase) is added to
take care of encoding and dispatching calls.
Future patches will also use these definitions in the node daemon.
A nice side-effect of this change is the ability to use stand-alone
functions, as opposed to class member methods, for most of the encoding.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: René Nussbaumer <rn@google.com>
Michael Hanselmann [Mon, 31 Oct 2011 17:47:15 +0000 (18:47 +0100)]
rpc: Change {import,export}_start to take source/dest in single argument
This simplifies the RPC argument encoding code.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: René Nussbaumer <rn@google.com>
Michael Hanselmann [Mon, 31 Oct 2011 17:24:04 +0000 (18:24 +0100)]
Rename lib/build/rpc_definitions.py to lib/rpc_defs.py
It will also be used at runtime, not just for building.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: René Nussbaumer <rn@google.com>
Michael Hanselmann [Mon, 31 Oct 2011 16:33:28 +0000 (17:33 +0100)]
Clean up incorrect merge
7dcf333d
The unittests weren't corrected for the master branch.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: René Nussbaumer <rn@google.com>
Michael Hanselmann [Mon, 31 Oct 2011 15:16:42 +0000 (16:16 +0100)]
Merge branch 'devel-2.5'
* devel-2.5:
Fix wrong headers and licences
Update NEWS and increase to 2.4.5
Fix parameters of RpcResult in hooks unit tests
Fix a too long line.
Move RenameFile to the new functions
ensure_dirs: Move some useful functions into utils.
Use JoinDisjointDicts in mcpu
Add the JoinDisjointDicts function to utils.algo
Fix queue archive creation with wrong permissions
Ensure permission on the job queue version file
OpGroupVerifyDisks: Fix wrong result type declaration
RAPI: Make node evacuation actually work
Bump version to 2.5.0~rc2
Update NEWS for unreleased 2.4.5
RAPI: Fix resource for replacing disks
Conflicts:
lib/rapi/rlib2.py: Merged bugfix from commit
539d65ba0
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: René Nussbaumer <rn@google.com>
Michael Hanselmann [Thu, 20 Oct 2011 15:37:17 +0000 (17:37 +0200)]
Fix wrong headers and licences
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Stephen Shirley <diamond@google.com>
Andrea Spadaccini [Fri, 28 Oct 2011 13:19:49 +0000 (14:19 +0100)]
Add missing get_migration_status RPC definition
Add the instance_get_migration_status RPC definition and the needed
helper.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Michael Hanselmann [Thu, 27 Oct 2011 18:53:42 +0000 (20:53 +0200)]
cmdlib: Fix issue when marking node as online
When a node is marked as online (“gnt-node modify -O no …”), an RPC is
made to the node to check whether the node daemon is running. My recent
RPC changes led to offline nodes being ignored before the actual call is
made, thereby causing this check to fail. This is a workaround and needs
to be cleaned up later.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Andrea Spadaccini [Mon, 24 Oct 2011 10:50:27 +0000 (11:50 +0100)]
Use GetClassFromIpFamily in ActivateMasterIp
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Andrea Spadaccini [Mon, 24 Oct 2011 10:26:26 +0000 (11:26 +0100)]
Add shortcut for network-related cluster params
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Michael Hanselmann [Wed, 26 Oct 2011 10:36:42 +0000 (12:36 +0200)]
rpc: Remove leftovers from timeout table
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Wed, 26 Oct 2011 10:37:11 +0000 (12:37 +0200)]
config: Add unlocked function to get all node objects
This will be used for resolving node names.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Michael Hanselmann [Thu, 27 Oct 2011 16:00:34 +0000 (18:00 +0200)]
Update NEWS for 2.5.0~rc4
I forgot this in the previous patch.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Andrea Spadaccini <spadaccio@google.com>
Michael Hanselmann [Thu, 27 Oct 2011 13:50:54 +0000 (15:50 +0200)]
Bump version to 2.5.0~rc4
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: René Nussbaumer <rn@google.com>
Michael Hanselmann [Thu, 27 Oct 2011 13:44:15 +0000 (15:44 +0200)]
Merge branch 'stable-2.4' into stable-2.5
* stable-2.4:
Update NEWS and increase to 2.4.5
Conflicts:
configure.ac: Trivial
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: René Nussbaumer <rn@google.com>
René Nussbaumer [Thu, 27 Oct 2011 13:28:02 +0000 (15:28 +0200)]
Merge branch 'devel-2.4' into devel-2.5
Conflicts:
configure.ac (trivial)
Signed-off-by: René Nussbaumer <rn@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Michael Hanselmann [Thu, 27 Oct 2011 13:24:15 +0000 (15:24 +0200)]
jqueue: Allow zero jobs to be submitted at once
If cmdlib.LUNodeMigrate was called for a node without primary instances
it would try to submit an empty list of jobs. This was never visible via
CLI as there we check the list of primary instances first.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: René Nussbaumer <rn@google.com>
René Nussbaumer [Thu, 27 Oct 2011 12:57:10 +0000 (14:57 +0200)]
Update NEWS and increase to 2.4.5
Signed-off-by: René Nussbaumer <rn@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
Andrea Spadaccini [Wed, 26 Oct 2011 13:23:59 +0000 (14:23 +0100)]
Fix parameters of RpcResult in hooks unit tests
In FakeHooksRpcSuccess, the data parameter of the RpcResult constructor
was not enclosed in a tuple. While this does not make the test fail, it
must be fixed.
Signed-off-by: Andrea Spadaccini <spadaccio@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
Michael Hanselmann [Wed, 26 Oct 2011 10:46:49 +0000 (12:46 +0200)]
Fix RPC unittest
Add missing “read_timeout” value.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Agata Murawska [Tue, 25 Oct 2011 13:11:29 +0000 (15:11 +0200)]
Generalize the generation of ADT from raw types
Signed-off-by: Agata Murawska <agatamurawska@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Agata Murawska [Mon, 24 Oct 2011 14:06:08 +0000 (16:06 +0200)]
Luxi support for Query status in htools
Signed-off-by: Agata Murawska <agatamurawska@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Iustin Pop [Wed, 14 Sep 2011 10:44:18 +0000 (12:44 +0200)]
hail: don't select the primary as new secondary
This just adds the primary node of the instance as 'non-allocable'
during the choosing of the new secondary.
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
(cherry picked from commit
7073b3a86856bcd8d8a62c0b72f82deaabb8d8f1)
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>