Impala
Impalaistheopensource,nativeanalyticdatabaseforApacheHadoop.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
llama-util.cc
Go to the documentation of this file.
1 // Copyright 2012 Cloudera Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #include "util/llama-util.h"
16 
17 #include <sstream>
18 #include <boost/algorithm/string/join.hpp>
19 #include <boost/algorithm/string.hpp>
20 
21 #include "common/names.h"
22 
23 using boost::algorithm::is_any_of;
24 using boost::algorithm::join;
25 using boost::algorithm::split;
26 using namespace llama;
27 
28 namespace llama {
29 
30 ostream& operator<<(ostream& os, const TUniqueId& id) {
31  os << hex << id.hi << ":" << id.lo;
32  return os;
33 }
34 
35 ostream& operator<<(ostream& os, const TNetworkAddress& address) {
36  os << address.hostname << ":" << dec << address.port;
37  return os;
38 }
39 
40 ostream& operator<<(ostream& os, const TResource& resource) {
41  os << "Resource("
42  << "client_resource_id=" << resource.client_resource_id << " "
43  << "v_cpu_cores=" << dec << resource.v_cpu_cores << " "
44  << "memory_mb=" << dec << resource.memory_mb << " "
45  << "asked_location=" << resource.askedLocation << " "
46  << "enforcement=" << resource.enforcement << ")";
47  return os;
48 }
49 
50 ostream& operator<<(ostream& os, const TAllocatedResource& resource) {
51  os << "Allocated Resource("
52  << "reservation_id=" << resource.reservation_id << " "
53  << "client_resource_id=" << resource.client_resource_id << " "
54  << "rm_resource_id=" << resource.rm_resource_id << " "
55  << "v_cpu_cores=" << dec << resource.v_cpu_cores << " "
56  << "memory_mb=" << dec << resource.memory_mb << " "
57  << "location=" << resource.location << ")";
58  return os;
59 }
60 
61 ostream& operator<<(ostream& os, const llama::TLlamaAMGetNodesRequest& request) {
62  os << "GetNodes Request(llama handle=" << request.am_handle << ")";
63  return os;
64 }
65 
66 ostream& operator<<(ostream& os, const llama::TLlamaAMReservationRequest& request) {
67  os << "Reservation Request("
68  << "llama handle=" << request.am_handle << " "
69  << "queue=" << request.queue << " "
70  << "user=" << request.user << " "
71  << "gang=" << request.gang << " "
72  << "resources=[";
73  for (int i = 0; i < request.resources.size(); ++i) {
74  os << request.resources[i];
75  if (i + 1 != request.resources.size()) os << ",";
76  }
77  os << "])";
78  return os;
79 }
80 
81 ostream& operator<<(ostream& os,
82  const llama::TLlamaAMReservationExpansionRequest& request) {
83  os << "Expansion Request("
84  << "llama handle=" << request.am_handle << " "
85  << "reservation id=" << request.expansion_of << " "
86  << "resource=" << request.resource << ")";
87  return os;
88 }
89 
90 ostream& operator<<(ostream& os, const llama::TLlamaAMReleaseRequest& request) {
91  os << "Release Request("
92  << "llama handle=" << request.am_handle << " "
93  << "reservation id=" << request.reservation_id << ")";
94  return os;
95 }
96 
97 llama::TUniqueId& operator<<(llama::TUniqueId& dest, const impala::TUniqueId& src) {
98  dest.lo = src.lo;
99  dest.hi = src.hi;
100  return dest;
101 }
102 
103 impala::TUniqueId& operator<<(impala::TUniqueId& dest, const llama::TUniqueId& src) {
104  dest.lo = src.lo;
105  dest.hi = src.hi;
106  return dest;
107 }
108 
109 bool operator==(const impala::TUniqueId& impala_id, const llama::TUniqueId& llama_id) {
110  return impala_id.lo == llama_id.lo && impala_id.hi == llama_id.hi;
111 }
112 
113 llama::TNetworkAddress& operator<<(llama::TNetworkAddress& dest,
114  const impala::TNetworkAddress& src) {
115  dest.hostname = src.hostname;
116  dest.port = src.port;
117  return dest;
118 }
119 
120 impala::TNetworkAddress& operator<<(impala::TNetworkAddress& dest,
121  const llama::TNetworkAddress& src) {
122  dest.hostname = src.hostname;
123  dest.port = src.port;
124  return dest;
125 }
126 
128  const string& err_prefix) {
129  if (status.status_code == TStatusCode::OK) return impala::Status::OK;
130  stringstream ss;
131  ss << err_prefix << " " << join(status.error_msgs, ", ");
132  return impala::Status(ss.str());
133 }
134 
135 string GetShortName(const string& user) {
136  if (user.empty() || user[0] == '/' || user[0] == '@') return user;
137 
138  vector<string> components;
139  split(components, user, is_any_of("/@"));
140  return components[0];
141 }
142 
143 }
ostream & operator<<(ostream &os, const TUniqueId &id)
Definition: llama-util.cc:30
impala::Status LlamaStatusToImpalaStatus(const TStatus &status, const string &err_prefix)
Definition: llama-util.cc:127
bool operator==(const impala::TUniqueId &impala_id, const llama::TUniqueId &llama_id)
Definition: llama-util.cc:109
static const Status OK
Definition: status.h:87
string GetShortName(const string &user)
Definition: llama-util.cc:135