diff options
author | Mike Mazur | 2009-02-16 02:28:34 +0000 |
---|---|---|
committer | Mike Mazur | 2009-02-16 02:28:34 +0000 |
commit | ab5e3328323a66028bfd47562d9d515dbec433be (patch) | |
tree | d81184cd1f8788c20b4600649195be66e03f48c3 /OpenSim/Grid/AssetInventoryServer/Plugins/ReferenceFrontendPlugin.cs | |
parent | We need to return a zero-length byte array from the Handle() routine. (diff) | |
download | opensim-SC-ab5e3328323a66028bfd47562d9d515dbec433be.zip opensim-SC-ab5e3328323a66028bfd47562d9d515dbec433be.tar.gz opensim-SC-ab5e3328323a66028bfd47562d9d515dbec433be.tar.bz2 opensim-SC-ab5e3328323a66028bfd47562d9d515dbec433be.tar.xz |
- removed OpenSim.Grid.AssetInventoryServer.Metadata class in favor of
OpenSim.Framework.AssetMetadata and related updates in AssetInventory
server
- removed dependency on MySql.Data.MySqlClient
- commented out the bulk of OpenSimInventoryStorage due to missing
MySql.Data dependency
- refactor asset creation in OpenSimAssetFrontend
- commented out ForEach implementation, which also depended on
MySql.Data, until it's supported by OpenSim backends
- commented out some handlers in BrowseFrontend and ReferenceFrontend as
they relied on either ForEach or the removed Metadata class
Diffstat (limited to 'OpenSim/Grid/AssetInventoryServer/Plugins/ReferenceFrontendPlugin.cs')
-rw-r--r-- | OpenSim/Grid/AssetInventoryServer/Plugins/ReferenceFrontendPlugin.cs | 392 |
1 files changed, 196 insertions, 196 deletions
diff --git a/OpenSim/Grid/AssetInventoryServer/Plugins/ReferenceFrontendPlugin.cs b/OpenSim/Grid/AssetInventoryServer/Plugins/ReferenceFrontendPlugin.cs index 7ff5dfa..f19be08 100644 --- a/OpenSim/Grid/AssetInventoryServer/Plugins/ReferenceFrontendPlugin.cs +++ b/OpenSim/Grid/AssetInventoryServer/Plugins/ReferenceFrontendPlugin.cs | |||
@@ -55,13 +55,13 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins | |||
55 | m_server = server; | 55 | m_server = server; |
56 | 56 | ||
57 | // Asset metadata request | 57 | // Asset metadata request |
58 | m_server.HttpServer.AddStreamHandler(new MetadataRequestHandler(server)); | 58 | //m_server.HttpServer.AddStreamHandler(new MetadataRequestHandler(server)); |
59 | 59 | ||
60 | // Asset data request | 60 | // Asset data request |
61 | m_server.HttpServer.AddStreamHandler(new DataRequestHandler(server)); | 61 | m_server.HttpServer.AddStreamHandler(new DataRequestHandler(server)); |
62 | 62 | ||
63 | // Asset creation | 63 | // Asset creation |
64 | m_server.HttpServer.AddStreamHandler(new CreateRequestHandler(server)); | 64 | //m_server.HttpServer.AddStreamHandler(new CreateRequestHandler(server)); |
65 | 65 | ||
66 | m_log.Info("[ASSET] Reference Frontend loaded."); | 66 | m_log.Info("[ASSET] Reference Frontend loaded."); |
67 | } | 67 | } |
@@ -92,95 +92,95 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins | |||
92 | 92 | ||
93 | #endregion IPlugin implementation | 93 | #endregion IPlugin implementation |
94 | 94 | ||
95 | public class MetadataRequestHandler : IStreamedRequestHandler | 95 | //public class MetadataRequestHandler : IStreamedRequestHandler |
96 | { | 96 | //{ |
97 | AssetInventoryServer m_server; | 97 | // AssetInventoryServer m_server; |
98 | string m_contentType; | 98 | // string m_contentType; |
99 | string m_httpMethod; | 99 | // string m_httpMethod; |
100 | string m_path; | 100 | // string m_path; |
101 | 101 | ||
102 | public MetadataRequestHandler(AssetInventoryServer server) | 102 | // public MetadataRequestHandler(AssetInventoryServer server) |
103 | { | 103 | // { |
104 | m_server = server; | 104 | // m_server = server; |
105 | m_contentType = null; | 105 | // m_contentType = null; |
106 | m_httpMethod = "GET"; | 106 | // m_httpMethod = "GET"; |
107 | m_path = @"^/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/metadata"; | 107 | // m_path = @"^/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/metadata"; |
108 | } | 108 | // } |
109 | 109 | ||
110 | #region IStreamedRequestHandler implementation | 110 | // #region IStreamedRequestHandler implementation |
111 | 111 | ||
112 | public string ContentType | 112 | // public string ContentType |
113 | { | 113 | // { |
114 | get { return m_contentType; } | 114 | // get { return m_contentType; } |
115 | } | 115 | // } |
116 | 116 | ||
117 | public string HttpMethod | 117 | // public string HttpMethod |
118 | { | 118 | // { |
119 | get { return m_httpMethod; } | 119 | // get { return m_httpMethod; } |
120 | } | 120 | // } |
121 | 121 | ||
122 | public string Path | 122 | // public string Path |
123 | { | 123 | // { |
124 | get { return m_path; } | 124 | // get { return m_path; } |
125 | } | 125 | // } |
126 | 126 | ||
127 | public byte[] Handle(string path, Stream request, OSHttpRequest httpRequest, OSHttpResponse httpResponse) | 127 | // public byte[] Handle(string path, Stream request, OSHttpRequest httpRequest, OSHttpResponse httpResponse) |
128 | { | 128 | // { |
129 | byte[] serializedData = null; | 129 | // byte[] serializedData = null; |
130 | UUID assetID; | 130 | // UUID assetID; |
131 | // Split the URL up into an AssetID and a method | 131 | // // Split the URL up into an AssetID and a method |
132 | string[] rawUrl = httpRequest.Url.PathAndQuery.Split('/'); | 132 | // string[] rawUrl = httpRequest.Url.PathAndQuery.Split('/'); |
133 | 133 | ||
134 | if (rawUrl.Length >= 3 && UUID.TryParse(rawUrl[1], out assetID)) | 134 | // if (rawUrl.Length >= 3 && UUID.TryParse(rawUrl[1], out assetID)) |
135 | { | 135 | // { |
136 | UUID authToken = Utils.GetAuthToken(httpRequest); | 136 | // UUID authToken = Utils.GetAuthToken(httpRequest); |
137 | 137 | ||
138 | if (m_server.AuthorizationProvider.IsMetadataAuthorized(authToken, assetID)) | 138 | // if (m_server.AuthorizationProvider.IsMetadataAuthorized(authToken, assetID)) |
139 | { | 139 | // { |
140 | Metadata metadata; | 140 | // AssetMetadata metadata; |
141 | BackendResponse storageResponse = m_server.StorageProvider.TryFetchMetadata(assetID, out metadata); | 141 | // BackendResponse storageResponse = m_server.StorageProvider.TryFetchMetadata(assetID, out metadata); |
142 | 142 | ||
143 | if (storageResponse == BackendResponse.Success) | 143 | // if (storageResponse == BackendResponse.Success) |
144 | { | 144 | // { |
145 | // If the asset data location wasn't specified in the metadata, specify it | 145 | // // If the asset data location wasn't specified in the metadata, specify it |
146 | // manually here by pointing back to this asset server | 146 | // // manually here by pointing back to this asset server |
147 | if (!metadata.Methods.ContainsKey("data")) | 147 | // if (!metadata.Methods.ContainsKey("data")) |
148 | { | 148 | // { |
149 | metadata.Methods["data"] = new Uri(String.Format("{0}://{1}/{2}/data", | 149 | // metadata.Methods["data"] = new Uri(String.Format("{0}://{1}/{2}/data", |
150 | httpRequest.Url.Scheme, httpRequest.Url.Authority, assetID)); | 150 | // httpRequest.Url.Scheme, httpRequest.Url.Authority, assetID)); |
151 | } | 151 | // } |
152 | 152 | ||
153 | serializedData = metadata.SerializeToBytes(); | 153 | // serializedData = metadata.SerializeToBytes(); |
154 | 154 | ||
155 | httpResponse.StatusCode = (int) HttpStatusCode.OK; | 155 | // httpResponse.StatusCode = (int) HttpStatusCode.OK; |
156 | httpResponse.ContentType = "application/json"; | 156 | // httpResponse.ContentType = "application/json"; |
157 | httpResponse.ContentLength = serializedData.Length; | 157 | // httpResponse.ContentLength = serializedData.Length; |
158 | httpResponse.Body.Write(serializedData, 0, serializedData.Length); | 158 | // httpResponse.Body.Write(serializedData, 0, serializedData.Length); |
159 | } | 159 | // } |
160 | else if (storageResponse == BackendResponse.NotFound) | 160 | // else if (storageResponse == BackendResponse.NotFound) |
161 | { | 161 | // { |
162 | m_log.Warn("Could not find metadata for asset " + assetID.ToString()); | 162 | // m_log.Warn("Could not find metadata for asset " + assetID.ToString()); |
163 | httpResponse.StatusCode = (int) HttpStatusCode.NotFound; | 163 | // httpResponse.StatusCode = (int) HttpStatusCode.NotFound; |
164 | } | 164 | // } |
165 | else | 165 | // else |
166 | { | 166 | // { |
167 | httpResponse.StatusCode = (int) HttpStatusCode.InternalServerError; | 167 | // httpResponse.StatusCode = (int) HttpStatusCode.InternalServerError; |
168 | } | 168 | // } |
169 | } | 169 | // } |
170 | else | 170 | // else |
171 | { | 171 | // { |
172 | httpResponse.StatusCode = (int) HttpStatusCode.Forbidden; | 172 | // httpResponse.StatusCode = (int) HttpStatusCode.Forbidden; |
173 | } | 173 | // } |
174 | 174 | ||
175 | return serializedData; | 175 | // return serializedData; |
176 | } | 176 | // } |
177 | 177 | ||
178 | httpResponse.StatusCode = (int) HttpStatusCode.NotFound; | 178 | // httpResponse.StatusCode = (int) HttpStatusCode.NotFound; |
179 | return serializedData; | 179 | // return serializedData; |
180 | } | 180 | // } |
181 | 181 | ||
182 | #endregion IStreamedRequestHandler implementation | 182 | // #endregion IStreamedRequestHandler implementation |
183 | } | 183 | //} |
184 | 184 | ||
185 | public class DataRequestHandler : IStreamedRequestHandler | 185 | public class DataRequestHandler : IStreamedRequestHandler |
186 | { | 186 | { |
@@ -261,110 +261,110 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins | |||
261 | #endregion IStreamedRequestHandler implementation | 261 | #endregion IStreamedRequestHandler implementation |
262 | } | 262 | } |
263 | 263 | ||
264 | public class CreateRequestHandler : IStreamedRequestHandler | 264 | //public class CreateRequestHandler : IStreamedRequestHandler |
265 | { | 265 | //{ |
266 | AssetInventoryServer m_server; | 266 | // AssetInventoryServer m_server; |
267 | string m_contentType; | 267 | // string m_contentType; |
268 | string m_httpMethod; | 268 | // string m_httpMethod; |
269 | string m_path; | 269 | // string m_path; |
270 | 270 | ||
271 | public CreateRequestHandler(AssetInventoryServer server) | 271 | // public CreateRequestHandler(AssetInventoryServer server) |
272 | { | 272 | // { |
273 | m_server = server; | 273 | // m_server = server; |
274 | m_contentType = null; | 274 | // m_contentType = null; |
275 | m_httpMethod = "POST"; | 275 | // m_httpMethod = "POST"; |
276 | m_path = "^/createasset"; | 276 | // m_path = "^/createasset"; |
277 | } | 277 | // } |
278 | 278 | ||
279 | #region IStreamedRequestHandler implementation | 279 | // #region IStreamedRequestHandler implementation |
280 | 280 | ||
281 | public string ContentType | 281 | // public string ContentType |
282 | { | 282 | // { |
283 | get { return m_contentType; } | 283 | // get { return m_contentType; } |
284 | } | 284 | // } |
285 | 285 | ||
286 | public string HttpMethod | 286 | // public string HttpMethod |
287 | { | 287 | // { |
288 | get { return m_httpMethod; } | 288 | // get { return m_httpMethod; } |
289 | } | 289 | // } |
290 | 290 | ||
291 | public string Path | 291 | // public string Path |
292 | { | 292 | // { |
293 | get { return m_path; } | 293 | // get { return m_path; } |
294 | } | 294 | // } |
295 | 295 | ||
296 | public byte[] Handle(string path, Stream request, OSHttpRequest httpRequest, OSHttpResponse httpResponse) | 296 | // public byte[] Handle(string path, Stream request, OSHttpRequest httpRequest, OSHttpResponse httpResponse) |
297 | { | 297 | // { |
298 | byte[] responseData = null; | 298 | // byte[] responseData = null; |
299 | UUID authToken = Utils.GetAuthToken(httpRequest); | 299 | // UUID authToken = Utils.GetAuthToken(httpRequest); |
300 | 300 | ||
301 | if (m_server.AuthorizationProvider.IsCreateAuthorized(authToken)) | 301 | // if (m_server.AuthorizationProvider.IsCreateAuthorized(authToken)) |
302 | { | 302 | // { |
303 | try | 303 | // try |
304 | { | 304 | // { |
305 | OSD osdata = OSDParser.DeserializeJson(new StreamReader(httpRequest.InputStream).ReadToEnd()); | 305 | // OSD osdata = OSDParser.DeserializeJson(new StreamReader(httpRequest.InputStream).ReadToEnd()); |
306 | 306 | ||
307 | if (osdata.Type == OSDType.Map) | 307 | // if (osdata.Type == OSDType.Map) |
308 | { | 308 | // { |
309 | OSDMap map = (OSDMap)osdata; | 309 | // OSDMap map = (OSDMap)osdata; |
310 | Metadata metadata = new Metadata(); | 310 | // Metadata metadata = new Metadata(); |
311 | metadata.Deserialize(map); | 311 | // metadata.Deserialize(map); |
312 | 312 | ||
313 | byte[] assetData = map["data"].AsBinary(); | 313 | // byte[] assetData = map["data"].AsBinary(); |
314 | 314 | ||
315 | if (assetData != null && assetData.Length > 0) | 315 | // if (assetData != null && assetData.Length > 0) |
316 | { | 316 | // { |
317 | BackendResponse storageResponse; | 317 | // BackendResponse storageResponse; |
318 | 318 | ||
319 | if (metadata.ID != UUID.Zero) | 319 | // if (metadata.ID != UUID.Zero) |
320 | storageResponse = m_server.StorageProvider.TryCreateAsset(metadata, assetData); | 320 | // storageResponse = m_server.StorageProvider.TryCreateAsset(metadata, assetData); |
321 | else | 321 | // else |
322 | storageResponse = m_server.StorageProvider.TryCreateAsset(metadata, assetData, out metadata.ID); | 322 | // storageResponse = m_server.StorageProvider.TryCreateAsset(metadata, assetData, out metadata.ID); |
323 | 323 | ||
324 | if (storageResponse == BackendResponse.Success) | 324 | // if (storageResponse == BackendResponse.Success) |
325 | { | 325 | // { |
326 | httpResponse.StatusCode = (int) HttpStatusCode.Created; | 326 | // httpResponse.StatusCode = (int) HttpStatusCode.Created; |
327 | OSDMap responseMap = new OSDMap(1); | 327 | // OSDMap responseMap = new OSDMap(1); |
328 | responseMap["id"] = OSD.FromUUID(metadata.ID); | 328 | // responseMap["id"] = OSD.FromUUID(metadata.ID); |
329 | LitJson.JsonData jsonData = OSDParser.SerializeJson(responseMap); | 329 | // LitJson.JsonData jsonData = OSDParser.SerializeJson(responseMap); |
330 | responseData = System.Text.Encoding.UTF8.GetBytes(jsonData.ToJson()); | 330 | // responseData = System.Text.Encoding.UTF8.GetBytes(jsonData.ToJson()); |
331 | httpResponse.Body.Write(responseData, 0, responseData.Length); | 331 | // httpResponse.Body.Write(responseData, 0, responseData.Length); |
332 | httpResponse.Body.Flush(); | 332 | // httpResponse.Body.Flush(); |
333 | } | 333 | // } |
334 | else if (storageResponse == BackendResponse.NotFound) | 334 | // else if (storageResponse == BackendResponse.NotFound) |
335 | { | 335 | // { |
336 | httpResponse.StatusCode = (int) HttpStatusCode.NotFound; | 336 | // httpResponse.StatusCode = (int) HttpStatusCode.NotFound; |
337 | } | 337 | // } |
338 | else | 338 | // else |
339 | { | 339 | // { |
340 | httpResponse.StatusCode = (int) HttpStatusCode.InternalServerError; | 340 | // httpResponse.StatusCode = (int) HttpStatusCode.InternalServerError; |
341 | } | 341 | // } |
342 | } | 342 | // } |
343 | else | 343 | // else |
344 | { | 344 | // { |
345 | httpResponse.StatusCode = (int) HttpStatusCode.BadRequest; | 345 | // httpResponse.StatusCode = (int) HttpStatusCode.BadRequest; |
346 | } | 346 | // } |
347 | } | 347 | // } |
348 | else | 348 | // else |
349 | { | 349 | // { |
350 | httpResponse.StatusCode = (int) HttpStatusCode.BadRequest; | 350 | // httpResponse.StatusCode = (int) HttpStatusCode.BadRequest; |
351 | } | 351 | // } |
352 | } | 352 | // } |
353 | catch (Exception ex) | 353 | // catch (Exception ex) |
354 | { | 354 | // { |
355 | httpResponse.StatusCode = (int) HttpStatusCode.InternalServerError; | 355 | // httpResponse.StatusCode = (int) HttpStatusCode.InternalServerError; |
356 | httpResponse.StatusDescription = ex.Message; | 356 | // httpResponse.StatusDescription = ex.Message; |
357 | } | 357 | // } |
358 | } | 358 | // } |
359 | else | 359 | // else |
360 | { | 360 | // { |
361 | httpResponse.StatusCode = (int) HttpStatusCode.Forbidden; | 361 | // httpResponse.StatusCode = (int) HttpStatusCode.Forbidden; |
362 | } | 362 | // } |
363 | 363 | ||
364 | return responseData; | 364 | // return responseData; |
365 | } | 365 | // } |
366 | 366 | ||
367 | #endregion IStreamedRequestHandler implementation | 367 | // #endregion IStreamedRequestHandler implementation |
368 | } | 368 | //} |
369 | } | 369 | } |
370 | } | 370 | } |