Rayees Namathponnan created CLOUDSTACK-5113:
-----------------------------------------------

             Summary: [Automation] "get_template" function in command should 
return default templates 
                 Key: CLOUDSTACK-5113
                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-5113
             Project: CloudStack
          Issue Type: Bug
      Security Level: Public (Anyone can view this level - this is the default.)
          Components: marvin
    Affects Versions: 4.2.1
         Environment: Automation
            Reporter: Rayees Namathponnan
             Fix For: 4.2.1


I observed couple of vm deployment failures during automation runs;  test cases 
trying to deploy with vm with template which already deleted by other account 

In below code  in common.py we are getting template 
"apiclient.listTemplates(cmd)",   eg : 

1)  testcase1 trying to deploy a new VM 
2) Same time testcase 2 register a template (temp2)
3) apiclient.listTemplates(cmd) will returns template ID (temp2) 
4) testcase1 deploy vm wilt template temp2,  same time (testcase 2) may delete 
its account, then obviously temp2 also gets deleted 
5)  test case 1 deployment fails since temp2 no available 

Solution 
get_template() should return only default template; there is no property API to 
list only default template; so we should find with starting name of template ie 
"CentOS" and in test case we should not register template with name "CentOS 5.5"


def get_template(apiclient, zoneid, ostype, services=None):
    "Returns a template"

    cmd = listOsTypes.listOsTypesCmd()
    cmd.description = ostype
    ostypes = apiclient.listOsTypes(cmd)

    if isinstance(ostypes, list):
        ostypeid = ostypes[0].id
    else:
        raise Exception(
            "Failed to find OS type with description: %s" % ostype)

    cmd = listTemplates.listTemplatesCmd()
    cmd.templatefilter = 'featured'
    cmd.zoneid = zoneid

    if services:
        if "template" in services:
            cmd.id = services["template"]

    list_templates = apiclient.listTemplates(cmd)






--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to