Merge lp:~ubuntuone-control-tower/ubuntu/lucid/ubuntuone-storage-protocol/trunk into lp:ubuntu/lucid/ubuntuone-storage-protocol

Proposed by dobey
Status: Merged
Merged at revision: not available
Proposed branch: lp:~ubuntuone-control-tower/ubuntu/lucid/ubuntuone-storage-protocol/trunk
Merge into: lp:ubuntu/lucid/ubuntuone-storage-protocol
Diff against target: 2775 lines (+430/-2164)
8 files modified
PKG-INFO (+1/-1)
debian/changelog (+8/-0)
debian/control (+1/-2)
setup.py (+1/-1)
tests/test_throttling.py (+314/-7)
ubuntuone/storageprotocol/client.py (+105/-30)
ubuntuone/storageprotocol/dircontent_pb2.py (+0/-105)
ubuntuone/storageprotocol/protocol_pb2.py (+0/-2018)
To merge this branch: bzr merge lp:~ubuntuone-control-tower/ubuntu/lucid/ubuntuone-storage-protocol/trunk
Reviewer Review Type Date Requested Status
Ubuntu branches Pending
Review via email: mp+20665@code.launchpad.net
To post a comment you must log in.
12. By James Westby

New upstream release.

13. By James Westby

Upload to lucid.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'PKG-INFO'
--- PKG-INFO 2010-02-17 23:23:52 +0000
+++ PKG-INFO 2010-03-04 17:22:18 +0000
@@ -1,6 +1,6 @@
1Metadata-Version: 1.01Metadata-Version: 1.0
2Name: ubuntuone-storage-protocol2Name: ubuntuone-storage-protocol
3Version: 1.1.23Version: 1.1.3
4Summary: UNKNOWN4Summary: UNKNOWN
5Home-page: UNKNOWN5Home-page: UNKNOWN
6Author: UNKNOWN6Author: UNKNOWN
77
=== modified file 'debian/changelog'
--- debian/changelog 2010-02-18 03:23:01 +0000
+++ debian/changelog 2010-03-04 17:22:18 +0000
@@ -1,3 +1,11 @@
1ubuntuone-storage-protocol (1.1.3-0ubuntu1) UNRELEASED; urgency=low
2
3 * New upstream release.
4 * Remove Vcs-Bzr and sync with ubuntu pkg branch
5 * Update homepage URL
6
7 -- Rodney Dawes <rodney.dawes@canonical.com> Thu, 04 Mar 2010 11:16:34 -0500
8
1ubuntuone-storage-protocol (1.1.2-0ubuntu1) lucid; urgency=low9ubuntuone-storage-protocol (1.1.2-0ubuntu1) lucid; urgency=low
210
3 * New upstream release.11 * New upstream release.
412
=== modified file 'debian/control'
--- debian/control 2009-12-07 17:00:00 +0000
+++ debian/control 2010-03-04 17:22:18 +0000
@@ -12,8 +12,7 @@
12 python-twisted-core,12 python-twisted-core,
13 python-oauth (>= 1.0~svn1092)13 python-oauth (>= 1.0~svn1092)
14Standards-Version: 3.8.314Standards-Version: 3.8.3
15Homepage: https://ubuntuone.com15Homepage: https://one.ubuntu.com
16Vcs-Bzr: https://code.launchpad.net/~ubuntuone-control-tower/ubuntu/lucid/ubuntuone-storage-protocol/trunk
1716
18Package: python-ubuntuone-storageprotocol17Package: python-ubuntuone-storageprotocol
19Architecture: all18Architecture: all
2019
=== modified file 'setup.py'
--- setup.py 2010-02-17 23:23:52 +0000
+++ setup.py 2010-03-04 17:22:18 +0000
@@ -119,7 +119,7 @@
119119
120120
121setup(name='ubuntuone-storage-protocol',121setup(name='ubuntuone-storage-protocol',
122 version='1.1.2',122 version='1.1.3',
123 packages=['ubuntuone',123 packages=['ubuntuone',
124 'ubuntuone.storageprotocol'],124 'ubuntuone.storageprotocol'],
125 data_files=[('/etc/ssl/certs', 125 data_files=[('/etc/ssl/certs',
126126
=== modified file 'tests/test_throttling.py'
--- tests/test_throttling.py 2010-02-17 23:23:52 +0000
+++ tests/test_throttling.py 2010-03-04 17:22:18 +0000
@@ -25,6 +25,7 @@
2525
26from ubuntuone.storageprotocol import client26from ubuntuone.storageprotocol import client
2727
28
28class FakeClient(object):29class FakeClient(object):
29 """Fake a Client class that is handy for tests."""30 """Fake a Client class that is handy for tests."""
3031
@@ -55,7 +56,7 @@
55 self.client = FakeClient()56 self.client = FakeClient()
56 self.factories = []57 self.factories = []
57 self.clock = task.Clock()58 self.clock = task.Clock()
58 # use task.Clock instead of the reactor for the callLater59 # use our custom clock instead of the reactor for the callLater
59 self.old_callLater = client.ThrottlingStorageClientFactory.callLater60 self.old_callLater = client.ThrottlingStorageClientFactory.callLater
60 client.ThrottlingStorageClientFactory.callLater = self.clock.callLater61 client.ThrottlingStorageClientFactory.callLater = self.clock.callLater
6162
@@ -64,22 +65,26 @@
64 f.unregisterProtocol(None)65 f.unregisterProtocol(None)
65 client.ThrottlingStorageClientFactory.callLater = self.old_callLater66 client.ThrottlingStorageClientFactory.callLater = self.old_callLater
6667
67 def create_factory(self, read_limit, write_limit):68 def create_factory(self, enabled, read_limit, write_limit):
68 """Create a ThrottlingStorageClientFactory with the specified args."""69 """Create a ThrottlingStorageClientFactory with the specified args."""
69 tscf = client.ThrottlingStorageClientFactory(read_limit, write_limit)70 tscf = client.ThrottlingStorageClientFactory(enabled, read_limit,
71 write_limit)
70 tscf.client = self.client72 tscf.client = self.client
71 self.factories.append(tscf)73 self.factories.append(tscf)
72 return tscf74 return tscf
7375
76 def destroy_factory(self, factory):
77 """Turn off a factory and delete it form self.factories."""
78 del self.factories[self.factories.index(factory)]
79 factory.unregisterProtocol(None)
80
7481
75class TestProducingState(BaseThrottlingTestCase):82class TestProducingState(BaseThrottlingTestCase):
76 """Test for filename validation and normalization."""83 """Tests for 'producing' state with different limit values."""
77
78 timeout = 5
7984
80 def setUp(self):85 def setUp(self):
81 BaseThrottlingTestCase.setUp(self)86 BaseThrottlingTestCase.setUp(self)
82 self.tscf = self.create_factory(3, 3)87 self.tscf = self.create_factory(True, 3, 3)
8388
84 def test_under_write_limit(self):89 def test_under_write_limit(self):
85 """Don't pas the write limit, no event."""90 """Don't pas the write limit, no event."""
@@ -151,3 +156,305 @@
151 self.clock.advance(2)156 self.clock.advance(2)
152 self.assertEqual(self.client.events, ["thR", "unthR"])157 self.assertEqual(self.client.events, ["thR", "unthR"])
153158
159
160class TestLimitValuesInitialization(BaseThrottlingTestCase):
161 """Test read/write limit values."""
162
163 def _test_inactive_limits(self, read_limit, write_limit):
164 """Test read_limit and write_limit with throttling enabled."""
165 def check(tscf):
166 """Check that there is no delayed calls nor events."""
167 self.assertEquals(2, len(self.clock.getDelayedCalls()))
168 self.assertNotEquals(None, tscf.resetReadThisSecondID)
169 self.assertEquals(None, tscf.unthrottleReadsID)
170 self.assertNotEquals(None, tscf.resetWriteThisSecondID)
171 self.assertEquals(None, tscf.unthrottleWritesID)
172 self.assertEqual(self.client.events, [])
173 tscf = self.create_factory(True, read_limit, write_limit)
174 check(tscf)
175 self.clock.advance(1.1)
176 check(tscf)
177
178 def test_both_None(self):
179 """Test for both limits None."""
180 self._test_inactive_limits(None, None)
181
182 def test_limits_0(self):
183 """Test for both limits 0."""
184 self.assertRaises(ValueError, self._test_inactive_limits, 0, 0)
185 self.assertRaises(ValueError, self._test_inactive_limits, 1, 0)
186 self.assertRaises(ValueError, self._test_inactive_limits, 0, 1)
187
188 def test_both_negative(self):
189 """Test for both limits -1."""
190 self.assertRaises(ValueError, self._test_inactive_limits, -1, -1)
191
192 def test_read_2_write_None(self):
193 """Test "off" writeLimit value and throttling enabled."""
194 tscf = self.create_factory(True, 2, None)
195 # check that resetReadThisSecondID is running
196 self.assertEquals(2, len(self.clock.getDelayedCalls()))
197 self.assertNotEquals(None, tscf.resetReadThisSecondID)
198 self.assertEquals(None, tscf.unthrottleReadsID)
199 self.assertNotEquals(None, tscf.resetWriteThisSecondID)
200 self.assertEquals(None, tscf.unthrottleWritesID)
201 tscf.registerRead(4)
202 self.clock.advance(0.5)
203 self.assertEqual(self.client.events, ["thR"])
204 self.assertNotEquals(None, tscf.resetReadThisSecondID)
205 self.assertNotEquals(None, tscf.unthrottleReadsID)
206
207 def test_read_None_write_2(self):
208 """Test "off" readLimit value and throttling enabled."""
209 tscf = self.create_factory(True, None, 2)
210 # check that resetWriteThisSecondID is running
211 self.assertEquals(2, len(self.clock.getDelayedCalls()))
212 self.assertNotEquals(None, tscf.resetReadThisSecondID)
213 self.assertEquals(None, tscf.unthrottleReadsID)
214 self.assertNotEquals(None, tscf.resetWriteThisSecondID)
215 self.assertEquals(None, tscf.unthrottleWritesID)
216 tscf.registerWritten(4)
217 self.clock.advance(0.5)
218 self.assertEqual(self.client.events, ["thW"])
219 self.assertNotEquals(None, tscf.resetWriteThisSecondID)
220 self.assertNotEquals(None, tscf.unthrottleWritesID)
221
222 def test_change_to_inavlid(self):
223 """Test setting invalid limit values after initialization."""
224 # yes, this is a unittest, I need to access protected members
225 # pylint: disable-msg=W0212
226 tscf = self.create_factory(True, 2, 2)
227 self.assertRaises(ValueError, tscf._set_read_limit, -1)
228 self.assertRaises(ValueError, tscf._set_write_limit, -1)
229
230
231class TestResetLoops(BaseThrottlingTestCase):
232 """Test the read/writeThisSecond reset loops."""
233
234 def test_read_this_second_loop(self):
235 """Test the reset loop for reads"""
236 tscf = self.create_factory(True, 4, 4)
237 tscf.registerRead(4)
238 self.assertEquals(4, tscf.readThisSecond)
239 self.clock.advance(1)
240 self.assertEquals(0, tscf.readThisSecond)
241
242 def test_write_this_second_loop(self):
243 """Test the reset loop for writes"""
244 tscf = self.create_factory(True, 4, 4)
245 tscf.registerWritten(4)
246 self.assertEquals(4, tscf.writtenThisSecond)
247 self.clock.advance(1)
248 self.assertEquals(0, tscf.writtenThisSecond)
249
250
251class TestCheckBandwidth(BaseThrottlingTestCase):
252 """Test the check[Read|Write]Bandwidth methods."""
253
254 def _test_with_limits(self, read, write):
255 """Test the check[Read|Wrte]Bandwidth using read and write limits."""
256 tscf = self.create_factory(True, read, write)
257 tscf.registerRead(4)
258 tscf.registerWritten(4)
259 self.assertEquals(4, tscf.readThisSecond)
260 self.assertEquals(4, tscf.writtenThisSecond)
261 self.assertEquals(None, tscf.unthrottleReadsID)
262 self.assertEquals(None, tscf.unthrottleReadsID)
263 self.clock.advance(1)
264 self.assertEquals(None, tscf.unthrottleReadsID)
265 self.assertEquals(None, tscf.unthrottleWritesID)
266 self.assertEquals(0, tscf.readThisSecond)
267 self.assertEquals(0, tscf.writtenThisSecond)
268
269 def test_limits_0(self):
270 """Test the check[Read|Wrte]Bandwidth with both = 0."""
271 self.assertRaises(ValueError, self._test_with_limits, 0, 0)
272 self.assertRaises(ValueError, self._test_with_limits, 1, 0)
273 self.assertRaises(ValueError, self._test_with_limits, 0, 1)
274
275 def test_limits_None(self):
276 """Test the check[Read|Wrte]Bandwidth with both = None."""
277 self._test_with_limits(None, None)
278
279 def test_positive_limits(self):
280 """Test the check[Read|Wrte]Bandwidth with both > 0."""
281 tscf = self.create_factory(True, 2, 2)
282 tscf.registerRead(4)
283 tscf.registerWritten(4)
284 self.assertEquals(4, tscf.readThisSecond)
285 self.assertEquals(4, tscf.writtenThisSecond)
286 self.assertNotEquals(None, tscf.unthrottleReadsID)
287 self.assertNotEquals(None, tscf.unthrottleReadsID)
288 self.clock.advance(.9)
289 self.assertNotEquals(None, tscf.unthrottleReadsID)
290 self.assertNotEquals(None, tscf.unthrottleReadsID)
291 self.clock.advance(.1)
292 self.assertEquals(0, tscf.readThisSecond)
293 self.assertEquals(0, tscf.writtenThisSecond)
294 self.assertEquals(None, tscf.unthrottleReadsID)
295 self.assertEquals(None, tscf.unthrottleWritesID)
296
297
298class TestThrottlingLimits(BaseThrottlingTestCase):
299 """Test read/write limit behaviour and changes in runtime."""
300
301 def test_limit_None_then_gt_0(self):
302 """Test both None and change it to > 0."""
303 def check(tscf, events=None, delayed_calls=2):
304 """Check that there is no delayed calls nor events."""
305 self.assertEquals(delayed_calls, len(self.clock.getDelayedCalls()))
306 self.assertEqual(self.client.events, events or [])
307 tscf = self.create_factory(True, None, None)
308 self.clock.advance(1.1)
309 check(tscf)
310 tscf.readLimit = 2
311 tscf.writeLimit = 2
312 tscf.registerRead(4)
313 tscf.registerWritten(4)
314 self.clock.advance(0.9)
315 expected_events = ['thR', 'thW']
316 check(tscf, delayed_calls=4, events=expected_events)
317 self.clock.advance(1)
318 expected_events += ['unthR', 'unthW']
319 check(tscf, events=expected_events)
320 self.clock.advance(1.1)
321 check(tscf, events=expected_events)
322 tscf.registerRead(4)
323 tscf.registerWritten(4)
324 expected_events += ['thR', 'thW']
325 check(tscf, delayed_calls=4, events=expected_events)
326 self.clock.advance(.9)
327 check(tscf, delayed_calls=4, events=expected_events)
328 self.clock.advance(.1)
329 expected_events += ['unthR', 'unthW']
330 check(tscf, delayed_calls=2, events=expected_events)
331 tscf.registerRead(1)
332 tscf.registerWritten(1)
333 check(tscf, delayed_calls=2, events=expected_events)
334
335 def test_read_2_write_None(self):
336 """Test readLimit > 0 and writeLimit = None"""
337 tscf = self.create_factory(True, 2, None)
338 # check that resetReadThisSecondID is running
339 self.assertEquals(2, len(self.clock.getDelayedCalls()))
340 tscf.registerRead(4)
341 self.clock.advance(0.9)
342 expected_events = ['thR']
343 self.assertEqual(self.client.events, expected_events)
344 self.clock.advance(0.9)
345 expected_events += ['unthR']
346 self.assertEqual(self.client.events, expected_events)
347 self.clock.advance(.1)
348 self.assertEqual(self.client.events, expected_events)
349 # single throttling
350 tscf.registerRead(2)
351 self.clock.advance(0.1)
352 expected_events += ['thR', 'unthR']
353 self.assertEqual(self.client.events, expected_events)
354
355 def test_read_None_write_2(self):
356 """Test readLimit = None and writeLimit > 0"""
357 tscf = self.create_factory(True, None, 2)
358 # check that resetReadThisSecondID is running
359 self.assertEquals(2, len(self.clock.getDelayedCalls()))
360 tscf.registerWritten(4)
361 self.clock.advance(0.9)
362 expected_events = ['thW']
363 self.assertEqual(self.client.events, expected_events)
364 self.clock.advance(0.9)
365 expected_events += ['unthW']
366 self.assertEqual(self.client.events, expected_events)
367 self.clock.advance(.1)
368 self.assertEqual(self.client.events, expected_events)
369 # single throttling (trigger a callLater(0, ..)
370 tscf.registerWritten(2)
371 self.clock.advance(0.1)
372 expected_events += ['thW', 'unthW']
373 self.assertEqual(self.client.events, expected_events)
374
375 def test_change_read_to_None(self):
376 """Test changing the read limit from > 0 to None."""
377 tscf = self.create_factory(True, 2, None)
378 self.assertEquals(2, len(self.clock.getDelayedCalls()))
379 tscf.registerRead(4)
380 expected_events = ['thR']
381 self.assertEqual(self.client.events, expected_events)
382 self.clock.advance(1.1)
383 expected_events += ['unthR']
384 self.assertEqual(self.client.events, expected_events)
385 tscf.readLimit = None
386 self.clock.advance(1)
387 self.assertEqual(self.client.events, expected_events)
388 tscf.registerRead(4)
389 self.clock.advance(1.1)
390 # no new events, throttling reads is off
391 self.assertEqual(self.client.events, expected_events)
392
393 def test_change_write_to_None(self):
394 """Test changing the write limit from > 0 to None."""
395 tscf = self.create_factory(True, None, 2)
396 self.assertEquals(2, len(self.clock.getDelayedCalls()))
397 tscf.registerWritten(4)
398 expected_events = ['thW']
399 self.assertEqual(self.client.events, expected_events)
400 self.clock.advance(1.1)
401 expected_events += ['unthW']
402 self.assertEqual(self.client.events, expected_events)
403 tscf.writeLimit = None
404 self.clock.advance(1)
405 self.assertEqual(self.client.events, expected_events)
406 tscf.registerWritten(4)
407 self.clock.advance(1.1)
408 # no new events, throttling reads is off
409 self.assertEqual(self.client.events, expected_events)
410
411
412class TestEnablement(BaseThrottlingTestCase):
413 """Tests for en/disabling throttling."""
414
415 def test_disabling(self):
416 """Tests that disabling throttling at runtime works as expected."""
417 tscf = self.create_factory(True, 2, 2)
418 self.assertNotEquals(None, tscf.resetReadThisSecondID)
419 self.assertNotEquals(None, tscf.resetWriteThisSecondID)
420 tscf.registerRead(2)
421 tscf.registerWritten(2)
422 self.assertNotEquals(None, tscf.unthrottleReadsID)
423 self.assertNotEquals(None, tscf.unthrottleReadsID)
424 self.clock.advance(1.1)
425 self.assertEquals(None, tscf.unthrottleReadsID)
426 self.assertEquals(None, tscf.unthrottleWritesID)
427 tscf.disable_throttling()
428 self.assertFalse(tscf.throttling_enabled,
429 "Throttling should be disabled.")
430 for delayed in [tscf.unthrottleReadsID, tscf.resetReadThisSecondID,
431 tscf.unthrottleWritesID, tscf.resetWriteThisSecondID]:
432 cancelled = delayed is None or delayed.cancelled
433 self.assertTrue(cancelled)
434
435 def test_enabling(self):
436 """Tests that enabling throttling at runtime works as expected."""
437 tscf = self.create_factory(False, 2, 2)
438 self.assertEquals(None, tscf.resetReadThisSecondID)
439 self.assertEquals(None, tscf.resetWriteThisSecondID)
440 tscf.registerRead(2)
441 tscf.registerWritten(2)
442 self.assertEquals(None, tscf.unthrottleReadsID)
443 self.assertEquals(None, tscf.unthrottleReadsID)
444 self.clock.advance(1)
445 self.assertEquals(None, tscf.unthrottleReadsID)
446 self.assertEquals(None, tscf.unthrottleWritesID)
447 self.assertEquals(None, tscf.resetReadThisSecondID)
448 self.assertEquals(None, tscf.resetWriteThisSecondID)
449 tscf.enable_throttling()
450 self.assertTrue(tscf.throttling_enabled,
451 "Throttling should be enabled.")
452 self.assertNotEquals(None, tscf.resetReadThisSecondID)
453 self.assertNotEquals(None, tscf.resetWriteThisSecondID)
454 tscf.registerRead(3)
455 tscf.registerWritten(3)
456 for delayed in [tscf.unthrottleReadsID, tscf.resetReadThisSecondID,
457 tscf.unthrottleWritesID, tscf.resetWriteThisSecondID]:
458 cancelled = delayed.cancelled
459 self.assertFalse(cancelled)
460
154461
=== modified file 'ubuntuone/storageprotocol/client.py'
--- ubuntuone/storageprotocol/client.py 2010-02-17 23:23:52 +0000
+++ ubuntuone/storageprotocol/client.py 2010-03-04 17:22:18 +0000
@@ -1410,16 +1410,22 @@
1410 protocol = StorageClient1410 protocol = StorageClient
14111411
14121412
1413class ThrottlingStorageClientFactory(StorageClientFactory):1413class ThrottlingStorageClientFactory(StorageClientFactory, object):
1414 """The throttling version of StorageClientFactory."""1414 """The throttling version of StorageClientFactory."""
14151415
1416 protocol = ThrottlingStorageClient1416 protocol = ThrottlingStorageClient
1417 client = None1417 client = None
14181418
1419 def __init__(self, read_limit=None, write_limit=None):1419 def __init__(self, throttling_enabled=False,
1420 read_limit=None, write_limit=None):
1420 """Create the instance."""1421 """Create the instance."""
1421 self.readLimit = read_limit # max bytes we should read per second1422 self._readLimit = None # max bytes we should read per second
1422 self.writeLimit = write_limit # max bytes we should write per second1423 self._writeLimit = None # max bytes we should write per second
1424 self._throttling_reads = False
1425 self._throttling_writes = False
1426 self._set_read_limit(read_limit)
1427 self._set_write_limit(write_limit)
1428 self.throttling_enabled = throttling_enabled
1423 self.readThisSecond = 01429 self.readThisSecond = 0
1424 self.writtenThisSecond = 01430 self.writtenThisSecond = 0
1425 self.unthrottleReadsID = None1431 self.unthrottleReadsID = None
@@ -1427,15 +1433,46 @@
1427 self.unthrottleWritesID = None1433 self.unthrottleWritesID = None
1428 self.resetWriteThisSecondID = None1434 self.resetWriteThisSecondID = None
1429 self.stopped = True1435 self.stopped = True
1436 if self.throttling_enabled:
1437 self.enable_throttling()
1438 else:
1439 self.disable_throttling()
1440
1441 def valid_limit(self, limit):
1442 """Check if limit is a valid valid."""
1443 return limit is None or limit > 0
1444
1445 def _set_write_limit(self, limit):
1446 """Set writeLimit value.
1447
1448 Raise a ValueError if the value ins't valid.
1449 """
1450 if not self.valid_limit(limit):
1451 raise ValueError('Write limit must be greater than 0.')
1452 self._writeLimit = limit
1453
1454 def _set_read_limit(self, limit):
1455 """Set readLimit value.
1456
1457 Raise a ValueError if the value ins't valid.
1458 """
1459 if not self.valid_limit(limit):
1460 raise ValueError('Read limit must be greater than 0.')
1461 self._readLimit = limit
1462 # it's a property, pylint: disable-msg=W0212
1463 readLimit = property(lambda self: self._readLimit, _set_read_limit)
1464 writeLimit = property(lambda self: self._writeLimit, _set_write_limit)
1465 # pylint: enable-msg=W0212
14301466
1431 def callLater(self, period, func, *args, **kwargs):1467 def callLater(self, period, func, *args, **kwargs):
1432 """Wrapper around L{reactor.callLater} for test purpose."""1468 """Wrapper around L{reactor.callLater} for test purpose."""
1433 return reactor.callLater(period, func, *args, **kwargs)1469 return reactor.callLater(period, func, *args, **kwargs)
14341470
1435 def maybeCallLater(self, id, period, func):1471 def maybeCallLater(self, id, period, func):
1436 """Do a callLater only if we don't have a DelayedCall with the1472 """Maybe run callLater(period, func).
1473
1474 Only if we don't have a DelayedCall with the
1437 specified id already running.1475 specified id already running.
1438
1439 """1476 """
1440 delayed_call = getattr(self, id)1477 delayed_call = getattr(self, id)
1441 # check if we already have a DelayedCall running1478 # check if we already have a DelayedCall running
@@ -1446,38 +1483,49 @@
14461483
1447 def registerWritten(self, length):1484 def registerWritten(self, length):
1448 """Called by protocol to tell us more bytes were written."""1485 """Called by protocol to tell us more bytes were written."""
1449 self.writtenThisSecond += length1486 if self.throttling_enabled:
1450 self.checkWriteBandwidth()1487 self.writtenThisSecond += length
1488 self.checkWriteBandwidth()
14511489
1452 def registerRead(self, length):1490 def registerRead(self, length):
1453 """Called by protocol to tell us more bytes were read."""1491 """Called by protocol to tell us more bytes were read."""
1454 self.readThisSecond += length1492 if self.throttling_enabled:
1455 self.checkReadBandwidth()1493 self.readThisSecond += length
1494 self.checkReadBandwidth()
1495
1496 def _get_throttle_time(self, bytes, limit):
1497 """Calculate the throttle_time for bytes and limit."""
1498 return (float(bytes) / limit) - 1.0
14561499
1457 def checkReadBandwidth(self):1500 def checkReadBandwidth(self):
1458 """Check if we've passed bandwidth limits."""1501 """Check if we've passed bandwidth limits."""
1459 if self.readLimit is not None and \1502 limit_check = self.valid_limit(self.readLimit) and \
1460 self.readThisSecond > self.readLimit and \1503 self.readLimit is not None and \
1461 self.unthrottleReadsID is None:1504 self.readThisSecond >= self.readLimit
1505 should_check = self.throttling_enabled and limit_check and \
1506 self.unthrottleReadsID is None
1507 if should_check:
1462 self.throttleReads()1508 self.throttleReads()
1463 throttle_time = (float(self.readThisSecond) / self.readLimit) - 1.01509 throttle_time = self._get_throttle_time(self.readThisSecond,
1510 self.readLimit)
1464 log_debug("pause reads for: %s", str(throttle_time))1511 log_debug("pause reads for: %s", str(throttle_time))
1465 self.unthrottleReadsID = self.maybeCallLater('unthrottleReadsID',1512 self.unthrottleReadsID = self.maybeCallLater(
1466 throttle_time,1513 'unthrottleReadsID', throttle_time, self.unthrottleReads)
1467 self.unthrottleReads)
14681514
1469 def checkWriteBandwidth(self):1515 def checkWriteBandwidth(self):
1470 """Check if we've passed bandwidth limits."""1516 """Check if we've passed bandwidth limits."""
1471 if self.writeLimit is not None and \1517 limit_check = self.valid_limit(self.writeLimit) and \
1472 self.writtenThisSecond > self.writeLimit and \1518 self.writeLimit is not None and \
1473 self.unthrottleWritesID is None:1519 self.writtenThisSecond >= self.writeLimit
1520 should_check = self.throttling_enabled and limit_check and \
1521 self.unthrottleWritesID is None
1522 if should_check:
1474 self.throttleWrites()1523 self.throttleWrites()
1475 throttle_time = (float(self.writtenThisSecond) / self.writeLimit) \1524 throttle_time = self._get_throttle_time(self.writtenThisSecond,
1476 - 1.01525 self.writeLimit)
1477 log_debug("pause writes for: %s", str(throttle_time))1526 log_debug("pause writes for: %s", str(throttle_time))
1478 self.unthrottleWritesID = self.maybeCallLater('unthrottleWritesID',1527 self.unthrottleWritesID = self.maybeCallLater(
1479 throttle_time,1528 'unthrottleWritesID', throttle_time, self.unthrottleWrites)
1480 self.unthrottleWrites)
14811529
1482 def _resetReadThisSecond(self):1530 def _resetReadThisSecond(self):
1483 """Reset the counter named with 'name' every 1 second."""1531 """Reset the counter named with 'name' every 1 second."""
@@ -1495,31 +1543,33 @@
1495 def throttleReads(self):1543 def throttleReads(self):
1496 """Throttle reads on all protocols."""1544 """Throttle reads on all protocols."""
1497 if self.client is not None:1545 if self.client is not None:
1546 self._throttling_reads = True
1498 self.client.throttleReads()1547 self.client.throttleReads()
14991548
1500 def unthrottleReads(self):1549 def unthrottleReads(self):
1501 """Stop throttling reads on all protocols."""1550 """Stop throttling reads on all protocols."""
1502 self.unthrottleReadsID = None1551 self.unthrottleReadsID = None
1503 if self.client is not None:1552 if self.client is not None:
1553 self._throttling_reads = False
1504 self.client.unthrottleReads()1554 self.client.unthrottleReads()
15051555
1506 def throttleWrites(self):1556 def throttleWrites(self):
1507 """Throttle writes on all protocols."""1557 """Throttle writes on all protocols."""
1508 if self.client is not None:1558 if self.client is not None:
1559 self._throttling_writes = True
1509 self.client.throttleWrites()1560 self.client.throttleWrites()
15101561
1511 def unthrottleWrites(self):1562 def unthrottleWrites(self):
1512 """Stop throttling writes on all protocols."""1563 """Stop throttling writes on all protocols."""
1513 self.unthrottleWritesID = None1564 self.unthrottleWritesID = None
1514 if self.client is not None:1565 if self.client is not None:
1566 self._throttling_writes = False
1515 self.client.unthrottleWrites()1567 self.client.unthrottleWrites()
15161568
1517 def buildProtocol(self, addr):1569 def buildProtocol(self, addr):
1518 """Build the protocol and start the counters reset loops."""1570 """Build the protocol and start the counters reset loops."""
1519 if self.readLimit is not None:1571 if self.throttling_enabled:
1520 self._resetReadThisSecond()1572 self.enable_throttling()
1521 if self.writeLimit is not None:
1522 self._resetWrittenThisSecond()
1523 self.stopped = False1573 self.stopped = False
1524 return StorageClientFactory.buildProtocol(self, addr)1574 return StorageClientFactory.buildProtocol(self, addr)
15251575
@@ -1529,7 +1579,6 @@
1529 self.unthrottleWritesID, self.resetWriteThisSecondID]:1579 self.unthrottleWritesID, self.resetWriteThisSecondID]:
1530 self._cancel_delayed_call(delayed)1580 self._cancel_delayed_call(delayed)
15311581
1532
1533 def _cancel_delayed_call(self, delayed):1582 def _cancel_delayed_call(self, delayed):
1534 """Safely cancel a DelayedCall."""1583 """Safely cancel a DelayedCall."""
1535 if delayed is not None and not delayed.cancelled \1584 if delayed is not None and not delayed.cancelled \
@@ -1540,6 +1589,32 @@
1540 # ignore AlreadyCalledError1589 # ignore AlreadyCalledError
1541 pass1590 pass
15421591
1592 def enable_throttling(self):
1593 """Enable throttling and start the counter reset loops."""
1594 # check if we need to start the reset loops
1595 if self.resetReadThisSecondID is None and \
1596 self.valid_limit(self.readLimit):
1597 self._resetReadThisSecond()
1598 if self.resetWriteThisSecondID is None and \
1599 self.valid_limit(self.writeLimit):
1600 self._resetWrittenThisSecond()
1601 self.throttling_enabled = True
1602
1603 def disable_throttling(self):
1604 """Disable throttling and cancel the counter reset loops."""
1605 # unthrottle if there is an active unthrottle*ID
1606 self._cancel_delayed_call(self.unthrottleReadsID)
1607 self._cancel_delayed_call(self.unthrottleWritesID)
1608 # Stop the reset loops
1609 self._cancel_delayed_call(self.resetReadThisSecondID)
1610 self._cancel_delayed_call(self.resetWriteThisSecondID)
1611 # unthrottle read/writes
1612 if self._throttling_reads:
1613 self.unthrottleReads()
1614 if self._throttling_writes:
1615 self.unthrottleWrites()
1616 self.throttling_enabled = False
1617
15431618
1544if __name__ == "__main__":1619if __name__ == "__main__":
1545 # these 3 lines show the different ways of connecting a client to the1620 # these 3 lines show the different ways of connecting a client to the
15461621
=== removed file 'ubuntuone/storageprotocol/dircontent_pb2.py'
--- ubuntuone/storageprotocol/dircontent_pb2.py 2010-02-17 23:23:52 +0000
+++ ubuntuone/storageprotocol/dircontent_pb2.py 1970-01-01 00:00:00 +0000
@@ -1,105 +0,0 @@
1# Generated by the protocol buffer compiler. DO NOT EDIT!
2
3from google.protobuf import descriptor
4from google.protobuf import message
5from google.protobuf import reflection
6from google.protobuf import service
7from google.protobuf import service_reflection
8from google.protobuf import descriptor_pb2
9_NODETYPE = descriptor.EnumDescriptor(
10 name='NodeType',
11 full_name='ubuntuone.storageprotocol.NodeType',
12 filename='NodeType',
13 values=[
14 descriptor.EnumValueDescriptor(
15 name='DIRECTORY', index=0, number=0,
16 options=None,
17 type=None),
18 descriptor.EnumValueDescriptor(
19 name='FILE', index=1, number=1,
20 options=None,
21 type=None),
22 descriptor.EnumValueDescriptor(
23 name='SYMLINK', index=2, number=2,
24 options=None,
25 type=None),
26 ],
27 options=None,
28)
29
30
31DIRECTORY = 0
32FILE = 1
33SYMLINK = 2
34
35
36
37_DIRECTORYENTRY = descriptor.Descriptor(
38 name='DirectoryEntry',
39 full_name='ubuntuone.storageprotocol.DirectoryEntry',
40 filename='ubuntuone/storageprotocol/dircontent.proto',
41 containing_type=None,
42 fields=[
43 descriptor.FieldDescriptor(
44 name='name', full_name='ubuntuone.storageprotocol.DirectoryEntry.name', index=0,
45 number=1, type=9, cpp_type=9, label=1,
46 default_value=unicode("", "utf-8"),
47 message_type=None, enum_type=None, containing_type=None,
48 is_extension=False, extension_scope=None,
49 options=None),
50 descriptor.FieldDescriptor(
51 name='node', full_name='ubuntuone.storageprotocol.DirectoryEntry.node', index=1,
52 number=2, type=12, cpp_type=9, label=1,
53 default_value="",
54 message_type=None, enum_type=None, containing_type=None,
55 is_extension=False, extension_scope=None,
56 options=None),
57 descriptor.FieldDescriptor(
58 name='node_type', full_name='ubuntuone.storageprotocol.DirectoryEntry.node_type', index=2,
59 number=3, type=14, cpp_type=8, label=1,
60 default_value=0,
61 message_type=None, enum_type=None, containing_type=None,
62 is_extension=False, extension_scope=None,
63 options=None),
64 ],
65 extensions=[
66 ],
67 nested_types=[], # TODO(robinson): Implement.
68 enum_types=[
69 ],
70 options=None)
71
72
73_DIRECTORYCONTENT = descriptor.Descriptor(
74 name='DirectoryContent',
75 full_name='ubuntuone.storageprotocol.DirectoryContent',
76 filename='ubuntuone/storageprotocol/dircontent.proto',
77 containing_type=None,
78 fields=[
79 descriptor.FieldDescriptor(
80 name='entries', full_name='ubuntuone.storageprotocol.DirectoryContent.entries', index=0,
81 number=1, type=11, cpp_type=10, label=3,
82 default_value=[],
83 message_type=None, enum_type=None, containing_type=None,
84 is_extension=False, extension_scope=None,
85 options=None),
86 ],
87 extensions=[
88 ],
89 nested_types=[], # TODO(robinson): Implement.
90 enum_types=[
91 ],
92 options=None)
93
94
95_DIRECTORYENTRY.fields_by_name['node_type'].enum_type = _NODETYPE
96_DIRECTORYCONTENT.fields_by_name['entries'].message_type = _DIRECTORYENTRY
97
98class DirectoryEntry(message.Message):
99 __metaclass__ = reflection.GeneratedProtocolMessageType
100 DESCRIPTOR = _DIRECTORYENTRY
101
102class DirectoryContent(message.Message):
103 __metaclass__ = reflection.GeneratedProtocolMessageType
104 DESCRIPTOR = _DIRECTORYCONTENT
105
1060
=== removed file 'ubuntuone/storageprotocol/protocol_pb2.py'
--- ubuntuone/storageprotocol/protocol_pb2.py 2010-02-17 23:23:52 +0000
+++ ubuntuone/storageprotocol/protocol_pb2.py 1970-01-01 00:00:00 +0000
@@ -1,2018 +0,0 @@
1# Generated by the protocol buffer compiler. DO NOT EDIT!
2
3from google.protobuf import descriptor
4from google.protobuf import message
5from google.protobuf import reflection
6from google.protobuf import service
7from google.protobuf import service_reflection
8from google.protobuf import descriptor_pb2
9
10
11_MESSAGE_MESSAGETYPE = descriptor.EnumDescriptor(
12 name='MessageType',
13 full_name='ubuntuone.storageprotocol.Message.MessageType',
14 filename='MessageType',
15 values=[
16 descriptor.EnumValueDescriptor(
17 name='NOOP', index=0, number=0,
18 options=None,
19 type=None),
20 descriptor.EnumValueDescriptor(
21 name='ERROR', index=1, number=1,
22 options=None,
23 type=None),
24 descriptor.EnumValueDescriptor(
25 name='OK', index=2, number=2,
26 options=None,
27 type=None),
28 descriptor.EnumValueDescriptor(
29 name='PING', index=3, number=3,
30 options=None,
31 type=None),
32 descriptor.EnumValueDescriptor(
33 name='PONG', index=4, number=4,
34 options=None,
35 type=None),
36 descriptor.EnumValueDescriptor(
37 name='PROTOCOL_VERSION', index=5, number=5,
38 options=None,
39 type=None),
40 descriptor.EnumValueDescriptor(
41 name='AUTH_REQUEST', index=6, number=6,
42 options=None,
43 type=None),
44 descriptor.EnumValueDescriptor(
45 name='AUTH_REQUEST_TOKEN', index=7, number=7,
46 options=None,
47 type=None),
48 descriptor.EnumValueDescriptor(
49 name='AUTH_REQUEST_TOKEN_READY', index=8, number=8,
50 options=None,
51 type=None),
52 descriptor.EnumValueDescriptor(
53 name='AUTH_AUTHENTICATED', index=9, number=9,
54 options=None,
55 type=None),
56 descriptor.EnumValueDescriptor(
57 name='ROOT', index=10, number=10,
58 options=None,
59 type=None),
60 descriptor.EnumValueDescriptor(
61 name='MAKE_DIR', index=11, number=11,
62 options=None,
63 type=None),
64 descriptor.EnumValueDescriptor(
65 name='MAKE_FILE', index=12, number=12,
66 options=None,
67 type=None),
68 descriptor.EnumValueDescriptor(
69 name='NEW_DIR', index=13, number=13,
70 options=None,
71 type=None),
72 descriptor.EnumValueDescriptor(
73 name='NEW_FILE', index=14, number=14,
74 options=None,
75 type=None),
76 descriptor.EnumValueDescriptor(
77 name='QUERY', index=15, number=15,
78 options=None,
79 type=None),
80 descriptor.EnumValueDescriptor(
81 name='NODE_STATE', index=16, number=16,
82 options=None,
83 type=None),
84 descriptor.EnumValueDescriptor(
85 name='QUERY_END', index=17, number=17,
86 options=None,
87 type=None),
88 descriptor.EnumValueDescriptor(
89 name='GET_CONTENT', index=18, number=18,
90 options=None,
91 type=None),
92 descriptor.EnumValueDescriptor(
93 name='PUT_CONTENT', index=19, number=19,
94 options=None,
95 type=None),
96 descriptor.EnumValueDescriptor(
97 name='BEGIN_CONTENT', index=20, number=20,
98 options=None,
99 type=None),
100 descriptor.EnumValueDescriptor(
101 name='BYTES', index=21, number=21,
102 options=None,
103 type=None),
104 descriptor.EnumValueDescriptor(
105 name='EOF', index=22, number=22,
106 options=None,
107 type=None),
108 descriptor.EnumValueDescriptor(
109 name='MOVE', index=23, number=23,
110 options=None,
111 type=None),
112 descriptor.EnumValueDescriptor(
113 name='UNLINK', index=24, number=24,
114 options=None,
115 type=None),
116 descriptor.EnumValueDescriptor(
117 name='CREATE_SHARE', index=25, number=25,
118 options=None,
119 type=None),
120 descriptor.EnumValueDescriptor(
121 name='LIST_SHARES', index=26, number=26,
122 options=None,
123 type=None),
124 descriptor.EnumValueDescriptor(
125 name='SHARES_INFO', index=27, number=27,
126 options=None,
127 type=None),
128 descriptor.EnumValueDescriptor(
129 name='SHARES_END', index=28, number=28,
130 options=None,
131 type=None),
132 descriptor.EnumValueDescriptor(
133 name='NOTIFY_SHARE', index=29, number=29,
134 options=None,
135 type=None),
136 descriptor.EnumValueDescriptor(
137 name='SHARE_ACCEPTED', index=30, number=30,
138 options=None,
139 type=None),
140 descriptor.EnumValueDescriptor(
141 name='SHARE_DELETED', index=31, number=31,
142 options=None,
143 type=None),
144 descriptor.EnumValueDescriptor(
145 name='SHARE_CREATED', index=32, number=34,
146 options=None,
147 type=None),
148 descriptor.EnumValueDescriptor(
149 name='DELETE_SHARE', index=33, number=36,
150 options=None,
151 type=None),
152 descriptor.EnumValueDescriptor(
153 name='CREATE_UDF', index=34, number=44,
154 options=None,
155 type=None),
156 descriptor.EnumValueDescriptor(
157 name='LIST_VOLUMES', index=35, number=45,
158 options=None,
159 type=None),
160 descriptor.EnumValueDescriptor(
161 name='VOLUMES_INFO', index=36, number=46,
162 options=None,
163 type=None),
164 descriptor.EnumValueDescriptor(
165 name='VOLUMES_END', index=37, number=47,
166 options=None,
167 type=None),
168 descriptor.EnumValueDescriptor(
169 name='VOLUME_DELETED', index=38, number=48,
170 options=None,
171 type=None),
172 descriptor.EnumValueDescriptor(
173 name='VOLUME_CREATED', index=39, number=49,
174 options=None,
175 type=None),
176 descriptor.EnumValueDescriptor(
177 name='DELETE_VOLUME', index=40, number=50,
178 options=None,
179 type=None),
180 descriptor.EnumValueDescriptor(
181 name='CANCEL_REQUEST', index=41, number=32,
182 options=None,
183 type=None),
184 descriptor.EnumValueDescriptor(
185 name='NODE_ATTR', index=42, number=33,
186 options=None,
187 type=None),
188 descriptor.EnumValueDescriptor(
189 name='CANCELLED', index=43, number=35,
190 options=None,
191 type=None),
192 descriptor.EnumValueDescriptor(
193 name='QUERY_CAPS', index=44, number=37,
194 options=None,
195 type=None),
196 descriptor.EnumValueDescriptor(
197 name='SET_CAPS', index=45, number=38,
198 options=None,
199 type=None),
200 descriptor.EnumValueDescriptor(
201 name='ACCEPT_CAPS', index=46, number=39,
202 options=None,
203 type=None),
204 descriptor.EnumValueDescriptor(
205 name='FREE_SPACE_INFO', index=47, number=40,
206 options=None,
207 type=None),
208 descriptor.EnumValueDescriptor(
209 name='FREE_SPACE_INQUIRY', index=48, number=41,
210 options=None,
211 type=None),
212 descriptor.EnumValueDescriptor(
213 name='ACCOUNT_INFO', index=49, number=42,
214 options=None,
215 type=None),
216 descriptor.EnumValueDescriptor(
217 name='ACCOUNT_INQUIRY', index=50, number=43,
218 options=None,
219 type=None),
220 ],
221 options=None,
222)
223
224_ERROR_ERRORTYPE = descriptor.EnumDescriptor(
225 name='ErrorType',
226 full_name='ubuntuone.storageprotocol.Error.ErrorType',
227 filename='ErrorType',
228 values=[
229 descriptor.EnumValueDescriptor(
230 name='UNSUPPORTED_VERSION', index=0, number=0,
231 options=None,
232 type=None),
233 descriptor.EnumValueDescriptor(
234 name='AUTHENTICATION_FAILED', index=1, number=1,
235 options=None,
236 type=None),
237 descriptor.EnumValueDescriptor(
238 name='INTERNAL_ERROR', index=2, number=2,
239 options=None,
240 type=None),
241 descriptor.EnumValueDescriptor(
242 name='AUTHENTICATION_REQUIRED', index=3, number=3,
243 options=None,
244 type=None),
245 descriptor.EnumValueDescriptor(
246 name='NO_PERMISSION', index=4, number=4,
247 options=None,
248 type=None),
249 descriptor.EnumValueDescriptor(
250 name='ALREADY_EXISTS', index=5, number=5,
251 options=None,
252 type=None),
253 descriptor.EnumValueDescriptor(
254 name='DOES_NOT_EXIST', index=6, number=6,
255 options=None,
256 type=None),
257 descriptor.EnumValueDescriptor(
258 name='NOT_A_DIRECTORY', index=7, number=7,
259 options=None,
260 type=None),
261 descriptor.EnumValueDescriptor(
262 name='NOT_EMPTY', index=8, number=8,
263 options=None,
264 type=None),
265 descriptor.EnumValueDescriptor(
266 name='NOT_AVAILABLE', index=9, number=9,
267 options=None,
268 type=None),
269 descriptor.EnumValueDescriptor(
270 name='UPLOAD_IN_PROGRESS', index=10, number=10,
271 options=None,
272 type=None),
273 descriptor.EnumValueDescriptor(
274 name='UPLOAD_CORRUPT', index=11, number=11,
275 options=None,
276 type=None),
277 descriptor.EnumValueDescriptor(
278 name='UPLOAD_CANCELED', index=12, number=12,
279 options=None,
280 type=None),
281 descriptor.EnumValueDescriptor(
282 name='CONFLICT', index=13, number=13,
283 options=None,
284 type=None),
285 descriptor.EnumValueDescriptor(
286 name='TRY_AGAIN', index=14, number=14,
287 options=None,
288 type=None),
289 descriptor.EnumValueDescriptor(
290 name='PROTOCOL_ERROR', index=15, number=15,
291 options=None,
292 type=None),
293 descriptor.EnumValueDescriptor(
294 name='QUOTA_EXCEEDED', index=16, number=16,
295 options=None,
296 type=None),
297 descriptor.EnumValueDescriptor(
298 name='INVALID_FILENAME', index=17, number=17,
299 options=None,
300 type=None),
301 ],
302 options=None,
303)
304
305_CREATESHARE_ACCESSLEVEL = descriptor.EnumDescriptor(
306 name='AccessLevel',
307 full_name='ubuntuone.storageprotocol.CreateShare.AccessLevel',
308 filename='AccessLevel',
309 values=[
310 descriptor.EnumValueDescriptor(
311 name='VIEW', index=0, number=0,
312 options=None,
313 type=None),
314 descriptor.EnumValueDescriptor(
315 name='MODIFY', index=1, number=1,
316 options=None,
317 type=None),
318 ],
319 options=None,
320)
321
322_SHARES_DIRECTION = descriptor.EnumDescriptor(
323 name='Direction',
324 full_name='ubuntuone.storageprotocol.Shares.Direction',
325 filename='Direction',
326 values=[
327 descriptor.EnumValueDescriptor(
328 name='TO_ME', index=0, number=0,
329 options=None,
330 type=None),
331 descriptor.EnumValueDescriptor(
332 name='FROM_ME', index=1, number=1,
333 options=None,
334 type=None),
335 ],
336 options=None,
337)
338
339_SHARES_ACCESSLEVEL = descriptor.EnumDescriptor(
340 name='AccessLevel',
341 full_name='ubuntuone.storageprotocol.Shares.AccessLevel',
342 filename='AccessLevel',
343 values=[
344 descriptor.EnumValueDescriptor(
345 name='VIEW', index=0, number=0,
346 options=None,
347 type=None),
348 descriptor.EnumValueDescriptor(
349 name='MODIFY', index=1, number=1,
350 options=None,
351 type=None),
352 ],
353 options=None,
354)
355
356_NOTIFYSHARE_ACCESSLEVEL = descriptor.EnumDescriptor(
357 name='AccessLevel',
358 full_name='ubuntuone.storageprotocol.NotifyShare.AccessLevel',
359 filename='AccessLevel',
360 values=[
361 descriptor.EnumValueDescriptor(
362 name='VIEW', index=0, number=0,
363 options=None,
364 type=None),
365 descriptor.EnumValueDescriptor(
366 name='MODIFY', index=1, number=1,
367 options=None,
368 type=None),
369 ],
370 options=None,
371)
372
373_SHAREACCEPTED_ANSWER = descriptor.EnumDescriptor(
374 name='Answer',
375 full_name='ubuntuone.storageprotocol.ShareAccepted.Answer',
376 filename='Answer',
377 values=[
378 descriptor.EnumValueDescriptor(
379 name='YES', index=0, number=0,
380 options=None,
381 type=None),
382 descriptor.EnumValueDescriptor(
383 name='NO', index=1, number=1,
384 options=None,
385 type=None),
386 ],
387 options=None,
388)
389
390_VOLUMES_VOLUMETYPE = descriptor.EnumDescriptor(
391 name='VolumeType',
392 full_name='ubuntuone.storageprotocol.Volumes.VolumeType',
393 filename='VolumeType',
394 values=[
395 descriptor.EnumValueDescriptor(
396 name='ROOT', index=0, number=1,
397 options=None,
398 type=None),
399 descriptor.EnumValueDescriptor(
400 name='SHARE', index=1, number=2,
401 options=None,
402 type=None),
403 descriptor.EnumValueDescriptor(
404 name='UDF', index=2, number=3,
405 options=None,
406 type=None),
407 ],
408 options=None,
409)
410
411
412_MESSAGE = descriptor.Descriptor(
413 name='Message',
414 full_name='ubuntuone.storageprotocol.Message',
415 filename='ubuntuone/storageprotocol/protocol.proto',
416 containing_type=None,
417 fields=[
418 descriptor.FieldDescriptor(
419 name='id', full_name='ubuntuone.storageprotocol.Message.id', index=0,
420 number=1, type=5, cpp_type=1, label=2,
421 default_value=0,
422 message_type=None, enum_type=None, containing_type=None,
423 is_extension=False, extension_scope=None,
424 options=None),
425 descriptor.FieldDescriptor(
426 name='type', full_name='ubuntuone.storageprotocol.Message.type', index=1,
427 number=2, type=14, cpp_type=8, label=2,
428 default_value=0,
429 message_type=None, enum_type=None, containing_type=None,
430 is_extension=False, extension_scope=None,
431 options=None),
432 descriptor.FieldDescriptor(
433 name='error', full_name='ubuntuone.storageprotocol.Message.error', index=2,
434 number=3, type=11, cpp_type=10, label=1,
435 default_value=None,
436 message_type=None, enum_type=None, containing_type=None,
437 is_extension=False, extension_scope=None,
438 options=None),
439 descriptor.FieldDescriptor(
440 name='protocol', full_name='ubuntuone.storageprotocol.Message.protocol', index=3,
441 number=4, type=11, cpp_type=10, label=1,
442 default_value=None,
443 message_type=None, enum_type=None, containing_type=None,
444 is_extension=False, extension_scope=None,
445 options=None),
446 descriptor.FieldDescriptor(
447 name='auth_parameters', full_name='ubuntuone.storageprotocol.Message.auth_parameters', index=4,
448 number=5, type=11, cpp_type=10, label=3,
449 default_value=[],
450 message_type=None, enum_type=None, containing_type=None,
451 is_extension=False, extension_scope=None,
452 options=None),
453 descriptor.FieldDescriptor(
454 name='root', full_name='ubuntuone.storageprotocol.Message.root', index=5,
455 number=6, type=11, cpp_type=10, label=1,
456 default_value=None,
457 message_type=None, enum_type=None, containing_type=None,
458 is_extension=False, extension_scope=None,
459 options=None),
460 descriptor.FieldDescriptor(
461 name='query', full_name='ubuntuone.storageprotocol.Message.query', index=6,
462 number=7, type=11, cpp_type=10, label=3,
463 default_value=[],
464 message_type=None, enum_type=None, containing_type=None,
465 is_extension=False, extension_scope=None,
466 options=None),
467 descriptor.FieldDescriptor(
468 name='node_state', full_name='ubuntuone.storageprotocol.Message.node_state', index=7,
469 number=8, type=11, cpp_type=10, label=1,
470 default_value=None,
471 message_type=None, enum_type=None, containing_type=None,
472 is_extension=False, extension_scope=None,
473 options=None),
474 descriptor.FieldDescriptor(
475 name='make', full_name='ubuntuone.storageprotocol.Message.make', index=8,
476 number=9, type=11, cpp_type=10, label=1,
477 default_value=None,
478 message_type=None, enum_type=None, containing_type=None,
479 is_extension=False, extension_scope=None,
480 options=None),
481 descriptor.FieldDescriptor(
482 name='new', full_name='ubuntuone.storageprotocol.Message.new', index=9,
483 number=10, type=11, cpp_type=10, label=1,
484 default_value=None,
485 message_type=None, enum_type=None, containing_type=None,
486 is_extension=False, extension_scope=None,
487 options=None),
488 descriptor.FieldDescriptor(
489 name='move', full_name='ubuntuone.storageprotocol.Message.move', index=10,
490 number=11, type=11, cpp_type=10, label=1,
491 default_value=None,
492 message_type=None, enum_type=None, containing_type=None,
493 is_extension=False, extension_scope=None,
494 options=None),
495 descriptor.FieldDescriptor(
496 name='get_content', full_name='ubuntuone.storageprotocol.Message.get_content', index=11,
497 number=12, type=11, cpp_type=10, label=1,
498 default_value=None,
499 message_type=None, enum_type=None, containing_type=None,
500 is_extension=False, extension_scope=None,
501 options=None),
502 descriptor.FieldDescriptor(
503 name='put_content', full_name='ubuntuone.storageprotocol.Message.put_content', index=12,
504 number=13, type=11, cpp_type=10, label=1,
505 default_value=None,
506 message_type=None, enum_type=None, containing_type=None,
507 is_extension=False, extension_scope=None,
508 options=None),
509 descriptor.FieldDescriptor(
510 name='upload_in_progress', full_name='ubuntuone.storageprotocol.Message.upload_in_progress', index=13,
511 number=14, type=11, cpp_type=10, label=1,
512 default_value=None,
513 message_type=None, enum_type=None, containing_type=None,
514 is_extension=False, extension_scope=None,
515 options=None),
516 descriptor.FieldDescriptor(
517 name='bytes', full_name='ubuntuone.storageprotocol.Message.bytes', index=14,
518 number=15, type=11, cpp_type=10, label=1,
519 default_value=None,
520 message_type=None, enum_type=None, containing_type=None,
521 is_extension=False, extension_scope=None,
522 options=None),
523 descriptor.FieldDescriptor(
524 name='unlink', full_name='ubuntuone.storageprotocol.Message.unlink', index=15,
525 number=16, type=11, cpp_type=10, label=1,
526 default_value=None,
527 message_type=None, enum_type=None, containing_type=None,
528 is_extension=False, extension_scope=None,
529 options=None),
530 descriptor.FieldDescriptor(
531 name='cancel_request', full_name='ubuntuone.storageprotocol.Message.cancel_request', index=16,
532 number=17, type=11, cpp_type=10, label=1,
533 default_value=None,
534 message_type=None, enum_type=None, containing_type=None,
535 is_extension=False, extension_scope=None,
536 options=None),
537 descriptor.FieldDescriptor(
538 name='node_attr', full_name='ubuntuone.storageprotocol.Message.node_attr', index=17,
539 number=18, type=11, cpp_type=10, label=1,
540 default_value=None,
541 message_type=None, enum_type=None, containing_type=None,
542 is_extension=False, extension_scope=None,
543 options=None),
544 descriptor.FieldDescriptor(
545 name='create_share', full_name='ubuntuone.storageprotocol.Message.create_share', index=18,
546 number=19, type=11, cpp_type=10, label=1,
547 default_value=None,
548 message_type=None, enum_type=None, containing_type=None,
549 is_extension=False, extension_scope=None,
550 options=None),
551 descriptor.FieldDescriptor(
552 name='shares', full_name='ubuntuone.storageprotocol.Message.shares', index=19,
553 number=20, type=11, cpp_type=10, label=1,
554 default_value=None,
555 message_type=None, enum_type=None, containing_type=None,
556 is_extension=False, extension_scope=None,
557 options=None),
558 descriptor.FieldDescriptor(
559 name='notify_share', full_name='ubuntuone.storageprotocol.Message.notify_share', index=20,
560 number=21, type=11, cpp_type=10, label=1,
561 default_value=None,
562 message_type=None, enum_type=None, containing_type=None,
563 is_extension=False, extension_scope=None,
564 options=None),
565 descriptor.FieldDescriptor(
566 name='share_accepted', full_name='ubuntuone.storageprotocol.Message.share_accepted', index=21,
567 number=22, type=11, cpp_type=10, label=1,
568 default_value=None,
569 message_type=None, enum_type=None, containing_type=None,
570 is_extension=False, extension_scope=None,
571 options=None),
572 descriptor.FieldDescriptor(
573 name='share_deleted', full_name='ubuntuone.storageprotocol.Message.share_deleted', index=22,
574 number=23, type=11, cpp_type=10, label=1,
575 default_value=None,
576 message_type=None, enum_type=None, containing_type=None,
577 is_extension=False, extension_scope=None,
578 options=None),
579 descriptor.FieldDescriptor(
580 name='share_created', full_name='ubuntuone.storageprotocol.Message.share_created', index=23,
581 number=24, type=11, cpp_type=10, label=1,
582 default_value=None,
583 message_type=None, enum_type=None, containing_type=None,
584 is_extension=False, extension_scope=None,
585 options=None),
586 descriptor.FieldDescriptor(
587 name='delete_share', full_name='ubuntuone.storageprotocol.Message.delete_share', index=24,
588 number=25, type=11, cpp_type=10, label=1,
589 default_value=None,
590 message_type=None, enum_type=None, containing_type=None,
591 is_extension=False, extension_scope=None,
592 options=None),
593 descriptor.FieldDescriptor(
594 name='create_udf', full_name='ubuntuone.storageprotocol.Message.create_udf', index=25,
595 number=33, type=11, cpp_type=10, label=1,
596 default_value=None,
597 message_type=None, enum_type=None, containing_type=None,
598 is_extension=False, extension_scope=None,
599 options=None),
600 descriptor.FieldDescriptor(
601 name='list_volumes', full_name='ubuntuone.storageprotocol.Message.list_volumes', index=26,
602 number=34, type=11, cpp_type=10, label=1,
603 default_value=None,
604 message_type=None, enum_type=None, containing_type=None,
605 is_extension=False, extension_scope=None,
606 options=None),
607 descriptor.FieldDescriptor(
608 name='volume_deleted', full_name='ubuntuone.storageprotocol.Message.volume_deleted', index=27,
609 number=35, type=11, cpp_type=10, label=1,
610 default_value=None,
611 message_type=None, enum_type=None, containing_type=None,
612 is_extension=False, extension_scope=None,
613 options=None),
614 descriptor.FieldDescriptor(
615 name='volume_created', full_name='ubuntuone.storageprotocol.Message.volume_created', index=28,
616 number=36, type=11, cpp_type=10, label=1,
617 default_value=None,
618 message_type=None, enum_type=None, containing_type=None,
619 is_extension=False, extension_scope=None,
620 options=None),
621 descriptor.FieldDescriptor(
622 name='delete_volume', full_name='ubuntuone.storageprotocol.Message.delete_volume', index=29,
623 number=37, type=11, cpp_type=10, label=1,
624 default_value=None,
625 message_type=None, enum_type=None, containing_type=None,
626 is_extension=False, extension_scope=None,
627 options=None),
628 descriptor.FieldDescriptor(
629 name='query_caps', full_name='ubuntuone.storageprotocol.Message.query_caps', index=30,
630 number=26, type=11, cpp_type=10, label=3,
631 default_value=[],
632 message_type=None, enum_type=None, containing_type=None,
633 is_extension=False, extension_scope=None,
634 options=None),
635 descriptor.FieldDescriptor(
636 name='set_caps', full_name='ubuntuone.storageprotocol.Message.set_caps', index=31,
637 number=27, type=11, cpp_type=10, label=3,
638 default_value=[],
639 message_type=None, enum_type=None, containing_type=None,
640 is_extension=False, extension_scope=None,
641 options=None),
642 descriptor.FieldDescriptor(
643 name='accept_caps', full_name='ubuntuone.storageprotocol.Message.accept_caps', index=32,
644 number=28, type=11, cpp_type=10, label=1,
645 default_value=None,
646 message_type=None, enum_type=None, containing_type=None,
647 is_extension=False, extension_scope=None,
648 options=None),
649 descriptor.FieldDescriptor(
650 name='free_space_info', full_name='ubuntuone.storageprotocol.Message.free_space_info', index=33,
651 number=29, type=11, cpp_type=10, label=1,
652 default_value=None,
653 message_type=None, enum_type=None, containing_type=None,
654 is_extension=False, extension_scope=None,
655 options=None),
656 descriptor.FieldDescriptor(
657 name='free_space_inquiry', full_name='ubuntuone.storageprotocol.Message.free_space_inquiry', index=34,
658 number=30, type=11, cpp_type=10, label=1,
659 default_value=None,
660 message_type=None, enum_type=None, containing_type=None,
661 is_extension=False, extension_scope=None,
662 options=None),
663 descriptor.FieldDescriptor(
664 name='account_info', full_name='ubuntuone.storageprotocol.Message.account_info', index=35,
665 number=31, type=11, cpp_type=10, label=1,
666 default_value=None,
667 message_type=None, enum_type=None, containing_type=None,
668 is_extension=False, extension_scope=None,
669 options=None),
670 descriptor.FieldDescriptor(
671 name='begin_content', full_name='ubuntuone.storageprotocol.Message.begin_content', index=36,
672 number=32, type=11, cpp_type=10, label=1,
673 default_value=None,
674 message_type=None, enum_type=None, containing_type=None,
675 is_extension=False, extension_scope=None,
676 options=None),
677 ],
678 extensions=[
679 ],
680 nested_types=[], # TODO(robinson): Implement.
681 enum_types=[
682 _MESSAGE_MESSAGETYPE,
683 ],
684 options=None)
685
686
687_ERROR = descriptor.Descriptor(
688 name='Error',
689 full_name='ubuntuone.storageprotocol.Error',
690 filename='ubuntuone/storageprotocol/protocol.proto',
691 containing_type=None,
692 fields=[
693 descriptor.FieldDescriptor(
694 name='type', full_name='ubuntuone.storageprotocol.Error.type', index=0,
695 number=1, type=14, cpp_type=8, label=2,
696 default_value=0,
697 message_type=None, enum_type=None, containing_type=None,
698 is_extension=False, extension_scope=None,
699 options=None),
700 descriptor.FieldDescriptor(
701 name='comment', full_name='ubuntuone.storageprotocol.Error.comment', index=1,
702 number=2, type=9, cpp_type=9, label=1,
703 default_value=unicode("", "utf-8"),
704 message_type=None, enum_type=None, containing_type=None,
705 is_extension=False, extension_scope=None,
706 options=None),
707 ],
708 extensions=[
709 ],
710 nested_types=[], # TODO(robinson): Implement.
711 enum_types=[
712 _ERROR_ERRORTYPE,
713 ],
714 options=None)
715
716
717_PROTOCOL = descriptor.Descriptor(
718 name='Protocol',
719 full_name='ubuntuone.storageprotocol.Protocol',
720 filename='ubuntuone/storageprotocol/protocol.proto',
721 containing_type=None,
722 fields=[
723 descriptor.FieldDescriptor(
724 name='version', full_name='ubuntuone.storageprotocol.Protocol.version', index=0,
725 number=1, type=5, cpp_type=1, label=2,
726 default_value=0,
727 message_type=None, enum_type=None, containing_type=None,
728 is_extension=False, extension_scope=None,
729 options=None),
730 ],
731 extensions=[
732 ],
733 nested_types=[], # TODO(robinson): Implement.
734 enum_types=[
735 ],
736 options=None)
737
738
739_AUTHPARAMETER = descriptor.Descriptor(
740 name='AuthParameter',
741 full_name='ubuntuone.storageprotocol.AuthParameter',
742 filename='ubuntuone/storageprotocol/protocol.proto',
743 containing_type=None,
744 fields=[
745 descriptor.FieldDescriptor(
746 name='name', full_name='ubuntuone.storageprotocol.AuthParameter.name', index=0,
747 number=1, type=9, cpp_type=9, label=2,
748 default_value=unicode("", "utf-8"),
749 message_type=None, enum_type=None, containing_type=None,
750 is_extension=False, extension_scope=None,
751 options=None),
752 descriptor.FieldDescriptor(
753 name='value', full_name='ubuntuone.storageprotocol.AuthParameter.value', index=1,
754 number=2, type=9, cpp_type=9, label=2,
755 default_value=unicode("", "utf-8"),
756 message_type=None, enum_type=None, containing_type=None,
757 is_extension=False, extension_scope=None,
758 options=None),
759 ],
760 extensions=[
761 ],
762 nested_types=[], # TODO(robinson): Implement.
763 enum_types=[
764 ],
765 options=None)
766
767
768_MAKE = descriptor.Descriptor(
769 name='Make',
770 full_name='ubuntuone.storageprotocol.Make',
771 filename='ubuntuone/storageprotocol/protocol.proto',
772 containing_type=None,
773 fields=[
774 descriptor.FieldDescriptor(
775 name='share', full_name='ubuntuone.storageprotocol.Make.share', index=0,
776 number=1, type=12, cpp_type=9, label=1,
777 default_value="",
778 message_type=None, enum_type=None, containing_type=None,
779 is_extension=False, extension_scope=None,
780 options=None),
781 descriptor.FieldDescriptor(
782 name='parent_node', full_name='ubuntuone.storageprotocol.Make.parent_node', index=1,
783 number=2, type=12, cpp_type=9, label=1,
784 default_value="",
785 message_type=None, enum_type=None, containing_type=None,
786 is_extension=False, extension_scope=None,
787 options=None),
788 descriptor.FieldDescriptor(
789 name='name', full_name='ubuntuone.storageprotocol.Make.name', index=2,
790 number=3, type=9, cpp_type=9, label=1,
791 default_value=unicode("", "utf-8"),
792 message_type=None, enum_type=None, containing_type=None,
793 is_extension=False, extension_scope=None,
794 options=None),
795 ],
796 extensions=[
797 ],
798 nested_types=[], # TODO(robinson): Implement.
799 enum_types=[
800 ],
801 options=None)
802
803
804_NEW = descriptor.Descriptor(
805 name='New',
806 full_name='ubuntuone.storageprotocol.New',
807 filename='ubuntuone/storageprotocol/protocol.proto',
808 containing_type=None,
809 fields=[
810 descriptor.FieldDescriptor(
811 name='node', full_name='ubuntuone.storageprotocol.New.node', index=0,
812 number=1, type=12, cpp_type=9, label=1,
813 default_value="",
814 message_type=None, enum_type=None, containing_type=None,
815 is_extension=False, extension_scope=None,
816 options=None),
817 descriptor.FieldDescriptor(
818 name='parent_node', full_name='ubuntuone.storageprotocol.New.parent_node', index=1,
819 number=2, type=12, cpp_type=9, label=1,
820 default_value="",
821 message_type=None, enum_type=None, containing_type=None,
822 is_extension=False, extension_scope=None,
823 options=None),
824 descriptor.FieldDescriptor(
825 name='name', full_name='ubuntuone.storageprotocol.New.name', index=2,
826 number=3, type=9, cpp_type=9, label=1,
827 default_value=unicode("", "utf-8"),
828 message_type=None, enum_type=None, containing_type=None,
829 is_extension=False, extension_scope=None,
830 options=None),
831 ],
832 extensions=[
833 ],
834 nested_types=[], # TODO(robinson): Implement.
835 enum_types=[
836 ],
837 options=None)
838
839
840_ROOT = descriptor.Descriptor(
841 name='Root',
842 full_name='ubuntuone.storageprotocol.Root',
843 filename='ubuntuone/storageprotocol/protocol.proto',
844 containing_type=None,
845 fields=[
846 descriptor.FieldDescriptor(
847 name='node', full_name='ubuntuone.storageprotocol.Root.node', index=0,
848 number=1, type=12, cpp_type=9, label=1,
849 default_value="",
850 message_type=None, enum_type=None, containing_type=None,
851 is_extension=False, extension_scope=None,
852 options=None),
853 ],
854 extensions=[
855 ],
856 nested_types=[], # TODO(robinson): Implement.
857 enum_types=[
858 ],
859 options=None)
860
861
862_QUERY = descriptor.Descriptor(
863 name='Query',
864 full_name='ubuntuone.storageprotocol.Query',
865 filename='ubuntuone/storageprotocol/protocol.proto',
866 containing_type=None,
867 fields=[
868 descriptor.FieldDescriptor(
869 name='share', full_name='ubuntuone.storageprotocol.Query.share', index=0,
870 number=1, type=12, cpp_type=9, label=1,
871 default_value="",
872 message_type=None, enum_type=None, containing_type=None,
873 is_extension=False, extension_scope=None,
874 options=None),
875 descriptor.FieldDescriptor(
876 name='node', full_name='ubuntuone.storageprotocol.Query.node', index=1,
877 number=2, type=12, cpp_type=9, label=1,
878 default_value="",
879 message_type=None, enum_type=None, containing_type=None,
880 is_extension=False, extension_scope=None,
881 options=None),
882 descriptor.FieldDescriptor(
883 name='hash', full_name='ubuntuone.storageprotocol.Query.hash', index=2,
884 number=3, type=12, cpp_type=9, label=1,
885 default_value="",
886 message_type=None, enum_type=None, containing_type=None,
887 is_extension=False, extension_scope=None,
888 options=None),
889 ],
890 extensions=[
891 ],
892 nested_types=[], # TODO(robinson): Implement.
893 enum_types=[
894 ],
895 options=None)
896
897
898_NODESTATE = descriptor.Descriptor(
899 name='NodeState',
900 full_name='ubuntuone.storageprotocol.NodeState',
901 filename='ubuntuone/storageprotocol/protocol.proto',
902 containing_type=None,
903 fields=[
904 descriptor.FieldDescriptor(
905 name='share', full_name='ubuntuone.storageprotocol.NodeState.share', index=0,
906 number=1, type=12, cpp_type=9, label=1,
907 default_value="",
908 message_type=None, enum_type=None, containing_type=None,
909 is_extension=False, extension_scope=None,
910 options=None),
911 descriptor.FieldDescriptor(
912 name='node', full_name='ubuntuone.storageprotocol.NodeState.node', index=1,
913 number=2, type=12, cpp_type=9, label=1,
914 default_value="",
915 message_type=None, enum_type=None, containing_type=None,
916 is_extension=False, extension_scope=None,
917 options=None),
918 descriptor.FieldDescriptor(
919 name='hash', full_name='ubuntuone.storageprotocol.NodeState.hash', index=2,
920 number=3, type=12, cpp_type=9, label=1,
921 default_value="",
922 message_type=None, enum_type=None, containing_type=None,
923 is_extension=False, extension_scope=None,
924 options=None),
925 ],
926 extensions=[
927 ],
928 nested_types=[], # TODO(robinson): Implement.
929 enum_types=[
930 ],
931 options=None)
932
933
934_GETCONTENT = descriptor.Descriptor(
935 name='GetContent',
936 full_name='ubuntuone.storageprotocol.GetContent',
937 filename='ubuntuone/storageprotocol/protocol.proto',
938 containing_type=None,
939 fields=[
940 descriptor.FieldDescriptor(
941 name='share', full_name='ubuntuone.storageprotocol.GetContent.share', index=0,
942 number=1, type=12, cpp_type=9, label=1,
943 default_value="",
944 message_type=None, enum_type=None, containing_type=None,
945 is_extension=False, extension_scope=None,
946 options=None),
947 descriptor.FieldDescriptor(
948 name='node', full_name='ubuntuone.storageprotocol.GetContent.node', index=1,
949 number=2, type=12, cpp_type=9, label=1,
950 default_value="",
951 message_type=None, enum_type=None, containing_type=None,
952 is_extension=False, extension_scope=None,
953 options=None),
954 descriptor.FieldDescriptor(
955 name='hash', full_name='ubuntuone.storageprotocol.GetContent.hash', index=2,
956 number=3, type=12, cpp_type=9, label=1,
957 default_value="",
958 message_type=None, enum_type=None, containing_type=None,
959 is_extension=False, extension_scope=None,
960 options=None),
961 descriptor.FieldDescriptor(
962 name='offset', full_name='ubuntuone.storageprotocol.GetContent.offset', index=3,
963 number=4, type=3, cpp_type=2, label=1,
964 default_value=0,
965 message_type=None, enum_type=None, containing_type=None,
966 is_extension=False, extension_scope=None,
967 options=None),
968 ],
969 extensions=[
970 ],
971 nested_types=[], # TODO(robinson): Implement.
972 enum_types=[
973 ],
974 options=None)
975
976
977_CANCELREQUEST = descriptor.Descriptor(
978 name='CancelRequest',
979 full_name='ubuntuone.storageprotocol.CancelRequest',
980 filename='ubuntuone/storageprotocol/protocol.proto',
981 containing_type=None,
982 fields=[
983 ],
984 extensions=[
985 ],
986 nested_types=[], # TODO(robinson): Implement.
987 enum_types=[
988 ],
989 options=None)
990
991
992_NODEATTR = descriptor.Descriptor(
993 name='NodeAttr',
994 full_name='ubuntuone.storageprotocol.NodeAttr',
995 filename='ubuntuone/storageprotocol/protocol.proto',
996 containing_type=None,
997 fields=[
998 descriptor.FieldDescriptor(
999 name='deflated_size', full_name='ubuntuone.storageprotocol.NodeAttr.deflated_size', index=0,
1000 number=1, type=4, cpp_type=4, label=1,
1001 default_value=0,
1002 message_type=None, enum_type=None, containing_type=None,
1003 is_extension=False, extension_scope=None,
1004 options=None),
1005 descriptor.FieldDescriptor(
1006 name='size', full_name='ubuntuone.storageprotocol.NodeAttr.size', index=1,
1007 number=2, type=4, cpp_type=4, label=1,
1008 default_value=0,
1009 message_type=None, enum_type=None, containing_type=None,
1010 is_extension=False, extension_scope=None,
1011 options=None),
1012 descriptor.FieldDescriptor(
1013 name='hash', full_name='ubuntuone.storageprotocol.NodeAttr.hash', index=2,
1014 number=3, type=12, cpp_type=9, label=1,
1015 default_value="",
1016 message_type=None, enum_type=None, containing_type=None,
1017 is_extension=False, extension_scope=None,
1018 options=None),
1019 descriptor.FieldDescriptor(
1020 name='crc32', full_name='ubuntuone.storageprotocol.NodeAttr.crc32', index=3,
1021 number=4, type=13, cpp_type=3, label=1,
1022 default_value=0,
1023 message_type=None, enum_type=None, containing_type=None,
1024 is_extension=False, extension_scope=None,
1025 options=None),
1026 ],
1027 extensions=[
1028 ],
1029 nested_types=[], # TODO(robinson): Implement.
1030 enum_types=[
1031 ],
1032 options=None)
1033
1034
1035_BYTES = descriptor.Descriptor(
1036 name='Bytes',
1037 full_name='ubuntuone.storageprotocol.Bytes',
1038 filename='ubuntuone/storageprotocol/protocol.proto',
1039 containing_type=None,
1040 fields=[
1041 descriptor.FieldDescriptor(
1042 name='bytes', full_name='ubuntuone.storageprotocol.Bytes.bytes', index=0,
1043 number=1, type=12, cpp_type=9, label=1,
1044 default_value="",
1045 message_type=None, enum_type=None, containing_type=None,
1046 is_extension=False, extension_scope=None,
1047 options=None),
1048 ],
1049 extensions=[
1050 ],
1051 nested_types=[], # TODO(robinson): Implement.
1052 enum_types=[
1053 ],
1054 options=None)
1055
1056
1057_PUTCONTENT = descriptor.Descriptor(
1058 name='PutContent',
1059 full_name='ubuntuone.storageprotocol.PutContent',
1060 filename='ubuntuone/storageprotocol/protocol.proto',
1061 containing_type=None,
1062 fields=[
1063 descriptor.FieldDescriptor(
1064 name='share', full_name='ubuntuone.storageprotocol.PutContent.share', index=0,
1065 number=1, type=12, cpp_type=9, label=1,
1066 default_value="",
1067 message_type=None, enum_type=None, containing_type=None,
1068 is_extension=False, extension_scope=None,
1069 options=None),
1070 descriptor.FieldDescriptor(
1071 name='node', full_name='ubuntuone.storageprotocol.PutContent.node', index=1,
1072 number=2, type=12, cpp_type=9, label=1,
1073 default_value="",
1074 message_type=None, enum_type=None, containing_type=None,
1075 is_extension=False, extension_scope=None,
1076 options=None),
1077 descriptor.FieldDescriptor(
1078 name='previous_hash', full_name='ubuntuone.storageprotocol.PutContent.previous_hash', index=2,
1079 number=3, type=12, cpp_type=9, label=1,
1080 default_value="",
1081 message_type=None, enum_type=None, containing_type=None,
1082 is_extension=False, extension_scope=None,
1083 options=None),
1084 descriptor.FieldDescriptor(
1085 name='hash', full_name='ubuntuone.storageprotocol.PutContent.hash', index=3,
1086 number=4, type=12, cpp_type=9, label=1,
1087 default_value="",
1088 message_type=None, enum_type=None, containing_type=None,
1089 is_extension=False, extension_scope=None,
1090 options=None),
1091 descriptor.FieldDescriptor(
1092 name='crc32', full_name='ubuntuone.storageprotocol.PutContent.crc32', index=4,
1093 number=5, type=13, cpp_type=3, label=1,
1094 default_value=0,
1095 message_type=None, enum_type=None, containing_type=None,
1096 is_extension=False, extension_scope=None,
1097 options=None),
1098 descriptor.FieldDescriptor(
1099 name='size', full_name='ubuntuone.storageprotocol.PutContent.size', index=5,
1100 number=6, type=4, cpp_type=4, label=1,
1101 default_value=0,
1102 message_type=None, enum_type=None, containing_type=None,
1103 is_extension=False, extension_scope=None,
1104 options=None),
1105 descriptor.FieldDescriptor(
1106 name='deflated_size', full_name='ubuntuone.storageprotocol.PutContent.deflated_size', index=6,
1107 number=7, type=4, cpp_type=4, label=1,
1108 default_value=0,
1109 message_type=None, enum_type=None, containing_type=None,
1110 is_extension=False, extension_scope=None,
1111 options=None),
1112 ],
1113 extensions=[
1114 ],
1115 nested_types=[], # TODO(robinson): Implement.
1116 enum_types=[
1117 ],
1118 options=None)
1119
1120
1121_BEGINCONTENT = descriptor.Descriptor(
1122 name='BeginContent',
1123 full_name='ubuntuone.storageprotocol.BeginContent',
1124 filename='ubuntuone/storageprotocol/protocol.proto',
1125 containing_type=None,
1126 fields=[
1127 descriptor.FieldDescriptor(
1128 name='offset', full_name='ubuntuone.storageprotocol.BeginContent.offset', index=0,
1129 number=2, type=4, cpp_type=4, label=1,
1130 default_value=0,
1131 message_type=None, enum_type=None, containing_type=None,
1132 is_extension=False, extension_scope=None,
1133 options=None),
1134 ],
1135 extensions=[
1136 ],
1137 nested_types=[], # TODO(robinson): Implement.
1138 enum_types=[
1139 ],
1140 options=None)
1141
1142
1143_UPLOADINPROGRESS = descriptor.Descriptor(
1144 name='UploadInProgress',
1145 full_name='ubuntuone.storageprotocol.UploadInProgress',
1146 filename='ubuntuone/storageprotocol/protocol.proto',
1147 containing_type=None,
1148 fields=[
1149 descriptor.FieldDescriptor(
1150 name='upload', full_name='ubuntuone.storageprotocol.UploadInProgress.upload', index=0,
1151 number=1, type=12, cpp_type=9, label=1,
1152 default_value="",
1153 message_type=None, enum_type=None, containing_type=None,
1154 is_extension=False, extension_scope=None,
1155 options=None),
1156 descriptor.FieldDescriptor(
1157 name='timestamp', full_name='ubuntuone.storageprotocol.UploadInProgress.timestamp', index=1,
1158 number=2, type=5, cpp_type=1, label=1,
1159 default_value=0,
1160 message_type=None, enum_type=None, containing_type=None,
1161 is_extension=False, extension_scope=None,
1162 options=None),
1163 ],
1164 extensions=[
1165 ],
1166 nested_types=[], # TODO(robinson): Implement.
1167 enum_types=[
1168 ],
1169 options=None)
1170
1171
1172_MOVE = descriptor.Descriptor(
1173 name='Move',
1174 full_name='ubuntuone.storageprotocol.Move',
1175 filename='ubuntuone/storageprotocol/protocol.proto',
1176 containing_type=None,
1177 fields=[
1178 descriptor.FieldDescriptor(
1179 name='share', full_name='ubuntuone.storageprotocol.Move.share', index=0,
1180 number=1, type=12, cpp_type=9, label=1,
1181 default_value="",
1182 message_type=None, enum_type=None, containing_type=None,
1183 is_extension=False, extension_scope=None,
1184 options=None),
1185 descriptor.FieldDescriptor(
1186 name='node', full_name='ubuntuone.storageprotocol.Move.node', index=1,
1187 number=2, type=12, cpp_type=9, label=1,
1188 default_value="",
1189 message_type=None, enum_type=None, containing_type=None,
1190 is_extension=False, extension_scope=None,
1191 options=None),
1192 descriptor.FieldDescriptor(
1193 name='new_parent_node', full_name='ubuntuone.storageprotocol.Move.new_parent_node', index=2,
1194 number=3, type=12, cpp_type=9, label=1,
1195 default_value="",
1196 message_type=None, enum_type=None, containing_type=None,
1197 is_extension=False, extension_scope=None,
1198 options=None),
1199 descriptor.FieldDescriptor(
1200 name='new_name', full_name='ubuntuone.storageprotocol.Move.new_name', index=3,
1201 number=4, type=9, cpp_type=9, label=1,
1202 default_value=unicode("", "utf-8"),
1203 message_type=None, enum_type=None, containing_type=None,
1204 is_extension=False, extension_scope=None,
1205 options=None),
1206 ],
1207 extensions=[
1208 ],
1209 nested_types=[], # TODO(robinson): Implement.
1210 enum_types=[
1211 ],
1212 options=None)
1213
1214
1215_UNLINK = descriptor.Descriptor(
1216 name='Unlink',
1217 full_name='ubuntuone.storageprotocol.Unlink',
1218 filename='ubuntuone/storageprotocol/protocol.proto',
1219 containing_type=None,
1220 fields=[
1221 descriptor.FieldDescriptor(
1222 name='share', full_name='ubuntuone.storageprotocol.Unlink.share', index=0,
1223 number=1, type=12, cpp_type=9, label=1,
1224 default_value="",
1225 message_type=None, enum_type=None, containing_type=None,
1226 is_extension=False, extension_scope=None,
1227 options=None),
1228 descriptor.FieldDescriptor(
1229 name='node', full_name='ubuntuone.storageprotocol.Unlink.node', index=1,
1230 number=2, type=12, cpp_type=9, label=1,
1231 default_value="",
1232 message_type=None, enum_type=None, containing_type=None,
1233 is_extension=False, extension_scope=None,
1234 options=None),
1235 ],
1236 extensions=[
1237 ],
1238 nested_types=[], # TODO(robinson): Implement.
1239 enum_types=[
1240 ],
1241 options=None)
1242
1243
1244_CREATESHARE = descriptor.Descriptor(
1245 name='CreateShare',
1246 full_name='ubuntuone.storageprotocol.CreateShare',
1247 filename='ubuntuone/storageprotocol/protocol.proto',
1248 containing_type=None,
1249 fields=[
1250 descriptor.FieldDescriptor(
1251 name='node', full_name='ubuntuone.storageprotocol.CreateShare.node', index=0,
1252 number=1, type=12, cpp_type=9, label=1,
1253 default_value="",
1254 message_type=None, enum_type=None, containing_type=None,
1255 is_extension=False, extension_scope=None,
1256 options=None),
1257 descriptor.FieldDescriptor(
1258 name='share_to', full_name='ubuntuone.storageprotocol.CreateShare.share_to', index=1,
1259 number=2, type=9, cpp_type=9, label=1,
1260 default_value=unicode("", "utf-8"),
1261 message_type=None, enum_type=None, containing_type=None,
1262 is_extension=False, extension_scope=None,
1263 options=None),
1264 descriptor.FieldDescriptor(
1265 name='name', full_name='ubuntuone.storageprotocol.CreateShare.name', index=2,
1266 number=3, type=9, cpp_type=9, label=1,
1267 default_value=unicode("", "utf-8"),
1268 message_type=None, enum_type=None, containing_type=None,
1269 is_extension=False, extension_scope=None,
1270 options=None),
1271 descriptor.FieldDescriptor(
1272 name='access_level', full_name='ubuntuone.storageprotocol.CreateShare.access_level', index=3,
1273 number=4, type=14, cpp_type=8, label=1,
1274 default_value=0,
1275 message_type=None, enum_type=None, containing_type=None,
1276 is_extension=False, extension_scope=None,
1277 options=None),
1278 ],
1279 extensions=[
1280 ],
1281 nested_types=[], # TODO(robinson): Implement.
1282 enum_types=[
1283 _CREATESHARE_ACCESSLEVEL,
1284 ],
1285 options=None)
1286
1287
1288_SHARES = descriptor.Descriptor(
1289 name='Shares',
1290 full_name='ubuntuone.storageprotocol.Shares',
1291 filename='ubuntuone/storageprotocol/protocol.proto',
1292 containing_type=None,
1293 fields=[
1294 descriptor.FieldDescriptor(
1295 name='share_id', full_name='ubuntuone.storageprotocol.Shares.share_id', index=0,
1296 number=1, type=12, cpp_type=9, label=1,
1297 default_value="",
1298 message_type=None, enum_type=None, containing_type=None,
1299 is_extension=False, extension_scope=None,
1300 options=None),
1301 descriptor.FieldDescriptor(
1302 name='direction', full_name='ubuntuone.storageprotocol.Shares.direction', index=1,
1303 number=2, type=14, cpp_type=8, label=1,
1304 default_value=0,
1305 message_type=None, enum_type=None, containing_type=None,
1306 is_extension=False, extension_scope=None,
1307 options=None),
1308 descriptor.FieldDescriptor(
1309 name='subtree', full_name='ubuntuone.storageprotocol.Shares.subtree', index=2,
1310 number=3, type=12, cpp_type=9, label=1,
1311 default_value="",
1312 message_type=None, enum_type=None, containing_type=None,
1313 is_extension=False, extension_scope=None,
1314 options=None),
1315 descriptor.FieldDescriptor(
1316 name='share_name', full_name='ubuntuone.storageprotocol.Shares.share_name', index=3,
1317 number=4, type=9, cpp_type=9, label=1,
1318 default_value=unicode("", "utf-8"),
1319 message_type=None, enum_type=None, containing_type=None,
1320 is_extension=False, extension_scope=None,
1321 options=None),
1322 descriptor.FieldDescriptor(
1323 name='other_username', full_name='ubuntuone.storageprotocol.Shares.other_username', index=4,
1324 number=5, type=9, cpp_type=9, label=1,
1325 default_value=unicode("", "utf-8"),
1326 message_type=None, enum_type=None, containing_type=None,
1327 is_extension=False, extension_scope=None,
1328 options=None),
1329 descriptor.FieldDescriptor(
1330 name='other_visible_name', full_name='ubuntuone.storageprotocol.Shares.other_visible_name', index=5,
1331 number=6, type=9, cpp_type=9, label=1,
1332 default_value=unicode("", "utf-8"),
1333 message_type=None, enum_type=None, containing_type=None,
1334 is_extension=False, extension_scope=None,
1335 options=None),
1336 descriptor.FieldDescriptor(
1337 name='accepted', full_name='ubuntuone.storageprotocol.Shares.accepted', index=6,
1338 number=7, type=8, cpp_type=7, label=1,
1339 default_value=False,
1340 message_type=None, enum_type=None, containing_type=None,
1341 is_extension=False, extension_scope=None,
1342 options=None),
1343 descriptor.FieldDescriptor(
1344 name='access_level', full_name='ubuntuone.storageprotocol.Shares.access_level', index=7,
1345 number=8, type=14, cpp_type=8, label=1,
1346 default_value=0,
1347 message_type=None, enum_type=None, containing_type=None,
1348 is_extension=False, extension_scope=None,
1349 options=None),
1350 ],
1351 extensions=[
1352 ],
1353 nested_types=[], # TODO(robinson): Implement.
1354 enum_types=[
1355 _SHARES_DIRECTION,
1356 _SHARES_ACCESSLEVEL,
1357 ],
1358 options=None)
1359
1360
1361_NOTIFYSHARE = descriptor.Descriptor(
1362 name='NotifyShare',
1363 full_name='ubuntuone.storageprotocol.NotifyShare',
1364 filename='ubuntuone/storageprotocol/protocol.proto',
1365 containing_type=None,
1366 fields=[
1367 descriptor.FieldDescriptor(
1368 name='share_id', full_name='ubuntuone.storageprotocol.NotifyShare.share_id', index=0,
1369 number=1, type=9, cpp_type=9, label=1,
1370 default_value=unicode("", "utf-8"),
1371 message_type=None, enum_type=None, containing_type=None,
1372 is_extension=False, extension_scope=None,
1373 options=None),
1374 descriptor.FieldDescriptor(
1375 name='subtree', full_name='ubuntuone.storageprotocol.NotifyShare.subtree', index=1,
1376 number=2, type=9, cpp_type=9, label=1,
1377 default_value=unicode("", "utf-8"),
1378 message_type=None, enum_type=None, containing_type=None,
1379 is_extension=False, extension_scope=None,
1380 options=None),
1381 descriptor.FieldDescriptor(
1382 name='share_name', full_name='ubuntuone.storageprotocol.NotifyShare.share_name', index=2,
1383 number=3, type=9, cpp_type=9, label=1,
1384 default_value=unicode("", "utf-8"),
1385 message_type=None, enum_type=None, containing_type=None,
1386 is_extension=False, extension_scope=None,
1387 options=None),
1388 descriptor.FieldDescriptor(
1389 name='from_username', full_name='ubuntuone.storageprotocol.NotifyShare.from_username', index=3,
1390 number=4, type=9, cpp_type=9, label=1,
1391 default_value=unicode("", "utf-8"),
1392 message_type=None, enum_type=None, containing_type=None,
1393 is_extension=False, extension_scope=None,
1394 options=None),
1395 descriptor.FieldDescriptor(
1396 name='from_visible_name', full_name='ubuntuone.storageprotocol.NotifyShare.from_visible_name', index=4,
1397 number=5, type=9, cpp_type=9, label=1,
1398 default_value=unicode("", "utf-8"),
1399 message_type=None, enum_type=None, containing_type=None,
1400 is_extension=False, extension_scope=None,
1401 options=None),
1402 descriptor.FieldDescriptor(
1403 name='access_level', full_name='ubuntuone.storageprotocol.NotifyShare.access_level', index=5,
1404 number=6, type=14, cpp_type=8, label=1,
1405 default_value=0,
1406 message_type=None, enum_type=None, containing_type=None,
1407 is_extension=False, extension_scope=None,
1408 options=None),
1409 ],
1410 extensions=[
1411 ],
1412 nested_types=[], # TODO(robinson): Implement.
1413 enum_types=[
1414 _NOTIFYSHARE_ACCESSLEVEL,
1415 ],
1416 options=None)
1417
1418
1419_SHAREACCEPTED = descriptor.Descriptor(
1420 name='ShareAccepted',
1421 full_name='ubuntuone.storageprotocol.ShareAccepted',
1422 filename='ubuntuone/storageprotocol/protocol.proto',
1423 containing_type=None,
1424 fields=[
1425 descriptor.FieldDescriptor(
1426 name='share_id', full_name='ubuntuone.storageprotocol.ShareAccepted.share_id', index=0,
1427 number=1, type=9, cpp_type=9, label=1,
1428 default_value=unicode("", "utf-8"),
1429 message_type=None, enum_type=None, containing_type=None,
1430 is_extension=False, extension_scope=None,
1431 options=None),
1432 descriptor.FieldDescriptor(
1433 name='answer', full_name='ubuntuone.storageprotocol.ShareAccepted.answer', index=1,
1434 number=2, type=14, cpp_type=8, label=1,
1435 default_value=0,
1436 message_type=None, enum_type=None, containing_type=None,
1437 is_extension=False, extension_scope=None,
1438 options=None),
1439 ],
1440 extensions=[
1441 ],
1442 nested_types=[], # TODO(robinson): Implement.
1443 enum_types=[
1444 _SHAREACCEPTED_ANSWER,
1445 ],
1446 options=None)
1447
1448
1449_SHAREDELETED = descriptor.Descriptor(
1450 name='ShareDeleted',
1451 full_name='ubuntuone.storageprotocol.ShareDeleted',
1452 filename='ubuntuone/storageprotocol/protocol.proto',
1453 containing_type=None,
1454 fields=[
1455 descriptor.FieldDescriptor(
1456 name='share_id', full_name='ubuntuone.storageprotocol.ShareDeleted.share_id', index=0,
1457 number=1, type=9, cpp_type=9, label=1,
1458 default_value=unicode("", "utf-8"),
1459 message_type=None, enum_type=None, containing_type=None,
1460 is_extension=False, extension_scope=None,
1461 options=None),
1462 ],
1463 extensions=[
1464 ],
1465 nested_types=[], # TODO(robinson): Implement.
1466 enum_types=[
1467 ],
1468 options=None)
1469
1470
1471_SHARECREATED = descriptor.Descriptor(
1472 name='ShareCreated',
1473 full_name='ubuntuone.storageprotocol.ShareCreated',
1474 filename='ubuntuone/storageprotocol/protocol.proto',
1475 containing_type=None,
1476 fields=[
1477 descriptor.FieldDescriptor(
1478 name='share_id', full_name='ubuntuone.storageprotocol.ShareCreated.share_id', index=0,
1479 number=1, type=9, cpp_type=9, label=1,
1480 default_value=unicode("", "utf-8"),
1481 message_type=None, enum_type=None, containing_type=None,
1482 is_extension=False, extension_scope=None,
1483 options=None),
1484 ],
1485 extensions=[
1486 ],
1487 nested_types=[], # TODO(robinson): Implement.
1488 enum_types=[
1489 ],
1490 options=None)
1491
1492
1493_DELETESHARE = descriptor.Descriptor(
1494 name='DeleteShare',
1495 full_name='ubuntuone.storageprotocol.DeleteShare',
1496 filename='ubuntuone/storageprotocol/protocol.proto',
1497 containing_type=None,
1498 fields=[
1499 descriptor.FieldDescriptor(
1500 name='share_id', full_name='ubuntuone.storageprotocol.DeleteShare.share_id', index=0,
1501 number=1, type=9, cpp_type=9, label=1,
1502 default_value=unicode("", "utf-8"),
1503 message_type=None, enum_type=None, containing_type=None,
1504 is_extension=False, extension_scope=None,
1505 options=None),
1506 ],
1507 extensions=[
1508 ],
1509 nested_types=[], # TODO(robinson): Implement.
1510 enum_types=[
1511 ],
1512 options=None)
1513
1514
1515_CREATEUDF = descriptor.Descriptor(
1516 name='CreateUDF',
1517 full_name='ubuntuone.storageprotocol.CreateUDF',
1518 filename='ubuntuone/storageprotocol/protocol.proto',
1519 containing_type=None,
1520 fields=[
1521 descriptor.FieldDescriptor(
1522 name='path', full_name='ubuntuone.storageprotocol.CreateUDF.path', index=0,
1523 number=1, type=9, cpp_type=9, label=1,
1524 default_value=unicode("", "utf-8"),
1525 message_type=None, enum_type=None, containing_type=None,
1526 is_extension=False, extension_scope=None,
1527 options=None),
1528 descriptor.FieldDescriptor(
1529 name='name', full_name='ubuntuone.storageprotocol.CreateUDF.name', index=1,
1530 number=2, type=9, cpp_type=9, label=1,
1531 default_value=unicode("", "utf-8"),
1532 message_type=None, enum_type=None, containing_type=None,
1533 is_extension=False, extension_scope=None,
1534 options=None),
1535 ],
1536 extensions=[
1537 ],
1538 nested_types=[], # TODO(robinson): Implement.
1539 enum_types=[
1540 ],
1541 options=None)
1542
1543
1544_UDFS = descriptor.Descriptor(
1545 name='UDFs',
1546 full_name='ubuntuone.storageprotocol.UDFs',
1547 filename='ubuntuone/storageprotocol/protocol.proto',
1548 containing_type=None,
1549 fields=[
1550 descriptor.FieldDescriptor(
1551 name='volume', full_name='ubuntuone.storageprotocol.UDFs.volume', index=0,
1552 number=1, type=12, cpp_type=9, label=1,
1553 default_value="",
1554 message_type=None, enum_type=None, containing_type=None,
1555 is_extension=False, extension_scope=None,
1556 options=None),
1557 descriptor.FieldDescriptor(
1558 name='node', full_name='ubuntuone.storageprotocol.UDFs.node', index=1,
1559 number=2, type=12, cpp_type=9, label=1,
1560 default_value="",
1561 message_type=None, enum_type=None, containing_type=None,
1562 is_extension=False, extension_scope=None,
1563 options=None),
1564 descriptor.FieldDescriptor(
1565 name='suggested_path', full_name='ubuntuone.storageprotocol.UDFs.suggested_path', index=2,
1566 number=3, type=9, cpp_type=9, label=1,
1567 default_value=unicode("", "utf-8"),
1568 message_type=None, enum_type=None, containing_type=None,
1569 is_extension=False, extension_scope=None,
1570 options=None),
1571 ],
1572 extensions=[
1573 ],
1574 nested_types=[], # TODO(robinson): Implement.
1575 enum_types=[
1576 ],
1577 options=None)
1578
1579
1580_VOLUMEDELETED = descriptor.Descriptor(
1581 name='VolumeDeleted',
1582 full_name='ubuntuone.storageprotocol.VolumeDeleted',
1583 filename='ubuntuone/storageprotocol/protocol.proto',
1584 containing_type=None,
1585 fields=[
1586 descriptor.FieldDescriptor(
1587 name='volume', full_name='ubuntuone.storageprotocol.VolumeDeleted.volume', index=0,
1588 number=1, type=12, cpp_type=9, label=1,
1589 default_value="",
1590 message_type=None, enum_type=None, containing_type=None,
1591 is_extension=False, extension_scope=None,
1592 options=None),
1593 ],
1594 extensions=[
1595 ],
1596 nested_types=[], # TODO(robinson): Implement.
1597 enum_types=[
1598 ],
1599 options=None)
1600
1601
1602_DELETEVOLUME = descriptor.Descriptor(
1603 name='DeleteVolume',
1604 full_name='ubuntuone.storageprotocol.DeleteVolume',
1605 filename='ubuntuone/storageprotocol/protocol.proto',
1606 containing_type=None,
1607 fields=[
1608 descriptor.FieldDescriptor(
1609 name='volume', full_name='ubuntuone.storageprotocol.DeleteVolume.volume', index=0,
1610 number=1, type=12, cpp_type=9, label=1,
1611 default_value="",
1612 message_type=None, enum_type=None, containing_type=None,
1613 is_extension=False, extension_scope=None,
1614 options=None),
1615 ],
1616 extensions=[
1617 ],
1618 nested_types=[], # TODO(robinson): Implement.
1619 enum_types=[
1620 ],
1621 options=None)
1622
1623
1624_VOLUMES = descriptor.Descriptor(
1625 name='Volumes',
1626 full_name='ubuntuone.storageprotocol.Volumes',
1627 filename='ubuntuone/storageprotocol/protocol.proto',
1628 containing_type=None,
1629 fields=[
1630 descriptor.FieldDescriptor(
1631 name='type', full_name='ubuntuone.storageprotocol.Volumes.type', index=0,
1632 number=1, type=14, cpp_type=8, label=1,
1633 default_value=1,
1634 message_type=None, enum_type=None, containing_type=None,
1635 is_extension=False, extension_scope=None,
1636 options=None),
1637 descriptor.FieldDescriptor(
1638 name='root', full_name='ubuntuone.storageprotocol.Volumes.root', index=1,
1639 number=3, type=11, cpp_type=10, label=1,
1640 default_value=None,
1641 message_type=None, enum_type=None, containing_type=None,
1642 is_extension=False, extension_scope=None,
1643 options=None),
1644 descriptor.FieldDescriptor(
1645 name='udf', full_name='ubuntuone.storageprotocol.Volumes.udf', index=2,
1646 number=4, type=11, cpp_type=10, label=1,
1647 default_value=None,
1648 message_type=None, enum_type=None, containing_type=None,
1649 is_extension=False, extension_scope=None,
1650 options=None),
1651 descriptor.FieldDescriptor(
1652 name='share', full_name='ubuntuone.storageprotocol.Volumes.share', index=3,
1653 number=5, type=11, cpp_type=10, label=1,
1654 default_value=None,
1655 message_type=None, enum_type=None, containing_type=None,
1656 is_extension=False, extension_scope=None,
1657 options=None),
1658 ],
1659 extensions=[
1660 ],
1661 nested_types=[], # TODO(robinson): Implement.
1662 enum_types=[
1663 _VOLUMES_VOLUMETYPE,
1664 ],
1665 options=None)
1666
1667
1668_QUERYCAPS = descriptor.Descriptor(
1669 name='QueryCaps',
1670 full_name='ubuntuone.storageprotocol.QueryCaps',
1671 filename='ubuntuone/storageprotocol/protocol.proto',
1672 containing_type=None,
1673 fields=[
1674 descriptor.FieldDescriptor(
1675 name='capability', full_name='ubuntuone.storageprotocol.QueryCaps.capability', index=0,
1676 number=1, type=9, cpp_type=9, label=1,
1677 default_value=unicode("", "utf-8"),
1678 message_type=None, enum_type=None, containing_type=None,
1679 is_extension=False, extension_scope=None,
1680 options=None),
1681 ],
1682 extensions=[
1683 ],
1684 nested_types=[], # TODO(robinson): Implement.
1685 enum_types=[
1686 ],
1687 options=None)
1688
1689
1690_SETCAPS = descriptor.Descriptor(
1691 name='SetCaps',
1692 full_name='ubuntuone.storageprotocol.SetCaps',
1693 filename='ubuntuone/storageprotocol/protocol.proto',
1694 containing_type=None,
1695 fields=[
1696 descriptor.FieldDescriptor(
1697 name='capability', full_name='ubuntuone.storageprotocol.SetCaps.capability', index=0,
1698 number=1, type=9, cpp_type=9, label=1,
1699 default_value=unicode("", "utf-8"),
1700 message_type=None, enum_type=None, containing_type=None,
1701 is_extension=False, extension_scope=None,
1702 options=None),
1703 ],
1704 extensions=[
1705 ],
1706 nested_types=[], # TODO(robinson): Implement.
1707 enum_types=[
1708 ],
1709 options=None)
1710
1711
1712_ACCEPTCAPS = descriptor.Descriptor(
1713 name='AcceptCaps',
1714 full_name='ubuntuone.storageprotocol.AcceptCaps',
1715 filename='ubuntuone/storageprotocol/protocol.proto',
1716 containing_type=None,
1717 fields=[
1718 descriptor.FieldDescriptor(
1719 name='accepted', full_name='ubuntuone.storageprotocol.AcceptCaps.accepted', index=0,
1720 number=1, type=8, cpp_type=7, label=1,
1721 default_value=False,
1722 message_type=None, enum_type=None, containing_type=None,
1723 is_extension=False, extension_scope=None,
1724 options=None),
1725 descriptor.FieldDescriptor(
1726 name='redirect_hostname', full_name='ubuntuone.storageprotocol.AcceptCaps.redirect_hostname', index=1,
1727 number=2, type=9, cpp_type=9, label=1,
1728 default_value=unicode("", "utf-8"),
1729 message_type=None, enum_type=None, containing_type=None,
1730 is_extension=False, extension_scope=None,
1731 options=None),
1732 descriptor.FieldDescriptor(
1733 name='redirect_port', full_name='ubuntuone.storageprotocol.AcceptCaps.redirect_port', index=2,
1734 number=3, type=9, cpp_type=9, label=1,
1735 default_value=unicode("", "utf-8"),
1736 message_type=None, enum_type=None, containing_type=None,
1737 is_extension=False, extension_scope=None,
1738 options=None),
1739 descriptor.FieldDescriptor(
1740 name='redirect_srvrecord', full_name='ubuntuone.storageprotocol.AcceptCaps.redirect_srvrecord', index=3,
1741 number=4, type=9, cpp_type=9, label=1,
1742 default_value=unicode("", "utf-8"),
1743 message_type=None, enum_type=None, containing_type=None,
1744 is_extension=False, extension_scope=None,
1745 options=None),
1746 ],
1747 extensions=[
1748 ],
1749 nested_types=[], # TODO(robinson): Implement.
1750 enum_types=[
1751 ],
1752 options=None)
1753
1754
1755_FREESPACEINFO = descriptor.Descriptor(
1756 name='FreeSpaceInfo',
1757 full_name='ubuntuone.storageprotocol.FreeSpaceInfo',
1758 filename='ubuntuone/storageprotocol/protocol.proto',
1759 containing_type=None,
1760 fields=[
1761 descriptor.FieldDescriptor(
1762 name='share_id', full_name='ubuntuone.storageprotocol.FreeSpaceInfo.share_id', index=0,
1763 number=1, type=9, cpp_type=9, label=1,
1764 default_value=unicode("", "utf-8"),
1765 message_type=None, enum_type=None, containing_type=None,
1766 is_extension=False, extension_scope=None,
1767 options=None),
1768 descriptor.FieldDescriptor(
1769 name='free_bytes', full_name='ubuntuone.storageprotocol.FreeSpaceInfo.free_bytes', index=1,
1770 number=2, type=4, cpp_type=4, label=1,
1771 default_value=0,
1772 message_type=None, enum_type=None, containing_type=None,
1773 is_extension=False, extension_scope=None,
1774 options=None),
1775 ],
1776 extensions=[
1777 ],
1778 nested_types=[], # TODO(robinson): Implement.
1779 enum_types=[
1780 ],
1781 options=None)
1782
1783
1784_FREESPACEINQUIRY = descriptor.Descriptor(
1785 name='FreeSpaceInquiry',
1786 full_name='ubuntuone.storageprotocol.FreeSpaceInquiry',
1787 filename='ubuntuone/storageprotocol/protocol.proto',
1788 containing_type=None,
1789 fields=[
1790 descriptor.FieldDescriptor(
1791 name='share_id', full_name='ubuntuone.storageprotocol.FreeSpaceInquiry.share_id', index=0,
1792 number=1, type=9, cpp_type=9, label=1,
1793 default_value=unicode("", "utf-8"),
1794 message_type=None, enum_type=None, containing_type=None,
1795 is_extension=False, extension_scope=None,
1796 options=None),
1797 ],
1798 extensions=[
1799 ],
1800 nested_types=[], # TODO(robinson): Implement.
1801 enum_types=[
1802 ],
1803 options=None)
1804
1805
1806_ACCOUNTINFO = descriptor.Descriptor(
1807 name='AccountInfo',
1808 full_name='ubuntuone.storageprotocol.AccountInfo',
1809 filename='ubuntuone/storageprotocol/protocol.proto',
1810 containing_type=None,
1811 fields=[
1812 descriptor.FieldDescriptor(
1813 name='purchased_bytes', full_name='ubuntuone.storageprotocol.AccountInfo.purchased_bytes', index=0,
1814 number=1, type=4, cpp_type=4, label=1,
1815 default_value=0,
1816 message_type=None, enum_type=None, containing_type=None,
1817 is_extension=False, extension_scope=None,
1818 options=None),
1819 ],
1820 extensions=[
1821 ],
1822 nested_types=[], # TODO(robinson): Implement.
1823 enum_types=[
1824 ],
1825 options=None)
1826
1827
1828_MESSAGE.fields_by_name['type'].enum_type = _MESSAGE_MESSAGETYPE
1829_MESSAGE.fields_by_name['error'].message_type = _ERROR
1830_MESSAGE.fields_by_name['protocol'].message_type = _PROTOCOL
1831_MESSAGE.fields_by_name['auth_parameters'].message_type = _AUTHPARAMETER
1832_MESSAGE.fields_by_name['root'].message_type = _ROOT
1833_MESSAGE.fields_by_name['query'].message_type = _QUERY
1834_MESSAGE.fields_by_name['node_state'].message_type = _NODESTATE
1835_MESSAGE.fields_by_name['make'].message_type = _MAKE
1836_MESSAGE.fields_by_name['new'].message_type = _NEW
1837_MESSAGE.fields_by_name['move'].message_type = _MOVE
1838_MESSAGE.fields_by_name['get_content'].message_type = _GETCONTENT
1839_MESSAGE.fields_by_name['put_content'].message_type = _PUTCONTENT
1840_MESSAGE.fields_by_name['upload_in_progress'].message_type = _UPLOADINPROGRESS
1841_MESSAGE.fields_by_name['bytes'].message_type = _BYTES
1842_MESSAGE.fields_by_name['unlink'].message_type = _UNLINK
1843_MESSAGE.fields_by_name['cancel_request'].message_type = _CANCELREQUEST
1844_MESSAGE.fields_by_name['node_attr'].message_type = _NODEATTR
1845_MESSAGE.fields_by_name['create_share'].message_type = _CREATESHARE
1846_MESSAGE.fields_by_name['shares'].message_type = _SHARES
1847_MESSAGE.fields_by_name['notify_share'].message_type = _NOTIFYSHARE
1848_MESSAGE.fields_by_name['share_accepted'].message_type = _SHAREACCEPTED
1849_MESSAGE.fields_by_name['share_deleted'].message_type = _SHAREDELETED
1850_MESSAGE.fields_by_name['share_created'].message_type = _SHARECREATED
1851_MESSAGE.fields_by_name['delete_share'].message_type = _DELETESHARE
1852_MESSAGE.fields_by_name['create_udf'].message_type = _CREATEUDF
1853_MESSAGE.fields_by_name['list_volumes'].message_type = _VOLUMES
1854_MESSAGE.fields_by_name['volume_deleted'].message_type = _VOLUMEDELETED
1855_MESSAGE.fields_by_name['volume_created'].message_type = _VOLUMES
1856_MESSAGE.fields_by_name['delete_volume'].message_type = _DELETEVOLUME
1857_MESSAGE.fields_by_name['query_caps'].message_type = _QUERYCAPS
1858_MESSAGE.fields_by_name['set_caps'].message_type = _SETCAPS
1859_MESSAGE.fields_by_name['accept_caps'].message_type = _ACCEPTCAPS
1860_MESSAGE.fields_by_name['free_space_info'].message_type = _FREESPACEINFO
1861_MESSAGE.fields_by_name['free_space_inquiry'].message_type = _FREESPACEINQUIRY
1862_MESSAGE.fields_by_name['account_info'].message_type = _ACCOUNTINFO
1863_MESSAGE.fields_by_name['begin_content'].message_type = _BEGINCONTENT
1864_ERROR.fields_by_name['type'].enum_type = _ERROR_ERRORTYPE
1865_CREATESHARE.fields_by_name['access_level'].enum_type = _CREATESHARE_ACCESSLEVEL
1866_SHARES.fields_by_name['direction'].enum_type = _SHARES_DIRECTION
1867_SHARES.fields_by_name['access_level'].enum_type = _SHARES_ACCESSLEVEL
1868_NOTIFYSHARE.fields_by_name['access_level'].enum_type = _NOTIFYSHARE_ACCESSLEVEL
1869_SHAREACCEPTED.fields_by_name['answer'].enum_type = _SHAREACCEPTED_ANSWER
1870_VOLUMES.fields_by_name['type'].enum_type = _VOLUMES_VOLUMETYPE
1871_VOLUMES.fields_by_name['root'].message_type = _ROOT
1872_VOLUMES.fields_by_name['udf'].message_type = _UDFS
1873_VOLUMES.fields_by_name['share'].message_type = _SHARES
1874
1875class Message(message.Message):
1876 __metaclass__ = reflection.GeneratedProtocolMessageType
1877 DESCRIPTOR = _MESSAGE
1878
1879class Error(message.Message):
1880 __metaclass__ = reflection.GeneratedProtocolMessageType
1881 DESCRIPTOR = _ERROR
1882
1883class Protocol(message.Message):
1884 __metaclass__ = reflection.GeneratedProtocolMessageType
1885 DESCRIPTOR = _PROTOCOL
1886
1887class AuthParameter(message.Message):
1888 __metaclass__ = reflection.GeneratedProtocolMessageType
1889 DESCRIPTOR = _AUTHPARAMETER
1890
1891class Make(message.Message):
1892 __metaclass__ = reflection.GeneratedProtocolMessageType
1893 DESCRIPTOR = _MAKE
1894
1895class New(message.Message):
1896 __metaclass__ = reflection.GeneratedProtocolMessageType
1897 DESCRIPTOR = _NEW
1898
1899class Root(message.Message):
1900 __metaclass__ = reflection.GeneratedProtocolMessageType
1901 DESCRIPTOR = _ROOT
1902
1903class Query(message.Message):
1904 __metaclass__ = reflection.GeneratedProtocolMessageType
1905 DESCRIPTOR = _QUERY
1906
1907class NodeState(message.Message):
1908 __metaclass__ = reflection.GeneratedProtocolMessageType
1909 DESCRIPTOR = _NODESTATE
1910
1911class GetContent(message.Message):
1912 __metaclass__ = reflection.GeneratedProtocolMessageType
1913 DESCRIPTOR = _GETCONTENT
1914
1915class CancelRequest(message.Message):
1916 __metaclass__ = reflection.GeneratedProtocolMessageType
1917 DESCRIPTOR = _CANCELREQUEST
1918
1919class NodeAttr(message.Message):
1920 __metaclass__ = reflection.GeneratedProtocolMessageType
1921 DESCRIPTOR = _NODEATTR
1922
1923class Bytes(message.Message):
1924 __metaclass__ = reflection.GeneratedProtocolMessageType
1925 DESCRIPTOR = _BYTES
1926
1927class PutContent(message.Message):
1928 __metaclass__ = reflection.GeneratedProtocolMessageType
1929 DESCRIPTOR = _PUTCONTENT
1930
1931class BeginContent(message.Message):
1932 __metaclass__ = reflection.GeneratedProtocolMessageType
1933 DESCRIPTOR = _BEGINCONTENT
1934
1935class UploadInProgress(message.Message):
1936 __metaclass__ = reflection.GeneratedProtocolMessageType
1937 DESCRIPTOR = _UPLOADINPROGRESS
1938
1939class Move(message.Message):
1940 __metaclass__ = reflection.GeneratedProtocolMessageType
1941 DESCRIPTOR = _MOVE
1942
1943class Unlink(message.Message):
1944 __metaclass__ = reflection.GeneratedProtocolMessageType
1945 DESCRIPTOR = _UNLINK
1946
1947class CreateShare(message.Message):
1948 __metaclass__ = reflection.GeneratedProtocolMessageType
1949 DESCRIPTOR = _CREATESHARE
1950
1951class Shares(message.Message):
1952 __metaclass__ = reflection.GeneratedProtocolMessageType
1953 DESCRIPTOR = _SHARES
1954
1955class NotifyShare(message.Message):
1956 __metaclass__ = reflection.GeneratedProtocolMessageType
1957 DESCRIPTOR = _NOTIFYSHARE
1958
1959class ShareAccepted(message.Message):
1960 __metaclass__ = reflection.GeneratedProtocolMessageType
1961 DESCRIPTOR = _SHAREACCEPTED
1962
1963class ShareDeleted(message.Message):
1964 __metaclass__ = reflection.GeneratedProtocolMessageType
1965 DESCRIPTOR = _SHAREDELETED
1966
1967class ShareCreated(message.Message):
1968 __metaclass__ = reflection.GeneratedProtocolMessageType
1969 DESCRIPTOR = _SHARECREATED
1970
1971class DeleteShare(message.Message):
1972 __metaclass__ = reflection.GeneratedProtocolMessageType
1973 DESCRIPTOR = _DELETESHARE
1974
1975class CreateUDF(message.Message):
1976 __metaclass__ = reflection.GeneratedProtocolMessageType
1977 DESCRIPTOR = _CREATEUDF
1978
1979class UDFs(message.Message):
1980 __metaclass__ = reflection.GeneratedProtocolMessageType
1981 DESCRIPTOR = _UDFS
1982
1983class VolumeDeleted(message.Message):
1984 __metaclass__ = reflection.GeneratedProtocolMessageType
1985 DESCRIPTOR = _VOLUMEDELETED
1986
1987class DeleteVolume(message.Message):
1988 __metaclass__ = reflection.GeneratedProtocolMessageType
1989 DESCRIPTOR = _DELETEVOLUME
1990
1991class Volumes(message.Message):
1992 __metaclass__ = reflection.GeneratedProtocolMessageType
1993 DESCRIPTOR = _VOLUMES
1994
1995class QueryCaps(message.Message):
1996 __metaclass__ = reflection.GeneratedProtocolMessageType
1997 DESCRIPTOR = _QUERYCAPS
1998
1999class SetCaps(message.Message):
2000 __metaclass__ = reflection.GeneratedProtocolMessageType
2001 DESCRIPTOR = _SETCAPS
2002
2003class AcceptCaps(message.Message):
2004 __metaclass__ = reflection.GeneratedProtocolMessageType
2005 DESCRIPTOR = _ACCEPTCAPS
2006
2007class FreeSpaceInfo(message.Message):
2008 __metaclass__ = reflection.GeneratedProtocolMessageType
2009 DESCRIPTOR = _FREESPACEINFO
2010
2011class FreeSpaceInquiry(message.Message):
2012 __metaclass__ = reflection.GeneratedProtocolMessageType
2013 DESCRIPTOR = _FREESPACEINQUIRY
2014
2015class AccountInfo(message.Message):
2016 __metaclass__ = reflection.GeneratedProtocolMessageType
2017 DESCRIPTOR = _ACCOUNTINFO
2018

Subscribers

People subscribed via source and target branches

to all changes: