On 11/10/2014 05:51 PM, Aaron Karper wrote:
> Thanks for this cleanup.
>
> On Thu, Nov 06, 2014 at 12:30:39AM +0200, Alex Pyrgiotis wrote:
>> Convert the index operations that are used in "add" to functions, so
>> that they can be used by "attach" later on.
>>
>> Signed-off-by: Alex Pyrgiotis <[email protected] <mailto:[email protected]>>
>>
>> diff --git a/lib/cmdlib/instance_utils.py b/lib/cmdlib/instance_utils.py
>> index f59afc7..f3b6a40 100644
>> --- a/lib/cmdlib/instance_utils.py
>> +++ b/lib/cmdlib/instance_utils.py
>> @@ -908,36 +908,13 @@ def ApplyContainerMods(kind, container, chgdesc,
> mods,
>> changes = None
>>
>> if op == constants.DDM_ADD:
>> - # Calculate where item will be added
>> - # When adding an item, identifier can only be an index
>> - try:
>> - idx = int(identifier)
>> - except ValueError:
>> - raise errors.OpPrereqError("Only possitive integer or -1 is
> accepted as"
>> - " identifier for %s" %
> constants.DDM_ADD,
>> - errors.ECODE_INVAL)
>> - if idx == -1:
>> - addidx = len(container)
>> - else:
>> - if idx < 0:
>> - raise IndexError("Not accepting negative indices other than
> -1")
>> - elif idx > len(container):
>> - raise IndexError("Got %s index %s, but there are only %s" %
>> - (kind, idx, len(container)))
>> - addidx = idx
>> -
>> + addidx = GetIndexFromIdentifier(__identifier, kind, container)
>> if create_fn is None:
>> item = params
>> else:
>> (item, changes) = create_fn(addidx, params, private)
>>
>> - if idx == -1:
>> - container.append(item)
>> - else:
>> - assert idx >= 0
>> - assert idx <= len(container)
>> - # list.insert does so before the specified index
>> - container.insert(idx, item)
>> + InsertItemToIndex(int(__identifier), item, container)
>
> nitpick: make conversion in the function, so that the call is ~equal to
> the one to GetIndexFromIdentifier.
>
ACK
>>
>> if post_add_fn is not None:
>> post_add_fn(addidx, item)
>> @@ -1006,6 +983,43 @@ def GetItemFromContainer(__identifier, kind,
> container):
>> (kind, identifier), errors.ECODE_NOENT)
>>
>>
>> +def GetIndexFromIdentifier(__identifier, kind, container):
>> + """Check if the identifier represents a valid container index and
> return it.
>> +
>> + Used in "add" and "attach" actions.
>
> Please add a description for the parameters.
>
ACK
>>
>> + """
>> + try:
>> + idx = int(identifier)
>> + except ValueError:
>> + raise errors.OpPrereqError("Only positive integer or -1 is
> accepted as"
>> + " identifier for add/attach",
> errors.ECODE_INVAL)
>> + if idx == -1:
>> + addidx = len(container)
>
> nitpick: return here.
>
ACK
>
>> + else:
>> + if idx < 0:
>> + raise IndexError("Not accepting negative indices other than -1")
>> + elif idx > len(container):
>> + raise IndexError("Got %s index %s, but there are only %s" %
>> + (kind, idx, len(container)))
>> + addidx = idx
>
> same
>
ACK
>>
>> +
>> + return addidx
>> +
>> +
>> +def InsertItemToIndex(idx, item, container):
>> + """Insert an item to the provided index of a container.
>> +
>> + Used in "add" and "attach" actions.
>> + """
>> + if idx == -1:
>> + container.append(item)
>> + else:
>> + assert idx >= 0
>> + assert idx <= len(container)
>> + # list.insert does so before the specified index
>> + container.insert(idx, item)
>> +
>> +
>> def CheckNodesPhysicalCPUs(lu, node_uuids, requested, hypervisor_specs):
>> """Checks if nodes have enough physical CPUs
>>
>> --
>> 1.7.10.4
>>
>
> --
> Google Germany GmbH
> Dienerstr. 12
> 80331 München
>
> Registergericht und -nummer: Hamburg, HRB 86891
> Sitz der Gesellschaft: Hamburg
> Geschäftsführer: Graham Law, Christine Elizabeth Flores
--
Alex | [email protected]