From eba7d9f54a03b744bec9f05526a77b1375a05a92 Mon Sep 17 00:00:00 2001 From: Davanum Srinivas Date: Fri, 24 Mar 2017 09:54:43 -0400 Subject: [PATCH] Reorganize code and add Makefile --- .gitignore | 7 + LICENSE | 191 +++++ Makefile | 105 +++ bindep.txt | 5 + glide.lock | 665 ++++++++++++++++++ glide.yaml | 59 ++ main.go | 64 ++ .../providers/openstack => openstack}/BUILD | 0 .../openstack => openstack}/MAINTAINERS.md | 0 .../providers/openstack => openstack}/OWNERS | 0 openstack/glide.lock | 254 +++++++ .../openstack => openstack}/metadata.go | 0 .../openstack => openstack}/metadata_test.go | 0 .../openstack => openstack}/openstack.go | 0 .../openstack_instances.go | 0 .../openstack_loadbalancer.go | 0 .../openstack_routes.go | 0 .../openstack_routes_test.go | 0 .../openstack => openstack}/openstack_test.go | 0 .../openstack_volumes.go | 0 tools/install-distro-packages.sh | 40 ++ tools/test-setup.sh | 54 ++ 22 files changed, 1444 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 bindep.txt create mode 100644 glide.lock create mode 100644 glide.yaml create mode 100644 main.go rename {pkg/cloudprovider/providers/openstack => openstack}/BUILD (100%) rename {pkg/cloudprovider/providers/openstack => openstack}/MAINTAINERS.md (100%) rename {pkg/cloudprovider/providers/openstack => openstack}/OWNERS (100%) create mode 100644 openstack/glide.lock rename {pkg/cloudprovider/providers/openstack => openstack}/metadata.go (100%) rename {pkg/cloudprovider/providers/openstack => openstack}/metadata_test.go (100%) rename {pkg/cloudprovider/providers/openstack => openstack}/openstack.go (100%) rename {pkg/cloudprovider/providers/openstack => openstack}/openstack_instances.go (100%) rename {pkg/cloudprovider/providers/openstack => openstack}/openstack_loadbalancer.go (100%) rename {pkg/cloudprovider/providers/openstack => openstack}/openstack_routes.go (100%) rename {pkg/cloudprovider/providers/openstack => openstack}/openstack_routes_test.go (100%) rename {pkg/cloudprovider/providers/openstack => openstack}/openstack_test.go (100%) rename {pkg/cloudprovider/providers/openstack => openstack}/openstack_volumes.go (100%) create mode 100755 tools/install-distro-packages.sh create mode 100755 tools/test-setup.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2a379c8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +*.json +*.sublime-project +*.sublime-workspace +*.swp +.idea +.DS_Store +vendor diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..2744858 --- /dev/null +++ b/LICENSE @@ -0,0 +1,191 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2014 Docker, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6f37537 --- /dev/null +++ b/Makefile @@ -0,0 +1,105 @@ +# golang-client Makefile +# Follows the interface defined in the Golang CTI proposed +# in https://review.openstack.org/410355 + +#REPO_VERSION?=$(shell git describe --tags) + +GIT_HOST = git.openstack.org + +PWD := $(shell pwd) +BASE_DIR := $(shell basename $(PWD)) +# Keep an existing GOPATH, make a private one if it is undefined +GOPATH_DEFAULT := $(PWD)/.go +export GOPATH ?= $(GOPATH_DEFAULT) +PKG := $(shell awk '/^package: / { print $$2 }' glide.yaml) +DEST := $(GOPATH)/src/$(GIT_HOST)/openstack/$(BASE_DIR) +DEST := $(GOPATH)/src/$(PKG) + +# CTI targets + +depend: work + cd $(DEST) && glide install --strip-vendor + +depend-update: work + cd $(DEST) && glide update + +build: work + cd $(DEST) && go build -o openstack-controller-manager main.go + +test: unit functional + +unit: depend + cd $(DEST) && go test -tags=unit $(shell glide novendor) + +functional: + @echo "$@ not yet implemented" + +fmt: work + cd $(DEST) && CGO_ENABLED=0 go fmt ./... + +lint: + @echo "$@ not yet implemented" + +cover: + @echo "$@ not yet implemented" + +docs: + @echo "$@ not yet implemented" + +godoc: + @echo "$@ not yet implemented" + +releasenotes: + @echo "Reno not yet implemented for this repo" + +translation: + @echo "$@ not yet implemented" + +# Do the work here + +# Set up the development environment +env: + @echo "PWD: $(PWD)" + @echo "BASE_DIR: $(BASE_DIR)" + @echo "GOPATH: $(GOPATH)" + @echo "GOROOT: $(GOROOT)" + @echo "DEST: $(DEST)" + @echo "PKG: $(PKG)" + +# Get our dev/test dependencies in place +bootstrap: + tools/test-setup.sh + +work: $(GOPATH) $(DEST) + +$(GOPATH): + mkdir -p $(GOPATH) + +$(DEST): $(GOPATH) + mkdir -p $(shell dirname $(DEST)) + ln -s $(PWD) $(DEST) + +.bindep: + virtualenv .bindep + .bindep/bin/pip install bindep + +bindep: .bindep + @.bindep/bin/bindep -b -f bindep.txt || true + +install-distro-packages: + tools/install-distro-packages.sh + +clean: + rm -rf .bindep openstack-controller-manager + +realclean: clean + rm -rf vendor + if [ "$(GOPATH)" = "$(GOPATH_DEFAULT)" ]; then \ + rm -rf $(GOPATH); \ + fi + +shell: work + cd $(DEST) && $(SHELL) -i + +.PHONY: bindep build clean cover depend docs fmt functional lint realclean \ + relnotes test translation diff --git a/bindep.txt b/bindep.txt new file mode 100644 index 0000000..5e3550e --- /dev/null +++ b/bindep.txt @@ -0,0 +1,5 @@ +pkg-config +build-essential +golang-go +golint +make diff --git a/glide.lock b/glide.lock new file mode 100644 index 0000000..03e5e97 --- /dev/null +++ b/glide.lock @@ -0,0 +1,665 @@ +hash: 55acf1401fca2a0eef9461c95e0e16b2fcf37239abb1894ff965b7c001f84517 +updated: 2017-03-24T09:48:00.184737937-04:00 +imports: +- name: bitbucket.org/ww/goautoneg + version: 75cd24fc2f2c2a2088577d12123ddee5f54e0675 +- name: cloud.google.com/go + version: 3b1ae45394a234c385be014e9a488f2bb6eef821 + subpackages: + - compute/metadata + - internal +- name: github.com/aws/aws-sdk-go + version: 63ce630574a5ec05ecd8e8de5cea16332a5a684d + subpackages: + - aws + - aws/awserr + - aws/awsutil + - aws/client + - aws/client/metadata + - aws/corehandlers + - aws/credentials + - aws/credentials/ec2rolecreds + - aws/credentials/endpointcreds + - aws/credentials/stscreds + - aws/defaults + - aws/ec2metadata + - aws/endpoints + - aws/request + - aws/session + - aws/signer/v4 + - private/protocol + - private/protocol/ec2query + - private/protocol/json/jsonutil + - private/protocol/jsonrpc + - private/protocol/query + - private/protocol/query/queryutil + - private/protocol/rest + - private/protocol/restxml + - private/protocol/xml/xmlutil + - private/waiter + - service/autoscaling + - service/ec2 + - service/ecr + - service/elb + - service/route53 + - service/sts +- name: github.com/Azure/azure-sdk-for-go + version: 0984e0641ae43b89283223034574d6465be93bf4 + subpackages: + - arm/compute + - arm/containerregistry + - arm/network + - arm/storage + - storage +- name: github.com/Azure/go-autorest + version: d7c034a8af24eda120dd6460bfcd6d9ed14e43ca + subpackages: + - autorest + - autorest/azure + - autorest/date + - autorest/to + - autorest/validation +- name: github.com/beorn7/perks + version: 3ac7bf7a47d159a033b107610db8a1b6575507a4 + subpackages: + - quantile +- name: github.com/davecgh/go-spew + version: 5215b55f46b2b919f50a1df0eaa5886afe4e3b3d + subpackages: + - spew +- name: github.com/dgrijalva/jwt-go + version: 01aeca54ebda6e0fbfafd0a524d234159c05ec20 +- name: github.com/docker/distribution + version: cd27f179f2c10c5d300e6d09025b538c475b0d51 + subpackages: + - digest + - reference +- name: github.com/docker/engine-api + version: dea108d3aa0c67d7162a3fd8aa65f38a430019fd + subpackages: + - client + - client/transport + - client/transport/cancellable + - types + - types/blkiodev + - types/container + - types/filters + - types/network + - types/reference + - types/registry + - types/strslice + - types/time + - types/versions +- name: github.com/docker/go-connections + version: f549a9393d05688dff0992ef3efd8bbe6c628aeb + subpackages: + - nat + - sockets + - tlsconfig +- name: github.com/docker/go-units + version: e30f1e79f3cd72542f2026ceec18d3bd67ab859c +- name: github.com/emicklei/go-restful + version: 09691a3b6378b740595c1002f40c34dd5f218a22 + subpackages: + - log + - swagger +- name: github.com/exponent-io/jsonpath + version: d6023ce2651d8eafb5c75bb0c7167536102ec9f5 +- name: github.com/ghodss/yaml + version: 73d445a93680fa1a78ae23a5839bad48f32ba1ee +- name: github.com/go-ini/ini + version: 2e44421e256d82ebbf3d4d4fcabe8930b905eff3 +- name: github.com/go-openapi/jsonpointer + version: 46af16f9f7b149af66e5d1bd010e3574dc06de98 +- name: github.com/go-openapi/jsonreference + version: 13c6e3589ad90f49bd3e3bbe2c2cb3d7a4142272 +- name: github.com/go-openapi/spec + version: 6aced65f8501fe1217321abf0749d354824ba2ff +- name: github.com/go-openapi/swag + version: 1d0bd113de87027671077d3c71eb3ac5d7dbba72 +- name: github.com/gogo/protobuf + version: e18d7aa8f8c624c915db340349aad4c49b10d173 + subpackages: + - proto + - sortkeys +- name: github.com/golang/glog + version: 44145f04b68cf362d9c4df2182967c2275eaefed +- name: github.com/golang/groupcache + version: 02826c3e79038b59d737d3b1c0a1d937f71a4433 + subpackages: + - lru +- name: github.com/golang/protobuf + version: 8616e8ee5e20a1704615e6c8d7afcdac06087a67 + subpackages: + - jsonpb + - proto +- name: github.com/google/gofuzz + version: 44d81051d367757e1c7c6a5a86423ece9afcf63c +- name: github.com/gophercloud/gophercloud + version: 12f19e5e04d617182cffa5c11f189ef0013b9791 + subpackages: + - openstack + - openstack/blockstorage/v1/volumes + - openstack/common/extensions + - openstack/compute/v2/extensions/volumeattach + - openstack/compute/v2/flavors + - openstack/compute/v2/images + - openstack/compute/v2/servers + - openstack/identity/v2/tenants + - openstack/identity/v2/tokens + - openstack/identity/v3/extensions/trusts + - openstack/identity/v3/tokens + - openstack/networking/v2/extensions + - openstack/networking/v2/extensions/layer3/floatingips + - openstack/networking/v2/extensions/layer3/routers + - openstack/networking/v2/extensions/lbaas/members + - openstack/networking/v2/extensions/lbaas/monitors + - openstack/networking/v2/extensions/lbaas/pools + - openstack/networking/v2/extensions/lbaas/vips + - openstack/networking/v2/extensions/lbaas_v2/listeners + - openstack/networking/v2/extensions/lbaas_v2/loadbalancers + - openstack/networking/v2/extensions/lbaas_v2/monitors + - openstack/networking/v2/extensions/lbaas_v2/pools + - openstack/networking/v2/extensions/security/groups + - openstack/networking/v2/extensions/security/rules + - openstack/networking/v2/ports + - openstack/utils + - pagination +- name: github.com/howeyc/gopass + version: 3ca23474a7c7203e0a0a070fd33508f6efdb9b3d +- name: github.com/imdario/mergo + version: 6633656539c1639d9d78127b7d47c622b5d7b6dc +- name: github.com/inconshreveable/mousetrap + version: 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75 +- name: github.com/jmespath/go-jmespath + version: 3433f3ea46d9f8019119e7dd41274e112a2359a9 +- name: github.com/juju/ratelimit + version: 77ed1c8a01217656d2080ad51981f6e99adaa177 +- name: github.com/mailru/easyjson + version: d5b7844b561a7bc640052f1b935f7b800330d7e0 + subpackages: + - buffer + - jlexer + - jwriter +- name: github.com/matttproud/golang_protobuf_extensions + version: fc2b8d3a73c4867e51861bbdd5ae3c1f0869dd6a + subpackages: + - pbutil +- name: github.com/mesos/mesos-go + version: 45c8b08e9af666add36a6f93ff8c1c75812367b0 + subpackages: + - detector + - detector/zoo + - mesosproto + - mesosutil + - upid +- name: github.com/mitchellh/mapstructure + version: 740c764bc6149d3f1806231418adb9f52c11bcbf +- name: github.com/prometheus/client_golang + version: e51041b3fa41cece0dca035740ba6411905be473 + subpackages: + - prometheus +- name: github.com/prometheus/client_model + version: fa8ad6fec33561be4280a8f0514318c79d7f6cb6 + subpackages: + - go +- name: github.com/prometheus/common + version: ffe929a3f4c4faeaa10f2b9535c2b1be3ad15650 + subpackages: + - expfmt + - model +- name: github.com/prometheus/procfs + version: 454a56f35412459b5e684fd5ec0f9211b94f002a +- name: github.com/PuerkitoBio/purell + version: 8a290539e2e8629dbc4e6bad948158f790ec31f4 +- name: github.com/PuerkitoBio/urlesc + version: 5bd2802263f21d8788851d5305584c82a5c75d7e +- name: github.com/rackspace/gophercloud + version: e00690e87603abe613e9f02c816c7c4bef82e063 + subpackages: + - openstack + - openstack/blockstorage/v1/volumes + - openstack/compute/v2/extensions/bootfromvolume + - openstack/compute/v2/extensions/diskconfig + - openstack/compute/v2/extensions/volumeattach + - openstack/compute/v2/flavors + - openstack/compute/v2/images + - openstack/compute/v2/servers + - openstack/identity/v2/tenants + - openstack/identity/v2/tokens + - openstack/identity/v3/tokens + - openstack/utils + - pagination + - rackspace + - rackspace/blockstorage/v1/volumes + - rackspace/compute/v2/servers + - rackspace/compute/v2/volumeattach + - rackspace/identity/v2/tokens + - testhelper + - testhelper/client +- name: github.com/rubiojr/go-vhd + version: 0bfd3b39853cdde5762efda92289f14b0ac0491b + subpackages: + - vhd +- name: github.com/samuel/go-zookeeper + version: 177002e16a0061912f02377e2dd8951a8b3551bc + subpackages: + - zk +- name: github.com/spf13/cobra + version: f62e98d28ab7ad31d707ba837a966378465c7b57 + subpackages: + - doc +- name: github.com/spf13/pflag + version: 5ccb023bc27df288a957c5e994cd44fd19619465 +- name: github.com/ugorji/go + version: ded73eae5db7e7a0ef6f55aace87a2873c5d2b74 + subpackages: + - codec +- name: github.com/vmware/govmomi + version: 0a28e595c8e9e99879e8d2f796e82c5a68202ff0 + subpackages: + - find + - list + - object + - property + - session + - task + - vim25 + - vim25/debug + - vim25/methods + - vim25/mo + - vim25/progress + - vim25/soap + - vim25/types + - vim25/xml +- name: github.com/vmware/photon-controller-go-sdk + version: 4a435daef6ccd3d0edaac1161e76f51a70c2589a + subpackages: + - SSPI + - photon + - photon/lightwave +- name: github.com/xanzy/go-cloudstack + version: 1e2cbf647e57fa90353612074fdfc42faf5073bf + subpackages: + - cloudstack +- name: golang.org/x/crypto + version: d172538b2cfce0c13cee31e647d0367aa8cd2486 + subpackages: + - bcrypt + - blowfish + - ssh/terminal +- name: golang.org/x/net + version: e90d6d0afc4c315a0d87a568ae68577cc15149a0 + subpackages: + - context + - context/ctxhttp + - html + - html/atom + - http2 + - http2/hpack + - idna + - internal/timeseries + - lex/httplex + - trace + - websocket +- name: golang.org/x/oauth2 + version: 3c3a985cb79f52a3190fbc056984415ca6763d01 + subpackages: + - google + - internal + - jws + - jwt +- name: golang.org/x/sys + version: 8f0908ab3b2457e2e15403d3697c9ef5cb4b57a9 + subpackages: + - unix +- name: golang.org/x/text + version: 2910a502d2bf9e43193af9d68ca516529614eed3 + subpackages: + - cases + - internal/tag + - language + - runes + - secure/bidirule + - secure/precis + - transform + - unicode/bidi + - unicode/norm + - width +- name: google.golang.org/api + version: 55146ba61254fdb1c26d65ff3c04bc1611ad73fb + subpackages: + - cloudmonitoring/v2beta2 + - compute/v1 + - container/v1 + - dns/v1 + - gensupport + - googleapi + - googleapi/internal/uritemplates + - logging/v2beta1 +- name: google.golang.org/appengine + version: 4f7eeb5305a4ba1966344836ba4af9996b7b4e05 + subpackages: + - internal + - internal/app_identity + - internal/base + - internal/datastore + - internal/log + - internal/modules + - internal/remote_api + - internal/urlfetch + - urlfetch +- name: gopkg.in/gcfg.v1 + version: 083575c3955c85df16fe9590cceab64d03f5eb6e + subpackages: + - scanner + - token + - types +- name: gopkg.in/inf.v0 + version: 3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4 +- name: gopkg.in/yaml.v2 + version: 53feefa2559fb8dfa8d81baad31be332c97d6c77 +- name: k8s.io/apimachinery + version: c1c4a7fe832857c75cc1d79c8e40d71d5da15fc6 + subpackages: + - pkg/api/equality + - pkg/api/errors + - pkg/api/meta + - pkg/api/resource + - pkg/api/validation + - pkg/apimachinery + - pkg/apimachinery/announced + - pkg/apimachinery/registered + - pkg/apis/meta/v1 + - pkg/apis/meta/v1/unstructured + - pkg/apis/meta/v1/validation + - pkg/conversion + - pkg/conversion/queryparams + - pkg/fields + - pkg/labels + - pkg/openapi + - pkg/runtime + - pkg/runtime/schema + - pkg/runtime/serializer + - pkg/runtime/serializer/json + - pkg/runtime/serializer/protobuf + - pkg/runtime/serializer/recognizer + - pkg/runtime/serializer/streaming + - pkg/runtime/serializer/versioning + - pkg/selection + - pkg/types + - pkg/util/diff + - pkg/util/errors + - pkg/util/framer + - pkg/util/intstr + - pkg/util/json + - pkg/util/mergepatch + - pkg/util/net + - pkg/util/rand + - pkg/util/runtime + - pkg/util/sets + - pkg/util/strategicpatch + - pkg/util/validation + - pkg/util/validation/field + - pkg/util/wait + - pkg/util/yaml + - pkg/version + - pkg/watch + - third_party/forked/golang/json + - third_party/forked/golang/reflect +- name: k8s.io/apiserver + version: fbf5c43dfaa8eb5627bac6058e3bd51db8532cbb + subpackages: + - pkg/authentication/authenticator + - pkg/authentication/serviceaccount + - pkg/authentication/user + - pkg/features + - pkg/server/healthz + - pkg/util/feature + - pkg/util/flag + - pkg/util/logs +- name: k8s.io/client-go + version: 5571124637a98cbc6579b0d1cfb78c0fc4b3f035 + subpackages: + - discovery + - kubernetes + - kubernetes/scheme + - kubernetes/typed/apps/v1beta1 + - kubernetes/typed/authentication/v1 + - kubernetes/typed/authentication/v1beta1 + - kubernetes/typed/authorization/v1 + - kubernetes/typed/authorization/v1beta1 + - kubernetes/typed/autoscaling/v1 + - kubernetes/typed/autoscaling/v2alpha1 + - kubernetes/typed/batch/v1 + - kubernetes/typed/batch/v2alpha1 + - kubernetes/typed/certificates/v1beta1 + - kubernetes/typed/core/v1 + - kubernetes/typed/extensions/v1beta1 + - kubernetes/typed/policy/v1beta1 + - kubernetes/typed/rbac/v1alpha1 + - kubernetes/typed/rbac/v1beta1 + - kubernetes/typed/settings/v1alpha1 + - kubernetes/typed/storage/v1 + - kubernetes/typed/storage/v1beta1 + - pkg/api + - pkg/api/install + - pkg/api/v1 + - pkg/apis/apps + - pkg/apis/apps/install + - pkg/apis/apps/v1beta1 + - pkg/apis/authentication + - pkg/apis/authentication/install + - pkg/apis/authentication/v1 + - pkg/apis/authentication/v1beta1 + - pkg/apis/authorization + - pkg/apis/authorization/install + - pkg/apis/authorization/v1 + - pkg/apis/authorization/v1beta1 + - pkg/apis/autoscaling + - pkg/apis/autoscaling/install + - pkg/apis/autoscaling/v1 + - pkg/apis/autoscaling/v2alpha1 + - pkg/apis/batch + - pkg/apis/batch/install + - pkg/apis/batch/v1 + - pkg/apis/batch/v2alpha1 + - pkg/apis/certificates + - pkg/apis/certificates/install + - pkg/apis/certificates/v1beta1 + - pkg/apis/extensions + - pkg/apis/extensions/install + - pkg/apis/extensions/v1beta1 + - pkg/apis/policy + - pkg/apis/policy/install + - pkg/apis/policy/v1beta1 + - pkg/apis/rbac + - pkg/apis/rbac/install + - pkg/apis/rbac/v1alpha1 + - pkg/apis/rbac/v1beta1 + - pkg/apis/settings + - pkg/apis/settings/install + - pkg/apis/settings/v1alpha1 + - pkg/apis/storage + - pkg/apis/storage/install + - pkg/apis/storage/v1 + - pkg/apis/storage/v1beta1 + - pkg/util + - pkg/util/parsers + - pkg/version + - rest + - rest/watch + - tools/auth + - tools/cache + - tools/clientcmd + - tools/clientcmd/api + - tools/clientcmd/api/latest + - tools/clientcmd/api/v1 + - tools/metrics + - tools/record + - transport + - util/cert + - util/clock + - util/flowcontrol + - util/homedir + - util/integer + - util/workqueue +- name: k8s.io/kubernetes + version: a845e3e936e91cd14c4c5b462631233716d5839b + subpackages: + - cmd/cloud-controller-manager/app + - cmd/cloud-controller-manager/app/options + - pkg/api + - pkg/api/install + - pkg/api/pod + - pkg/api/service + - pkg/api/util + - pkg/api/v1 + - pkg/api/v1/service + - pkg/api/validation + - pkg/apis/apps + - pkg/apis/apps/install + - pkg/apis/apps/v1beta1 + - pkg/apis/authentication + - pkg/apis/authentication/install + - pkg/apis/authentication/v1 + - pkg/apis/authentication/v1beta1 + - pkg/apis/authorization + - pkg/apis/authorization/install + - pkg/apis/authorization/v1 + - pkg/apis/authorization/v1beta1 + - pkg/apis/autoscaling + - pkg/apis/autoscaling/install + - pkg/apis/autoscaling/v1 + - pkg/apis/autoscaling/v2alpha1 + - pkg/apis/batch + - pkg/apis/batch/install + - pkg/apis/batch/v1 + - pkg/apis/batch/v2alpha1 + - pkg/apis/certificates + - pkg/apis/certificates/install + - pkg/apis/certificates/v1beta1 + - pkg/apis/componentconfig + - pkg/apis/extensions + - pkg/apis/extensions/install + - pkg/apis/extensions/v1beta1 + - pkg/apis/policy + - pkg/apis/policy/install + - pkg/apis/policy/v1beta1 + - pkg/apis/rbac + - pkg/apis/rbac/install + - pkg/apis/rbac/v1alpha1 + - pkg/apis/rbac/v1beta1 + - pkg/apis/settings + - pkg/apis/settings/install + - pkg/apis/settings/v1alpha1 + - pkg/apis/storage + - pkg/apis/storage/install + - pkg/apis/storage/v1 + - pkg/apis/storage/v1beta1 + - pkg/capabilities + - pkg/client/clientset_generated/clientset + - pkg/client/clientset_generated/clientset/scheme + - pkg/client/clientset_generated/clientset/typed/apps/v1beta1 + - pkg/client/clientset_generated/clientset/typed/authentication/v1 + - pkg/client/clientset_generated/clientset/typed/authentication/v1beta1 + - pkg/client/clientset_generated/clientset/typed/authorization/v1 + - pkg/client/clientset_generated/clientset/typed/authorization/v1beta1 + - pkg/client/clientset_generated/clientset/typed/autoscaling/v1 + - pkg/client/clientset_generated/clientset/typed/autoscaling/v2alpha1 + - pkg/client/clientset_generated/clientset/typed/batch/v1 + - pkg/client/clientset_generated/clientset/typed/batch/v2alpha1 + - pkg/client/clientset_generated/clientset/typed/certificates/v1beta1 + - pkg/client/clientset_generated/clientset/typed/core/v1 + - pkg/client/clientset_generated/clientset/typed/extensions/v1beta1 + - pkg/client/clientset_generated/clientset/typed/policy/v1beta1 + - pkg/client/clientset_generated/clientset/typed/rbac/v1alpha1 + - pkg/client/clientset_generated/clientset/typed/rbac/v1beta1 + - pkg/client/clientset_generated/clientset/typed/settings/v1alpha1 + - pkg/client/clientset_generated/clientset/typed/storage/v1 + - pkg/client/clientset_generated/clientset/typed/storage/v1beta1 + - pkg/client/informers/informers_generated/externalversions + - pkg/client/informers/informers_generated/externalversions/apps + - pkg/client/informers/informers_generated/externalversions/apps/v1beta1 + - pkg/client/informers/informers_generated/externalversions/autoscaling + - pkg/client/informers/informers_generated/externalversions/autoscaling/v1 + - pkg/client/informers/informers_generated/externalversions/autoscaling/v2alpha1 + - pkg/client/informers/informers_generated/externalversions/batch + - pkg/client/informers/informers_generated/externalversions/batch/v1 + - pkg/client/informers/informers_generated/externalversions/batch/v2alpha1 + - pkg/client/informers/informers_generated/externalversions/certificates + - pkg/client/informers/informers_generated/externalversions/certificates/v1beta1 + - pkg/client/informers/informers_generated/externalversions/core + - pkg/client/informers/informers_generated/externalversions/core/v1 + - pkg/client/informers/informers_generated/externalversions/extensions + - pkg/client/informers/informers_generated/externalversions/extensions/v1beta1 + - pkg/client/informers/informers_generated/externalversions/internalinterfaces + - pkg/client/informers/informers_generated/externalversions/policy + - pkg/client/informers/informers_generated/externalversions/policy/v1beta1 + - pkg/client/informers/informers_generated/externalversions/rbac + - pkg/client/informers/informers_generated/externalversions/rbac/v1alpha1 + - pkg/client/informers/informers_generated/externalversions/rbac/v1beta1 + - pkg/client/informers/informers_generated/externalversions/settings + - pkg/client/informers/informers_generated/externalversions/settings/v1alpha1 + - pkg/client/informers/informers_generated/externalversions/storage + - pkg/client/informers/informers_generated/externalversions/storage/v1 + - pkg/client/informers/informers_generated/externalversions/storage/v1beta1 + - pkg/client/leaderelection + - pkg/client/leaderelection/resourcelock + - pkg/client/listers/apps/v1beta1 + - pkg/client/listers/autoscaling/v1 + - pkg/client/listers/autoscaling/v2alpha1 + - pkg/client/listers/batch/v1 + - pkg/client/listers/batch/v2alpha1 + - pkg/client/listers/certificates/v1beta1 + - pkg/client/listers/core/v1 + - pkg/client/listers/extensions/v1beta1 + - pkg/client/listers/policy/v1beta1 + - pkg/client/listers/rbac/v1alpha1 + - pkg/client/listers/rbac/v1beta1 + - pkg/client/listers/settings/v1alpha1 + - pkg/client/listers/storage/v1 + - pkg/client/listers/storage/v1beta1 + - pkg/client/metrics + - pkg/client/metrics/prometheus + - pkg/client/retry + - pkg/cloudprovider + - pkg/cloudprovider/providers + - pkg/cloudprovider/providers/aws + - pkg/cloudprovider/providers/azure + - pkg/cloudprovider/providers/cloudstack + - pkg/cloudprovider/providers/gce + - pkg/cloudprovider/providers/mesos + - pkg/cloudprovider/providers/openstack + - pkg/cloudprovider/providers/ovirt + - pkg/cloudprovider/providers/photon + - pkg/cloudprovider/providers/rackspace + - pkg/cloudprovider/providers/vsphere + - pkg/controller + - pkg/controller/cloud + - pkg/controller/route + - pkg/controller/service + - pkg/credentialprovider + - pkg/credentialprovider/aws + - pkg/features + - pkg/master/ports + - pkg/security/apparmor + - pkg/serviceaccount + - pkg/util + - pkg/util/chmod + - pkg/util/chown + - pkg/util/configz + - pkg/util/exec + - pkg/util/hash + - pkg/util/io + - pkg/util/metrics + - pkg/util/mount + - pkg/util/net/sets + - pkg/util/node + - pkg/util/parsers + - pkg/version + - pkg/version/prometheus + - pkg/version/verflag + - pkg/volume + - pkg/volume/util +testImports: [] diff --git a/glide.yaml b/glide.yaml new file mode 100644 index 0000000..5039344 --- /dev/null +++ b/glide.yaml @@ -0,0 +1,59 @@ +package: git.openstack.org/openstack/k8s-cloud-provider +import: +- package: github.com/golang/glog +- package: github.com/gophercloud/gophercloud + subpackages: + - openstack + - openstack/blockstorage/v1/volumes + - openstack/compute/v2/extensions/volumeattach + - openstack/compute/v2/flavors + - openstack/compute/v2/servers + - openstack/identity/v3/extensions/trusts + - openstack/identity/v3/tokens + - openstack/networking/v2/extensions + - openstack/networking/v2/extensions/layer3/floatingips + - openstack/networking/v2/extensions/layer3/routers + - openstack/networking/v2/extensions/lbaas/members + - openstack/networking/v2/extensions/lbaas/monitors + - openstack/networking/v2/extensions/lbaas/pools + - openstack/networking/v2/extensions/lbaas/vips + - openstack/networking/v2/extensions/lbaas_v2/listeners + - openstack/networking/v2/extensions/lbaas_v2/loadbalancers + - openstack/networking/v2/extensions/lbaas_v2/monitors + - openstack/networking/v2/extensions/lbaas_v2/pools + - openstack/networking/v2/extensions/security/groups + - openstack/networking/v2/extensions/security/rules + - openstack/networking/v2/ports + - pagination +- package: github.com/mitchellh/mapstructure +- package: github.com/spf13/pflag +- package: gopkg.in/gcfg.v1 +- package: k8s.io/apimachinery + subpackages: + - pkg/api/resource + - pkg/types + - pkg/util/net +- package: k8s.io/apiserver + subpackages: + - pkg/server/healthz + - pkg/util/flag + - pkg/util/logs +- package: k8s.io/client-go + subpackages: + - util/cert +- package: k8s.io/kubernetes + subpackages: + - cmd/cloud-controller-manager/app + - cmd/cloud-controller-manager/app/options + - pkg/api/v1 + - pkg/api/v1/service + - pkg/client/metrics/prometheus + - pkg/cloudprovider + - pkg/cloudprovider/providers + - pkg/util/exec + - pkg/util/mount + - pkg/version/prometheus + - pkg/version/verflag + - pkg/volume +ignore: + - git.openstack.org/openstack/k8s-cloud-provider/openstack \ No newline at end of file diff --git a/main.go b/main.go new file mode 100644 index 0000000..d794bba --- /dev/null +++ b/main.go @@ -0,0 +1,64 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// The external controller manager is responsible for running controller loops that +// are cloud provider dependent. It uses the API to listen to new events on resources. + +package main + +import ( + "fmt" + "os" + + "k8s.io/apiserver/pkg/server/healthz" + "k8s.io/apiserver/pkg/util/flag" + "k8s.io/apiserver/pkg/util/logs" + "k8s.io/kubernetes/cmd/cloud-controller-manager/app" + "k8s.io/kubernetes/cmd/cloud-controller-manager/app/options" + _ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration + "k8s.io/kubernetes/pkg/cloudprovider" + _ "k8s.io/kubernetes/pkg/cloudprovider/providers" + _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration + "k8s.io/kubernetes/pkg/version/verflag" + + "github.com/golang/glog" + "github.com/spf13/pflag" +) + +func init() { + healthz.DefaultHealthz() +} + +func main() { + s := options.NewCloudControllerManagerServer() + s.AddFlags(pflag.CommandLine) + + flag.InitFlags() + logs.InitLogs() + defer logs.FlushLogs() + + verflag.PrintAndExitIfRequested() + + cloud, err := cloudprovider.InitCloudProvider("openstack", s.CloudConfigFile) + if err != nil { + glog.Fatalf("Cloud provider could not be initialized: %v", err) + } + + if err := app.Run(s, cloud); err != nil { + fmt.Fprintf(os.Stderr, "%v\n", err) + os.Exit(1) + } +} \ No newline at end of file diff --git a/pkg/cloudprovider/providers/openstack/BUILD b/openstack/BUILD similarity index 100% rename from pkg/cloudprovider/providers/openstack/BUILD rename to openstack/BUILD diff --git a/pkg/cloudprovider/providers/openstack/MAINTAINERS.md b/openstack/MAINTAINERS.md similarity index 100% rename from pkg/cloudprovider/providers/openstack/MAINTAINERS.md rename to openstack/MAINTAINERS.md diff --git a/pkg/cloudprovider/providers/openstack/OWNERS b/openstack/OWNERS similarity index 100% rename from pkg/cloudprovider/providers/openstack/OWNERS rename to openstack/OWNERS diff --git a/openstack/glide.lock b/openstack/glide.lock new file mode 100644 index 0000000..f2d4583 --- /dev/null +++ b/openstack/glide.lock @@ -0,0 +1,254 @@ +hash: dc2cb42b652f4df3a539065b9c5709386e88277587c0ea2ba0efc37bafe32e37 +updated: 2017-03-24T08:33:36.565832163-04:00 +imports: +- name: github.com/davecgh/go-spew + version: 5215b55f46b2b919f50a1df0eaa5886afe4e3b3d + subpackages: + - spew +- name: github.com/docker/distribution + version: cd27f179f2c10c5d300e6d09025b538c475b0d51 + subpackages: + - digest + - reference +- name: github.com/emicklei/go-restful + version: 09691a3b6378b740595c1002f40c34dd5f218a22 + subpackages: + - log + - swagger +- name: github.com/ghodss/yaml + version: 73d445a93680fa1a78ae23a5839bad48f32ba1ee +- name: github.com/go-openapi/jsonpointer + version: 46af16f9f7b149af66e5d1bd010e3574dc06de98 +- name: github.com/go-openapi/jsonreference + version: 13c6e3589ad90f49bd3e3bbe2c2cb3d7a4142272 +- name: github.com/go-openapi/spec + version: 6aced65f8501fe1217321abf0749d354824ba2ff +- name: github.com/go-openapi/swag + version: 1d0bd113de87027671077d3c71eb3ac5d7dbba72 +- name: github.com/gogo/protobuf + version: e18d7aa8f8c624c915db340349aad4c49b10d173 + subpackages: + - proto + - sortkeys +- name: github.com/golang/glog + version: 44145f04b68cf362d9c4df2182967c2275eaefed +- name: github.com/google/gofuzz + version: 44d81051d367757e1c7c6a5a86423ece9afcf63c +- name: github.com/gophercloud/gophercloud + version: 12f19e5e04d617182cffa5c11f189ef0013b9791 + subpackages: + - openstack + - openstack/blockstorage/v1/volumes + - openstack/common/extensions + - openstack/compute/v2/extensions/volumeattach + - openstack/compute/v2/flavors + - openstack/compute/v2/images + - openstack/compute/v2/servers + - openstack/identity/v2/tenants + - openstack/identity/v2/tokens + - openstack/identity/v3/extensions/trusts + - openstack/identity/v3/tokens + - openstack/networking/v2/extensions + - openstack/networking/v2/extensions/layer3/floatingips + - openstack/networking/v2/extensions/layer3/routers + - openstack/networking/v2/extensions/lbaas/members + - openstack/networking/v2/extensions/lbaas/monitors + - openstack/networking/v2/extensions/lbaas/pools + - openstack/networking/v2/extensions/lbaas/vips + - openstack/networking/v2/extensions/lbaas_v2/listeners + - openstack/networking/v2/extensions/lbaas_v2/loadbalancers + - openstack/networking/v2/extensions/lbaas_v2/monitors + - openstack/networking/v2/extensions/lbaas_v2/pools + - openstack/networking/v2/extensions/security/groups + - openstack/networking/v2/extensions/security/rules + - openstack/networking/v2/ports + - openstack/utils + - pagination +- name: github.com/juju/ratelimit + version: 77ed1c8a01217656d2080ad51981f6e99adaa177 +- name: github.com/mailru/easyjson + version: d5b7844b561a7bc640052f1b935f7b800330d7e0 + subpackages: + - buffer + - jlexer + - jwriter +- name: github.com/mitchellh/mapstructure + version: 740c764bc6149d3f1806231418adb9f52c11bcbf +- name: github.com/PuerkitoBio/purell + version: 8a290539e2e8629dbc4e6bad948158f790ec31f4 +- name: github.com/PuerkitoBio/urlesc + version: 5bd2802263f21d8788851d5305584c82a5c75d7e +- name: github.com/spf13/pflag + version: 9ff6c6923cfffbcd502984b8e0c80539a94968b7 +- name: github.com/ugorji/go + version: ded73eae5db7e7a0ef6f55aace87a2873c5d2b74 + subpackages: + - codec +- name: golang.org/x/net + version: e90d6d0afc4c315a0d87a568ae68577cc15149a0 + subpackages: + - http2 + - http2/hpack + - idna + - lex/httplex +- name: golang.org/x/text + version: 2910a502d2bf9e43193af9d68ca516529614eed3 + subpackages: + - cases + - internal/tag + - language + - runes + - secure/bidirule + - secure/precis + - transform + - unicode/bidi + - unicode/norm + - width +- name: gopkg.in/gcfg.v1 + version: 083575c3955c85df16fe9590cceab64d03f5eb6e + subpackages: + - scanner + - token + - types +- name: gopkg.in/inf.v0 + version: 3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4 +- name: gopkg.in/yaml.v2 + version: 53feefa2559fb8dfa8d81baad31be332c97d6c77 +- name: k8s.io/apimachinery + version: c1c4a7fe832857c75cc1d79c8e40d71d5da15fc6 + subpackages: + - pkg/api/errors + - pkg/api/meta + - pkg/api/resource + - pkg/apimachinery + - pkg/apimachinery/announced + - pkg/apimachinery/registered + - pkg/apis/meta/v1 + - pkg/apis/meta/v1/unstructured + - pkg/conversion + - pkg/conversion/queryparams + - pkg/fields + - pkg/labels + - pkg/openapi + - pkg/runtime + - pkg/runtime/schema + - pkg/runtime/serializer + - pkg/runtime/serializer/json + - pkg/runtime/serializer/protobuf + - pkg/runtime/serializer/recognizer + - pkg/runtime/serializer/streaming + - pkg/runtime/serializer/versioning + - pkg/selection + - pkg/types + - pkg/util/errors + - pkg/util/framer + - pkg/util/intstr + - pkg/util/json + - pkg/util/net + - pkg/util/rand + - pkg/util/runtime + - pkg/util/sets + - pkg/util/validation + - pkg/util/validation/field + - pkg/util/wait + - pkg/util/yaml + - pkg/version + - pkg/watch + - third_party/forked/golang/reflect +- name: k8s.io/client-go + version: 76153773eaa3a268131d3d993290a194a1370585 + subpackages: + - discovery + - pkg/api + - pkg/api/v1 + - pkg/apis/extensions + - pkg/util + - pkg/util/parsers + - pkg/version + - rest + - rest/watch + - tools/clientcmd/api + - tools/metrics + - transport + - util/cert + - util/clock + - util/flowcontrol + - util/integer +- name: k8s.io/kubernetes + version: a845e3e936e91cd14c4c5b462631233716d5839b + subpackages: + - pkg/api + - pkg/api/install + - pkg/api/v1 + - pkg/api/v1/service + - pkg/apis/apps + - pkg/apis/apps/install + - pkg/apis/apps/v1beta1 + - pkg/apis/authentication + - pkg/apis/authentication/install + - pkg/apis/authentication/v1 + - pkg/apis/authentication/v1beta1 + - pkg/apis/authorization + - pkg/apis/authorization/install + - pkg/apis/authorization/v1 + - pkg/apis/authorization/v1beta1 + - pkg/apis/autoscaling + - pkg/apis/autoscaling/install + - pkg/apis/autoscaling/v1 + - pkg/apis/autoscaling/v2alpha1 + - pkg/apis/batch + - pkg/apis/batch/install + - pkg/apis/batch/v1 + - pkg/apis/batch/v2alpha1 + - pkg/apis/certificates + - pkg/apis/certificates/install + - pkg/apis/certificates/v1beta1 + - pkg/apis/extensions + - pkg/apis/extensions/install + - pkg/apis/extensions/v1beta1 + - pkg/apis/policy + - pkg/apis/policy/install + - pkg/apis/policy/v1beta1 + - pkg/apis/rbac + - pkg/apis/rbac/install + - pkg/apis/rbac/v1alpha1 + - pkg/apis/rbac/v1beta1 + - pkg/apis/settings + - pkg/apis/settings/install + - pkg/apis/settings/v1alpha1 + - pkg/apis/storage + - pkg/apis/storage/install + - pkg/apis/storage/v1 + - pkg/apis/storage/v1beta1 + - pkg/client/clientset_generated/clientset + - pkg/client/clientset_generated/clientset/scheme + - pkg/client/clientset_generated/clientset/typed/apps/v1beta1 + - pkg/client/clientset_generated/clientset/typed/authentication/v1 + - pkg/client/clientset_generated/clientset/typed/authentication/v1beta1 + - pkg/client/clientset_generated/clientset/typed/authorization/v1 + - pkg/client/clientset_generated/clientset/typed/authorization/v1beta1 + - pkg/client/clientset_generated/clientset/typed/autoscaling/v1 + - pkg/client/clientset_generated/clientset/typed/autoscaling/v2alpha1 + - pkg/client/clientset_generated/clientset/typed/batch/v1 + - pkg/client/clientset_generated/clientset/typed/batch/v2alpha1 + - pkg/client/clientset_generated/clientset/typed/certificates/v1beta1 + - pkg/client/clientset_generated/clientset/typed/core/v1 + - pkg/client/clientset_generated/clientset/typed/extensions/v1beta1 + - pkg/client/clientset_generated/clientset/typed/policy/v1beta1 + - pkg/client/clientset_generated/clientset/typed/rbac/v1alpha1 + - pkg/client/clientset_generated/clientset/typed/rbac/v1beta1 + - pkg/client/clientset_generated/clientset/typed/settings/v1alpha1 + - pkg/client/clientset_generated/clientset/typed/storage/v1 + - pkg/client/clientset_generated/clientset/typed/storage/v1beta1 + - pkg/cloudprovider + - pkg/util + - pkg/util/chmod + - pkg/util/chown + - pkg/util/exec + - pkg/util/io + - pkg/util/mount + - pkg/util/net/sets + - pkg/util/parsers + - pkg/volume + - pkg/volume/util +testImports: [] diff --git a/pkg/cloudprovider/providers/openstack/metadata.go b/openstack/metadata.go similarity index 100% rename from pkg/cloudprovider/providers/openstack/metadata.go rename to openstack/metadata.go diff --git a/pkg/cloudprovider/providers/openstack/metadata_test.go b/openstack/metadata_test.go similarity index 100% rename from pkg/cloudprovider/providers/openstack/metadata_test.go rename to openstack/metadata_test.go diff --git a/pkg/cloudprovider/providers/openstack/openstack.go b/openstack/openstack.go similarity index 100% rename from pkg/cloudprovider/providers/openstack/openstack.go rename to openstack/openstack.go diff --git a/pkg/cloudprovider/providers/openstack/openstack_instances.go b/openstack/openstack_instances.go similarity index 100% rename from pkg/cloudprovider/providers/openstack/openstack_instances.go rename to openstack/openstack_instances.go diff --git a/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go b/openstack/openstack_loadbalancer.go similarity index 100% rename from pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go rename to openstack/openstack_loadbalancer.go diff --git a/pkg/cloudprovider/providers/openstack/openstack_routes.go b/openstack/openstack_routes.go similarity index 100% rename from pkg/cloudprovider/providers/openstack/openstack_routes.go rename to openstack/openstack_routes.go diff --git a/pkg/cloudprovider/providers/openstack/openstack_routes_test.go b/openstack/openstack_routes_test.go similarity index 100% rename from pkg/cloudprovider/providers/openstack/openstack_routes_test.go rename to openstack/openstack_routes_test.go diff --git a/pkg/cloudprovider/providers/openstack/openstack_test.go b/openstack/openstack_test.go similarity index 100% rename from pkg/cloudprovider/providers/openstack/openstack_test.go rename to openstack/openstack_test.go diff --git a/pkg/cloudprovider/providers/openstack/openstack_volumes.go b/openstack/openstack_volumes.go similarity index 100% rename from pkg/cloudprovider/providers/openstack/openstack_volumes.go rename to openstack/openstack_volumes.go diff --git a/tools/install-distro-packages.sh b/tools/install-distro-packages.sh new file mode 100755 index 0000000..ee6e032 --- /dev/null +++ b/tools/install-distro-packages.sh @@ -0,0 +1,40 @@ +#!/bin/bash -xe + +# Local version to install bindep packages +# Suitable for use for development + +function is_fedora { + [ -f /usr/bin/yum ] && cat /etc/*release | grep -q -e "Fedora" +} + +PACKAGES="" +if ! which virtualenv; then + PACKAGES="$PACKAGES virtualenv" +fi +if ! which make; then + PACKAGES="$PACKAGES make" +fi +if [[ -n $PACKAGES ]]; then + sudo apt-get -q --assume-yes install virtualenv +fi + +# Check for bindep +if ! which bindep; then + make bindep +fi + +PACKAGES=$(make bindep || true) + +# inspired from project-config install-distro-packages.sh +if apt-get -v >/dev/null 2>&1 ; then + sudo apt-get -qq update + sudo PATH=/usr/sbin:/sbin:$PATH DEBIAN_FRONTEND=noninteractive \ + apt-get -q --option "Dpkg::Options::=--force-confold" \ + --assume-yes install $PACKAGES +elif emerge --version >/dev/null 2>&1 ; then + sudo emerge -uDNq --jobs=4 @world + sudo PATH=/usr/sbin:/sbin:$PATH emerge -q --jobs=4 $PACKAGES +else + is_fedora && YUM=dnf || YUM=yum + sudo PATH=/usr/sbin:/sbin:$PATH $YUM install -y $PACKAGES +fi diff --git a/tools/test-setup.sh b/tools/test-setup.sh new file mode 100755 index 0000000..4ae7853 --- /dev/null +++ b/tools/test-setup.sh @@ -0,0 +1,54 @@ +#!/bin/bash -xe +# test-setup.sh - Install required stuffs +# Used in both CI jobs and locally +# +# Install the following tools: +# * glide + +# Get OS +case $(uname -s) in + Darwin) + OS=darwin + ;; + Linux) + if LSB_RELEASE=$(which lsb_release); then + OS=$($LSB_RELEASE -s -c) + else + # No lsb-release, trya hack or two + if which dpkg 1>/dev/null; then + OS=debian + elif which yum 1>/dev/null || which dnf 1>/dev/null; then + OS=redhat + else + echo "Linux distro not yet supported" + exit 1 + fi + fi + ;; + *) + echo "Unsupported OS" + exit 1 + ;; +esac + +case $OS in + darwin) + if which brew 1>/dev/null; then + if ! which glide 1>/dev/null; then + brew install glide + fi + else + echo "Homebrew not found, install Glide from source?" + fi + ;; + xenial) + APT_GET="DEBIAN_FRONTEND=noninteractive \ + apt-get -q --option "Dpkg::Options::=--force-confold" \ + --assume-yes" + if ! which add-apt-repository 1>/dev/null; then + sudo $APT_GET install software-properties-common + fi + sudo add-apt-repository --yes ppa:masterminds/glide && sudo apt-get update + sudo $APT_GET install glide + ;; +esac