Skip to content

Commit

Permalink
Merge branch 'master' into gce
Browse files Browse the repository at this point in the history
  • Loading branch information
nuwang committed Dec 28, 2018
2 parents fe7d702 + 2214bb8 commit 2fcd798
Show file tree
Hide file tree
Showing 76 changed files with 4,587 additions and 2,618 deletions.
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,12 @@ target/
/venv/

credentials.tar.gz
bootstrap.py
ISB-*
launch.json
settings.json
run_nose.py
*ipynb*

# PyCharm
.idea/
108 changes: 56 additions & 52 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,59 +35,63 @@ matrix:
env: TOX_ENV=pypy-gce
- python: pypy-5.3.1
env: TOX_ENV=pypy-openstack
env:
global:
- PYTHONUNBUFFERED=True
before_install:
- openssl aes-256-cbc -K $encrypted_b3fcf6d0737c_key -iv $encrypted_b3fcf6d0737c_iv
-in credentials.tar.gz.enc -out credentials.tar.gz -d
- |
case "$TRAVIS_EVENT_TYPE" in
push|pull_request)
# Check whether we need to run a test for this provider
DOCS_REGEX='(\.rst$)|(^(docs))/'
FILES_IN_CHANGESET="`git diff --name-only $TRAVIS_COMMIT_RANGE`"
echo "$FILES_IN_CHANGESET" | grep -qvE "$DOCS_REGEX" || {
echo "Only docs were updated. Stopping build process."
exit
}
echo "$FILES_IN_CHANGESET" | grep -qvE "$DOCS_REGEX|(^(cloudbridge/cloud/providers))" || {
echo "Only docs and providers were updated. Checking whether this provider was changed."
# Extract env and provider from $TOXENV into $PYENV and $PROVIDER respectively
IFS=- read PYENV PROVIDER <<< "$TOX_ENV"
echo "$FILES_IN_CHANGESET" | grep -qE "^(cloudbridge/cloud/providers/$PROVIDER)" && {
echo "This provider was affected by this changeset. Running tests."
} || {
echo "This provider was not affected by this changeset. Stopping build process."
exit
}
}
;;
*)
echo "Build triggered through API or CRON job. Running regardless of changes"
;;
esac
- openssl aes-256-cbc -K $encrypted_b3fcf6d0737c_key -iv $encrypted_b3fcf6d0737c_iv
-in credentials.tar.gz.enc -out credentials.tar.gz -d
- |
case "$TRAVIS_EVENT_TYPE" in
push|pull_request)
# Check whether we need to run a test for this provider
DOCS_REGEX='(\.rst$)|(^(docs))/'
FILES_IN_CHANGESET="`git diff --name-only $TRAVIS_COMMIT_RANGE`"
echo "$FILES_IN_CHANGESET" | grep -qvE "$DOCS_REGEX" || {
echo "Only docs were updated. Stopping build process."
exit
}
echo "$FILES_IN_CHANGESET" | grep -qvE "$DOCS_REGEX|(^(cloudbridge/cloud/providers))" || {
echo "Only docs and providers were updated. Checking whether this provider was changed."
# Extract env and provider from $TOXENV into $PYENV and $PROVIDER respectively
IFS=- read PYENV PROVIDER <<< "$TOX_ENV"
echo "$FILES_IN_CHANGESET" | grep -qE "^(cloudbridge/cloud/providers/$PROVIDER)" && {
echo "This provider was affected by this changeset. Running tests."
} || {
echo "This provider was not affected by this changeset. Stopping build process."
exit
}
}
;;
*)
echo "Build triggered through API or CRON job. Running regardless of changes"
;;
esac
install:
- pip install -U setuptools
- pip install tox
- pip install coveralls
- pip install codecov
- pip install -U pip
- pip install -U setuptools
- pip install tox
- pip install coveralls
- pip install codecov
script:
- tox -e $TOX_ENV
- tox -r -e $TOX_ENV
after_script:
- |
case "$TRAVIS_EVENT_TYPE" in
push|pull_request)
# Don't run coverage if tests or cloudbridge interface was not affected
DOCS_REGEX='(\.rst$)|(^(docs))/'
FILES_IN_CHANGESET="`git diff --name-only $TRAVIS_COMMIT_RANGE`"
echo "$FILES_IN_CHANGESET" | grep -qvE "$DOCS_REGEX|(^(cloudbridge/cloud/providers))" && {
coveralls &
codecov &
wait
} || {
echo "Only docs and providers were updated. Not running coverage."
}
;;
*)
echo "Build triggered through API or CRON job. Running regardless of changes"
coveralls & codecov & wait
;;
esac
- |
case "$TRAVIS_EVENT_TYPE" in
push|pull_request)
# Don't run coverage if tests or cloudbridge interface was not affected
DOCS_REGEX='(\.rst$)|(^(docs))/'
FILES_IN_CHANGESET="`git diff --name-only $TRAVIS_COMMIT_RANGE`"
echo "$FILES_IN_CHANGESET" | grep -qvE "$DOCS_REGEX|(^(cloudbridge/cloud/providers))" && {
coveralls &
codecov &
wait
} || {
echo "Only docs and providers were updated. Not running coverage."
}
;;
*)
echo "Build triggered through API or CRON job. Running regardless of changes"
coveralls & codecov & wait
;;
esac
97 changes: 69 additions & 28 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -1,18 +1,59 @@
0.3.3 - Aug 7, 2017. (sha 348e1e88935f61f53a83ed8d6a0e012a46621e25)
1.0.2 - September 25, 2018 (sha 621aeed1a8d7c5ad270649f8ee960e9682e57dae)
-------
* Added AWS instance types caching for better performance
* Added ``router.subnets`` property
* Ensure the default network for CloudBridge on AWS has subnets

* Remove explicit versioning of requests and Babel
1.0.1 - September 7, 2018. (sha 3130492008c5e0e115b8dfec880d32a4ac90b761)
-------
* Fixed minor bug when retrieving buckets with only limited access.
* Relaxed some library version dependencies (e.g. six).

1.0.0 - September 6, 2018. (sha 11bccd822f21a598fc753995440cf1a409984889)
-------

* Added Microsoft Azure as a provider.
* Restructured the interface to make it more comprehensible and uniform across
all supported providers. See `issue #69 <https://github.com/CloudVE/cloudbridge/issues/69>`_
for more details as well as the library layout image for an easy visual
reference: https://github.com/CloudVE/cloudbridge#quick-reference.
* Migrated AWS implementation to use the boto3 library (thanks @01000101)
* Cleaned up use of ``name`` property for resources. Resources now have ``id``,
``name``, and ``label`` properties to represent respectively: a unique
identifier supplied by the provider; a descriptive, unchangeable name; and a
user-supplied label that can be modified during the existence of a resource.
* Added enforcement of name and label value: names must be at least 3 characters
in length at minimum, and 64 characters at maximum, consisting of only lower
case letters and dashes. Should not start or end with a dash.
* Refactored tests and extracted standard interface tests where all resources
are being tested using the same code structure. Also, tests will run only
for providers that implement a given service.
* Moved the repository from github.com/gvlproject to github.com/cloudve org.
* When deleting an OpenStack network, clear any ports.
* Added support for launching OpenStack instances into a specific subnet
* Update image list interface to allow filtering by owner.
* When listing images on AWS, filter only the ones by current account owner.
* Retrieve AWS instance types from a public service to include latest values.
* Instance state uses ``DELETED`` state instead of ``TERMINATED``.
* Return VM type RAM in GB.
* Add implementation for ``generate_url`` on OpenStack.
* General documentation updates.

0.3.3 - August 7, 2017. (sha 348e1e88935f61f53a83ed8d6a0e012a46621e25)
-------

* Remove explicit versioning of requests and Babel.

0.3.2 - June 10, 2017. (sha f07f3cbd758a0872b847b5537d9073c90f87c24d)
-------

* Patch release to support files>5GB with OpenStack (thanks @MartinPaulo)
* Misc bug fixes
* Patch release to support files>5GB with OpenStack (thanks @MartinPaulo).
* Misc bug fixes.

0.3.1 - April 18, 2017. (sha f36a462e886d8444cb2818f6573677ecf0565315)
-------

* Patch for binary file handling in openstack
* Patch for binary file handling in OpenStack.

0.3.0 - April 11, 2017. (sha 13539ccda9e4809082796574d18b1b9bb3f2c624)
-------
Expand All @@ -23,9 +64,9 @@
* Added supports for accessing EC2 containers with restricted permissions.
* Removed exists() method from object store interface. Use get()==None check
instead.
* New method (img.min_disk) for geting size of machine image.
* Test improvements (flake8 during build, more tests)
* Misc bug fixes and improvements
* New method (img.min_disk) for getting size of machine image.
* Test improvements (flake8 during build, more tests).
* Misc bug fixes and improvements.
* Changed library to beta state
* General documentation updates (testing, release process)

Expand All @@ -36,35 +77,35 @@
removed the option of adding network interface to a launch config object.
* Added object store methods: upload from file path, list objects with a
prefix, check if an object exists, (AWS only) get an accessible URL for an
object (thanks @VJalili)
object (thanks @VJalili).
* Modified `get_ec2_credentials()` method to `get_or_create_ec2_credentials()`
* Added an option to read provider config values from a file
(`~/.cloudbridge` or `/etc/cloudbridge`)
* Replaced py35 with py36 for running tests
* Added logging configuration for the library
* General documentation updates
(`~/.cloudbridge` or `/etc/cloudbridge`).
* Replaced py35 with py36 for running tests.
* Added logging configuration for the library.
* General documentation updates.


0.1.1 - Aug 10, 2016. (sha 0122fb1173c88ae64e40140ffd35ff3797e9e4ad)
-------

* For AWS, always launch instances into private networking (i.e., VPC)
* Support for using OpenStack Keystone v3
* Add functionality to manipulate routers and routes
* Add FloatingIP resource type and integrate with Network service
* Numerous documentation updates
* For an OpenStack provider, add method to get the ec2 credentials for a user
* For AWS, always launch instances into private networking (i.e., VPC).
* Support for using OpenStack Keystone v3.
* Add functionality to manipulate routers and routes.
* Add FloatingIP resource type and integrate with Network service.
* Numerous documentation updates.
* For an OpenStack provider, add method to get the ec2 credentials for a user.


0.1.0 - Jan 30, 2016.
-------

* Initial release of CloudBridge
* Support for Bucket, Instance, Instance type, Key pair, Machine image
Region, Security group, Snapshot, Volume, Network and Subnet services
* Support for paging results, block device mapping and launching into VPCs
* Support for AWS and OpenStack clouds
* Basic usage docs and complete API docs
* 95% test coverage
* Support for AWS mock test provder (via
`moto <https://github.com/spulec/moto>`_)
* Initial release of CloudBridge.
* Support for Bucket, Instance, Instance type, Key pair, Machine image.
Region, Security group, Snapshot, Volume, Network and Subnet services.
* Support for paging results, block device mapping and launching into VPCs.
* Support for AWS and OpenStack clouds.
* Basic usage docs and complete API docs.
* 95% test coverage.
* Support for AWS mock test provider (via
`moto <https://github.com/spulec/moto>`_).
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2015 gvlproject
Copyright (c) 2015 CloudVE

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
Loading

0 comments on commit 2fcd798

Please sign in to comment.