| 1509 | |
| 1510 | |
| 1511 | mesos::master::Response::GetAgents::Agent createAgentResponse( |
| 1512 | const mesos::internal::master::Slave& slave, |
| 1513 | const Option<DrainInfo>& drainInfo, |
| 1514 | bool deactivated, |
| 1515 | const Option<Owned<ObjectApprovers>>& approvers) |
| 1516 | { |
| 1517 | mesos::master::Response::GetAgents::Agent agent; |
| 1518 | |
| 1519 | agent.mutable_agent_info()->CopyFrom(slave.info); |
| 1520 | |
| 1521 | agent.set_pid(string(slave.pid)); |
| 1522 | agent.set_active(slave.active); |
| 1523 | agent.set_deactivated(deactivated); |
| 1524 | agent.set_version(slave.version); |
| 1525 | |
| 1526 | agent.mutable_registered_time()->set_nanoseconds( |
| 1527 | slave.registeredTime.duration().ns()); |
| 1528 | |
| 1529 | if (slave.reregisteredTime.isSome()) { |
| 1530 | agent.mutable_reregistered_time()->set_nanoseconds( |
| 1531 | slave.reregisteredTime->duration().ns()); |
| 1532 | } |
| 1533 | |
| 1534 | agent.mutable_agent_info()->clear_resources(); |
| 1535 | foreach (const Resource& resource, slave.info.resources()) { |
| 1536 | if (approvers.isNone() || approvers.get()->approved<VIEW_ROLE>(resource)) { |
| 1537 | agent.mutable_agent_info()->add_resources()->CopyFrom(resource); |
| 1538 | } |
| 1539 | } |
| 1540 | |
| 1541 | foreach (Resource resource, slave.totalResources) { |
| 1542 | if (approvers.isNone() || approvers.get()->approved<VIEW_ROLE>(resource)) { |
| 1543 | convertResourceFormat(&resource, ENDPOINT); |
| 1544 | agent.add_total_resources()->CopyFrom(resource); |
| 1545 | } |
| 1546 | } |
| 1547 | |
| 1548 | foreach (Resource resource, Resources::sum(slave.usedResources)) { |
| 1549 | if (approvers.isNone() || approvers.get()->approved<VIEW_ROLE>(resource)) { |
| 1550 | convertResourceFormat(&resource, ENDPOINT); |
| 1551 | agent.add_allocated_resources()->CopyFrom(resource); |
| 1552 | } |
| 1553 | } |
| 1554 | |
| 1555 | foreach (Resource resource, slave.offeredResources) { |
| 1556 | if (approvers.isNone() || approvers.get()->approved<VIEW_ROLE>(resource)) { |
| 1557 | convertResourceFormat(&resource, ENDPOINT); |
| 1558 | agent.add_offered_resources()->CopyFrom(resource); |
| 1559 | } |
| 1560 | } |
| 1561 | |
| 1562 | agent.mutable_capabilities()->CopyFrom( |
| 1563 | slave.capabilities.toRepeatedPtrField()); |
| 1564 | |
| 1565 | foreachvalue ( |
| 1566 | const mesos::internal::master::Slave::ResourceProvider& resourceProvider, |
| 1567 | slave.resourceProviders) { |
| 1568 | mesos::master::Response::GetAgents::Agent::ResourceProvider* provider = |