def _get_driver(driver_type, region='ORD'): """ Returns the appropriate diver for the specified rackspace product. Available options include:: lb: Cloud Load Balancers db: Cloud Databases dns: Cloud DNS bs: Cloud Block Storage mon: Cloud Monitoring net: Cloud Networks cf: Cloud Files cs: Cloud Servers :param driver_type: A str or unicode object for the appropriate type of driver above. :param region: A str or unicode object specify which region the driver should be initialized for. :return: A driver object initialized to the specified region :raise TypeError: :raise KeyError: If no valid drivers are found """ _auth() if not isinstance(driver_type, six.string_types): raise TypeError("driver_type must be str or unicode object") if not isinstance(region, six.string_types): raise TypeError("region must be str or unicode object") region = region.upper() if driver_type == "lb": return pyrax.connect_to_cloud_loadbalancers(region) if driver_type == "db": return pyrax.connect_to_cloud_databases(region) if driver_type == "dns": return pyrax.connect_to_cloud_dns() if driver_type == "bs": return pyrax.connect_to_cloud_blockstorage(region) if driver_type == "mon": return pyrax.connect_to_cloud_monitoring(region) if driver_type == "net": return pyrax.connect_to_cloud_networks(region) if driver_type == 'cf': return pyrax.connect_to_cloudfiles(region) if driver_type == 'cs': return pyrax.connect_to_cloudservers(region) raise KeyError(u"No Driver found by: {}".format(driver_type))
def main(): parser = argparse.ArgumentParser(description='Get/Set Rackspace MaaS alarm disable flag', formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument("-e", "--entity", action='store', required=True, help="Entity ID", type=str) parser.add_argument("-a", "--alarm", action='store', required=True, help="Alarm ID", type=str) parser.add_argument("-E", "--enable", action='store_const', const=True, default=False, help="Enable alarm") parser.add_argument("-D", "--disable", action='store_const', const=True, default=False, help="Disable alarm") parser.add_argument("-f", "--credfile", action='store', required=True, help="Credentials file", type=str) args = parser.parse_args() if args.enable and args.disable: print "ERROR: Enable and disable are exclusive." return 1 # Initialize PyRax base = fluffyWrappers.FLUFFY_BASE(credfile=args.credfile) # Currently no wrapper for MaaS cm = pyrax.connect_to_cloud_monitoring() if args.enable: cm.update_alarm(args.entity, args.alarm, disabled=False) if args.disable: cm.update_alarm(args.entity, args.alarm, disabled=True) if cm.get_alarm(args.entity, args.alarm).disabled: print "Alarm %s:%s: Disabled" % (args.entity, args.alarm) else: print "Alarm %s:%s: Enabled" % (args.entity, args.alarm) return 0