5 // Created by Mike Mayo on 12/31/10.
6 // The OpenStack project is provided under the Apache 2.0 license.
9 #import "GetFlavorsRequest.h"
10 #import "OpenStackAccount.h"
11 #import "AccountManager.h"
14 @implementation GetFlavorsRequest
16 + (id)request:(OpenStackAccount *)account method:(NSString *)method url:(NSURL *)url {
17 GetFlavorsRequest *request = [[[GetFlavorsRequest alloc] initWithURL:url] autorelease];
18 request.account = account;
19 [request setRequestMethod:method];
20 [request addRequestHeader:@"X-Auth-Token" value:[account authToken]];
21 [request addRequestHeader:@"Content-Type" value:@"application/json"];
22 [request setTimeOutSeconds:40];
26 + (id)serversRequest:(OpenStackAccount *)account method:(NSString *)method path:(NSString *)path {
27 NSString *now = [[[NSDate date] description] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
28 NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@?now=%@", account.serversURL, path, now]];
29 return [GetFlavorsRequest request:account method:method url:url];
32 + (GetFlavorsRequest *)request:(OpenStackAccount *)account {
33 GetFlavorsRequest *request = [GetFlavorsRequest serversRequest:account method:@"GET" path:@"/flavors/detail"];
34 request.account = account;
39 - (void)requestFinished {
40 if ([self isSuccess]) {
41 self.account.flavors = [self flavors];
42 [self.account persist];
43 [self.account.manager notify:@"getFlavorsSucceeded" request:self object:self.account];
45 [self.account.manager notify:@"getFlavorsFailed" request:self object:self.account];
48 [super requestFinished];
51 - (void)failWithError:(NSError *)theError {
52 [self.account.manager notify:@"getFlavorsFailed" request:self object:self.account];
53 [super failWithError:theError];