Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
Dyex719 committed Oct 31, 2017
2 parents 83089b5 + 4f5b4ba commit 88cb142
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 4 deletions.
2 changes: 1 addition & 1 deletion docs/conf.py
Expand Up @@ -55,7 +55,7 @@

# General information about the project.
project = u'cloudbridge'
copyright = u'2015, GVL and Galaxy Projects'
copyright = u'2017, GVL and Galaxy Projects'
author = u'GVL and Galaxy Projects'

# The version info for the project you're documenting, acts as replacement for
Expand Down
1 change: 1 addition & 0 deletions docs/topics/contributor_guide.rst
Expand Up @@ -8,6 +8,7 @@ CloudBridge Provider.
:maxdepth: 1

Design Goals <design_goals.rst>
Design Decisions <design-decisions.rst>
Testing <testing.rst>
Provider Development Walkthrough <provider_development.rst>
Release Process <release_process.rst>
Expand Down
20 changes: 20 additions & 0 deletions docs/topics/design-decisions.rst
@@ -0,0 +1,20 @@
Design decisions
~~~~~~~~~~~~~~~~

This document captures outcomes and, in some cases, the through process behind
some of the design decisions that took place while architecting CloudBridge.
It is intended as a reference.

- **Require zone parameter when creating a default subnet.**

Placement zone is required because it is an explicit application decision,
even though ideally *default* would not require input. Before requiring it,
the implementations would create a subnet in each availability zone and return
the first one in the list. This could potentially return different values over
time. Another factor influencing the decision was the example of creating a
volume followed by creating an instance with presumably the two needing to be
in the same zone. By requiring the zone across the board, it is less likely to
lead to a miss match. (Related to 63_.)


.. _63: https://github.com/gvlproject/cloudbridge/issues/63
4 changes: 2 additions & 2 deletions docs/topics/design_goals.rst
Expand Up @@ -10,7 +10,7 @@ Design Goals
against each provider to make sure their application is compatible.

3. Opt for a minimum set of features that a cloud provider will support,
instead of a lowest common denominator approach. This means that reasonably
instead of a lowest common denominator approach. This means that reasonably
mature clouds like Amazon and OpenStack are used as the benchmark against
which functionality & features are determined. Therefore, there is a
definite expectation that the cloud infrastructure will support a compute
Expand All @@ -22,4 +22,4 @@ Design Goals
By wrapping the cloud provider's native SDK and doing the minimal work
necessary to adapt the interface, we can achieve greater development speed
and reliability since the native provider SDK is most likely to have both
properties.
properties.
4 changes: 3 additions & 1 deletion test/test_network_service.py
@@ -1,6 +1,7 @@
import test.helpers as helpers

from test.helpers import ProviderTestBase
from test.helpers import get_provider_test_data
from test.helpers import standard_interface_tests as sit

from cloudbridge.cloud.interfaces.resources import FloatingIP
Expand Down Expand Up @@ -177,5 +178,6 @@ def _cleanup(net, subnet, router, gateway):

@helpers.skipIfNoService(['networking.networks'])
def test_default_network(self):
subnet = self.provider.networking.subnets.get_or_create_default()
subnet = self.provider.networking.subnets.get_or_create_default(
zone=get_provider_test_data(self.provider, 'placement'))
self.assertIsInstance(subnet, Subnet)

0 comments on commit 88cb142

Please sign in to comment.