fix(all): update all code to latest version

* add new APIs
* remove old ones
* add latest json files
This commit is contained in:
Sebastian Thiel
2015-04-24 20:07:12 +02:00
parent 845a568b25
commit f8689be451
650 changed files with 80776 additions and 88805 deletions

View File

@@ -7,6 +7,7 @@
extern crate docopt;
extern crate yup_oauth2 as oauth2;
extern crate yup_hyper_mock as mock;
extern crate rustc_serialize;
extern crate serde;
extern crate hyper;
@@ -37,6 +38,12 @@ Configuration:
A directory into which we will store our persistent data. Defaults to a user-writable
directory that we will create during the first invocation.
[default: ~/.google-service-cli]
--debug
Output all server communication to standard error. `tx` and `rx` are placed into
the same stream.
--debug-auth
Output all communication related to authentication to standard error. `tx` and `rx` are placed into
the same stream.
");
mod cmn;
@@ -58,10 +65,10 @@ struct Engine {
impl Engine {
fn _metric_descriptors_create(&self, dry_run: bool, err: &mut InvalidOptionsError)
-> Option<api::Error> {
let mut request: api::MetricDescriptor = Default::default();
let mut request = api::MetricDescriptor::default();
let mut call = self.hub.metric_descriptors().create(&request, &self.opt.arg_project);
for parg in self.opt.arg_v.iter() {
let (key, value) = parse_kv_arg(&*parg, err);
let (key, value) = parse_kv_arg(&*parg, err, false);
match key {
"alt"
|"fields"
@@ -81,9 +88,10 @@ impl Engine {
_ => err.issues.push(CLIError::UnknownParameter(key.to_string())),
}
}
let mut field_name: FieldCursor = Default::default();
let mut field_name = FieldCursor::default();
for kvarg in self.opt.arg_kv.iter() {
let (key, value) = parse_kv_arg(&*kvarg, err);
let (key, value) = parse_kv_arg(&*kvarg, err, false);
if let Err(field_err) = field_name.set(&*key) {
err.issues.push(field_err);
}
@@ -99,11 +107,11 @@ impl Engine {
},
"type-descriptor.value-type" => {
request_type_descriptor_init(&mut request);
request.type_descriptor.as_mut().unwrap().value_type = value.unwrap_or("").to_string();
request.type_descriptor.as_mut().unwrap().value_type = Some(value.unwrap_or("").to_string());
},
"type-descriptor.metric-type" => {
request_type_descriptor_init(&mut request);
request.type_descriptor.as_mut().unwrap().metric_type = value.unwrap_or("").to_string();
request.type_descriptor.as_mut().unwrap().metric_type = Some(value.unwrap_or("").to_string());
},
"description" => {
request_type_descriptor_init(&mut request);
@@ -130,8 +138,7 @@ impl Engine {
} {
Err(api_err) => Some(api_err),
Ok((mut response, output_schema)) => {
println!("DEBUG: REMOVE ME {:?}", response);
serde::json::to_writer(&mut ostream, &output_schema).unwrap();
serde::json::to_writer_pretty(&mut ostream, &output_schema).unwrap();
None
}
}
@@ -142,7 +149,7 @@ impl Engine {
-> Option<api::Error> {
let mut call = self.hub.metric_descriptors().delete(&self.opt.arg_project, &self.opt.arg_metric);
for parg in self.opt.arg_v.iter() {
let (key, value) = parse_kv_arg(&*parg, err);
let (key, value) = parse_kv_arg(&*parg, err, false);
match key {
"alt"
|"fields"
@@ -174,8 +181,7 @@ impl Engine {
} {
Err(api_err) => Some(api_err),
Ok((mut response, output_schema)) => {
println!("DEBUG: REMOVE ME {:?}", response);
serde::json::to_writer(&mut ostream, &output_schema).unwrap();
serde::json::to_writer_pretty(&mut ostream, &output_schema).unwrap();
None
}
}
@@ -184,10 +190,10 @@ impl Engine {
fn _metric_descriptors_list(&self, dry_run: bool, err: &mut InvalidOptionsError)
-> Option<api::Error> {
let mut request: api::ListMetricDescriptorsRequest = Default::default();
let mut request = api::ListMetricDescriptorsRequest::default();
let mut call = self.hub.metric_descriptors().list(&request, &self.opt.arg_project);
for parg in self.opt.arg_v.iter() {
let (key, value) = parse_kv_arg(&*parg, err);
let (key, value) = parse_kv_arg(&*parg, err, false);
match key {
"query" => {
call = call.query(value.unwrap_or(""));
@@ -216,9 +222,10 @@ impl Engine {
_ => err.issues.push(CLIError::UnknownParameter(key.to_string())),
}
}
let mut field_name: FieldCursor = Default::default();
let mut field_name = FieldCursor::default();
for kvarg in self.opt.arg_kv.iter() {
let (key, value) = parse_kv_arg(&*kvarg, err);
let (key, value) = parse_kv_arg(&*kvarg, err, false);
if let Err(field_err) = field_name.set(&*key) {
err.issues.push(field_err);
}
@@ -243,8 +250,7 @@ impl Engine {
} {
Err(api_err) => Some(api_err),
Ok((mut response, output_schema)) => {
println!("DEBUG: REMOVE ME {:?}", response);
serde::json::to_writer(&mut ostream, &output_schema).unwrap();
serde::json::to_writer_pretty(&mut ostream, &output_schema).unwrap();
None
}
}
@@ -253,10 +259,10 @@ impl Engine {
fn _timeseries_list(&self, dry_run: bool, err: &mut InvalidOptionsError)
-> Option<api::Error> {
let mut request: api::ListTimeseriesRequest = Default::default();
let mut request = api::ListTimeseriesRequest::default();
let mut call = self.hub.timeseries().list(&request, &self.opt.arg_project, &self.opt.arg_metric, &self.opt.arg_youngest);
for parg in self.opt.arg_v.iter() {
let (key, value) = parse_kv_arg(&*parg, err);
let (key, value) = parse_kv_arg(&*parg, err, false);
match key {
"window" => {
call = call.window(value.unwrap_or(""));
@@ -297,9 +303,10 @@ impl Engine {
_ => err.issues.push(CLIError::UnknownParameter(key.to_string())),
}
}
let mut field_name: FieldCursor = Default::default();
let mut field_name = FieldCursor::default();
for kvarg in self.opt.arg_kv.iter() {
let (key, value) = parse_kv_arg(&*kvarg, err);
let (key, value) = parse_kv_arg(&*kvarg, err, false);
if let Err(field_err) = field_name.set(&*key) {
err.issues.push(field_err);
}
@@ -324,8 +331,7 @@ impl Engine {
} {
Err(api_err) => Some(api_err),
Ok((mut response, output_schema)) => {
println!("DEBUG: REMOVE ME {:?}", response);
serde::json::to_writer(&mut ostream, &output_schema).unwrap();
serde::json::to_writer_pretty(&mut ostream, &output_schema).unwrap();
None
}
}
@@ -334,10 +340,10 @@ impl Engine {
fn _timeseries_write(&self, dry_run: bool, err: &mut InvalidOptionsError)
-> Option<api::Error> {
let mut request: api::WriteTimeseriesRequest = Default::default();
let mut request = api::WriteTimeseriesRequest::default();
let mut call = self.hub.timeseries().write(&request, &self.opt.arg_project);
for parg in self.opt.arg_v.iter() {
let (key, value) = parse_kv_arg(&*parg, err);
let (key, value) = parse_kv_arg(&*parg, err, false);
match key {
"alt"
|"fields"
@@ -357,18 +363,20 @@ impl Engine {
_ => err.issues.push(CLIError::UnknownParameter(key.to_string())),
}
}
let mut field_name: FieldCursor = Default::default();
let mut field_name = FieldCursor::default();
for kvarg in self.opt.arg_kv.iter() {
let (key, value) = parse_kv_arg(&*kvarg, err);
let (key, value) = parse_kv_arg(&*kvarg, err, false);
if let Err(field_err) = field_name.set(&*key) {
err.issues.push(field_err);
}
match &field_name.to_string()[..] {
"common-labels" => {
if request.common_labels.is_none() {
request.common_labels = Some(Default::default());
request.common_labels = Some(Default::default());
}
request.common_labels.as_mut().unwrap().push(value.unwrap_or("").to_string());
let (key, value) = parse_kv_arg(value.unwrap_or(""), err, true);
request.common_labels.as_mut().unwrap().insert(key.to_string(), value.unwrap_or("").to_string());
},
_ => {
err.issues.push(CLIError::Field(FieldError::Unknown(field_name.to_string())));
@@ -387,8 +395,7 @@ impl Engine {
} {
Err(api_err) => Some(api_err),
Ok((mut response, output_schema)) => {
println!("DEBUG: REMOVE ME {:?}", response);
serde::json::to_writer(&mut ostream, &output_schema).unwrap();
serde::json::to_writer_pretty(&mut ostream, &output_schema).unwrap();
None
}
}
@@ -397,10 +404,10 @@ impl Engine {
fn _timeseries_descriptors_list(&self, dry_run: bool, err: &mut InvalidOptionsError)
-> Option<api::Error> {
let mut request: api::ListTimeseriesDescriptorsRequest = Default::default();
let mut request = api::ListTimeseriesDescriptorsRequest::default();
let mut call = self.hub.timeseries_descriptors().list(&request, &self.opt.arg_project, &self.opt.arg_metric, &self.opt.arg_youngest);
for parg in self.opt.arg_v.iter() {
let (key, value) = parse_kv_arg(&*parg, err);
let (key, value) = parse_kv_arg(&*parg, err, false);
match key {
"window" => {
call = call.window(value.unwrap_or(""));
@@ -441,9 +448,10 @@ impl Engine {
_ => err.issues.push(CLIError::UnknownParameter(key.to_string())),
}
}
let mut field_name: FieldCursor = Default::default();
let mut field_name = FieldCursor::default();
for kvarg in self.opt.arg_kv.iter() {
let (key, value) = parse_kv_arg(&*kvarg, err);
let (key, value) = parse_kv_arg(&*kvarg, err, false);
if let Err(field_err) = field_name.set(&*key) {
err.issues.push(field_err);
}
@@ -468,8 +476,7 @@ impl Engine {
} {
Err(api_err) => Some(api_err),
Ok((mut response, output_schema)) => {
println!("DEBUG: REMOVE ME {:?}", response);
serde::json::to_writer(&mut ostream, &output_schema).unwrap();
serde::json::to_writer_pretty(&mut ostream, &output_schema).unwrap();
None
}
}
@@ -491,7 +498,8 @@ impl Engine {
} else {
unreachable!();
}
} else if self.opt.cmd_timeseries {
}
else if self.opt.cmd_timeseries {
if self.opt.cmd_list {
call_result = self._timeseries_list(dry_run, &mut err);
} else if self.opt.cmd_write {
@@ -499,7 +507,8 @@ impl Engine {
} else {
unreachable!();
}
} else if self.opt.cmd_timeseries_descriptors {
}
else if self.opt.cmd_timeseries_descriptors {
if self.opt.cmd_list {
call_result = self._timeseries_descriptors_list(dry_run, &mut err);
} else {
@@ -525,21 +534,37 @@ impl Engine {
Ok(p) => p,
};
match cmn::application_secret_from_directory(&config_dir, "cloudmonitoring2-beta2-secret.json") {
match cmn::application_secret_from_directory(&config_dir, "cloudmonitoring2-beta2-secret.json",
"{\"installed\":{\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"client_secret\":\"hCsslbCUyfehWMmbkG8vTYxG\",\"token_uri\":\"https://accounts.google.com/o/oauth2/token\",\"client_email\":\"\",\"redirect_uris\":[\"urn:ietf:wg:oauth:2.0:oob\",\"oob\"],\"client_x509_cert_url\":\"\",\"client_id\":\"620010449518-9ngf7o4dhs0dka470npqvor6dc5lqb9b.apps.googleusercontent.com\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\"}}") {
Ok(secret) => (config_dir, secret),
Err(e) => return Err(InvalidOptionsError::single(e, 4))
}
};
let auth = Authenticator::new(&secret, DefaultAuthenticatorDelegate,
hyper::Client::new(),
JsonTokenStorage {
program_name: "cloudmonitoring2-beta2",
db_dir: config_dir.clone(),
}, None);
let auth = Authenticator::new( &secret, DefaultAuthenticatorDelegate,
if opt.flag_debug_auth {
hyper::Client::with_connector(mock::TeeConnector {
connector: hyper::net::HttpConnector(None)
})
} else {
hyper::Client::new()
},
JsonTokenStorage {
program_name: "cloudmonitoring2-beta2",
db_dir: config_dir.clone(),
}, None);
let client =
if opt.flag_debug {
hyper::Client::with_connector(mock::TeeConnector {
connector: hyper::net::HttpConnector(None)
})
} else {
hyper::Client::new()
};
let engine = Engine {
opt: opt,
hub: api::CloudMonitoring::new(hyper::Client::new(), auth),
hub: api::CloudMonitoring::new(client, auth),
};
match engine._doit(true) {
@@ -559,12 +584,13 @@ fn main() {
let opts: Options = Options::docopt().decode().unwrap_or_else(|e| e.exit());
match Engine::new(opts) {
Err(err) => {
write!(io::stderr(), "{}", err).ok();
writeln!(io::stderr(), "{}", err).ok();
env::set_exit_status(err.exit_code);
},
Ok(engine) => {
if let Some(err) = engine.doit() {
write!(io::stderr(), "{}", err).ok();
writeln!(io::stderr(), "{:?}", err).ok();
writeln!(io::stderr(), "{}", err).ok();
env::set_exit_status(1);
}
}