print "The specified FQDN is not valid: %s" % args.FQDN
    sys.exit(6)

  # unbuffer stdout for pretty output
  sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)

  #Create new Cloud Network
  if not args.networkname: 
    args.networkname = '%s-net' % args.FQDN
  print "Creating new CloudNetwork named %s using %s" % (args.networkname,
                                                         args.networknet)
  network = cn.create(args.networkname, cidr=args.networknet)
  allnets = network.get_server_networks(public=True, private=True)

  #Create servers and attach to network
  servers = c1.build_some_servers(cs, args.flavor, args.image, args.FQDN,
                                  args.numservers, {}, allnets)
  c1.wait_for_server_builds(servers)
  c1.print_servers_info(servers)

  #Create CBS volumes and attach to servers
  for srv in servers:
    volname = "%s-vol" % srv.name
    print "Creating Block Storage Volume %s of size %d" % (volname, 
                                                           args.volumesize)
    vol = cbs.create(name=volname, size=args.volumesize, volume_type="SATA")
    print "Attaching volume %s to server %s" % (volname, srv.name)
    vol.attach_to_instance(srv, mountpoint='/dev/xvdd')

  #Create LB, with server nodes 
  if not args.lbname:
    LBName = '%s-LB' % args.FQDN
        sys.exit(3)
    if not os.path.isfile(errorPageFile):
        print "The Error Page file does not exist: %s" % errorPageFile
        sys.exit(4)
    if not c1.is_valid_image(cs, args.image):
        print "This does not appear to be a valid image-uuid: %s" % args.image
        sys.exit(5)
    if not c1.is_valid_flavor(cs, args.flavor):
        print "This does not appear to be a valid flavor-id: %s" % args.flavor
        sys.exit(6)

    # Create Servers
    sshkey = open(sshkeyFile, "r").read()
    authkeyFile = "/root/.ssh/authorized_keys"
    serverFiles = {authkeyFile: sshkey}
    servers = c1.build_some_servers(cs, args.flavor, args.image, args.FQDN, args.numservers, serverFiles)
    c1.wait_for_server_networks(servers)
    c1.print_servers_info(servers)

    # Create Loadbalancer
    if not args.lbname:
        LBName = "%s-LB" % args.FQDN
    else:
        LBName = args.lbname
    print "Creating Loadbalancer %s" % LBName
    lb = c7.create_lb_and_add_servers(clb, LBName, servers)
    wait_for_lb_build(lb)

    # create DNS entries for the LB
    c4.create_dns_record(dns, args.FQDN, lb.virtual_ips[0].address, "A")
    pyrax.set_credential_file(credential_file)
    if c1.is_valid_region(args.region, "compute"):
        cs = pyrax.connect_to_cloudservers(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)

    # unbuffer stdout for pretty output
    sys.stdout = os.fdopen(sys.stdout.fileno(), "w", 0)

    if not c4.is_valid_hostname(args.FQDN):
        print "This does not appear to be a valid host name: %s" % args.FQDN
        sys.exit(2)
    if not c1.is_valid_image(cs, args.image):
        print "This does not appear to be a valid image-uuid: %s" % args.image
        sys.exit(3)
    if not c1.is_valid_flavor(cs, args.flavor):
        print "This does not appear to be a valid flavor-id: %s" % args.flavor
        sys.exit(4)

    servers = c1.build_some_servers(cs, args.flavor, args.image, args.FQDN, 1)
    c1.wait_for_server_networks(servers)
    c1.print_servers_info(servers)
    pubIPv4 = cloud_server_public_ipv4(servers[0])
    c4.create_dns_record(dns, args.FQDN, pubIPv4, "A")
    pubIPv6 = cloud_server_public_ipv6(servers[0])
    c4.create_dns_record(dns, args.FQDN, pubIPv6, "AAAA")

# vim: ts=2 sw=2 tw=78 expandtab
             
  credential_file=os.path.expanduser("~/.rackspace_cloud_credentials")
  pyrax.set_credential_file(credential_file)
  if (c1.is_valid_region(args.region, 'compute') and
      c1.is_valid_region(args.region, 'load_balancer')):
    cs = pyrax.connect_to_cloudservers(region=args.region)
    clb = pyrax.connect_to_cloud_loadbalancers(region=args.region)
  else:
    print "The region you requested is not valid: %s" % args.region
    sys.exit(2)

  if not c1.is_valid_image(cs, args.image):
    print "This does not appear to be a valid image-uuid: %s" % args.image
    sys.exit(3)

  if not c1.is_valid_flavor(cs, args.flavor):
    print "This does not appear to be a valid flavor-id: %s" % args.flavor
    sys.exit(4)

  # unbuffer stdout for pretty output
  sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)

  servers = c1.build_some_servers(cs, args.flavor, args.image, args.basename,
                                args.numservers)
  c1.wait_for_server_networks(servers)
  c1.print_servers_info(servers)

  lb = create_lb_and_add_servers(clb, args.lbname, servers)

# vim: ts=2 sw=2 tw=78 expandtab