MCPcopy Create free account
hub / github.com/apache/mesos / parse

Method parse

src/v1/resources.cpp:654–693  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

652/////////////////////////////////////////////////
653
654Try<Resource> Resources::parse(
655 const string& name,
656 const string& value,
657 const string& role)
658{
659 Try<Value> result = internal::values::parse(value);
660 if (result.isError()) {
661 return Error(
662 "Failed to parse resource " + name +
663 " value " + value + " error " + result.error());
664 }
665
666 Resource resource;
667
668 Value _value = result.get();
669 resource.set_name(name);
670
671 if (role != "*") {
672 Resource::ReservationInfo* reservation = resource.add_reservations();
673 reservation->set_type(Resource::ReservationInfo::STATIC);
674 reservation->set_role(role);
675 }
676
677 if (_value.type() == Value::SCALAR) {
678 resource.set_type(Value::SCALAR);
679 resource.mutable_scalar()->CopyFrom(_value.scalar());
680 } else if (_value.type() == Value::RANGES) {
681 resource.set_type(Value::RANGES);
682 resource.mutable_ranges()->CopyFrom(_value.ranges());
683 } else if (_value.type() == Value::SET) {
684 resource.set_type(Value::SET);
685 resource.mutable_set()->CopyFrom(_value.set());
686 } else {
687 return Error(
688 "Bad type for resource " + name + " value " + value +
689 " type " + Value::Type_Name(_value.type()));
690 }
691
692 return resource;
693}
694
695
696// TODO(wickman) It is possible for Resources::ostream<< to produce

Callers

nothing calls this directly

Calls 10

typeMethod · 0.80
CopyFromMethod · 0.80
parseFunction · 0.70
errorMethod · 0.65
ErrorFunction · 0.50
isErrorMethod · 0.45
getMethod · 0.45
setMethod · 0.45
isSomeMethod · 0.45

Tested by

no test coverage detected