if ( isset($_REQUEST['pcu_proceed']) ) {
$rules['hostname'] = "";
+ $rules['node_type'] = 'regular';
$rules['model'] = "";
- $rules['method'] = "";
+ $rules['method'] = "dhcp";
$rules['ip'] = "";
$rules['netmask'] = "";
$rules['network'] = "";
$rules['dns2'] = "";
$this->validation->set_rules($rules);
$fields['hostname'] = "Hostname";
+ $fields['node_type'] = "Node Type";
$fields['model'] = "Model";
$fields['method'] = "Method";
$fields['ip'] = "IP Address";
function add_node(&$data)
{
global $api, $plc;
- print "Adding Node\n<br>";
$hostname = trim($_REQUEST['hostname']);
+ $node_type = trim($_REQUEST['node_type']);
$model= trim($_REQUEST['model']);
$method = trim($_REQUEST['method']);
$ip = trim($_REQUEST['ip']);
if( !isset($errors) || count($errors) == 0 )
{
// add new node and its network
- $optional_vals= array( "hostname"=>$hostname, "model"=>$model );
+ $optional_vals= array( 'hostname'=>$hostname, 'node_type'=>$node_type, 'model'=>$model );
$site_id= $data['site_id'];
- $node_id= $api->AddNode( intval( $site_id ), $optional_vals );
- if( $node_id <= 0 ) {
- $data['error'] = $api->error();
- print $data['error'];
+ // Try to get node in case this is from an error:
+ $nodes = $api->GetNodes($optional_vals);
+ if ( count($nodes) > 0 ) {
+ $node_id= $nodes[0]['node_id'];
+ } else {
+ $node_id= $api->AddNode( intval( $site_id ), $optional_vals );
+ if( $node_id <= 0 ) {
+ $data['error'] = $api->error();
+ print $data['error'];
+ }
}
// now, try to add the network.
print $data['error'];
}
- $success = $api->AddNodeToPCU( $node_id, $data['pcu_id'], 1);
- if( !isset($success) || $success <= 0 ) {
- $data['error'] = $api->error();
- print $data['error'];
+ $pcus = $api->GetPCUs(array('pcu_id' => $data['pcu_id']));
+ if ( count($pcus) > 0 )
+ {
+ $pcu = $pcus[0];
+ # if $node_id in $pcu['node_ids']
+ if ( ! in_array( $node_id , $pcu['node_ids'] ) )
+ {
+ $success = $api->AddNodeToPCU( $node_id, $data['pcu_id'], 1);
+ if( !isset($success) || $success <= 0 ) {
+ $data['error'] = $api->error();
+ print $data['error'];
+ }
+
+ }
}
+ $data['interface_id'] = $interface_id;
+ $data['node_id'] = $node_id;
+ if ( isset($errors) ) { $data['errors'] = $errors; }
+ return $node_id;
+
+ } else {
+ $data['error'] = $errors[0];
+ return 0;
}
- $data['node_id'] = $node_id;
- if ( isset($errors) ) { $data['errors'] = $errors; }
- return $node_id;
}
function get_stage3_data($person, $data=NULL)
$person = new Person($plc->person);
$fields['hostname'] = "Hostname";
+ $fields['node_type'] = "Node Type";
$fields['model'] = "Model";
$fields['method'] = "Method";
$fields['ip'] = "IP Address";
if ( isset($_REQUEST['node_choose']) ) {
$rules['node_id'] = "required|intval";
$rules['hostname'] = "";
+ $rules['node_type'] = "regular";
$rules['model'] = "";
- $rules['method'] = "";
+ $rules['method'] = "dhcp";
$rules['ip'] = "";
$rules['netmask'] = "";
$rules['network'] = "";
# TODO: RECODE To update values instead of adding them...
global $api, $plc;
$hostname = trim($_REQUEST['hostname']);
- $model= trim($_REQUEST['model']);
+ $model = trim($_REQUEST['model']);
+ $node_type = trim($_REQUEST['node_type']);
$node_id = intval($this->validation->node_id);
- $ret = $api->UpdateNode( $node_id, array('hostname' => $hostname,
- 'model' => $model));
+ $optional_vals = array('hostname' => $hostname, 'model' => $model, 'node_type' => $node_type );
+ $ret = $api->UpdateNode( $node_id, $optional_vals);
if( $ret <= 0 ) {
$data['error'] = $api->error();
print $data['error'];