root / src / com / rackspace / cloud / servers / api / client / BackupManager.java @ 1a79c76b
History | View | Annotate | Download (3.1 kB)
1 | 1a79c76b | Adam Menz | /**
|
---|---|---|---|
2 | 1a79c76b | Adam Menz | *
|
3 | 1a79c76b | Adam Menz | */
|
4 | 1a79c76b | Adam Menz | package com.rackspace.cloud.servers.api.client; |
5 | 1a79c76b | Adam Menz | |
6 | 1a79c76b | Adam Menz | import java.io.IOException; |
7 | 1a79c76b | Adam Menz | import java.io.StringReader; |
8 | 1a79c76b | Adam Menz | |
9 | 1a79c76b | Adam Menz | import javax.xml.parsers.FactoryConfigurationError; |
10 | 1a79c76b | Adam Menz | import javax.xml.parsers.ParserConfigurationException; |
11 | 1a79c76b | Adam Menz | import javax.xml.parsers.SAXParser; |
12 | 1a79c76b | Adam Menz | import javax.xml.parsers.SAXParserFactory; |
13 | 1a79c76b | Adam Menz | |
14 | 1a79c76b | Adam Menz | import org.apache.http.HttpResponse; |
15 | 1a79c76b | Adam Menz | import org.apache.http.client.ClientProtocolException; |
16 | 1a79c76b | Adam Menz | import org.apache.http.client.methods.HttpGet; |
17 | 1a79c76b | Adam Menz | import org.apache.http.impl.client.BasicResponseHandler; |
18 | 1a79c76b | Adam Menz | import org.xml.sax.InputSource; |
19 | 1a79c76b | Adam Menz | import org.xml.sax.SAXException; |
20 | 1a79c76b | Adam Menz | import org.xml.sax.XMLReader; |
21 | 1a79c76b | Adam Menz | |
22 | 1a79c76b | Adam Menz | import android.content.Context; |
23 | 1a79c76b | Adam Menz | |
24 | 1a79c76b | Adam Menz | import com.rackspace.cloud.files.api.client.CustomHttpClient; |
25 | 1a79c76b | Adam Menz | import com.rackspace.cloud.servers.api.client.parsers.BackupXMLParser; |
26 | 1a79c76b | Adam Menz | import com.rackspace.cloud.servers.api.client.parsers.CloudServersFaultXMLParser; |
27 | 1a79c76b | Adam Menz | |
28 | 1a79c76b | Adam Menz | public class BackupManager extends EntityManager { |
29 | 1a79c76b | Adam Menz | |
30 | 1a79c76b | Adam Menz | public Backup getBackup(Server server, Context context) throws CloudServersException { |
31 | 1a79c76b | Adam Menz | |
32 | 1a79c76b | Adam Menz | CustomHttpClient httpclient = new CustomHttpClient(context);
|
33 | 1a79c76b | Adam Menz | HttpGet get = new HttpGet(Account.getAccount().getServerUrl() + "/servers/" + server.getId() + "/backup_schedule/.xml" + cacheBuster()); |
34 | 1a79c76b | Adam Menz | Backup backup = new Backup();
|
35 | 1a79c76b | Adam Menz | get.addHeader("X-Auth-Token", Account.getAccount().getAuthToken());
|
36 | 1a79c76b | Adam Menz | |
37 | 1a79c76b | Adam Menz | try {
|
38 | 1a79c76b | Adam Menz | HttpResponse resp = httpclient.execute(get); |
39 | 1a79c76b | Adam Menz | BasicResponseHandler responseHandler = new BasicResponseHandler();
|
40 | 1a79c76b | Adam Menz | String body = responseHandler.handleResponse(resp);
|
41 | 1a79c76b | Adam Menz | |
42 | 1a79c76b | Adam Menz | if (resp.getStatusLine().getStatusCode() == 200 || resp.getStatusLine().getStatusCode() == 203) { |
43 | 1a79c76b | Adam Menz | BackupXMLParser backupXMLParser = new BackupXMLParser();
|
44 | 1a79c76b | Adam Menz | SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser(); |
45 | 1a79c76b | Adam Menz | XMLReader xmlReader = saxParser.getXMLReader(); |
46 | 1a79c76b | Adam Menz | xmlReader.setContentHandler(backupXMLParser); |
47 | 1a79c76b | Adam Menz | xmlReader.parse(new InputSource(new StringReader(body))); |
48 | 1a79c76b | Adam Menz | backup = backupXMLParser.getBackup(); |
49 | 1a79c76b | Adam Menz | } else {
|
50 | 1a79c76b | Adam Menz | CloudServersFaultXMLParser parser = new CloudServersFaultXMLParser();
|
51 | 1a79c76b | Adam Menz | SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser(); |
52 | 1a79c76b | Adam Menz | XMLReader xmlReader = saxParser.getXMLReader(); |
53 | 1a79c76b | Adam Menz | xmlReader.setContentHandler(parser); |
54 | 1a79c76b | Adam Menz | xmlReader.parse(new InputSource(new StringReader(body))); |
55 | 1a79c76b | Adam Menz | CloudServersException cse = parser.getException(); |
56 | 1a79c76b | Adam Menz | throw cse;
|
57 | 1a79c76b | Adam Menz | } |
58 | 1a79c76b | Adam Menz | } catch (ClientProtocolException e) {
|
59 | 1a79c76b | Adam Menz | CloudServersException cse = new CloudServersException();
|
60 | 1a79c76b | Adam Menz | cse.setMessage(e.getLocalizedMessage()); |
61 | 1a79c76b | Adam Menz | throw cse;
|
62 | 1a79c76b | Adam Menz | } catch (IOException e) { |
63 | 1a79c76b | Adam Menz | CloudServersException cse = new CloudServersException();
|
64 | 1a79c76b | Adam Menz | cse.setMessage(e.getLocalizedMessage()); |
65 | 1a79c76b | Adam Menz | throw cse;
|
66 | 1a79c76b | Adam Menz | } catch (ParserConfigurationException e) { |
67 | 1a79c76b | Adam Menz | CloudServersException cse = new CloudServersException();
|
68 | 1a79c76b | Adam Menz | cse.setMessage(e.getLocalizedMessage()); |
69 | 1a79c76b | Adam Menz | throw cse;
|
70 | 1a79c76b | Adam Menz | } catch (SAXException e) {
|
71 | 1a79c76b | Adam Menz | CloudServersException cse = new CloudServersException();
|
72 | 1a79c76b | Adam Menz | cse.setMessage(e.getLocalizedMessage()); |
73 | 1a79c76b | Adam Menz | throw cse;
|
74 | 1a79c76b | Adam Menz | } catch (FactoryConfigurationError e) { |
75 | 1a79c76b | Adam Menz | CloudServersException cse = new CloudServersException();
|
76 | 1a79c76b | Adam Menz | cse.setMessage(e.getLocalizedMessage()); |
77 | 1a79c76b | Adam Menz | throw cse;
|
78 | 1a79c76b | Adam Menz | } |
79 | 1a79c76b | Adam Menz | |
80 | 1a79c76b | Adam Menz | |
81 | 1a79c76b | Adam Menz | return backup;
|
82 | 1a79c76b | Adam Menz | } |
83 | 1a79c76b | Adam Menz | |
84 | 1a79c76b | Adam Menz | |
85 | 1a79c76b | Adam Menz | } |