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

Method parse

src/common/resources.cpp:661–700  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

659/////////////////////////////////////////////////
660
661Try<Resource> Resources::parse(
662 const string& name,
663 const string& value,
664 const string& role)
665{
666 Try<Value> result = internal::values::parse(value);
667 if (result.isError()) {
668 return Error(
669 "Failed to parse resource " + name +
670 " value " + value + " error " + result.error());
671 }
672
673 Resource resource;
674
675 Value _value = result.get();
676 resource.set_name(name);
677
678 if (role != "*") {
679 Resource::ReservationInfo* reservation = resource.add_reservations();
680 reservation->set_type(Resource::ReservationInfo::STATIC);
681 reservation->set_role(role);
682 }
683
684 if (_value.type() == Value::SCALAR) {
685 resource.set_type(Value::SCALAR);
686 resource.mutable_scalar()->CopyFrom(_value.scalar());
687 } else if (_value.type() == Value::RANGES) {
688 resource.set_type(Value::RANGES);
689 resource.mutable_ranges()->CopyFrom(_value.ranges());
690 } else if (_value.type() == Value::SET) {
691 resource.set_type(Value::SET);
692 resource.mutable_set()->CopyFrom(_value.set());
693 } else {
694 return Error(
695 "Bad type for resource " + name + " value " + value +
696 " type " + Value::Type_Name(_value.type()));
697 }
698
699 return resource;
700}
701
702
703// 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