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 _get_client(self): username = self.config['username'] api_key = self.config['api_key'] # Needs to be extracted to per-action region = self.config['region'].upper() pyrax.set_setting('identity_type', 'rackspace') pyrax.set_default_region(region) pyrax.set_credentials(username, api_key) debug = self.config.get('debug', False) if debug: pyrax.set_http_debug(True) pyrax.cloudservers = pyrax.connect_to_cloudservers(region=region) pyrax.cloud_loadbalancers = pyrax.connect_to_cloud_loadbalancers(region=region) pyrax.cloud_dns = pyrax.connect_to_cloud_dns(region=region) return pyrax
parser.add_argument("FQDN", help="FQDN for the new website") parser.add_argument("--htmlfile", help="Local file containing new site's content", default=False) parser.add_argument("--container", help="CloudFiles container name to create", default=False) parser.add_argument("--region", default='DFW', help="Region in which to create site (DFW or ORD)") args = parser.parse_args() credential_file=os.path.expanduser("~/.rackspace_cloud_credentials") pyrax.set_credential_file(credential_file) if c1.is_valid_region(args.region, 'object_store'): cf = pyrax.connect_to_cloudfiles(region=args.region) dns = pyrax.connect_to_cloud_dns(region=args.region) else: print "The region you requested is not valid: %s" % args.region sys.exit(2) if not c4.is_valid_hostname(args.FQDN): print "This does not appear to be a valid host name: %s" % args.FQDN sys.exit(3) if args.htmlfile: indexFileName = os.path.expanduser(args.htmlfile) if os.path.isfile(indexFileName): indexFileContents = open(indexFileName, 'r').read() else: print 'The specified file "%s" does not exist' % indexFile else:
help='Set\'s the account API key') parser.add_argument('--region', '-r', required=True, help='Set\'s the account region') args = parser.parse_args() pyrax.set_credentials(username=args.user, api_key=args.apikey, region=args.region) if args.region == 'ORD': cs = pyrax.connect_to_cloudservers("ORD") cdb = pyrax.connect_to_cloud_databases("ORD") cnw = pyrax.connect_to_cloud_networks("ORD") cbs = pyrax.connect_to_cloud_blockstorage("ORD") dns = pyrax.connect_to_cloud_dns("ORD") lbs = pyrax.connect_to_cloud_loadbalancers("ORD") elif args.region == 'DFW': cs = pyrax.connect_to_cloudservers("DFW") cdb = pyrax.connect_to_cloud_databases("DFW") cnw = pyrax.connect_to_cloud_networks("DFW") cbs = pyrax.connect_to_cloud_blockstorage("DFW") dns = pyrax.connect_to_cloud_dns("DFW") lbs = pyrax.connect_to_cloud_loadbalancers("DFW") elif args.region == 'LON': cs = pyrax.connect_to_cloudservers("LON") cdb = pyrax.connect_to_cloud_databases("LON") cnw = pyrax.connect_to_cloud_networks("LON") cbs = pyrax.connect_to_cloud_blockstorage("LON") dns = pyrax.connect_to_cloud_dns("LON") lbs = pyrax.connect_to_cloud_loadbalancers("LON")
parser.add_argument( '--user', '-u', required=True, help='Set\'s the account user') parser.add_argument( '--apikey', '-k', required=True, help='Set\'s the account API key') parser.add_argument( '--region', '-r', required=True, help='Set\'s the account region') args = parser.parse_args() pyrax.set_credentials( username=args.user, api_key=args.apikey, region=args.region) if args.region == 'ORD': cs = pyrax.connect_to_cloudservers("ORD") cdb = pyrax.connect_to_cloud_databases("ORD") cnw = pyrax.connect_to_cloud_networks("ORD") cbs = pyrax.connect_to_cloud_blockstorage("ORD") dns = pyrax.connect_to_cloud_dns("ORD") lbs = pyrax.connect_to_cloud_loadbalancers("ORD") elif args.region == 'DFW': cs = pyrax.connect_to_cloudservers("DFW") cdb = pyrax.connect_to_cloud_databases("DFW") cnw = pyrax.connect_to_cloud_networks("DFW") cbs = pyrax.connect_to_cloud_blockstorage("DFW") dns = pyrax.connect_to_cloud_dns("DFW") lbs = pyrax.connect_to_cloud_loadbalancers("DFW") elif args.region == 'LON': cs = pyrax.connect_to_cloudservers("LON") cdb = pyrax.connect_to_cloud_databases("LON") cnw = pyrax.connect_to_cloud_networks("LON") cbs = pyrax.connect_to_cloud_blockstorage("LON") dns = pyrax.connect_to_cloud_dns("LON") lbs = pyrax.connect_to_cloud_loadbalancers("LON")
from time import sleep if __name__ == "__main__": pyrax.set_credential_file(expanduser("~/.rackspace_cloud_credentials")) cs_ord = pyrax.connect_to_cloudservers("ORD") cs_dfw = pyrax.connect_to_cloudservers("DFW") cf_ord = pyrax.connect_to_cloudfiles("ORD") cf_dfw = pyrax.connect_to_cloudfiles("DFW") cdb_ord = pyrax.connect_to_cloud_databases("ORD") cdb_dfw = pyrax.connect_to_cloud_databases("DFW") cnw_ord = pyrax.connect_to_cloud_networks("ORD") cnw_dfw = pyrax.connect_to_cloud_networks("DFW") cbs_ord = pyrax.connect_to_cloud_blockstorage("ORD") cbs_dfw = pyrax.connect_to_cloud_blockstorage("DFW") dns_ord = pyrax.connect_to_cloud_dns("ORD") dns_dfw = pyrax.connect_to_cloud_dns("DFW") lbs_ord = pyrax.connect_to_cloud_loadbalancers("ORD") lbs_dfw = pyrax.connect_to_cloud_loadbalancers("DFW") print("deleting servers") for server in cs_ord.servers.list(): server.delete() for server in cs_dfw.servers.list(): server.delete() print("deleting server images") for image in cs_ord.images.list(): if hasattr(image, "server"): cs_ord.images.delete(image.id) for image in cs_dfw.images.list():
errorpage = errorfile.read() except IOError: print "Could not open HTML error page %s. Exiting" % (args.errorfile) exit(1) # make sure FQDN provided is a good hostname hostwords = args.fqdn.split('.') if len(hostwords) < 3: print "%s is not a valid hostname. Exiting" % (args.fqdn) exit(1) domain = ".".join(hostwords[-2:]) cs = pyrax.connect_to_cloudservers(region=args.dc) clb = pyrax.connect_to_cloud_loadbalancers(region=args.dc) cf = pyrax.connect_to_cloudfiles(region=args.dc) cdns = pyrax.connect_to_cloud_dns(region=args.dc) # check if container name exists containers = cf.get_all_containers() container = None for c in containers: if c.name == args.container: container = c if container is not None: print "Container %s already exists. Please specify non-existent container" \ % (args.container) exit(1) container = cf.create_container(args.container) # make sure zone for DNS exists zones = cdns.list()