Commit b713fb7a authored by Iustin Pop's avatar Iustin Pop

Merge branch 'stable-2.4'

* stable-2.4:
  Release 2.4.0
  Small improvement to the ganeti man page
  Fix LUClusterRepairDiskSizes and rpc result usage
  Fix RPC mismatch in blockdev_getsize[s]
  RAPI: fix evacuate node resource
  Fix typo in kvm-ifup script
  NEWS: Replace smartquotes, start lines with uppercase
  Fix LU processor's GetECId
  Update NEWS and release 2.4.0 rc3
  Fix potential data-loss bug in disk wipe routines
  1-char comment typo fix
  Expand some acronyms, add to glossary

Conflicts:
        NEWS (trivial)
Signed-off-by: default avatarIustin Pop <iustin@google.com>
Reviewed-by: default avatarRené Nussbaumer <rn@google.com>
parents 3b877f08 20203756
......@@ -15,6 +15,35 @@ Version 2.5.0 beta1
"link" instead.
Version 2.4.0
-------------
*(Released Mon, 07 Mar 2011)*
Final 2.4.0 release. Just a few small fixes:
- Fixed RAPI node evacuate
- Fixed the kvm-ifup script
- Fixed internal error handling for special job cases
- Updated man page to specify the escaping feature for options
Version 2.4.0 rc3
-----------------
*(Released Mon, 28 Feb 2011)*
A critical fix for the ``prealloc_wipe_disks`` feature: it is possible
that this feature wiped the disks of the wrong instance, leading to loss
of data.
Other changes:
- Fixed title of query field containing instance name
- Expanded the glossary in the documentation
- Fixed one unittest (internal issue)
Version 2.4.0 rc2
-----------------
......@@ -23,14 +52,14 @@ Version 2.4.0 rc2
A number of bug fixes plus just a couple functionality changes.
On the user-visible side, the ``gnt-* list`` command output has changed
with respect to special field states. The current rc1 style of display
can be re-enabled by passing a new ``-v, --verbose`` flag, but in the
default output mode special fields are displayed as follows:
with respect to "special" field states. The current rc1 style of display
can be re-enabled by passing a new ``--verbose`` (``-v``) flag, but in
the default output mode special fields states are displayed as follows:
- offline field: ``*``
- unavailable/not applicable: ``-``
- data missing (RPC failure): ``?``
- unknown field: ``??``
- Offline resource: ``*``
- Unavailable/not applicable: ``-``
- Data missing (RPC failure): ``?``
- Unknown field: ``??``
Another user-visible change is the addition of ``--force-join`` to
``gnt-node add``.
......@@ -38,16 +67,16 @@ Another user-visible change is the addition of ``--force-join`` to
As for bug fixes:
- ``tools/cluster-merge`` has seen many fixes and is now enabled again
- fixed regression in RAPI/instance reinstall where all parameters were
- Fixed regression in RAPI/instance reinstall where all parameters were
required (instead of optional)
- fixed ``gnt-cluster repair-disk-sizes``, was broken since Ganeti 2.2
- fixed iallocator usage (offline nodes were not considered offline)
- fixed ``gnt-node list`` with respect to non-vm_capable nodes
- fixed hypervisor and OS parameter validation with respect to
- Fixed ``gnt-cluster repair-disk-sizes``, was broken since Ganeti 2.2
- Fixed iallocator usage (offline nodes were not considered offline)
- Fixed ``gnt-node list`` with respect to non-vm_capable nodes
- Fixed hypervisor and OS parameter validation with respect to
non-vm_capable nodes
- fixed ``gnt-cluster verify`` with respect to offline nodes (mostly
- Fixed ``gnt-cluster verify`` with respect to offline nodes (mostly
cosmetic)
- fixed ``tools/listrunner`` with respect to agent-based usage
- Fixed ``tools/listrunner`` with respect to agent-based usage
Version 2.4.0 rc1
......@@ -165,7 +194,7 @@ Integration
~~~~~~~~~~~
- Moved ``rapi_users`` file into separate directory, now named
``/ganeti/rapi/users``, ``cfgupgrade`` moves the file and creates a
``.../ganeti/rapi/users``, ``cfgupgrade`` moves the file and creates a
symlink
- Added new tool for running commands on many machines,
``tools/ganeti-listrunner``
......@@ -350,7 +379,7 @@ Version 2.2.1 rc0
*(Released Thu, 7 Oct 2010)*
- Fixed issue 125, replace hardcoded xenvg in ``gnt-cluster`` with
- Fixed issue 125, replace hardcoded "xenvg" in ``gnt-cluster`` with
value retrieved from master
- Added support for blacklisted or hidden OS definitions
- Added simple lock monitor (accessible via (``gnt-debug locks``)
......@@ -524,7 +553,7 @@ Some more bugfixes. Unless critical bugs occur, this will be the last
- Fix case of MAC special-values
- Fix mac checker regex
- backend: Fix typo causing out of range error
- backend: Fix typo causing "out of range" error
- Add missing --units in gnt-instance list man page
......@@ -821,7 +850,7 @@ Bug fixes
directory (e.g. read-only file-system where we can't open the files
read-write, etc.)
- Fixed the behaviour of gnt-node modify for master candidate demotion;
now it either aborts cleanly or, if given the new auto_promote
now it either aborts cleanly or, if given the new "auto_promote"
parameter, will automatically promote other nodes as needed
- Fixed compatibility with (unreleased yet) Python 2.6.5 that would
completely prevent Ganeti from working
......@@ -850,7 +879,7 @@ Bug fixes
New features
~~~~~~~~~~~~
- Added an early_release more for instance replace disks and node
- Added an "early_release" more for instance replace disks and node
evacuate, where we release locks earlier and thus allow higher
parallelism within the cluster
- Added watcher hooks, intended to allow the watcher to restart other
......
......@@ -2,7 +2,7 @@
m4_define([gnt_version_major], [2])
m4_define([gnt_version_minor], [4])
m4_define([gnt_version_revision], [0])
m4_define([gnt_version_suffix], [~rc2])
m4_define([gnt_version_suffix], [])
m4_define([gnt_version_full],
m4_format([%d.%d.%d%s],
gnt_version_major, gnt_version_minor,
......
......@@ -6,6 +6,11 @@ Glossary
.. glossary::
BE Parameter
BE stands for Backend. BE parameters are hypervisor-independent
instance parameters such as the amount of RAM/virtual CPUs it has
been allocated.
HVM
Hardware virtualization mode, where the virtual machine is
oblivious to the fact that's being virtualized and all the
......@@ -15,6 +20,10 @@ Glossary
The code associated with an OpCode, e.g. the code that implements
the startup of an instance.
LUXI
Local UniX Interface. The IPC method over unix sockets used between
the cli tools and the master daemon.
OpCode
A data structure encapsulating a basic cluster operation; for
example, start instance, add instance, etc.
......
......@@ -6697,6 +6697,10 @@ def _WipeDisks(lu, instance):
"""
node = instance.primary_node
for device in instance.disks:
lu.cfg.SetDiskID(device, node)
logging.info("Pause sync of instance %s disks", instance.name)
result = lu.rpc.call_blockdev_pause_resume_sync(node, instance.disks, True)
......@@ -6708,7 +6712,8 @@ def _WipeDisks(lu, instance):
try:
for idx, device in enumerate(instance.disks):
lu.LogInfo("* Wiping disk %d", idx)
logging.info("Wiping disk %d for instance %s", idx, instance.name)
logging.info("Wiping disk %d for instance %s, node %s",
idx, instance.name, node)
# The wipe size is MIN_WIPE_CHUNK_PERCENT % of the instance disk but
# MAX_WIPE_CHUNK at max
......
......@@ -202,7 +202,7 @@ DEV_CONSOLE = "/dev/console"
PROC_MOUNTS = "/proc/mounts"
# luxi related constants
# Local UniX Interface related constants
LUXI_EOM = "\3"
LUXI_VERSION = CONFIG_VERSION
......@@ -661,7 +661,7 @@ HVS_PARAMETER_TYPES = {
HVS_PARAMETERS = frozenset(HVS_PARAMETER_TYPES.keys())
# BE parameter names
# Backend parameter names
BE_MEMORY = "memory"
BE_VCPUS = "vcpus"
BE_AUTO_BALANCE = "auto_balance"
......@@ -1024,7 +1024,7 @@ QR_GROUP = "group"
#: List of resources which can be queried using L{opcodes.OpQuery}
QR_OP_QUERY = frozenset([QR_INSTANCE, QR_NODE, QR_GROUP])
#: List of resources which can be queried using LUXI
#: List of resources which can be queried using Local UniX Interface
QR_OP_LUXI = QR_OP_QUERY.union([
QR_LOCK,
])
......
......@@ -401,8 +401,12 @@ class Processor(object):
self.Log(" - INFO: %s" % message)
def GetECId(self):
"""Returns the current execution context ID.
"""
if not self._ec_id:
errors.ProgrammerError("Tried to use execution context id when not set")
raise errors.ProgrammerError("Tried to use execution context id when"
" not set")
return self._ec_id
......
......@@ -1124,7 +1124,7 @@ class Cluster(TaggableObject):
if self.modify_ssh_setup is None:
self.modify_ssh_setup = True
# default_bridge is no longer used it 2.1. The slot is left there to
# default_bridge is no longer used in 2.1. The slot is left there to
# support auto-upgrading. It can be removed once we decide to deprecate
# upgrading straight from 2.0.
if self.default_bridge is not None:
......
......@@ -431,7 +431,7 @@ class R_2_nodes_name_evacuate(baserlib.R_Generic):
result = cli.PollJob(job_id, cl, feedback_fn=baserlib.FeedbackFn)
jobs = []
for iname, node in result:
for iname, node in result[0]:
if dry_run:
jid = None
else:
......
......@@ -158,8 +158,11 @@ error
stopped during the job execution.
Common options
--------------
Common command line features
----------------------------
Options
~~~~~~~
Many Ganeti commands provide the following options. The
availability for a certain command can be checked by calling the
......@@ -173,15 +176,8 @@ would succeed.
The option ``--priority`` sets the priority for opcodes submitted
by the command.
Common daemon functionality
---------------------------
All Ganeti daemons re-open the log file(s) when sent a SIGHUP signal.
**logrotate**(8) can be used to rotate Ganeti's log files.
Common field formatting
-----------------------
Field formatting
----------------
Multiple ganeti commands use the same framework for tabular listing of
resources (e.g. **gnt-instance list**, **gnt-node list**, **gnt-group
......@@ -214,3 +210,22 @@ verbose mode):
are using a field that the running Ganeti master daemon doesn't
know. This result is persistent, re-running the command won't
change it.
Key-value parameters
~~~~~~~~~~~~~~~~~~~~
Multiple options take parameters that are of the form
``key=value,key=value,...`` or ``category:key=value,...``. Examples
are the hypervisor parameters, backend parameters, etc. For these,
it's possible to use values that contain commas by escaping with via a
backslash (which needs two if not single-quoted, due to shell
behaviour)::
# gnt-instance modify -H kernel_path=an\\,example instance1
# gnt-instance modify -H kernel_path='an\,example' instance1
Common daemon functionality
---------------------------
All Ganeti daemons re-open the log file(s) when sent a SIGHUP signal.
**logrotate**(8) can be used to rotate Ganeti's log files.
......@@ -34,7 +34,7 @@ fi
ip link set $INTERFACE up
if [ "$MODE" == "bridged" ]; then
if [ "$MODE" = "bridged" ]; then
# Connect the interface to the bridge
brctl addif $BRIDGE $INTERFACE
else
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment