def __init__(self): self.state = State.Instance() self.lab_spec = {} self.labmgr = LabManager() self.vmpoolmgr = VMPoolManager() self.git = GitCommands() self.deploy_record = Record()
def __init__(self): self.state = State.Instance() self.lab_spec = {} self.labmgr = LabManager() self.vmpoolmgr = VMPoolManager() self.git = GitCommands() self.deploy_record = Record()
class Controller: state = None lab_spec = None lab_deployment_record = None labmgr = None vmpoolmgr = None git = None deploy_recod = None def __init__(self): self.state = State.Instance() self.lab_spec = {} self.labmgr = LabManager() self.vmpoolmgr = VMPoolManager() self.git = GitCommands() self.deploy_record = Record() def test_lab(self, current_user, lab_id, lab_src_url, revision_tag=None): logger.debug("test_lab() for lab ID %s, git url %s, current user %s" % (lab_id, lab_src_url, current_user)) try: ''' record_list = self.state.read_record(lab_src_url) if record_list: msg = "Lab with the url = %s is already deployed" % lab_src_url logger.debug(msg) return msg ''' # Get lab sources and from it the deployment specification # of the lab self.lab_spec = self.labmgr.get_lab_reqs(lab_src_url, revision_tag) self.update_lab_spec(lab_id, lab_src_url, revision_tag) # create a VM to deploy the lab logger.debug("test_lab(); invoking create_vm() on vmpoolmgr") self.deploy_record.record = self.vmpoolmgr.create_vm(self.lab_spec) logger.debug("test_lab(): Returned from VMPool = %s" % (str(self.deploy_record.record))) ip = self.deploy_record.record['vm_info']['vm_ip'] port = self.deploy_record.record['vm_info']['vm_port'] vmmgrurl = "http://" + ip lab_id = self.deploy_record.record['lab_spec']['lab_id'] logger.debug("test_lab(): vmmgrurl = %s" % (vmmgrurl)) # deploy the lab on the newly created container. try: (ret_val, ret_str) = self.labmgr.test_lab(vmmgrurl, port, lab_src_url, revision_tag) if(ret_val): self.update_deploy_record(current_user) self.state.save(self.deploy_record.record) logger.info("test_lab(): test succcessful, ip = %s" % ip) if(base_config.ADS_USING_HOOKS): domain_name = self.register_lab(lab_id, ip) return domain_name + "\n" + "(Note : Very soon you will be allowed to access lab using given domain name)" else: return ip else: logger.error("test_lab(); Test failed with error:" + str(ret_str)) return "Test failed: See log file for errors" except Exception, e: logger.error("test_lab(); Test failed with error: %s" % str(e)) return "Test failed: See log file for errors" except Exception, e: logger.error("test_lab(): Test failed with error: %s" % str(e)) return "Test failed: See log file for errors"
class Controller: state = None lab_spec = None lab_deployment_record = None labmgr = None vmpoolmgr = None git = None deploy_recod = None def __init__(self): self.state = State.Instance() self.lab_spec = {} self.labmgr = LabManager() self.vmpoolmgr = VMPoolManager() self.git = GitCommands() self.deploy_record = Record() def test_lab(self, current_user, lab_id, lab_src_url, revision_tag=None): logger.debug("test_lab() for lab ID %s, git url %s, current user %s" % (lab_id, lab_src_url, current_user)) try: ''' record_list = self.state.read_record(lab_src_url) if record_list: msg = "Lab with the url = %s is already deployed" % lab_src_url logger.debug(msg) return msg ''' # Get lab sources and from it the deployment specification # of the lab self.lab_spec = self.labmgr.get_lab_reqs(lab_src_url, revision_tag) self.update_lab_spec(lab_id, lab_src_url, revision_tag) # create a VM to deploy the lab logger.debug("test_lab(); invoking create_vm() on vmpoolmgr") self.deploy_record.record = self.vmpoolmgr.create_vm(self.lab_spec) logger.debug("test_lab(): Returned from VMPool = %s" % (str(self.deploy_record.record))) ip = self.deploy_record.record['vm_info']['vm_ip'] port = self.deploy_record.record['vm_info']['vm_port'] vmmgrurl = "http://" + ip lab_id = self.deploy_record.record['lab_spec']['lab_id'] logger.debug("test_lab(): vmmgrurl = %s" % (vmmgrurl)) # deploy the lab on the newly created container. try: (ret_val, ret_str) = self.labmgr.test_lab(vmmgrurl, port, lab_src_url, revision_tag) if (ret_val): self.update_deploy_record(current_user) self.state.save(self.deploy_record.record) logger.info("test_lab(): test succcessful, ip = %s" % ip) if (base_config.ADS_USING_HOOKS): domain_name = self.register_lab(lab_id, ip) return domain_name + "\n" + "(Note : Very soon you will be allowed to access lab using given domain name)" else: return ip else: logger.error("test_lab(); Test failed with error:" + str(ret_str)) return "Test failed: See log file for errors" except Exception, e: logger.error("test_lab(); Test failed with error: %s" % str(e)) return "Test failed: See log file for errors" except Exception, e: logger.error("test_lab(): Test failed with error: %s" % str(e)) return "Test failed: See log file for errors"