public function load() { parent::load(); $downtime_model = new Downtime(); $this->downtimes = $downtime_model->getindex(array("start_time" => time(), "end_time" => time())); $this->view->statuses = array("Operational" => array($this->getStatus(246, "https://twiki.grid.iu.edu/bin/view/Operations/MyOSGServiceLevelAgreement"), $this->getStatus(266, "https://twiki.grid.iu.edu/bin/view/Operations/OIMServiceLevelAgreement"), $this->getStatus(325, "https://twiki.grid.iu.edu/bin/view/Operations/SoftwareRepoServiceLevelAgreement"), $this->getStatus(250, "https://twiki.grid.iu.edu/bin/view/Operations/RSVServiceLevelAgreement")), "Accounting" => array($this->getStatus(255, "https://twiki.grid.iu.edu/bin/view/Operations/ServiceLevelAgreements")), "Submission" => array($this->getStatus(336, "https://twiki.grid.iu.edu/bin/view/Operations/ServiceLevelAgreements"), $this->getStatus(308, "https://twiki.grid.iu.edu/bin/view/Operations/GlideInWMSServiceLevelAgreement")), "File Distribution" => array($this->getStatus(364, "https://twiki.grid.iu.edu/bin/view/Operations/ServiceLevelAgreements"), $this->getStatus(366, "https://twiki.grid.iu.edu/bin/view/Operations/ServiceLevelAgreements")), "User Interface" => array($this->getStatus(261, "https://twiki.grid.iu.edu/bin/view/Operations/OSGDisplayServiceLevelAgreement"), $this->getStatus(265, "https://twiki.grid.iu.edu/bin/view/Operations/GOCTicketServiceLevelAgreement"), $this->getStatus(401, "https://twiki.grid.iu.edu/bin/view/Operations/GOCTicketServiceLevelAgreement")), "Documentation" => array($this->getStatus(281, "https://twiki.grid.iu.edu/bin/view/Operations/OSGDocRepoServiceLevelAgreement"), $this->getStatus(280, "https://twiki.grid.iu.edu/bin/view/Operations/OSGWebPageServiceLevelAgreement"), $this->getStatus(334, "https://twiki.grid.iu.edu/bin/view/Operations/JIRAServiceLevelAgreement"), $this->getStatus(197, "https://twiki.grid.iu.edu/bin/view/Operations/TWikiServiceLevelAgreement")), "Best Effort" => array($this->getStatus(247, "https://twiki.grid.iu.edu/bin/view/Operations/BDIIServiceLevelAgreement"), $this->getStatus(270, "https://twiki.grid.iu.edu/bin/view/Operations/SoftwareCacheServiceLevelAgreement"))); $this->setpagetitle(self::default_title()); }
public function load() { //pull sites $site_model = new Site(); $sites = $site_model->get(); $this->view->sites = $sites; //pull site groups $rgroup_model = new ResourceGroup(); $rgroups = $rgroup_model->get(); $this->view->rgs = array(); $site_ids = $this->process_sitelist(); foreach ($site_ids as $site_id) { $rgs = array(); foreach ($rgroups as $rgroup) { //filter by gridtype if (isset($_REQUEST["gridtype"])) { $gridtype = $rgroup->osg_grid_type_id; if (!isset($_REQUEST["gridtype_" . $gridtype])) { continue; } } //only pass non-disable resource group if ($rgroup->disable == 1) { continue; } if ($rgroup->site_id == $site_id) { $rgs[] = $rgroup; } } $this->view->rgs[$site_id] = $rgs; } //pull sites (grouped by site group id) $rgrouped_model = new ResourceByGroupID(); $this->view->resources_bygid = $rgrouped_model->getindex(); //get resource status $model = new LatestResourceStatus(); $this->view->resource_status = $model->getgroupby("resource_id"); $downtime_model = new Downtime(); $this->view->downtime = $downtime_model->getindex(array("start_time" => time(), "end_time" => time())); //get campus grid icons if (isset($_REQUEST["map_attrs_showcampusgrid"])) { $model = new CampusGrid(); $this->view->campusgrids = $model->get(); } $this->setpagetitle(self::default_title()); }
private function process_resource_filter_status() { $resources_to_keep = array(); $model = new LatestResourceStatus(); $resource_status = $model->getgroupby("resource_id"); //load downtime $downtime_model = new Downtime(); $params = array("start_time" => time(), "end_time" => time()); $downtimes = $downtime_model->getindex($params); $model = new Resource(); $resources = $model->getindex(); foreach ($resources as $rid => $r) { if (!isset($resource_status[$rid])) { //if status not found, then treat it as UNKNOWN $status_id = 4; //unknown } else { $rs = $resource_status[$rid]; $status_id = $rs[0]->status_id; } //consider status to be down $downtime = @$downtimes[(int) $rid]; if ($downtime !== null) { $status_id = 99; } if ($this->ison("status", $status_id)) { //if(isset($_REQUEST["status_".$status_id])) { if (!in_array($rid, $resources_to_keep)) { $resources_to_keep[] = $rid; } } } return $resources_to_keep; }
public function load() { parent::load(); $this->view->rgs = $this->rgs; //pull commonly needed information $gridtype_model = new GridTypes(); $this->view->gridtypes = $gridtype_model->getindex(); $model = new ResourceGroup(); $this->view->resourcegroups = $model->getgroupby("id"); /////////////////////////////////////////////////////////////////////////////////////////// //pull other optional stuff if (isset($_REQUEST["summary_attrs_showservice"])) { $servicetype_model = new Service(); $this->view->servicetypes = $servicetype_model->getindex(); $resourceservice_model = new ServiceByResourceID(); $this->view->resource_services = $resourceservice_model->getindex(); //load details (all of them for now..) and attach it to resource_services $detail_model = new ResourceServiceDetail(); $resource_service_details = $detail_model->get(); foreach ($this->view->resource_services as $rid => $services) { foreach ($services as $service) { $service->details = array(); //search for details for this service foreach ($resource_service_details as $detail) { if ($detail->resource_id == $rid && $detail->service_id == $service->service_id) { $service->details[$detail->key] = $detail->value; } } } } } if (isset($_REQUEST["summary_attrs_showrsvstatus"])) { $model = new LatestResourceStatus(); $this->view->resource_status = $model->getgroupby("resource_id"); $downtime_model = new Downtime(); $this->view->downtime = $downtime_model->getindex(array("start_time" => time(), "end_time" => time())); } if (isset($_REQUEST["summary_attrs_showgipstatus"])) { $model = new LDIF(); $this->view->gipstatus = $model->getValidationSummary(); } if (isset($_REQUEST["summary_attrs_showvomembership"])) { $cache_filename = config()->vomatrix_xml_cache; $cache_xml = file_get_contents($cache_filename); $vocache = new SimpleXMLElement($cache_xml); $resourcegrouped = $vocache->ResourceGrouped[0]; $this->view->vos_supported = array(); $this->view->vos_errors = array(); foreach ($resourcegrouped as $resource) { $attr = $resource->attributes(); $resource_id = (int) $attr->id; $this->view->vos_supported[$resource_id] = $resource->Members[0]; $this->view->vos_errors[$resource_id] = $resource->ErrorMessage[0]; } } if (isset($_REQUEST["summary_attrs_showvoownership"])) { $model = new ResourceOwnership(); $this->view->resource_ownerships = $model->getindex(); } if (isset($_REQUEST["summary_attrs_showwlcg"])) { $model = new ResourceWLCG(); $this->view->resource_wlcg = $model->getindex(); //append bdii link foreach ($this->rgs as $rg_id => $rg) { foreach ($rg as $resource_id => $resource) { //get resource group name $rgroup = $this->view->resourcegroups[$rg_id][0]; $rgname = $rgroup->name; if (isset($this->view->resource_wlcg[$resource_id][0])) { $this->view->resource_wlcg[$resource_id][0]->ldap_url = "ldap://is.grid.iu.edu:2180/mds-vo-name={$rgname},o=grid"; } } } } if (isset($_REQUEST["summary_attrs_showenv"])) { $model = new ResourceEnv(); $details = $model->getindex(array("metric_id" => 0)); $this->view->envs = array(); //convert to XML String to SimpleXMLElement object foreach ($this->rgs as $rg) { foreach ($rg as $resource_id => $resource) { if (isset($details[$resource_id])) { $rec = $details[$resource_id][0]; $env = null; if ($rec !== null) { try { $env = new SimpleXMLElement($rec->xml); } catch (exception $e) { elog((string) $e); elog($rec->xml); } } $this->view->envs[$resource_id] = $env; } } } } if (isset($_REQUEST["summary_attrs_showcontact"])) { $model = new ResourceContact(); $contacts = $model->getindex(); //group by contact_type_id $this->view->contacts = array(); foreach ($this->rgs as $rg) { foreach ($rg as $resource_id => $resource) { $types = array(); if (isset($contacts[$resource_id])) { foreach ($contacts[$resource_id] as $contact) { if (!isset($types[$contact->contact_type])) { $types[$contact->contact_type] = array(); } //group by contact name $types[$contact->contact_type][] = $contact; } $this->view->contacts[$resource_id] = $types; } } } } if (isset($_REQUEST["summary_attrs_showfqdn"])) { $amodel = new ResourceAlias(); $this->view->aliases = $amodel->getindex(); } if (isset($_REQUEST["summary_attrs_showhierarchy"])) { $this->view->hierarchy = array(); $model = new Facilities(); $facilities = $model->getgroupby("id", array("filter_disabled" => false)); $model = new Site(); $sites = $model->getgroupby("id", array("filter_disabled" => false)); $this->view->sites = $sites; $model = new SupportCenters(); $scs = $model->getgroupby("id"); foreach ($this->rgs as $rgid => $rg) { $rginfo = $this->view->resourcegroups[$rgid][0]; $siteinfo = $sites[$rginfo->site_id][0]; $facilityinfo = $facilities[$siteinfo->facility_id][0]; $scinfo = $scs[$siteinfo->sc_id][0]; $this->view->hierarchy[$rgid] = array("facility" => $facilityinfo, "site" => $siteinfo, "sc" => $scinfo); } } if (isset($_REQUEST["summary_attrs_showticket"])) { $ticketmodel = new OpenTickets(); $this->view->tickets = $ticketmodel->getGroupByRID(); } $this->setpagetitle(self::default_title()); }