示例#1
0
文件: network.py 项目: cogcmd/mist
 def prepare(self):
     self.region_name = self.req.option("region")
     try:
         self.region = boto.vpc.connect_to_region(self.region_name)
     except Exception as e:
         Logger.error("VPC connection error: %s" % (e))
         self.resp.send_error("VPC connection failed")
     self.handlers["default"] = self.handle_list
示例#2
0
文件: __init__.py 项目: cogcmd/mist
 def connect(self):
     self.region_name = self.req.option("region")
     try:
         self.region = boto.ec2.connect_to_region(self.region_name)
     except Exception as e:
         Logger.error("Error connecting to EC2: %s" % (e))
         self.resp.send_error("Cannot connect to EC2")
     if not self.region:
         Logger.error("Error: Unknown region: %s" % (self.region_name))
         self.resp.send_error("Sorry. The region '%s' is unknown." % (self.region_name))
示例#3
0
文件: buckets.py 项目: cogcmd/mist
 def handle_list(self):
     args = [".*"]
     if self.req.arg_count() > 0:
         args = self.req.args()
     try:
         patterns = [re.compile(arg) for arg in args]
         buckets = [{"bucket": bucket.name} for bucket in self.find_matching(patterns)]
         if len(buckets) == 0:
             self.resp.append_body([], template="empty_result")
         else:
             self.resp.append_body({"buckets": buckets}, template="list_buckets")
     except Exception as e:
         Logger.error("Regex compilation error: %s" % (e))
         self.resp.send_error("Invalid regular expression: '%s'" % (self.req.arg(0)))
示例#4
0
文件: buckets.py 项目: cogcmd/mist
 def handle_delete(self):
     if self.req.arg_count() < 2:
         self.usage_error()
     args = self.req.args()
     try:
         patterns = [re.compile(arg) for arg in args[1:]]
         buckets = self.find_matching(patterns)
         try:
             for bucket in buckets:
                 bucket.delete()
         except Exception as e:
             bucketnames = [bucket.name for bucket in buckets]
             Logger.error("Error deleting S3 buckets (%s): %s" % (bucketnames, e))
             self.resp.send_error("Error deleting buckets '%s': %s" % (bucketnames, e))
         if len(buckets) == 0:
             self.resp.append_body([], template="empty_result")
         else:
             bucket_names = [bucket.name for bucket in buckets]
             self.resp.append_body({"buckets": bucket_names}, template="delete_buckets")
     except Exception as e:
         self.resp.send_error("One of the following regular expressions is invalid: %s, %s" % (args[1:], e))
示例#5
0
文件: network.py 项目: cogcmd/mist
 def handle_list(self):
     ids = self.req.args()
     if len(ids) == 0:
         ids = None
     elif ids[0] == "list" or ids[0] == "ls":
         ids = ids[1:]
     vpcs = []
     try:
         for vpc in self.region.get_all_vpcs(ids, filters={"state": "available"}):
             vpc_data = {"id": vpc.id,
                         "state": vpc.state,
                         "cidr_block": vpc.cidr_block,
                         "region": self.region_name}
             if self.req.option("subnets"):
                 subnets = region.get_all_subnets(filters={"vpcId": vpc.id})
                 vpc_data["subnets"] = build_subnet_list(subnets)
             vpcs.append(vpc_data)
         self.resp.append_body({"vpcs": vpc_data}, template="list_vpcs")
     except Exception as e:
         Logger.error("Error enumerating VPC data: %s" % (e))
         self.resp.send_error("VPC service error: %s" % (e))
示例#6
0
文件: __init__.py 项目: cogcmd/mist
 def connect(self):
     try:
         self.conn = S3Connection()
     except Exception as e:
         Logger.error("Failed connecting to S3: %s" % (e))
         self.resp.send_error("S3 connection failed.")
示例#7
0
文件: __init__.py 项目: cogcmd/mist
 def find_matching(self, patterns):
     try:
         return [bucket for bucket in self.conn.get_all_buckets() if self.name_matches(bucket.name, patterns)]
     except Exception as e:
         Logger.error("S3 error: %s" % (e))
         self.resp.send_error("S3 error")