On Fri, Dec 20, 2013 at 11:08 AM, Helga Velroyen <[email protected]> wrote:

>
>
>
> On Fri, Dec 20, 2013 at 10:09 AM, Hrvoje Ribicic <[email protected]> wrote:
>
>> This patch adds a generic way to test tagging of various entities via
>> RAPI. More tags testing will be added as other entitt tests are added.
>>
>> Signed-off-by: Hrvoje Ribicic <[email protected]>
>> ---
>>  qa/rapi-workload.py | 44 ++++++++++++++++++++++++++++++++++++++++++++
>>  1 file changed, 44 insertions(+)
>>
>> diff --git a/qa/rapi-workload.py b/qa/rapi-workload.py
>> index 679425a..71cae24 100755
>> --- a/qa/rapi-workload.py
>> +++ b/qa/rapi-workload.py
>> @@ -156,6 +156,40 @@ def Finish(client, fn, *args, **kwargs):
>>      return None
>>
>>
>> +def TestTags(client, get_fn, add_fn, delete_fn, *args):
>> +  """ Tests whether tagging works.
>> +
>> +  @type client C{GanetiRapiClientWrapper}
>> +  @param client The client wrapper.
>> +  @type get_fn function
>> +  @param get_fn A Get*Tags function of the client.
>> +  @type add_fn function
>> +  @param add_fn An Add*Tags function of the client.
>> +  @type delete_fn function
>> +  @param delete_fn A Delete*Tags function of the client.
>> +
>> +  To allow this method to work for all tagging functions of the client,
>> use
>> +  named methods.
>> +
>> +  """
>> +  get_fn(*args)
>> +
>> +  tags = ["tag1", "tag2", "tag3"]
>> +  Finish(client, add_fn, *args, tags=tags, dry_run=True)
>> +  Finish(client, add_fn, *args, tags=tags)
>> +
>> +  get_fn(*args)
>> +
>> +  Finish(client, delete_fn, *args, tags=tags[:1], dry_run=True)
>> +  Finish(client, delete_fn, *args, tags=tags[:1])
>> +
>> +  get_fn(*args)
>> +
>> +  Finish(client, delete_fn, *args, tags=tags[1:])
>>
>
> No dry run here?
>

Just one use of dry_run is proof enough that it works - the next deletion
would complain of tags being re-deleted.
To make the test more sleek, I did not overdo it with the dry_run-s.


>
>
>> +
>> +  get_fn(*args)
>> +
>> +
>>  def Workload(client):
>>    """ The actual RAPI workload used for tests.
>>
>> @@ -163,6 +197,7 @@ def Workload(client):
>>    @param client A wrapped RAPI client.
>>
>>    """
>> +  nodes, _instance_names = parseConfig(config)
>>
>
> I don't see where these are used.
>

Actually, this is yet another relic of rebasing.


>
>
>>
>>    # First just the simple information retrievals
>>    client.GetVersion()
>> @@ -183,6 +218,15 @@ def Workload(client):
>>
>>    Finish(client, client.RedistributeConfig)
>>
>> +  TestTags(client, client.GetClusterTags, client.AddClusterTags,
>> +           client.DeleteClusterTags)
>> +
>> +  # Generously assume the master is present
>> +  node = qa_config.AcquireNode()
>> +  TestTags(client, client.GetNodeTags, client.AddNodeTags,
>> +           client.DeleteNodeTags, node.primary)
>> +  node.Release()
>> +
>>
>>  def Usage():
>>    sys.stderr.write("Usage:\n\trapi-workload.py qa-config-file")
>> --
>> 1.8.5.1
>>
>>
>
>
> --
> --
> Helga Velroyen | Software Engineer | [email protected] |
>
> 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
>

Interdiff for the relic deletion:

diff --git a/qa/rapi-workload.py b/qa/rapi-workload.py
index 69fdc54..a8bac66 100755
--- a/qa/rapi-workload.py
+++ b/qa/rapi-workload.py
@@ -197,7 +197,6 @@ def Workload(client):
   @param client A wrapped RAPI client.

   """
-  nodes, _instance_names = parseConfig(config)

   # First just the simple information retrievals
   client.GetVersion()

Reply via email to