/** * Create a new site * * ## OPTIONS * * [--site=<site>] * : Name of the site to create (machine-readable) * * [--name=<name>] * : (deprecated) use --site instead * * [--label=<label>] * : Label for the site * * [--product=<productid>] * : Specify the upstream product to use * * [--import=<url>] * : A url to import a valid archive * * [--org=<org>] * : UUID of organization into which to add this site * */ public function create($args, $assoc_args) { $options = array(); $options['label'] = Input::string($assoc_args, 'label', "Human readable label for the site"); $suggested_name = Utils\sanitize_name($options['label']); if (array_key_exists('name', $assoc_args)) { // Deprecated but kept for backwards compatibility $options['name'] = $assoc_args['name']; } elseif (array_key_exists('site', $assoc_args)) { $options['name'] = $assoc_args['site']; } else { $options['name'] = Input::string($assoc_args, 'site', "Machine name of the site; used as part of the default URL (if left blank will be {$suggested_name})", $suggested_name); } if ($org_id = Input::orgid($assoc_args, 'org', false)) { $options['organization_id'] = $org_id; } if (!isset($assoc_args['import'])) { $product = Input::product($assoc_args, 'product'); $options['product_id'] = $product['id']; Terminus::line(sprintf("Creating new %s installation ... ", $product['longname'])); } $workflow = Site::create($options); $workflow->wait(); Terminus::success("Pow! You created a new site!"); // Add Site to SitesCache $site_id = $workflow->attributes->final_task->site_id; $site = new Site($site_id); $site->fetch(); $cache_membership = array('id' => $site_id, 'name' => $options['name'], 'service_level' => $site->attributes->service_level, 'framework' => $site->attributes->framework); if ($org_id) { $org = new Organization($org_id); $cache_membership['membership'] = array('id' => $org_id, 'name' => $org->profile->name, 'type' => 'organization'); } else { $user_id = Session::getValue('user_uuid'); $cache_membership['membership'] = array('id' => $user_id, 'name' => 'Team', 'type' => 'team'); } $sites_cache = new Terminus\SitesCache(); $sites_cache->add($cache_membership); if (isset($assoc_args['import'])) { sleep(10); //To stop erroenous site-DNE errors Terminus::launch_self('site', array('import'), array('url' => $assoc_args['import'], 'site' => $options['name'], 'element' => 'all')); } else { Terminus::launch_self('site', array('info'), array('site' => $options['name'])); } return true; }
/** * Create a new site * * ## OPTIONS * * [--site=<site>] * : Name of the site to create (machine-readable) * * [--name=<name>] * : (deprecated) use --site instead * * [--label=<label>] * : Label for the site * * [--product=<productid>] * : Specify the upstream product to use * * [--import=<url>] * : A url to import a valid archive * * [--org=<org>] * : UUID of organization into which to add this site * */ public function create($args, $assoc_args) { $options = array(); $options['label'] = Input::string($assoc_args, 'label', "Human readable label for the site"); $suggested_name = Utils\sanitize_name($options['label']); if (array_key_exists('name', $assoc_args)) { // Deprecated but kept for backwards compatibility $options['name'] = $assoc_args['name']; } elseif (array_key_exists('site', $assoc_args)) { $options['name'] = $assoc_args['site']; } else { $options['name'] = Input::string($assoc_args, 'site', "Machine name of the site; used as part of the default URL (if left blank will be {$suggested_name})", $suggested_name); } if ($org_id = Input::orgid($assoc_args, 'org', false)) { $options['organization_id'] = $org_id; } if (!isset($assoc_args['import'])) { $product = Input::product($assoc_args, 'product'); $options['product_id'] = $product['id']; Terminus::line(sprintf("Creating new %s installation ... ", $product['longname'])); } $workflow = Site::create($options); $workflow->wait(); Terminus::success("Pow! You created a new site!"); // Add Name->ID mapping to SitesCache $site_id = $workflow->status()->final_task->site_id; $sites_cache = new Terminus\SitesCache(); $sites_cache->add(array($options['name'] => $site_id)); if (isset($assoc_args['import'])) { sleep(10); //To stop erroenous site-DNE errors Terminus::launch_self('site', array('import'), array('url' => $assoc_args['import'], 'site' => $options['name'], 'element' => 'all')); } else { Terminus::launch_self('site', array('info'), array('site' => $options['name'])); } return true; }