Example #1
0
 def __init__(self):
     self.appliance_store = Basic.getApplianceStore()
     self.image_store = Basic.getImageStore()
     self.manager = Basic.getGridManager()
     self.registry = Basic.getPlatformRegistry()
     self.node_service = NodeService()
     self.storage_manager = Basic.getStorageManager()
Example #2
0
    def loadAll():        
        manager = Basic.getGridManager()
        
        # The data center "root" node                
        dcNode = TreeNode("Data Center", constants.DATA_CENTER, "Data Center", 
                          TreeNode.get_state_pixbuf(constants.DATA_CENTER), "true")
        
        # The list of managed nodes appear 1st
        nodes = manager.getNodeList()
        for node in nodes:
            managed_node = manager.getNode(node)
            TreeNode.load_managed_node(managed_node, dcNode)

        # now the list of server groups
        groups = manager.getGroupList()
        groupNames = manager.getGroupNames()    
        for name in groupNames:
            group = groups[name]
            TreeNode.load_server_group(group, dcNode)

        # the image store
        image_store = Basic.getImageStore()
        isNode = TreeNode("Image Store", constants.IMAGE_STORE, "Image Store", 
                          TreeNode.get_state_pixbuf(constants.IMAGE_STORE), "true")
        image_groups = image_store.get_image_groups()    
               
        # now the list of images
        for group in image_groups.itervalues():
            TreeNode.load_image_group(group, isNode)
                       
        return [dcNode, isNode]
Example #3
0
 def __init__(self):
     self.appliance_store = Basic.getApplianceStore()
     self.image_store     = Basic.getImageStore()
     self.manager         = Basic.getGridManager()
     self.registry        = Basic.getPlatformRegistry()
     self.node_service    = NodeService()
     self.storage_manager = Basic.getStorageManager()
Example #4
0
    def loadAll():
        manager = Basic.getGridManager()

        # The data center "root" node
        dcNode = TreeNode("Data Center", constants.DATA_CENTER, "Data Center",
                          TreeNode.get_state_pixbuf(constants.DATA_CENTER),
                          "true")

        # The list of managed nodes appear 1st
        nodes = manager.getNodeList()
        for node in nodes:
            managed_node = manager.getNode(node)
            TreeNode.load_managed_node(managed_node, dcNode)

        # now the list of server groups
        groups = manager.getGroupList()
        groupNames = manager.getGroupNames()
        for name in groupNames:
            group = groups[name]
            TreeNode.load_server_group(group, dcNode)

        # the image store
        image_store = Basic.getImageStore()
        isNode = TreeNode("Image Store", constants.IMAGE_STORE, "Image Store",
                          TreeNode.get_state_pixbuf(constants.IMAGE_STORE),
                          "true")
        image_groups = image_store.get_image_groups()

        # now the list of images
        for group in image_groups.itervalues():
            TreeNode.load_image_group(group, isNode)

        return [dcNode, isNode]
Example #5
0
 def import_appliance(self, auth, href, type, arch, pae, hvm, size, provider_id, platform, description, link, image_name, group_id, is_manual, date, time):
     try:
         is_hvm = 'False'
         if hvm == 'true':
             is_hvm = 'True'
         is_pae = 'False'
         if pae == 'true':
             is_pae = 'True'
         image_name = re.sub(ImageStore.INVALID_CHARS_EXP, '_', image_name)
         appliance_entry = {}
         appliance_entry['href'] = href
         appliance_entry['type'] = type
         appliance_entry['arch'] = arch
         appliance_entry['PAE'] = is_pae
         appliance_entry['is_hvm'] = is_hvm
         appliance_entry['size'] = size
         appliance_entry['provider_id'] = provider_id
         appliance_entry['platform'] = platform
         appliance_entry['title'] = image_name
         if appliance_entry['provider_id'].lower() == 'jumpbox':
             appliance_entry['is_hvm'] = 'True'
         p_url = self.appliance_store.get_provider_url(provider_id)
         appliance_entry['provider_url'] = p_url
         p_logo_url = self.appliance_store.get_logo_url(provider_id)
         appliance_entry['provider_logo_url'] = p_logo_url
         if is_manual == 'true':
             description = "Manually imported appliance. Plese use 'Edit Description' menu to put appropriate description here."
             link = ''
         appliance_entry['description'] = description
         appliance_entry['link'] = link
         if self.appliance_store.get_provider(provider_id):
             self.appliance_store.get_provider(provider_id)
             appliance_entry['provider'] = self.appliance_store.get_provider(provider_id)
         else:
             self.appliance_store.get_provider(provider_id)
             appliance_entry['provider'] = provider_id
         if image_name:
             image_name = image_name.strip()
         platform = appliance_entry['platform']
         type = appliance_entry['type']
         if type.lower() not in ('xva', 'file_system', 'jb_archive'):
             raise Exception('Invalid Package type %s: supported package types are XVA, FILE_SYSTEM. JB_ARCHIVE' % type)
         image_store = Basic.getImageStore()
         if image_store.image_exists_by_name(image_name):
             image_store.image_exists_by_name(image_name)
             img = image_store.get_image_by_name(image_name)
             image_store.delete_image(auth, group_id, img.get_id())
         title = appliance_entry.get('title')
         if not title:
             title = ''
         tc = TaskCreator()
         result = tc.import_appliance(auth, appliance_entry, image_store, group_id, image_name, platform.lower(), True, date, time)
         return result
     except Exception as e:
         print_traceback()
         LOGGER.error(to_str(e).replace("'", ''))
         raise e
Example #6
0
File: VMInfo.py Project: smarkm/ovm
    def fromXml(xml):

        vm_info = VMInfo()

        manager      = Basic.getGridManager()
        registry     = Basic.getPlatformRegistry()
        image_store  = Basic.getImageStore()


        node_id     = xml.getAttribute("nodeId")
        dom_id      = xml.getAttribute("domId")
        image_id    = xml.getAttribute("imageId")

        vm_info.node_id = node_id
        vm_info.dom_id  = dom_id
        vm_info.image_id = image_id

        managed_node = manager.getNode(node_id)
        dom          = managed_node.get_dom(dom_id)
        platform     = managed_node.get_platform()

        if dom is None:
            platform_object   = registry.get_platform_object(platform)
            vm_info.vm_config = platform_object.create_vm_config(managed_node)
            vm_info.vm_config.platform   = platform
            vm_info.vm_config.set_managed_node(managed_node)
        else:
            vm_info.vm_config = dom.get_config()
            vm_info.vm_config.platform   = platform
            vm_info.vm_config.set_managed_node(managed_node)
        
                
        
        vm_info.vm_config.image_id = image_id
        vm_info.parseVMInfo(xml)
        
        image = image_store.get_image(image_id)
        if image is not None:
            image_vm_config, image_config = image.get_configs()
            vm_info.image_config = image_config

#        vm_info.instantiate_configs(managed_node,
#                                    image_store,
#                                    vm_info.vm_config.image_name,
#                                    vm_info.vm_config.image_location,
#                                    vm_info.vm_config,
#                                    vm_info.image_config)
        
        cherrypy.log(vm_info.vm_config.filename)
        return vm_info
Example #7
0
 def __init__(self):
     self.image_store = Basic.getImageStore()
     self.appliance_store = Basic.getApplianceStore()
    def import_appliance(self, auth, href, type, arch, pae, hvm, size,
                         provider_id, platform, description, link, image_name,
                         group_id, is_manual, date, time):
        try:
            is_hvm = 'False'
            if hvm == 'true':
                is_hvm = 'True'
            is_pae = 'False'
            if pae == 'true':
                is_pae = 'True'

            image_name = re.sub(ImageStore.INVALID_CHARS_EXP, '_', image_name)

            appliance_entry = {}
            appliance_entry["href"] = href
            appliance_entry["type"] = type
            appliance_entry["arch"] = arch
            appliance_entry["PAE"] = is_pae
            appliance_entry["is_hvm"] = is_hvm
            appliance_entry["size"] = size
            appliance_entry["provider_id"] = provider_id
            appliance_entry["platform"] = platform
            appliance_entry["title"] = image_name

            if appliance_entry["provider_id"].lower() == "jumpbox":
                appliance_entry["is_hvm"] = "True"

            p_url = self.appliance_store.get_provider_url(provider_id)
            appliance_entry["provider_url"] = p_url
            p_logo_url = self.appliance_store.get_logo_url(provider_id)
            appliance_entry["provider_logo_url"] = p_logo_url

            if is_manual == 'true':
                description = "Manually imported appliance. Plese use 'Edit Description' menu to put appropriate description here."
                link = ""

            appliance_entry["description"] = description
            appliance_entry["link"] = link

            if self.appliance_store.get_provider(provider_id):
                appliance_entry[
                    "provider"] = self.appliance_store.get_provider(
                        provider_id)
            else:
                appliance_entry["provider"] = provider_id

            if image_name:
                image_name = image_name.strip()

            platform = appliance_entry["platform"]
            type = appliance_entry["type"]
            if type.lower() not in ("xva", "file_system", "jb_archive"):
                raise Exception(
                    "Invalid Package type %s: supported package types are XVA, FILE_SYSTEM. JB_ARCHIVE"
                    % type)

            image_store = Basic.getImageStore()

            #force = False

            #for image_group in image_store.get_image_groups(auth).values():
            if image_store.image_exists_by_name(image_name):
                img = image_store.get_image_by_name(image_name)
                image_store.delete_image(auth, group_id, img.get_id())

            #image_group = image_store.get_image_groups(auth)[group_id]

            # Create a new image and add it to the group.
            #img = image_store.create_image(auth,group_id, image_name, platform.lower())

            title = appliance_entry.get("title")
            if not title:
                title = ""

            tc = TaskCreator()
            tc.import_appliance(auth, appliance_entry, image_store, \
                                group_id, image_name, platform.lower(),True,date,time)
        except Exception, e:
            print_traceback()
            LOGGER.error(to_str(e).replace("'", ""))
            raise e
Example #9
0
    def __init__(self, xml_string):
        self.image_store = Basic.getImageStore()
        self.xml_string = xml_string
#        import pprint; print "xml_string:",;pprint.pprint(str(xml_string))
#        print "xml_string is ", type(xml_string), str(xml_string).upper()
        self.xml_dom = minidom.parseString(self.xml_string)
Example #10
0
 def __init__(self, xml_string):
     self.image_store = Basic.getImageStore()
     self.xml_string = xml_string
     #        import pprint; print "xml_string:",;pprint.pprint(str(xml_string))
     #        print "xml_string is ", type(xml_string), str(xml_string).upper()
     self.xml_dom = minidom.parseString(self.xml_string)
Example #11
0
	def __init__(self, xml_string):
		self.image_store = Basic.getImageStore()
		self.xml_string = xml_string
		self.xml_dom = minidom.parseString(self.xml_string)
Example #12
0
    def import_appliance(self,auth,href,type,arch,pae,hvm,size,provider_id,platform,description,link,image_name,group_id,is_manual,date,time):
        try:           
            is_hvm='False'
            if hvm == 'true':
                is_hvm='True'
            is_pae='False'
            if pae == 'true':
                is_pae='True'

            image_name = re.sub(ImageStore.INVALID_CHARS_EXP,'_', image_name)
                        
            appliance_entry = {}
            appliance_entry["href"] = href
            appliance_entry["type"] = type
            appliance_entry["arch"] = arch
            appliance_entry["PAE"] = is_pae
            appliance_entry["is_hvm"] = is_hvm
            appliance_entry["size"] = size
            appliance_entry["provider_id"] = provider_id
            appliance_entry["platform"] = platform
            appliance_entry["title"] = image_name

            if appliance_entry["provider_id"].lower() == "jumpbox":
                appliance_entry["is_hvm"] = "True"

            
            p_url = self.appliance_store.get_provider_url(provider_id)
            appliance_entry["provider_url"] = p_url
            p_logo_url = self.appliance_store.get_logo_url(provider_id)
            appliance_entry["provider_logo_url"] = p_logo_url

            if is_manual=='true':
                description="Manually imported appliance. Plese use 'Edit Description' menu to put appropriate description here."
                link=""

            appliance_entry["description"] = description
            appliance_entry["link"] = link

            if self.appliance_store.get_provider(provider_id):
                appliance_entry["provider"] = self.appliance_store.get_provider(provider_id)
            else:
                appliance_entry["provider"] = provider_id

            if image_name:
                image_name = image_name.strip()

            platform = appliance_entry["platform"]
            type = appliance_entry["type"]
            if type.lower() not in ("xva", "file_system", "jb_archive"):
                raise Exception("Invalid Package type %s: supported package types are XVA, FILE_SYSTEM. JB_ARCHIVE" % type)

            image_store=Basic.getImageStore()
            
            #force = False

            #for image_group in image_store.get_image_groups(auth).values():
            if image_store.image_exists_by_name(image_name):                
                img = image_store.get_image_by_name(image_name)
                image_store.delete_image(auth,group_id, img.get_id())
                    
            #image_group = image_store.get_image_groups(auth)[group_id]
            
            # Create a new image and add it to the group.
            #img = image_store.create_image(auth,group_id, image_name, platform.lower())

            title = appliance_entry.get("title")
            if not title:
                title = ""

            tc = TaskCreator()
            tc.import_appliance(auth, appliance_entry, image_store, \
                                group_id, image_name, platform.lower(),True,date,time)
        except Exception, e:
            print_traceback()
            LOGGER.error(to_str(e).replace("'",""))
            raise e