<div class="article">
<div id="main_text">
<h1>How to check up on your cloud provider</h1>
<h2>Cloud providers won't let you audit their actual systems, but there are questions you can ask to decide your level of trust</h2>
<span class='print-link'></span><p>Potential cloud-services customers face a tough problem: How can they trust cloud providers enough to hire them when the providers refuse to reveal <a href="http://www.networkworld.com/news/2010/100710-google-cloud-security.html" target="_blank">important infrastructure details</a> for reasons of security and practicality?</p> <p>These providers say they can’t open their network architectures to customer scrutiny for fear the details will give potential attackers a blueprint for compromising security. They also say the time involved in answering each customer’s questions would be prohibitive.</p> <p><strong>[ Get the no-nonsense explanations and advice you need to take real advantage of cloud computing in InfoWorld editors' 21-page <a href="http://www.infoworld.com/d/cloud-computing/selecting-the-right-cloud-step-step-guide-692?isource=ifwelg_fssr">Cloud Computing Deep Dive PDF special report</a>. | Stay up on the cloud with InfoWorld's <a href="http://www.infoworld.com/newsletters/subscribe?showlist=infoworld_cloud_computing&s ource=ifwelg_fssr">Cloud Computing Report newsletter</a>. ]</strong></p><div id="edit-promo" style="padding: 5px; background: none no-repeat scroll center top #ffffff; position: relative; float: right; width: 336px; height: 200px; margin-bottom: 0pt; margin-top: 10px;"><img src="http://www.infoworld.com/sites/infoworld.com/files/media/image/Cloud-deep-dive-promo.jpg" alt="Cloud Computing Deep Dive" /><div id="mobile-deep-dive-button" style="position: relative; top: -36px; left: 14px;"><a href="http://www.infoworld.com/d/cloud-computing/selecting-the-right-cloud-step-step-guide-692?idglg=ifwsite_editinline&source=ifwelg_new s" target="_blank"><img src="http://www.infoworld.com/sites/infoworld.com/files/media/image/edit_promo-download_btn.gif" alt="" /></a></div></div> <p><a href="http://www.networkworld.com/topics/cloud-computing.html">(Cloud Computing Research Center)</a></p> <p>The bottom line, as one service provider put it earlier this year, is that customers will never get the level of transparency they want. "We won't let you audit to the degree that you would audit your own infrastructure," says Adam Swidler, a product marketing manager at Google, speaking about Google’s cloud services. "It's never going to be the same as auditing your own infrastructure. You'll have to extend some level of trust to third-party verification."</p> <p>While customers may not be able to walk through cloud providers’ data centers and grill their CISOs, they can submit probing questions whose answers may serve the purpose, says the Cloud Security Alliance, which has written a questionnaire businesses can adapt for their own purposes when trying to assess the suitability of cloud service providers.</p> <p>Called the <a href="http://poena:9992/Rhythmyx/psx_ceArticle/www.cloudsecurityalliance.org/cai" target="_blank">Consensus Assessments Initiative Questionnaire</a>, the document is a well-thought-out framework for assessing cloud security. “This question set is a simplified distillation of the issues, best practices, and control ... intended to help organizations build the necessary assessment processes for engaging with cloud providers,” the CSA says.</p> <p>Key questions to ask:</p>
</div>
Here is my recipe. It removes articles that have more than one page. So obviously I am doing something wrong. I have followed the adventure gamers recipe.
Spoiler:
from calibre.web.feeds.news import BasicNewsRecipe
class AdvancedUserRecipe1289709253(BasicNewsRecipe):
title = u'InfoWorld test'
oldest_article = 7
max_articles_per_feed = 100
def append_page(self, soup, appendtag, position):
pager = soup.find('div',attrs={'class':'nextLink'})
if pager:
nexturl = self.INDEX + pager.a['href']
soup2 = self.index_to_soup(nexturl)
texttag = soup2.find('div', attrs={'id':'main_text'})
for it in texttag.findAll(style=True):
del it['style']
newpos = len(texttag.contents)
self.append_page(soup2,texttag,newpos)
texttag.extract()
appendtag.insert(position,texttag)
def preprocess_html(self, soup):
for item in soup.findAll(style=True):
del item['style']
for item in soup.findAll('div', attrs={'class':'edit-promo'}):
item.extract()
self.append_page(soup, soup.body, 3)
pager = soup.find('div',attrs={'class':'pagination clearfix'})
if pager:
pager.extract()
return self.adeify_images(soup)