Ejemplo n.º 1
0
    def populate_appliance_feeds(self):
        feeds = {}
        for c, c_info in self.catalogs.iteritems():
            print c, c_info
            if type(c_info) in [types.StringType, types.UnicodeType]:
                url = c_info
        try:
            feed_conf = self.fetch_catalog(c, url)
        except Exception as ex:
            feed_conf = self.get_conf_name(c)
            print "Error getting catalog ", c, url, ex
            print "Continue using the existing data"

        if not os.path.exists(feed_conf):
            print "Skipping : %s does not exist.", feed_conf

        feed = PyConfig(self.local_node, feed_conf)
        for k, v in feed.iteritems():
            feeds[k] = v
        a_feeds = []
        for k in feeds.iteritems():
            a_feed = ApplianceFeed(to_unicode(k))
            a_feed.feed_name = to_unicode(v["feed_name"])
            a_feed.feed_url = to_unicode(v["feed_url"])
            a_feed.provider_logo_url = to_unicode(v["logo_url"])
            a_feed.provider_name = to_unicode(v["provider"])
            a_feed.provider_url = to_unicode(v["provider_url"])
            a_feeds.append(a_feed)

        DBHelper().truncate(ApplianceFeed)
        DBHelper().add_all(a_feeds)
        return a_feeds