Merge pull request #72038 from bowei/change-gce-cloud-provider
Change gce cloud provider
This commit is contained in:
commit
00ca6939cb
20
Godeps/Godeps.json
generated
20
Godeps/Godeps.json
generated
@ -119,6 +119,26 @@
|
|||||||
"ImportPath": "github.com/GeertJohan/go.rice/embedded",
|
"ImportPath": "github.com/GeertJohan/go.rice/embedded",
|
||||||
"Rev": "c02ca9a983da5807ddf7d796784928f5be4afd09"
|
"Rev": "c02ca9a983da5807ddf7d796784928f5be4afd09"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud",
|
||||||
|
"Comment": "1.2.0",
|
||||||
|
"Rev": "773c7a284e1399960745d0e2c501f577a20d4947"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter",
|
||||||
|
"Comment": "1.2.0",
|
||||||
|
"Rev": "773c7a284e1399960745d0e2c501f577a20d4947"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta",
|
||||||
|
"Comment": "1.2.0",
|
||||||
|
"Rev": "773c7a284e1399960745d0e2c501f577a20d4947"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock",
|
||||||
|
"Comment": "1.2.0",
|
||||||
|
"Rev": "773c7a284e1399960745d0e2c501f577a20d4947"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/JeffAshton/win_pdh",
|
"ImportPath": "github.com/JeffAshton/win_pdh",
|
||||||
"Rev": "76bb4ee9f0ab50f77826f2a2ee7fb9d3880d6ec2"
|
"Rev": "76bb4ee9f0ab50f77826f2a2ee7fb9d3880d6ec2"
|
||||||
|
840
Godeps/LICENSES
generated
840
Godeps/LICENSES
generated
@ -61242,6 +61242,846 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
= vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud licensed under: =
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
= vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/LICENSE 3b83ef96387f14655fc854ddc3c6bd57
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
= vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter licensed under: =
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
= vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/LICENSE 3b83ef96387f14655fc854ddc3c6bd57
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
= vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta licensed under: =
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
= vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/LICENSE 3b83ef96387f14655fc854ddc3c6bd57
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
= vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock licensed under: =
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
= vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/LICENSE 3b83ef96387f14655fc854ddc3c6bd57
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
= vendor/github.com/gophercloud/gophercloud licensed under: =
|
= vendor/github.com/gophercloud/gophercloud licensed under: =
|
||||||
|
|
||||||
|
@ -87,7 +87,6 @@ pkg/apis/storage/v1beta1/util
|
|||||||
pkg/auth/authorizer/abac
|
pkg/auth/authorizer/abac
|
||||||
pkg/capabilities
|
pkg/capabilities
|
||||||
pkg/cloudprovider/providers/fake
|
pkg/cloudprovider/providers/fake
|
||||||
pkg/cloudprovider/providers/gce/cloud
|
|
||||||
pkg/cloudprovider/providers/photon
|
pkg/cloudprovider/providers/photon
|
||||||
pkg/cloudprovider/providers/vsphere
|
pkg/cloudprovider/providers/vsphere
|
||||||
pkg/cloudprovider/providers/vsphere/vclib
|
pkg/cloudprovider/providers/vsphere/vclib
|
||||||
|
@ -1,38 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Copyright 2018 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.
|
|
||||||
|
|
||||||
set -o errexit
|
|
||||||
set -o nounset
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
|
||||||
source "${KUBE_ROOT}/hack/lib/init.sh"
|
|
||||||
GENERATOR="${KUBE_ROOT}/pkg/cloudprovider/providers/gce/cloud/gen/main.go"
|
|
||||||
|
|
||||||
GEN_GO="${KUBE_ROOT}/pkg/cloudprovider/providers/gce/cloud/gen.go"
|
|
||||||
GEN_TEST_GO="${KUBE_ROOT}/pkg/cloudprovider/providers/gce/cloud/gen_test.go"
|
|
||||||
|
|
||||||
kube::golang::setup_env
|
|
||||||
|
|
||||||
TMPFILE=$(mktemp verify-cloudprovider-gce-XXXX)
|
|
||||||
trap "{ rm -f ${TMPFILE}; }" EXIT
|
|
||||||
|
|
||||||
go run "${GENERATOR}" > ${TMPFILE}
|
|
||||||
mv "${TMPFILE}" "${GEN_GO}"
|
|
||||||
go run "${GENERATOR}" -mode test > ${TMPFILE}
|
|
||||||
mv "${TMPFILE}" "${GEN_TEST_GO}"
|
|
||||||
|
|
||||||
exit 0
|
|
@ -1,49 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Copyright 2018 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.
|
|
||||||
|
|
||||||
set -o errexit
|
|
||||||
set -o nounset
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
|
||||||
source "${KUBE_ROOT}/hack/lib/init.sh"
|
|
||||||
GENERATOR="${KUBE_ROOT}/pkg/cloudprovider/providers/gce/cloud/gen/main.go"
|
|
||||||
|
|
||||||
GEN_GO="${KUBE_ROOT}/pkg/cloudprovider/providers/gce/cloud/gen.go"
|
|
||||||
GEN_TEST_GO="${KUBE_ROOT}/pkg/cloudprovider/providers/gce/cloud/gen_test.go"
|
|
||||||
|
|
||||||
kube::golang::setup_env
|
|
||||||
|
|
||||||
TMPFILE=$(mktemp verify-cloudprovider-gce-XXXX)
|
|
||||||
trap "{ rm -f ${TMPFILE}; }" EXIT
|
|
||||||
|
|
||||||
go run "${GENERATOR}" > ${TMPFILE}
|
|
||||||
if ! diff "${TMPFILE}" "${GEN_GO}"; then
|
|
||||||
echo "Generated file ${GEN_GO} needs to be updated (run hack/update-cloudprovider-gce.sh)"
|
|
||||||
echo
|
|
||||||
diff -u "${TMPFILE}" "${GEN_GO}" || true
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
go run "${GENERATOR}" -mode test > ${TMPFILE}
|
|
||||||
if ! diff "${TMPFILE}" "${GEN_TEST_GO}"; then
|
|
||||||
echo "Generated file ${GEN_TEST_GO} needs to be updated (run hack/update-cloudprovider-gce.sh)"
|
|
||||||
echo
|
|
||||||
diff -u "${TMPFILE}" "${GEN_TEST_GO}" || true
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0
|
|
@ -47,10 +47,6 @@ go_library(
|
|||||||
importpath = "k8s.io/kubernetes/pkg/cloudprovider/providers/gce",
|
importpath = "k8s.io/kubernetes/pkg/cloudprovider/providers/gce",
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/api/v1/service:go_default_library",
|
"//pkg/api/v1/service:go_default_library",
|
||||||
"//pkg/cloudprovider/providers/gce/cloud:go_default_library",
|
|
||||||
"//pkg/cloudprovider/providers/gce/cloud/filter:go_default_library",
|
|
||||||
"//pkg/cloudprovider/providers/gce/cloud/meta:go_default_library",
|
|
||||||
"//pkg/cloudprovider/providers/gce/cloud/mock:go_default_library",
|
|
||||||
"//pkg/controller:go_default_library",
|
"//pkg/controller:go_default_library",
|
||||||
"//pkg/features:go_default_library",
|
"//pkg/features:go_default_library",
|
||||||
"//pkg/kubelet/apis:go_default_library",
|
"//pkg/kubelet/apis:go_default_library",
|
||||||
@ -80,6 +76,10 @@ go_library(
|
|||||||
"//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library",
|
"//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library",
|
||||||
"//staging/src/k8s.io/cloud-provider:go_default_library",
|
"//staging/src/k8s.io/cloud-provider:go_default_library",
|
||||||
"//vendor/cloud.google.com/go/compute/metadata:go_default_library",
|
"//vendor/cloud.google.com/go/compute/metadata:go_default_library",
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud:go_default_library",
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter:go_default_library",
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta:go_default_library",
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock:go_default_library",
|
||||||
"//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
|
"//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
|
||||||
"//vendor/golang.org/x/oauth2:go_default_library",
|
"//vendor/golang.org/x/oauth2:go_default_library",
|
||||||
"//vendor/golang.org/x/oauth2/google:go_default_library",
|
"//vendor/golang.org/x/oauth2/google:go_default_library",
|
||||||
@ -112,9 +112,6 @@ go_test(
|
|||||||
embed = [":go_default_library"],
|
embed = [":go_default_library"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/api/v1/service:go_default_library",
|
"//pkg/api/v1/service:go_default_library",
|
||||||
"//pkg/cloudprovider/providers/gce/cloud:go_default_library",
|
|
||||||
"//pkg/cloudprovider/providers/gce/cloud/meta:go_default_library",
|
|
||||||
"//pkg/cloudprovider/providers/gce/cloud/mock:go_default_library",
|
|
||||||
"//pkg/kubelet/apis:go_default_library",
|
"//pkg/kubelet/apis:go_default_library",
|
||||||
"//pkg/util/net/sets:go_default_library",
|
"//pkg/util/net/sets:go_default_library",
|
||||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
@ -123,6 +120,9 @@ go_test(
|
|||||||
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/tools/record:go_default_library",
|
"//staging/src/k8s.io/client-go/tools/record:go_default_library",
|
||||||
"//staging/src/k8s.io/cloud-provider:go_default_library",
|
"//staging/src/k8s.io/cloud-provider:go_default_library",
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud:go_default_library",
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta:go_default_library",
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock:go_default_library",
|
||||||
"//vendor/github.com/stretchr/testify/assert:go_default_library",
|
"//vendor/github.com/stretchr/testify/assert:go_default_library",
|
||||||
"//vendor/github.com/stretchr/testify/require:go_default_library",
|
"//vendor/github.com/stretchr/testify/require:go_default_library",
|
||||||
"//vendor/golang.org/x/oauth2/google:go_default_library",
|
"//vendor/golang.org/x/oauth2/google:go_default_library",
|
||||||
@ -142,9 +142,6 @@ filegroup(
|
|||||||
|
|
||||||
filegroup(
|
filegroup(
|
||||||
name = "all-srcs",
|
name = "all-srcs",
|
||||||
srcs = [
|
srcs = [":package-srcs"],
|
||||||
":package-srcs",
|
|
||||||
"//pkg/cloudprovider/providers/gce/cloud:all-srcs",
|
|
||||||
],
|
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
)
|
)
|
||||||
|
@ -1,67 +0,0 @@
|
|||||||
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
|
|
||||||
|
|
||||||
go_library(
|
|
||||||
name = "go_default_library",
|
|
||||||
srcs = [
|
|
||||||
"constants.go",
|
|
||||||
"context.go",
|
|
||||||
"doc.go",
|
|
||||||
"gce_projects.go",
|
|
||||||
"gen.go",
|
|
||||||
"op.go",
|
|
||||||
"project.go",
|
|
||||||
"ratelimit.go",
|
|
||||||
"service.go",
|
|
||||||
"utils.go",
|
|
||||||
],
|
|
||||||
importpath = "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud",
|
|
||||||
visibility = ["//visibility:public"],
|
|
||||||
deps = [
|
|
||||||
"//pkg/cloudprovider/providers/gce/cloud/filter:go_default_library",
|
|
||||||
"//pkg/cloudprovider/providers/gce/cloud/meta:go_default_library",
|
|
||||||
"//vendor/google.golang.org/api/compute/v0.alpha:go_default_library",
|
|
||||||
"//vendor/google.golang.org/api/compute/v0.beta:go_default_library",
|
|
||||||
"//vendor/google.golang.org/api/compute/v1:go_default_library",
|
|
||||||
"//vendor/google.golang.org/api/googleapi:go_default_library",
|
|
||||||
"//vendor/k8s.io/klog:go_default_library",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
go_test(
|
|
||||||
name = "go_default_test",
|
|
||||||
srcs = [
|
|
||||||
"gen_test.go",
|
|
||||||
"mock_test.go",
|
|
||||||
"ratelimit_test.go",
|
|
||||||
"service_test.go",
|
|
||||||
"utils_test.go",
|
|
||||||
],
|
|
||||||
embed = [":go_default_library"],
|
|
||||||
deps = [
|
|
||||||
"//pkg/cloudprovider/providers/gce/cloud/filter:go_default_library",
|
|
||||||
"//pkg/cloudprovider/providers/gce/cloud/meta:go_default_library",
|
|
||||||
"//vendor/google.golang.org/api/compute/v0.alpha:go_default_library",
|
|
||||||
"//vendor/google.golang.org/api/compute/v0.beta:go_default_library",
|
|
||||||
"//vendor/google.golang.org/api/compute/v1:go_default_library",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
filegroup(
|
|
||||||
name = "package-srcs",
|
|
||||||
srcs = glob(["**"]),
|
|
||||||
tags = ["automanaged"],
|
|
||||||
visibility = ["//visibility:private"],
|
|
||||||
)
|
|
||||||
|
|
||||||
filegroup(
|
|
||||||
name = "all-srcs",
|
|
||||||
srcs = [
|
|
||||||
":package-srcs",
|
|
||||||
"//pkg/cloudprovider/providers/gce/cloud/filter:all-srcs",
|
|
||||||
"//pkg/cloudprovider/providers/gce/cloud/gen:all-srcs",
|
|
||||||
"//pkg/cloudprovider/providers/gce/cloud/meta:all-srcs",
|
|
||||||
"//pkg/cloudprovider/providers/gce/cloud/mock:all-srcs",
|
|
||||||
],
|
|
||||||
tags = ["automanaged"],
|
|
||||||
visibility = ["//visibility:public"],
|
|
||||||
)
|
|
@ -1,176 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2017 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package filter
|
|
||||||
|
|
||||||
import (
|
|
||||||
"reflect"
|
|
||||||
"testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestFilterToString(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
for _, tc := range []struct {
|
|
||||||
f *F
|
|
||||||
want string
|
|
||||||
}{
|
|
||||||
{Regexp("field1", "abc"), `field1 eq abc`},
|
|
||||||
{NotRegexp("field1", "abc"), `field1 ne abc`},
|
|
||||||
{EqualInt("field1", 13), "field1 eq 13"},
|
|
||||||
{NotEqualInt("field1", 13), "field1 ne 13"},
|
|
||||||
{EqualBool("field1", true), "field1 eq true"},
|
|
||||||
{NotEqualBool("field1", true), "field1 ne true"},
|
|
||||||
{Regexp("field1", "abc").AndRegexp("field2", "def"), `(field1 eq abc) (field2 eq def)`},
|
|
||||||
{Regexp("field1", "abc").AndNotEqualInt("field2", 17), `(field1 eq abc) (field2 ne 17)`},
|
|
||||||
{Regexp("field1", "abc").And(EqualInt("field2", 17)), `(field1 eq abc) (field2 eq 17)`},
|
|
||||||
} {
|
|
||||||
if tc.f.String() != tc.want {
|
|
||||||
t.Errorf("filter %#v String() = %q, want %q", tc.f, tc.f.String(), tc.want)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestFilterMatch(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
type inner struct {
|
|
||||||
X string
|
|
||||||
}
|
|
||||||
type S struct {
|
|
||||||
S string
|
|
||||||
I int
|
|
||||||
B bool
|
|
||||||
Unhandled struct{}
|
|
||||||
NestedField *inner
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, tc := range []struct {
|
|
||||||
f *F
|
|
||||||
o interface{}
|
|
||||||
want bool
|
|
||||||
}{
|
|
||||||
{f: None, o: &S{}, want: true},
|
|
||||||
{f: Regexp("s", "abc"), o: &S{}},
|
|
||||||
{f: EqualInt("i", 10), o: &S{}},
|
|
||||||
{f: EqualBool("b", true), o: &S{}},
|
|
||||||
{f: NotRegexp("s", "abc"), o: &S{}, want: true},
|
|
||||||
{f: NotEqualInt("i", 10), o: &S{}, want: true},
|
|
||||||
{f: NotEqualBool("b", true), o: &S{}, want: true},
|
|
||||||
{f: Regexp("s", "abc").AndEqualBool("b", true), o: &S{}},
|
|
||||||
{f: Regexp("s", "abc"), o: &S{S: "abc"}, want: true},
|
|
||||||
{f: Regexp("s", "a.*"), o: &S{S: "abc"}, want: true},
|
|
||||||
{f: Regexp("s", "a((("), o: &S{S: "abc"}},
|
|
||||||
{f: NotRegexp("s", "abc"), o: &S{S: "abc"}},
|
|
||||||
{f: EqualInt("i", 10), o: &S{I: 11}},
|
|
||||||
{f: EqualInt("i", 10), o: &S{I: 10}, want: true},
|
|
||||||
{f: Regexp("s", "abc").AndEqualBool("b", true), o: &S{S: "abc"}},
|
|
||||||
{f: Regexp("s", "abcd").AndEqualBool("b", true), o: &S{S: "abc"}},
|
|
||||||
{f: Regexp("s", "abc").AndEqualBool("b", true), o: &S{S: "abc", B: true}, want: true},
|
|
||||||
{f: Regexp("s", "abc").And(EqualBool("b", true)), o: &S{S: "abc", B: true}, want: true},
|
|
||||||
{f: Regexp("unhandled", "xyz"), o: &S{}},
|
|
||||||
{f: Regexp("nested_field.x", "xyz"), o: &S{}},
|
|
||||||
{f: Regexp("nested_field.x", "xyz"), o: &S{NestedField: &inner{"xyz"}}, want: true},
|
|
||||||
{f: NotRegexp("nested_field.x", "xyz"), o: &S{NestedField: &inner{"xyz"}}},
|
|
||||||
{f: Regexp("nested_field.y", "xyz"), o: &S{NestedField: &inner{"xyz"}}},
|
|
||||||
{f: Regexp("nested_field", "xyz"), o: &S{NestedField: &inner{"xyz"}}},
|
|
||||||
} {
|
|
||||||
got := tc.f.Match(tc.o)
|
|
||||||
if got != tc.want {
|
|
||||||
t.Errorf("%v: Match(%+v) = %v, want %v", tc.f, tc.o, got, tc.want)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestFilterSnakeToCamelCase(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
for _, tc := range []struct {
|
|
||||||
s string
|
|
||||||
want string
|
|
||||||
}{
|
|
||||||
{"", ""},
|
|
||||||
{"abc", "Abc"},
|
|
||||||
{"_foo", "Foo"},
|
|
||||||
{"a_b_c", "ABC"},
|
|
||||||
{"a_BC_def", "ABCDef"},
|
|
||||||
{"a_Bc_def", "ABcDef"},
|
|
||||||
} {
|
|
||||||
got := snakeToCamelCase(tc.s)
|
|
||||||
if got != tc.want {
|
|
||||||
t.Errorf("snakeToCamelCase(%q) = %q, want %q", tc.s, got, tc.want)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestFilterExtractValue(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
type nest2 struct {
|
|
||||||
Y string
|
|
||||||
}
|
|
||||||
type nest struct {
|
|
||||||
X string
|
|
||||||
Nest2 nest2
|
|
||||||
}
|
|
||||||
st := &struct {
|
|
||||||
S string
|
|
||||||
I int
|
|
||||||
F bool
|
|
||||||
Nest nest
|
|
||||||
NestPtr *nest
|
|
||||||
|
|
||||||
Unhandled float64
|
|
||||||
}{
|
|
||||||
"abc",
|
|
||||||
13,
|
|
||||||
true,
|
|
||||||
nest{"xyz", nest2{"zzz"}},
|
|
||||||
&nest{"yyy", nest2{}},
|
|
||||||
0.0,
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, tc := range []struct {
|
|
||||||
path string
|
|
||||||
o interface{}
|
|
||||||
want interface{}
|
|
||||||
wantErr bool
|
|
||||||
}{
|
|
||||||
{path: "s", o: st, want: "abc"},
|
|
||||||
{path: "i", o: st, want: 13},
|
|
||||||
{path: "f", o: st, want: true},
|
|
||||||
{path: "nest.x", o: st, want: "xyz"},
|
|
||||||
{path: "nest_ptr.x", o: st, want: "yyy"},
|
|
||||||
// Error cases.
|
|
||||||
{path: "", o: st, wantErr: true},
|
|
||||||
{path: "no_such_field", o: st, wantErr: true},
|
|
||||||
{path: "s.invalid_type", o: st, wantErr: true},
|
|
||||||
{path: "unhandled", o: st, wantErr: true},
|
|
||||||
{path: "nest.x", o: &struct{ Nest *nest }{}, wantErr: true},
|
|
||||||
} {
|
|
||||||
o, err := extractValue(tc.path, tc.o)
|
|
||||||
gotErr := err != nil
|
|
||||||
if gotErr != tc.wantErr {
|
|
||||||
t.Errorf("extractValue(%v, %+v) = %v, %v; gotErr = %v, tc.wantErr = %v", tc.path, tc.o, o, err, gotErr, tc.wantErr)
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if !reflect.DeepEqual(o, tc.want) {
|
|
||||||
t.Errorf("extractValue(%v, %+v) = %v, nil; want %v, nil", tc.path, tc.o, o, tc.want)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
|
|
||||||
|
|
||||||
go_library(
|
|
||||||
name = "go_default_library",
|
|
||||||
srcs = ["main.go"],
|
|
||||||
importpath = "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/gen",
|
|
||||||
visibility = ["//visibility:private"],
|
|
||||||
deps = ["//pkg/cloudprovider/providers/gce/cloud/meta:go_default_library"],
|
|
||||||
)
|
|
||||||
|
|
||||||
go_binary(
|
|
||||||
name = "gen",
|
|
||||||
embed = [":go_default_library"],
|
|
||||||
visibility = ["//visibility:public"],
|
|
||||||
)
|
|
||||||
|
|
||||||
filegroup(
|
|
||||||
name = "package-srcs",
|
|
||||||
srcs = glob(["**"]),
|
|
||||||
tags = ["automanaged"],
|
|
||||||
visibility = ["//visibility:private"],
|
|
||||||
)
|
|
||||||
|
|
||||||
filegroup(
|
|
||||||
name = "all-srcs",
|
|
||||||
srcs = [":package-srcs"],
|
|
||||||
tags = ["automanaged"],
|
|
||||||
visibility = ["//visibility:public"],
|
|
||||||
)
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,76 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2017 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package meta
|
|
||||||
|
|
||||||
import (
|
|
||||||
"testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestKeyType(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
for _, tc := range []struct {
|
|
||||||
key *Key
|
|
||||||
want KeyType
|
|
||||||
}{
|
|
||||||
{GlobalKey("abc"), Global},
|
|
||||||
{ZonalKey("abc", "us-central1-b"), Zonal},
|
|
||||||
{RegionalKey("abc", "us-central1"), Regional},
|
|
||||||
} {
|
|
||||||
if tc.key.Type() != tc.want {
|
|
||||||
t.Errorf("key.Type() == %v, want %v", tc.key.Type(), tc.want)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestKeyString(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
for _, k := range []*Key{
|
|
||||||
GlobalKey("abc"),
|
|
||||||
RegionalKey("abc", "us-central1"),
|
|
||||||
ZonalKey("abc", "us-central1-b"),
|
|
||||||
} {
|
|
||||||
if k.String() == "" {
|
|
||||||
t.Errorf(`k.String() = "", want non-empty`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestKeyValid(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
region := "us-central1"
|
|
||||||
zone := "us-central1-b"
|
|
||||||
|
|
||||||
for _, tc := range []struct {
|
|
||||||
key *Key
|
|
||||||
want bool
|
|
||||||
}{
|
|
||||||
{GlobalKey("abc"), true},
|
|
||||||
{RegionalKey("abc", region), true},
|
|
||||||
{ZonalKey("abc", zone), true},
|
|
||||||
{RegionalKey("abc", "/invalid/"), false},
|
|
||||||
{ZonalKey("abc", "/invalid/"), false},
|
|
||||||
{&Key{"abc", zone, region}, false},
|
|
||||||
} {
|
|
||||||
got := tc.key.Valid()
|
|
||||||
if got != tc.want {
|
|
||||||
t.Errorf("key %+v; key.Valid() = %v, want %v", tc.key, got, tc.want)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,151 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2017 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package cloud
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"reflect"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
alpha "google.golang.org/api/compute/v0.alpha"
|
|
||||||
beta "google.golang.org/api/compute/v0.beta"
|
|
||||||
ga "google.golang.org/api/compute/v1"
|
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestMocks(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
// This test uses Addresses, but the logic that is generated is the same for
|
|
||||||
// other basic objects.
|
|
||||||
const region = "us-central1"
|
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
pr := &SingleProjectRouter{"mock-project"}
|
|
||||||
mock := NewMockGCE(pr)
|
|
||||||
|
|
||||||
keyAlpha := meta.RegionalKey("key-alpha", region)
|
|
||||||
keyBeta := meta.RegionalKey("key-beta", region)
|
|
||||||
keyGA := meta.RegionalKey("key-ga", region)
|
|
||||||
key := keyAlpha
|
|
||||||
|
|
||||||
// Get not found.
|
|
||||||
if _, err := mock.AlphaAddresses().Get(ctx, key); err == nil {
|
|
||||||
t.Errorf("AlphaAddresses().Get(%v, %v) = _, nil; want error", ctx, key)
|
|
||||||
}
|
|
||||||
if _, err := mock.BetaAddresses().Get(ctx, key); err == nil {
|
|
||||||
t.Errorf("BetaAddresses().Get(%v, %v) = _, nil; want error", ctx, key)
|
|
||||||
}
|
|
||||||
if _, err := mock.Addresses().Get(ctx, key); err == nil {
|
|
||||||
t.Errorf("Addresses().Get(%v, %v) = _, nil; want error", ctx, key)
|
|
||||||
}
|
|
||||||
// Insert.
|
|
||||||
{
|
|
||||||
obj := &alpha.Address{}
|
|
||||||
if err := mock.AlphaAddresses().Insert(ctx, keyAlpha, obj); err != nil {
|
|
||||||
t.Errorf("AlphaAddresses().Insert(%v, %v, %v) = %v; want nil", ctx, key, obj, err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{
|
|
||||||
obj := &beta.Address{}
|
|
||||||
if err := mock.BetaAddresses().Insert(ctx, keyBeta, obj); err != nil {
|
|
||||||
t.Errorf("BetaAddresses().Insert(%v, %v, %v) = %v; want nil", ctx, key, obj, err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{
|
|
||||||
obj := &ga.Address{}
|
|
||||||
if err := mock.Addresses().Insert(ctx, keyGA, &ga.Address{Name: "ga"}); err != nil {
|
|
||||||
t.Errorf("Addresses().Insert(%v, %v, %v) = %v; want nil", ctx, key, obj, err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get across versions.
|
|
||||||
if obj, err := mock.AlphaAddresses().Get(ctx, key); err != nil {
|
|
||||||
t.Errorf("AlphaAddresses().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
|
|
||||||
}
|
|
||||||
if obj, err := mock.BetaAddresses().Get(ctx, key); err != nil {
|
|
||||||
t.Errorf("BetaAddresses().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
|
|
||||||
}
|
|
||||||
if obj, err := mock.Addresses().Get(ctx, key); err != nil {
|
|
||||||
t.Errorf("Addresses().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
|
|
||||||
}
|
|
||||||
// List across versions.
|
|
||||||
want := map[string]bool{"key-alpha": true, "key-beta": true, "key-ga": true}
|
|
||||||
{
|
|
||||||
objs, err := mock.AlphaAddresses().List(ctx, region, filter.None)
|
|
||||||
if err != nil {
|
|
||||||
t.Errorf("AlphaAddresses().List(%v, %v, %v) = %v, %v; want _, nil", ctx, region, filter.None, objs, err)
|
|
||||||
} else {
|
|
||||||
got := map[string]bool{}
|
|
||||||
for _, obj := range objs {
|
|
||||||
got[obj.Name] = true
|
|
||||||
}
|
|
||||||
if !reflect.DeepEqual(got, want) {
|
|
||||||
t.Errorf("AlphaAddresses().List(); got %+v, want %+v", got, want)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{
|
|
||||||
objs, err := mock.BetaAddresses().List(ctx, region, filter.None)
|
|
||||||
if err != nil {
|
|
||||||
t.Errorf("BetaAddresses().List(%v, %v, %v) = %v, %v; want _, nil", ctx, region, filter.None, objs, err)
|
|
||||||
} else {
|
|
||||||
got := map[string]bool{}
|
|
||||||
for _, obj := range objs {
|
|
||||||
got[obj.Name] = true
|
|
||||||
}
|
|
||||||
if !reflect.DeepEqual(got, want) {
|
|
||||||
t.Errorf("AlphaAddresses().List(); got %+v, want %+v", got, want)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{
|
|
||||||
objs, err := mock.Addresses().List(ctx, region, filter.None)
|
|
||||||
if err != nil {
|
|
||||||
t.Errorf("Addresses().List(%v, %v, %v) = %v, %v; want _, nil", ctx, region, filter.None, objs, err)
|
|
||||||
} else {
|
|
||||||
got := map[string]bool{}
|
|
||||||
for _, obj := range objs {
|
|
||||||
got[obj.Name] = true
|
|
||||||
}
|
|
||||||
if !reflect.DeepEqual(got, want) {
|
|
||||||
t.Errorf("AlphaAddresses().List(); got %+v, want %+v", got, want)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Delete across versions.
|
|
||||||
if err := mock.AlphaAddresses().Delete(ctx, keyAlpha); err != nil {
|
|
||||||
t.Errorf("AlphaAddresses().Delete(%v, %v) = %v; want nil", ctx, key, err)
|
|
||||||
}
|
|
||||||
if err := mock.BetaAddresses().Delete(ctx, keyBeta); err != nil {
|
|
||||||
t.Errorf("BetaAddresses().Delete(%v, %v) = %v; want nil", ctx, key, err)
|
|
||||||
}
|
|
||||||
if err := mock.Addresses().Delete(ctx, keyGA); err != nil {
|
|
||||||
t.Errorf("Addresses().Delete(%v, %v) = %v; want nil", ctx, key, err)
|
|
||||||
}
|
|
||||||
// Delete not found.
|
|
||||||
if err := mock.AlphaAddresses().Delete(ctx, keyAlpha); err == nil {
|
|
||||||
t.Errorf("AlphaAddresses().Delete(%v, %v) = nil; want error", ctx, key)
|
|
||||||
}
|
|
||||||
if err := mock.BetaAddresses().Delete(ctx, keyBeta); err == nil {
|
|
||||||
t.Errorf("BetaAddresses().Delete(%v, %v) = nil; want error", ctx, key)
|
|
||||||
}
|
|
||||||
if err := mock.Addresses().Delete(ctx, keyGA); err == nil {
|
|
||||||
t.Errorf("Addresses().Delete(%v, %v) = nil; want error", ctx, key)
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,80 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2018 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package cloud
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"testing"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
type FakeAcceptor struct{ accept func() }
|
|
||||||
|
|
||||||
func (f *FakeAcceptor) Accept() {
|
|
||||||
f.accept()
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestAcceptRateLimiter(t *testing.T) {
|
|
||||||
fa := &FakeAcceptor{accept: func() {}}
|
|
||||||
arl := &AcceptRateLimiter{fa}
|
|
||||||
err := arl.Accept(context.Background(), nil)
|
|
||||||
if err != nil {
|
|
||||||
t.Errorf("AcceptRateLimiter.Accept() = %v, want nil", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Use context that has been cancelled and expect a context error returned.
|
|
||||||
ctxCancelled, cancelled := context.WithCancel(context.Background())
|
|
||||||
cancelled()
|
|
||||||
// Verify context is cancelled by now.
|
|
||||||
<-ctxCancelled.Done()
|
|
||||||
|
|
||||||
fa.accept = func() { time.Sleep(1 * time.Second) }
|
|
||||||
err = arl.Accept(ctxCancelled, nil)
|
|
||||||
if err != ctxCancelled.Err() {
|
|
||||||
t.Errorf("AcceptRateLimiter.Accept() = %v, want %v", err, ctxCancelled.Err())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestMinimumRateLimiter(t *testing.T) {
|
|
||||||
fa := &FakeAcceptor{accept: func() {}}
|
|
||||||
arl := &AcceptRateLimiter{fa}
|
|
||||||
var called bool
|
|
||||||
fa.accept = func() { called = true }
|
|
||||||
m := &MinimumRateLimiter{RateLimiter: arl, Minimum: 10 * time.Millisecond}
|
|
||||||
|
|
||||||
err := m.Accept(context.Background(), nil)
|
|
||||||
if err != nil {
|
|
||||||
t.Errorf("MinimumRateLimiter.Accept = %v, want nil", err)
|
|
||||||
}
|
|
||||||
if !called {
|
|
||||||
t.Errorf("`called` = false, want true")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Use context that has been cancelled and expect a context error returned.
|
|
||||||
ctxCancelled, cancelled := context.WithCancel(context.Background())
|
|
||||||
cancelled()
|
|
||||||
// Verify context is cancelled by now.
|
|
||||||
<-ctxCancelled.Done()
|
|
||||||
called = false
|
|
||||||
err = m.Accept(ctxCancelled, nil)
|
|
||||||
if err != ctxCancelled.Err() {
|
|
||||||
t.Errorf("AcceptRateLimiter.Accept() = %v, want %v", err, ctxCancelled.Err())
|
|
||||||
}
|
|
||||||
if called {
|
|
||||||
t.Errorf("`called` = true, want false")
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,84 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2018 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package cloud
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"fmt"
|
|
||||||
"testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestPollOperation(t *testing.T) {
|
|
||||||
const totalAttempts = 10
|
|
||||||
var attempts int
|
|
||||||
fo := &fakeOperation{isDoneFunc: func(ctx context.Context) (bool, error) {
|
|
||||||
attempts++
|
|
||||||
if attempts < totalAttempts {
|
|
||||||
return false, nil
|
|
||||||
}
|
|
||||||
return true, nil
|
|
||||||
}}
|
|
||||||
s := Service{RateLimiter: &NopRateLimiter{}}
|
|
||||||
// Check that pollOperation will retry the operation multiple times.
|
|
||||||
err := s.pollOperation(context.Background(), fo)
|
|
||||||
if err != nil {
|
|
||||||
t.Errorf("pollOperation() = %v, want nil", err)
|
|
||||||
}
|
|
||||||
if attempts != totalAttempts {
|
|
||||||
t.Errorf("`attempts` = %d, want %d", attempts, totalAttempts)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check that the operation's error is returned.
|
|
||||||
fo.err = fmt.Errorf("test operation failed")
|
|
||||||
err = s.pollOperation(context.Background(), fo)
|
|
||||||
if err != fo.err {
|
|
||||||
t.Errorf("pollOperation() = %v, want %v", err, fo.err)
|
|
||||||
}
|
|
||||||
fo.err = nil
|
|
||||||
|
|
||||||
fo.isDoneFunc = func(ctx context.Context) (bool, error) {
|
|
||||||
return false, nil
|
|
||||||
}
|
|
||||||
// Use context that has been cancelled and expect a context error returned.
|
|
||||||
ctxCancelled, cancelled := context.WithCancel(context.Background())
|
|
||||||
cancelled()
|
|
||||||
// Verify context is cancelled by now.
|
|
||||||
<-ctxCancelled.Done()
|
|
||||||
// Check that pollOperation returns because the context is cancelled.
|
|
||||||
err = s.pollOperation(ctxCancelled, fo)
|
|
||||||
if err == nil {
|
|
||||||
t.Errorf("pollOperation() = nil, want: %v", ctxCancelled.Err())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
type fakeOperation struct {
|
|
||||||
isDoneFunc func(ctx context.Context) (bool, error)
|
|
||||||
err error
|
|
||||||
rateKey *RateLimitKey
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeOperation) isDone(ctx context.Context) (bool, error) {
|
|
||||||
return f.isDoneFunc(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeOperation) error() error {
|
|
||||||
return f.err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeOperation) rateLimitKey() *RateLimitKey {
|
|
||||||
return f.rateKey
|
|
||||||
}
|
|
@ -1,291 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2017 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package cloud
|
|
||||||
|
|
||||||
import (
|
|
||||||
"errors"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestEqualResourceID(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
for _, tc := range []struct {
|
|
||||||
a *ResourceID
|
|
||||||
b *ResourceID
|
|
||||||
}{
|
|
||||||
{
|
|
||||||
a: &ResourceID{"some-gce-project", "projects", nil},
|
|
||||||
b: &ResourceID{"some-gce-project", "projects", nil},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
a: &ResourceID{"", "networks", meta.GlobalKey("my-net")},
|
|
||||||
b: &ResourceID{"", "networks", meta.GlobalKey("my-net")},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
a: &ResourceID{"some-gce-project", "projects", meta.GlobalKey("us-central1")},
|
|
||||||
b: &ResourceID{"some-gce-project", "projects", meta.GlobalKey("us-central1")},
|
|
||||||
},
|
|
||||||
} {
|
|
||||||
if !tc.a.Equal(tc.b) {
|
|
||||||
t.Errorf("%v.Equal(%v) = false, want true", tc.a, tc.b)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, tc := range []struct {
|
|
||||||
a *ResourceID
|
|
||||||
b *ResourceID
|
|
||||||
}{
|
|
||||||
{
|
|
||||||
a: &ResourceID{"some-gce-project", "projects", nil},
|
|
||||||
b: &ResourceID{"some-other-project", "projects", nil},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
a: &ResourceID{"some-gce-project", "projects", nil},
|
|
||||||
b: &ResourceID{"some-gce-project", "projects", meta.GlobalKey("us-central1")},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
a: &ResourceID{"some-gce-project", "networks", meta.GlobalKey("us-central1")},
|
|
||||||
b: &ResourceID{"some-gce-project", "projects", meta.GlobalKey("us-central1")},
|
|
||||||
},
|
|
||||||
} {
|
|
||||||
if tc.a.Equal(tc.b) {
|
|
||||||
t.Errorf("%v.Equal(%v) = true, want false", tc.a, tc.b)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestParseResourceURL(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
for _, tc := range []struct {
|
|
||||||
in string
|
|
||||||
r *ResourceID
|
|
||||||
}{
|
|
||||||
{
|
|
||||||
"https://www.googleapis.com/compute/v1/projects/some-gce-project",
|
|
||||||
&ResourceID{"some-gce-project", "projects", nil},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"https://www.googleapis.com/compute/v1/projects/some-gce-project/regions/us-central1",
|
|
||||||
&ResourceID{"some-gce-project", "regions", meta.GlobalKey("us-central1")},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"https://www.googleapis.com/compute/v1/projects/some-gce-project/zones/us-central1-b",
|
|
||||||
&ResourceID{"some-gce-project", "zones", meta.GlobalKey("us-central1-b")},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"https://www.googleapis.com/compute/v1/projects/some-gce-project/global/operations/operation-1513289952196-56054460af5a0-b1dae0c3-9bbf9dbf",
|
|
||||||
&ResourceID{"some-gce-project", "operations", meta.GlobalKey("operation-1513289952196-56054460af5a0-b1dae0c3-9bbf9dbf")},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"https://www.googleapis.com/compute/alpha/projects/some-gce-project/regions/us-central1/addresses/my-address",
|
|
||||||
&ResourceID{"some-gce-project", "addresses", meta.RegionalKey("my-address", "us-central1")},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"https://www.googleapis.com/compute/v1/projects/some-gce-project/zones/us-central1-c/instances/instance-1",
|
|
||||||
&ResourceID{"some-gce-project", "instances", meta.ZonalKey("instance-1", "us-central1-c")},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"http://localhost:3990/compute/beta/projects/some-gce-project/global/operations/operation-1513289952196-56054460af5a0-b1dae0c3-9bbf9dbf",
|
|
||||||
&ResourceID{"some-gce-project", "operations", meta.GlobalKey("operation-1513289952196-56054460af5a0-b1dae0c3-9bbf9dbf")},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"http://localhost:3990/compute/alpha/projects/some-gce-project/regions/dev-central1/addresses/my-address",
|
|
||||||
&ResourceID{"some-gce-project", "addresses", meta.RegionalKey("my-address", "dev-central1")},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"http://localhost:3990/compute/v1/projects/some-gce-project/zones/dev-central1-std/instances/instance-1",
|
|
||||||
&ResourceID{"some-gce-project", "instances", meta.ZonalKey("instance-1", "dev-central1-std")},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"projects/some-gce-project",
|
|
||||||
&ResourceID{"some-gce-project", "projects", nil},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"projects/some-gce-project/regions/us-central1",
|
|
||||||
&ResourceID{"some-gce-project", "regions", meta.GlobalKey("us-central1")},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"projects/some-gce-project/zones/us-central1-b",
|
|
||||||
&ResourceID{"some-gce-project", "zones", meta.GlobalKey("us-central1-b")},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"projects/some-gce-project/global/operations/operation-1513289952196-56054460af5a0-b1dae0c3-9bbf9dbf",
|
|
||||||
&ResourceID{"some-gce-project", "operations", meta.GlobalKey("operation-1513289952196-56054460af5a0-b1dae0c3-9bbf9dbf")},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"projects/some-gce-project/regions/us-central1/addresses/my-address",
|
|
||||||
&ResourceID{"some-gce-project", "addresses", meta.RegionalKey("my-address", "us-central1")},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"projects/some-gce-project/zones/us-central1-c/instances/instance-1",
|
|
||||||
&ResourceID{"some-gce-project", "instances", meta.ZonalKey("instance-1", "us-central1-c")},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"global/networks/my-network",
|
|
||||||
&ResourceID{"", "networks", meta.GlobalKey("my-network")},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"regions/us-central1/subnetworks/my-subnet",
|
|
||||||
&ResourceID{"", "subnetworks", meta.RegionalKey("my-subnet", "us-central1")},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"zones/us-central1-c/instances/instance-1",
|
|
||||||
&ResourceID{"", "instances", meta.ZonalKey("instance-1", "us-central1-c")},
|
|
||||||
},
|
|
||||||
} {
|
|
||||||
r, err := ParseResourceURL(tc.in)
|
|
||||||
if err != nil {
|
|
||||||
t.Errorf("ParseResourceURL(%q) = %+v, %v; want _, nil", tc.in, r, err)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if !r.Equal(tc.r) {
|
|
||||||
t.Errorf("ParseResourceURL(%q) = %+v, nil; want %+v, nil", tc.in, r, tc.r)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Malformed URLs.
|
|
||||||
for _, tc := range []string{
|
|
||||||
"",
|
|
||||||
"/",
|
|
||||||
"/a",
|
|
||||||
"/a/b",
|
|
||||||
"/a/b/c",
|
|
||||||
"/a/b/c/d",
|
|
||||||
"/a/b/c/d/e",
|
|
||||||
"/a/b/c/d/e/f",
|
|
||||||
"https://www.googleapis.com/compute/v1/projects/some-gce-project/global",
|
|
||||||
"projects/some-gce-project/global",
|
|
||||||
"projects/some-gce-project/global/foo",
|
|
||||||
"projects/some-gce-project/global/foo/bar/baz",
|
|
||||||
"projects/some-gce-project/regions/us-central1/res",
|
|
||||||
"projects/some-gce-project/zones/us-central1-c/res",
|
|
||||||
"projects/some-gce-project/zones/us-central1-c/res/name/extra",
|
|
||||||
} {
|
|
||||||
r, err := ParseResourceURL(tc)
|
|
||||||
if err == nil {
|
|
||||||
t.Errorf("ParseResourceURL(%q) = %+v, %v, want _, error", tc, r, err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
type A struct {
|
|
||||||
A, B, C string
|
|
||||||
}
|
|
||||||
|
|
||||||
type B struct {
|
|
||||||
A, B, D string
|
|
||||||
}
|
|
||||||
|
|
||||||
type E struct{}
|
|
||||||
|
|
||||||
func (*E) MarshalJSON() ([]byte, error) {
|
|
||||||
return nil, errors.New("injected error")
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestCopyVisJSON(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
var b B
|
|
||||||
srcA := &A{"aa", "bb", "cc"}
|
|
||||||
err := copyViaJSON(&b, srcA)
|
|
||||||
if err != nil {
|
|
||||||
t.Errorf(`copyViaJSON(&b, %+v) = %v, want nil`, srcA, err)
|
|
||||||
} else {
|
|
||||||
expectedB := B{"aa", "bb", ""}
|
|
||||||
if b != expectedB {
|
|
||||||
t.Errorf("b == %+v, want %+v", b, expectedB)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var a A
|
|
||||||
srcB := &B{"aaa", "bbb", "ccc"}
|
|
||||||
err = copyViaJSON(&a, srcB)
|
|
||||||
if err != nil {
|
|
||||||
t.Errorf(`copyViaJSON(&a, %+v) = %v, want nil`, srcB, err)
|
|
||||||
} else {
|
|
||||||
expectedA := A{"aaa", "bbb", ""}
|
|
||||||
if a != expectedA {
|
|
||||||
t.Errorf("a == %+v, want %+v", a, expectedA)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := copyViaJSON(&a, &E{}); err == nil {
|
|
||||||
t.Errorf("copyViaJSON(&a, &E{}) = nil, want error")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestSelfLink(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
for _, tc := range []struct {
|
|
||||||
ver meta.Version
|
|
||||||
project string
|
|
||||||
resource string
|
|
||||||
key *meta.Key
|
|
||||||
want string
|
|
||||||
}{
|
|
||||||
{
|
|
||||||
meta.VersionAlpha,
|
|
||||||
"proj1",
|
|
||||||
"addresses",
|
|
||||||
meta.RegionalKey("key1", "us-central1"),
|
|
||||||
"https://www.googleapis.com/compute/alpha/projects/proj1/regions/us-central1/addresses/key1",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
meta.VersionBeta,
|
|
||||||
"proj3",
|
|
||||||
"disks",
|
|
||||||
meta.ZonalKey("key2", "us-central1-b"),
|
|
||||||
"https://www.googleapis.com/compute/beta/projects/proj3/zones/us-central1-b/disks/key2",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
meta.VersionGA,
|
|
||||||
"proj4",
|
|
||||||
"urlMaps",
|
|
||||||
meta.GlobalKey("key3"),
|
|
||||||
"https://www.googleapis.com/compute/v1/projects/proj4/global/urlMaps/key3",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
meta.VersionGA,
|
|
||||||
"proj4",
|
|
||||||
"projects",
|
|
||||||
nil,
|
|
||||||
"https://www.googleapis.com/compute/v1/projects/proj4",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
meta.VersionGA,
|
|
||||||
"proj4",
|
|
||||||
"regions",
|
|
||||||
meta.GlobalKey("us-central1"),
|
|
||||||
"https://www.googleapis.com/compute/v1/projects/proj4/regions/us-central1",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
meta.VersionGA,
|
|
||||||
"proj4",
|
|
||||||
"zones",
|
|
||||||
meta.GlobalKey("us-central1-a"),
|
|
||||||
"https://www.googleapis.com/compute/v1/projects/proj4/zones/us-central1-a",
|
|
||||||
},
|
|
||||||
} {
|
|
||||||
if link := SelfLink(tc.ver, tc.project, tc.resource, tc.key); link != tc.want {
|
|
||||||
t.Errorf("SelfLink(%v, %q, %q, %v) = %v, want %q", tc.ver, tc.project, tc.resource, tc.key, link, tc.want)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -49,8 +49,8 @@ import (
|
|||||||
"k8s.io/client-go/tools/record"
|
"k8s.io/client-go/tools/record"
|
||||||
"k8s.io/client-go/util/flowcontrol"
|
"k8s.io/client-go/util/flowcontrol"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
cloudprovider "k8s.io/cloud-provider"
|
cloudprovider "k8s.io/cloud-provider"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
"k8s.io/kubernetes/pkg/controller"
|
"k8s.io/kubernetes/pkg/controller"
|
||||||
kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
|
kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
|
||||||
"k8s.io/kubernetes/pkg/version"
|
"k8s.io/kubernetes/pkg/version"
|
||||||
|
@ -22,8 +22,8 @@ import (
|
|||||||
|
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/klog"
|
"k8s.io/klog"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type addressManager struct {
|
type addressManager struct {
|
||||||
|
@ -19,10 +19,10 @@ package gce
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const testSvcName = "my-service"
|
const testSvcName = "my-service"
|
||||||
|
@ -25,9 +25,9 @@ import (
|
|||||||
computebeta "google.golang.org/api/compute/v0.beta"
|
computebeta "google.golang.org/api/compute/v0.beta"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newAddressMetricContext(request, region string) *metricContext {
|
func newAddressMetricContext(request, region string) *metricContext {
|
||||||
|
@ -21,8 +21,8 @@ import (
|
|||||||
|
|
||||||
"k8s.io/klog"
|
"k8s.io/klog"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// LoadBalancerType defines a specific type for holding load balancer types (eg. Internal)
|
// LoadBalancerType defines a specific type for holding load balancer types (eg. Internal)
|
||||||
|
@ -19,9 +19,9 @@ package gce
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
@ -21,9 +21,9 @@ import (
|
|||||||
computebeta "google.golang.org/api/compute/v0.beta"
|
computebeta "google.golang.org/api/compute/v0.beta"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newBackendServiceMetricContext(request, region string) *metricContext {
|
func newBackendServiceMetricContext(request, region string) *metricContext {
|
||||||
|
@ -19,9 +19,9 @@ package gce
|
|||||||
import (
|
import (
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newCertMetricContext(request string) *metricContext {
|
func newCertMetricContext(request string) *metricContext {
|
||||||
|
@ -33,12 +33,12 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/volume"
|
"k8s.io/kubernetes/pkg/volume"
|
||||||
volumeutil "k8s.io/kubernetes/pkg/volume/util"
|
volumeutil "k8s.io/kubernetes/pkg/volume/util"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
"google.golang.org/api/googleapi"
|
"google.golang.org/api/googleapi"
|
||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
"k8s.io/klog"
|
"k8s.io/klog"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
|
||||||
"k8s.io/kubernetes/pkg/features"
|
"k8s.io/kubernetes/pkg/features"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -20,9 +20,9 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
"k8s.io/client-go/tools/cache"
|
"k8s.io/client-go/tools/cache"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestClusterValues holds the config values for the fake/test gce cloud object.
|
// TestClusterValues holds the config values for the fake/test gce cloud object.
|
||||||
|
@ -19,8 +19,8 @@ package gce
|
|||||||
import (
|
import (
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newFirewallMetricContext(request string) *metricContext {
|
func newFirewallMetricContext(request string) *metricContext {
|
||||||
|
@ -17,11 +17,11 @@ limitations under the License.
|
|||||||
package gce
|
package gce
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
computealpha "google.golang.org/api/compute/v0.alpha"
|
computealpha "google.golang.org/api/compute/v0.alpha"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func newForwardingRuleMetricContext(request, region string) *metricContext {
|
func newForwardingRuleMetricContext(request, region string) *metricContext {
|
||||||
|
@ -23,11 +23,11 @@ import (
|
|||||||
computebeta "google.golang.org/api/compute/v0.beta"
|
computebeta "google.golang.org/api/compute/v0.beta"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
utilversion "k8s.io/apimachinery/pkg/util/version"
|
utilversion "k8s.io/apimachinery/pkg/util/version"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
|
||||||
"k8s.io/kubernetes/pkg/master/ports"
|
"k8s.io/kubernetes/pkg/master/ports"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -19,9 +19,9 @@ package gce
|
|||||||
import (
|
import (
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newInstanceGroupMetricContext(request string, zone string) *metricContext {
|
func newInstanceGroupMetricContext(request string, zone string) *metricContext {
|
||||||
|
@ -29,14 +29,14 @@ import (
|
|||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
"k8s.io/klog"
|
"k8s.io/klog"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
cloudprovider "k8s.io/cloud-provider"
|
cloudprovider "k8s.io/cloud-provider"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
|
||||||
kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
|
kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -26,9 +26,9 @@ import (
|
|||||||
|
|
||||||
"k8s.io/klog"
|
"k8s.io/klog"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
cloudprovider "k8s.io/cloud-provider"
|
cloudprovider "k8s.io/cloud-provider"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
netsets "k8s.io/kubernetes/pkg/util/net/sets"
|
netsets "k8s.io/kubernetes/pkg/util/net/sets"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -23,12 +23,12 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
utilerrors "k8s.io/apimachinery/pkg/util/errors"
|
utilerrors "k8s.io/apimachinery/pkg/util/errors"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
apiservice "k8s.io/kubernetes/pkg/api/v1/service"
|
apiservice "k8s.io/kubernetes/pkg/api/v1/service"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
netsets "k8s.io/kubernetes/pkg/util/net/sets"
|
netsets "k8s.io/kubernetes/pkg/util/net/sets"
|
||||||
|
|
||||||
computealpha "google.golang.org/api/compute/v0.alpha"
|
computealpha "google.golang.org/api/compute/v0.alpha"
|
||||||
|
@ -27,13 +27,13 @@ import (
|
|||||||
computealpha "google.golang.org/api/compute/v0.alpha"
|
computealpha "google.golang.org/api/compute/v0.alpha"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock"
|
||||||
ga "google.golang.org/api/compute/v1"
|
ga "google.golang.org/api/compute/v1"
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/client-go/tools/record"
|
"k8s.io/client-go/tools/record"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/mock"
|
|
||||||
netsets "k8s.io/kubernetes/pkg/util/net/sets"
|
netsets "k8s.io/kubernetes/pkg/util/net/sets"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -22,13 +22,13 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"k8s.io/klog"
|
"k8s.io/klog"
|
||||||
v1_service "k8s.io/kubernetes/pkg/api/v1/service"
|
v1_service "k8s.io/kubernetes/pkg/api/v1/service"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -25,13 +25,13 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/client-go/tools/record"
|
"k8s.io/client-go/tools/record"
|
||||||
v1_service "k8s.io/kubernetes/pkg/api/v1/service"
|
v1_service "k8s.io/kubernetes/pkg/api/v1/service"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/mock"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func createInternalLoadBalancer(gce *Cloud, svc *v1.Service, existingFwdRule *compute.ForwardingRule, nodeNames []string, clusterName, clusterID, zoneName string) (*v1.LoadBalancerStatus, error) {
|
func createInternalLoadBalancer(gce *Cloud, svc *v1.Service, existingFwdRule *compute.ForwardingRule, nodeNames []string, clusterName, clusterID, zoneName string) (*v1.LoadBalancerStatus, error) {
|
||||||
|
@ -22,9 +22,9 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Internal Load Balancer
|
// Internal Load Balancer
|
||||||
|
@ -31,11 +31,11 @@ import (
|
|||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/client-go/tools/record"
|
"k8s.io/client-go/tools/record"
|
||||||
v1_service "k8s.io/kubernetes/pkg/api/v1/service"
|
v1_service "k8s.io/kubernetes/pkg/api/v1/service"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
|
kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -22,9 +22,9 @@ import (
|
|||||||
|
|
||||||
computebeta "google.golang.org/api/compute/v0.beta"
|
computebeta "google.golang.org/api/compute/v0.beta"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newNetworkEndpointGroupMetricContext(request string, zone string) *metricContext {
|
func newNetworkEndpointGroupMetricContext(request string, zone string) *metricContext {
|
||||||
|
@ -26,10 +26,10 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/klog"
|
"k8s.io/klog"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
cloudprovider "k8s.io/cloud-provider"
|
cloudprovider "k8s.io/cloud-provider"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func newRoutesMetricContext(request string) *metricContext {
|
func newRoutesMetricContext(request string) *metricContext {
|
||||||
|
@ -19,9 +19,9 @@ package gce
|
|||||||
import (
|
import (
|
||||||
computebeta "google.golang.org/api/compute/v0.beta"
|
computebeta "google.golang.org/api/compute/v0.beta"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newSecurityPolicyMetricContextWithVersion(request, version string) *metricContext {
|
func newSecurityPolicyMetricContextWithVersion(request, version string) *metricContext {
|
||||||
|
@ -19,8 +19,8 @@ package gce
|
|||||||
import (
|
import (
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newTargetPoolMetricContext(request, region string) *metricContext {
|
func newTargetPoolMetricContext(request, region string) *metricContext {
|
||||||
|
@ -19,9 +19,9 @@ package gce
|
|||||||
import (
|
import (
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newTargetProxyMetricContext(request string) *metricContext {
|
func newTargetProxyMetricContext(request string) *metricContext {
|
||||||
|
@ -19,9 +19,9 @@ package gce
|
|||||||
import (
|
import (
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newURLMapMetricContext(request string) *metricContext {
|
func newURLMapMetricContext(request string) *metricContext {
|
||||||
|
@ -26,12 +26,12 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock"
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/mock"
|
|
||||||
|
|
||||||
"cloud.google.com/go/compute/metadata"
|
"cloud.google.com/go/compute/metadata"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
@ -22,10 +22,10 @@ import (
|
|||||||
|
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
cloudprovider "k8s.io/cloud-provider"
|
cloudprovider "k8s.io/cloud-provider"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func newZonesMetricContext(request, region string) *metricContext {
|
func newZonesMetricContext(request, region string) *metricContext {
|
||||||
|
@ -19,8 +19,8 @@ package gce
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
)
|
)
|
||||||
|
|
||||||
// gceProjectRouter sends requests to the appropriate project ID.
|
// gceProjectRouter sends requests to the appropriate project ID.
|
||||||
|
@ -103,15 +103,16 @@
|
|||||||
"github.com/cloudflare/cfssl/signer",
|
"github.com/cloudflare/cfssl/signer",
|
||||||
"github.com/cloudflare/cfssl/signer/local",
|
"github.com/cloudflare/cfssl/signer/local",
|
||||||
"github.com/davecgh/go-spew/spew",
|
"github.com/davecgh/go-spew/spew",
|
||||||
|
"github.com/docker/distribution/reference",
|
||||||
"github.com/evanphx/json-patch",
|
"github.com/evanphx/json-patch",
|
||||||
"github.com/golang/groupcache/lru",
|
"github.com/golang/groupcache/lru",
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud",
|
||||||
|
"github.com/google/gofuzz",
|
||||||
"github.com/prometheus/client_golang/prometheus",
|
"github.com/prometheus/client_golang/prometheus",
|
||||||
"github.com/robfig/cron",
|
"github.com/robfig/cron",
|
||||||
"github.com/spf13/pflag",
|
"github.com/spf13/pflag",
|
||||||
"github.com/stretchr/testify/assert",
|
"github.com/stretchr/testify/assert",
|
||||||
"github.com/stretchr/testify/require",
|
"github.com/stretchr/testify/require"
|
||||||
"github.com/docker/distribution/reference",
|
|
||||||
"github.com/google/gofuzz"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -34,7 +34,6 @@ go_library(
|
|||||||
"//pkg/apis/core:go_default_library",
|
"//pkg/apis/core:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
||||||
"//pkg/cloudprovider/providers/gce:go_default_library",
|
"//pkg/cloudprovider/providers/gce:go_default_library",
|
||||||
"//pkg/cloudprovider/providers/gce/cloud:go_default_library",
|
|
||||||
"//pkg/controller/endpoint:go_default_library",
|
"//pkg/controller/endpoint:go_default_library",
|
||||||
"//pkg/kubelet/apis:go_default_library",
|
"//pkg/kubelet/apis:go_default_library",
|
||||||
"//pkg/master/ports:go_default_library",
|
"//pkg/master/ports:go_default_library",
|
||||||
@ -68,6 +67,7 @@ go_library(
|
|||||||
"//test/images/net/nat:go_default_library",
|
"//test/images/net/nat:go_default_library",
|
||||||
"//test/utils:go_default_library",
|
"//test/utils:go_default_library",
|
||||||
"//test/utils/image:go_default_library",
|
"//test/utils/image:go_default_library",
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud:go_default_library",
|
||||||
"//vendor/github.com/onsi/ginkgo:go_default_library",
|
"//vendor/github.com/onsi/ginkgo:go_default_library",
|
||||||
"//vendor/github.com/onsi/gomega:go_default_library",
|
"//vendor/github.com/onsi/gomega:go_default_library",
|
||||||
"//vendor/google.golang.org/api/compute/v0.alpha:go_default_library",
|
"//vendor/google.golang.org/api/compute/v0.alpha:go_default_library",
|
||||||
|
@ -23,12 +23,12 @@ import (
|
|||||||
|
|
||||||
computealpha "google.golang.org/api/compute/v0.alpha"
|
computealpha "google.golang.org/api/compute/v0.alpha"
|
||||||
|
|
||||||
"k8s.io/api/core/v1"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
|
v1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
cloudprovider "k8s.io/cloud-provider"
|
cloudprovider "k8s.io/cloud-provider"
|
||||||
gcecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/gce"
|
gcecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/gce"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
"k8s.io/kubernetes/test/e2e/framework/providers/gce"
|
"k8s.io/kubernetes/test/e2e/framework/providers/gce"
|
||||||
|
|
||||||
|
@ -47,8 +47,6 @@ go_library(
|
|||||||
],
|
],
|
||||||
importpath = "k8s.io/kubernetes/test/integration/ipamperf",
|
importpath = "k8s.io/kubernetes/test/integration/ipamperf",
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/cloudprovider/providers/gce/cloud:go_default_library",
|
|
||||||
"//pkg/cloudprovider/providers/gce/cloud/meta:go_default_library",
|
|
||||||
"//pkg/controller/nodeipam/ipam:go_default_library",
|
"//pkg/controller/nodeipam/ipam:go_default_library",
|
||||||
"//pkg/controller/nodeipam/ipam/cidrset:go_default_library",
|
"//pkg/controller/nodeipam/ipam/cidrset:go_default_library",
|
||||||
"//pkg/controller/util/node:go_default_library",
|
"//pkg/controller/util/node:go_default_library",
|
||||||
@ -63,6 +61,8 @@ go_library(
|
|||||||
"//staging/src/k8s.io/client-go/tools/cache:go_default_library",
|
"//staging/src/k8s.io/client-go/tools/cache:go_default_library",
|
||||||
"//staging/src/k8s.io/cloud-provider:go_default_library",
|
"//staging/src/k8s.io/cloud-provider:go_default_library",
|
||||||
"//test/integration/util:go_default_library",
|
"//test/integration/util:go_default_library",
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud:go_default_library",
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta:go_default_library",
|
||||||
"//vendor/google.golang.org/api/compute/v0.beta:go_default_library",
|
"//vendor/google.golang.org/api/compute/v0.beta:go_default_library",
|
||||||
"//vendor/google.golang.org/api/compute/v1:go_default_library",
|
"//vendor/google.golang.org/api/compute/v1:go_default_library",
|
||||||
"//vendor/k8s.io/klog:go_default_library",
|
"//vendor/k8s.io/klog:go_default_library",
|
||||||
|
@ -21,10 +21,10 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
beta "google.golang.org/api/compute/v0.beta"
|
beta "google.golang.org/api/compute/v0.beta"
|
||||||
ga "google.golang.org/api/compute/v1"
|
ga "google.golang.org/api/compute/v1"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
|
||||||
"k8s.io/kubernetes/pkg/controller/nodeipam/ipam/cidrset"
|
"k8s.io/kubernetes/pkg/controller/nodeipam/ipam/cidrset"
|
||||||
"k8s.io/kubernetes/test/integration/util"
|
"k8s.io/kubernetes/test/integration/util"
|
||||||
)
|
)
|
||||||
|
@ -15,7 +15,6 @@ go_library(
|
|||||||
deps = [
|
deps = [
|
||||||
"//pkg/api/legacyscheme:go_default_library",
|
"//pkg/api/legacyscheme:go_default_library",
|
||||||
"//pkg/cloudprovider/providers/gce:go_default_library",
|
"//pkg/cloudprovider/providers/gce:go_default_library",
|
||||||
"//pkg/cloudprovider/providers/gce/cloud:go_default_library",
|
|
||||||
"//pkg/scheduler:go_default_library",
|
"//pkg/scheduler:go_default_library",
|
||||||
"//pkg/scheduler/api:go_default_library",
|
"//pkg/scheduler/api:go_default_library",
|
||||||
"//pkg/scheduler/factory:go_default_library",
|
"//pkg/scheduler/factory:go_default_library",
|
||||||
@ -25,6 +24,7 @@ go_library(
|
|||||||
"//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library",
|
"//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/tools/record:go_default_library",
|
"//staging/src/k8s.io/client-go/tools/record:go_default_library",
|
||||||
"//test/integration/framework:go_default_library",
|
"//test/integration/framework:go_default_library",
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud:go_default_library",
|
||||||
"//vendor/golang.org/x/oauth2:go_default_library",
|
"//vendor/golang.org/x/oauth2:go_default_library",
|
||||||
"//vendor/k8s.io/klog:go_default_library",
|
"//vendor/k8s.io/klog:go_default_library",
|
||||||
],
|
],
|
||||||
|
@ -19,9 +19,9 @@ package util
|
|||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
"golang.org/x/oauth2"
|
"golang.org/x/oauth2"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce"
|
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
1
vendor/BUILD
vendored
1
vendor/BUILD
vendored
@ -26,6 +26,7 @@ filegroup(
|
|||||||
"//vendor/github.com/Azure/go-autorest/logger:all-srcs",
|
"//vendor/github.com/Azure/go-autorest/logger:all-srcs",
|
||||||
"//vendor/github.com/Azure/go-autorest/version:all-srcs",
|
"//vendor/github.com/Azure/go-autorest/version:all-srcs",
|
||||||
"//vendor/github.com/GeertJohan/go.rice:all-srcs",
|
"//vendor/github.com/GeertJohan/go.rice:all-srcs",
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud:all-srcs",
|
||||||
"//vendor/github.com/JeffAshton/win_pdh:all-srcs",
|
"//vendor/github.com/JeffAshton/win_pdh:all-srcs",
|
||||||
"//vendor/github.com/MakeNowJust/heredoc:all-srcs",
|
"//vendor/github.com/MakeNowJust/heredoc:all-srcs",
|
||||||
"//vendor/github.com/Microsoft/go-winio:all-srcs",
|
"//vendor/github.com/Microsoft/go-winio:all-srcs",
|
||||||
|
202
vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/LICENSE
generated
vendored
Normal file
202
vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/LICENSE
generated
vendored
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
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.
|
49
vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/BUILD
generated
vendored
Normal file
49
vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/BUILD
generated
vendored
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||||
|
|
||||||
|
go_library(
|
||||||
|
name = "go_default_library",
|
||||||
|
srcs = [
|
||||||
|
"constants.go",
|
||||||
|
"context.go",
|
||||||
|
"doc.go",
|
||||||
|
"gce_projects.go",
|
||||||
|
"gen.go",
|
||||||
|
"op.go",
|
||||||
|
"project.go",
|
||||||
|
"ratelimit.go",
|
||||||
|
"service.go",
|
||||||
|
"utils.go",
|
||||||
|
],
|
||||||
|
importmap = "k8s.io/kubernetes/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud",
|
||||||
|
importpath = "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud",
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
deps = [
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter:go_default_library",
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta:go_default_library",
|
||||||
|
"//vendor/google.golang.org/api/compute/v0.alpha:go_default_library",
|
||||||
|
"//vendor/google.golang.org/api/compute/v0.beta:go_default_library",
|
||||||
|
"//vendor/google.golang.org/api/compute/v1:go_default_library",
|
||||||
|
"//vendor/google.golang.org/api/googleapi:go_default_library",
|
||||||
|
"//vendor/k8s.io/klog:go_default_library",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "package-srcs",
|
||||||
|
srcs = glob(["**"]),
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:private"],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "all-srcs",
|
||||||
|
srcs = [
|
||||||
|
":package-srcs",
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter:all-srcs",
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/gen:all-srcs",
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta:all-srcs",
|
||||||
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock:all-srcs",
|
||||||
|
],
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
)
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017 The Kubernetes Authors.
|
Copyright 2018 Google LLC
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2018 The Kubernetes Authors.
|
Copyright 2018 Google LLC
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017 The Kubernetes Authors.
|
Copyright 2018 Google LLC
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
@ -1,19 +1,14 @@
|
|||||||
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
|
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||||
|
|
||||||
go_library(
|
go_library(
|
||||||
name = "go_default_library",
|
name = "go_default_library",
|
||||||
srcs = ["filter.go"],
|
srcs = ["filter.go"],
|
||||||
importpath = "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter",
|
importmap = "k8s.io/kubernetes/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter",
|
||||||
|
importpath = "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = ["//vendor/k8s.io/klog:go_default_library"],
|
deps = ["//vendor/k8s.io/klog:go_default_library"],
|
||||||
)
|
)
|
||||||
|
|
||||||
go_test(
|
|
||||||
name = "go_default_test",
|
|
||||||
srcs = ["filter_test.go"],
|
|
||||||
embed = [":go_default_library"],
|
|
||||||
)
|
|
||||||
|
|
||||||
filegroup(
|
filegroup(
|
||||||
name = "package-srcs",
|
name = "package-srcs",
|
||||||
srcs = glob(["**"]),
|
srcs = glob(["**"]),
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017 The Kubernetes Authors.
|
Copyright 2018 Google LLC
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017 The Kubernetes Authors.
|
Copyright 2018 Google LLC
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@ -21,9 +21,9 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
"google.golang.org/api/googleapi"
|
"google.golang.org/api/googleapi"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// ProjectsOps is the manually implemented methods for the Projects service.
|
// ProjectsOps is the manually implemented methods for the Projects service.
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2018 The Kubernetes Authors.
|
Copyright 2018 Google LLC
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@ -28,8 +28,8 @@ import (
|
|||||||
"google.golang.org/api/googleapi"
|
"google.golang.org/api/googleapi"
|
||||||
"k8s.io/klog"
|
"k8s.io/klog"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
|
|
||||||
alpha "google.golang.org/api/compute/v0.alpha"
|
alpha "google.golang.org/api/compute/v0.alpha"
|
||||||
beta "google.golang.org/api/compute/v0.beta"
|
beta "google.golang.org/api/compute/v0.beta"
|
||||||
@ -54,8 +54,8 @@ type Cloud interface {
|
|||||||
AlphaForwardingRules() AlphaForwardingRules
|
AlphaForwardingRules() AlphaForwardingRules
|
||||||
GlobalForwardingRules() GlobalForwardingRules
|
GlobalForwardingRules() GlobalForwardingRules
|
||||||
HealthChecks() HealthChecks
|
HealthChecks() HealthChecks
|
||||||
BetaHealthChecks() BetaHealthChecks
|
|
||||||
AlphaHealthChecks() AlphaHealthChecks
|
AlphaHealthChecks() AlphaHealthChecks
|
||||||
|
BetaHealthChecks() BetaHealthChecks
|
||||||
HttpHealthChecks() HttpHealthChecks
|
HttpHealthChecks() HttpHealthChecks
|
||||||
HttpsHealthChecks() HttpsHealthChecks
|
HttpsHealthChecks() HttpsHealthChecks
|
||||||
InstanceGroups() InstanceGroups
|
InstanceGroups() InstanceGroups
|
||||||
@ -95,8 +95,8 @@ func NewGCE(s *Service) *GCE {
|
|||||||
gceAlphaForwardingRules: &GCEAlphaForwardingRules{s},
|
gceAlphaForwardingRules: &GCEAlphaForwardingRules{s},
|
||||||
gceGlobalForwardingRules: &GCEGlobalForwardingRules{s},
|
gceGlobalForwardingRules: &GCEGlobalForwardingRules{s},
|
||||||
gceHealthChecks: &GCEHealthChecks{s},
|
gceHealthChecks: &GCEHealthChecks{s},
|
||||||
gceBetaHealthChecks: &GCEBetaHealthChecks{s},
|
|
||||||
gceAlphaHealthChecks: &GCEAlphaHealthChecks{s},
|
gceAlphaHealthChecks: &GCEAlphaHealthChecks{s},
|
||||||
|
gceBetaHealthChecks: &GCEBetaHealthChecks{s},
|
||||||
gceHttpHealthChecks: &GCEHttpHealthChecks{s},
|
gceHttpHealthChecks: &GCEHttpHealthChecks{s},
|
||||||
gceHttpsHealthChecks: &GCEHttpsHealthChecks{s},
|
gceHttpsHealthChecks: &GCEHttpsHealthChecks{s},
|
||||||
gceInstanceGroups: &GCEInstanceGroups{s},
|
gceInstanceGroups: &GCEInstanceGroups{s},
|
||||||
@ -140,8 +140,8 @@ type GCE struct {
|
|||||||
gceAlphaForwardingRules *GCEAlphaForwardingRules
|
gceAlphaForwardingRules *GCEAlphaForwardingRules
|
||||||
gceGlobalForwardingRules *GCEGlobalForwardingRules
|
gceGlobalForwardingRules *GCEGlobalForwardingRules
|
||||||
gceHealthChecks *GCEHealthChecks
|
gceHealthChecks *GCEHealthChecks
|
||||||
gceBetaHealthChecks *GCEBetaHealthChecks
|
|
||||||
gceAlphaHealthChecks *GCEAlphaHealthChecks
|
gceAlphaHealthChecks *GCEAlphaHealthChecks
|
||||||
|
gceBetaHealthChecks *GCEBetaHealthChecks
|
||||||
gceHttpHealthChecks *GCEHttpHealthChecks
|
gceHttpHealthChecks *GCEHttpHealthChecks
|
||||||
gceHttpsHealthChecks *GCEHttpsHealthChecks
|
gceHttpsHealthChecks *GCEHttpsHealthChecks
|
||||||
gceInstanceGroups *GCEInstanceGroups
|
gceInstanceGroups *GCEInstanceGroups
|
||||||
@ -242,16 +242,16 @@ func (gce *GCE) HealthChecks() HealthChecks {
|
|||||||
return gce.gceHealthChecks
|
return gce.gceHealthChecks
|
||||||
}
|
}
|
||||||
|
|
||||||
// BetaHealthChecks returns the interface for the beta HealthChecks.
|
|
||||||
func (gce *GCE) BetaHealthChecks() BetaHealthChecks {
|
|
||||||
return gce.gceBetaHealthChecks
|
|
||||||
}
|
|
||||||
|
|
||||||
// AlphaHealthChecks returns the interface for the alpha HealthChecks.
|
// AlphaHealthChecks returns the interface for the alpha HealthChecks.
|
||||||
func (gce *GCE) AlphaHealthChecks() AlphaHealthChecks {
|
func (gce *GCE) AlphaHealthChecks() AlphaHealthChecks {
|
||||||
return gce.gceAlphaHealthChecks
|
return gce.gceAlphaHealthChecks
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BetaHealthChecks returns the interface for the beta HealthChecks.
|
||||||
|
func (gce *GCE) BetaHealthChecks() BetaHealthChecks {
|
||||||
|
return gce.gceBetaHealthChecks
|
||||||
|
}
|
||||||
|
|
||||||
// HttpHealthChecks returns the interface for the ga HttpHealthChecks.
|
// HttpHealthChecks returns the interface for the ga HttpHealthChecks.
|
||||||
func (gce *GCE) HttpHealthChecks() HttpHealthChecks {
|
func (gce *GCE) HttpHealthChecks() HttpHealthChecks {
|
||||||
return gce.gceHttpHealthChecks
|
return gce.gceHttpHealthChecks
|
||||||
@ -387,8 +387,8 @@ func NewMockGCE(projectRouter ProjectRouter) *MockGCE {
|
|||||||
MockAlphaForwardingRules: NewMockAlphaForwardingRules(projectRouter, mockForwardingRulesObjs),
|
MockAlphaForwardingRules: NewMockAlphaForwardingRules(projectRouter, mockForwardingRulesObjs),
|
||||||
MockGlobalForwardingRules: NewMockGlobalForwardingRules(projectRouter, mockGlobalForwardingRulesObjs),
|
MockGlobalForwardingRules: NewMockGlobalForwardingRules(projectRouter, mockGlobalForwardingRulesObjs),
|
||||||
MockHealthChecks: NewMockHealthChecks(projectRouter, mockHealthChecksObjs),
|
MockHealthChecks: NewMockHealthChecks(projectRouter, mockHealthChecksObjs),
|
||||||
MockBetaHealthChecks: NewMockBetaHealthChecks(projectRouter, mockHealthChecksObjs),
|
|
||||||
MockAlphaHealthChecks: NewMockAlphaHealthChecks(projectRouter, mockHealthChecksObjs),
|
MockAlphaHealthChecks: NewMockAlphaHealthChecks(projectRouter, mockHealthChecksObjs),
|
||||||
|
MockBetaHealthChecks: NewMockBetaHealthChecks(projectRouter, mockHealthChecksObjs),
|
||||||
MockHttpHealthChecks: NewMockHttpHealthChecks(projectRouter, mockHttpHealthChecksObjs),
|
MockHttpHealthChecks: NewMockHttpHealthChecks(projectRouter, mockHttpHealthChecksObjs),
|
||||||
MockHttpsHealthChecks: NewMockHttpsHealthChecks(projectRouter, mockHttpsHealthChecksObjs),
|
MockHttpsHealthChecks: NewMockHttpsHealthChecks(projectRouter, mockHttpsHealthChecksObjs),
|
||||||
MockInstanceGroups: NewMockInstanceGroups(projectRouter, mockInstanceGroupsObjs),
|
MockInstanceGroups: NewMockInstanceGroups(projectRouter, mockInstanceGroupsObjs),
|
||||||
@ -432,8 +432,8 @@ type MockGCE struct {
|
|||||||
MockAlphaForwardingRules *MockAlphaForwardingRules
|
MockAlphaForwardingRules *MockAlphaForwardingRules
|
||||||
MockGlobalForwardingRules *MockGlobalForwardingRules
|
MockGlobalForwardingRules *MockGlobalForwardingRules
|
||||||
MockHealthChecks *MockHealthChecks
|
MockHealthChecks *MockHealthChecks
|
||||||
MockBetaHealthChecks *MockBetaHealthChecks
|
|
||||||
MockAlphaHealthChecks *MockAlphaHealthChecks
|
MockAlphaHealthChecks *MockAlphaHealthChecks
|
||||||
|
MockBetaHealthChecks *MockBetaHealthChecks
|
||||||
MockHttpHealthChecks *MockHttpHealthChecks
|
MockHttpHealthChecks *MockHttpHealthChecks
|
||||||
MockHttpsHealthChecks *MockHttpsHealthChecks
|
MockHttpsHealthChecks *MockHttpsHealthChecks
|
||||||
MockInstanceGroups *MockInstanceGroups
|
MockInstanceGroups *MockInstanceGroups
|
||||||
@ -534,16 +534,16 @@ func (mock *MockGCE) HealthChecks() HealthChecks {
|
|||||||
return mock.MockHealthChecks
|
return mock.MockHealthChecks
|
||||||
}
|
}
|
||||||
|
|
||||||
// BetaHealthChecks returns the interface for the beta HealthChecks.
|
|
||||||
func (mock *MockGCE) BetaHealthChecks() BetaHealthChecks {
|
|
||||||
return mock.MockBetaHealthChecks
|
|
||||||
}
|
|
||||||
|
|
||||||
// AlphaHealthChecks returns the interface for the alpha HealthChecks.
|
// AlphaHealthChecks returns the interface for the alpha HealthChecks.
|
||||||
func (mock *MockGCE) AlphaHealthChecks() AlphaHealthChecks {
|
func (mock *MockGCE) AlphaHealthChecks() AlphaHealthChecks {
|
||||||
return mock.MockAlphaHealthChecks
|
return mock.MockAlphaHealthChecks
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BetaHealthChecks returns the interface for the beta HealthChecks.
|
||||||
|
func (mock *MockGCE) BetaHealthChecks() BetaHealthChecks {
|
||||||
|
return mock.MockBetaHealthChecks
|
||||||
|
}
|
||||||
|
|
||||||
// HttpHealthChecks returns the interface for the ga HttpHealthChecks.
|
// HttpHealthChecks returns the interface for the ga HttpHealthChecks.
|
||||||
func (mock *MockGCE) HttpHealthChecks() HttpHealthChecks {
|
func (mock *MockGCE) HttpHealthChecks() HttpHealthChecks {
|
||||||
return mock.MockHttpHealthChecks
|
return mock.MockHttpHealthChecks
|
||||||
@ -7280,381 +7280,6 @@ func (g *GCEHealthChecks) Update(ctx context.Context, key *meta.Key, arg0 *ga.He
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// BetaHealthChecks is an interface that allows for mocking of HealthChecks.
|
|
||||||
type BetaHealthChecks interface {
|
|
||||||
Get(ctx context.Context, key *meta.Key) (*beta.HealthCheck, error)
|
|
||||||
List(ctx context.Context, fl *filter.F) ([]*beta.HealthCheck, error)
|
|
||||||
Insert(ctx context.Context, key *meta.Key, obj *beta.HealthCheck) error
|
|
||||||
Delete(ctx context.Context, key *meta.Key) error
|
|
||||||
Update(context.Context, *meta.Key, *beta.HealthCheck) error
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewMockBetaHealthChecks returns a new mock for HealthChecks.
|
|
||||||
func NewMockBetaHealthChecks(pr ProjectRouter, objs map[meta.Key]*MockHealthChecksObj) *MockBetaHealthChecks {
|
|
||||||
mock := &MockBetaHealthChecks{
|
|
||||||
ProjectRouter: pr,
|
|
||||||
|
|
||||||
Objects: objs,
|
|
||||||
GetError: map[meta.Key]error{},
|
|
||||||
InsertError: map[meta.Key]error{},
|
|
||||||
DeleteError: map[meta.Key]error{},
|
|
||||||
}
|
|
||||||
return mock
|
|
||||||
}
|
|
||||||
|
|
||||||
// MockBetaHealthChecks is the mock for HealthChecks.
|
|
||||||
type MockBetaHealthChecks struct {
|
|
||||||
Lock sync.Mutex
|
|
||||||
|
|
||||||
ProjectRouter ProjectRouter
|
|
||||||
|
|
||||||
// Objects maintained by the mock.
|
|
||||||
Objects map[meta.Key]*MockHealthChecksObj
|
|
||||||
|
|
||||||
// If an entry exists for the given key and operation, then the error
|
|
||||||
// will be returned instead of the operation.
|
|
||||||
GetError map[meta.Key]error
|
|
||||||
ListError *error
|
|
||||||
InsertError map[meta.Key]error
|
|
||||||
DeleteError map[meta.Key]error
|
|
||||||
|
|
||||||
// xxxHook allow you to intercept the standard processing of the mock in
|
|
||||||
// order to add your own logic. Return (true, _, _) to prevent the normal
|
|
||||||
// execution flow of the mock. Return (false, nil, nil) to continue with
|
|
||||||
// normal mock behavior/ after the hook function executes.
|
|
||||||
GetHook func(ctx context.Context, key *meta.Key, m *MockBetaHealthChecks) (bool, *beta.HealthCheck, error)
|
|
||||||
ListHook func(ctx context.Context, fl *filter.F, m *MockBetaHealthChecks) (bool, []*beta.HealthCheck, error)
|
|
||||||
InsertHook func(ctx context.Context, key *meta.Key, obj *beta.HealthCheck, m *MockBetaHealthChecks) (bool, error)
|
|
||||||
DeleteHook func(ctx context.Context, key *meta.Key, m *MockBetaHealthChecks) (bool, error)
|
|
||||||
UpdateHook func(context.Context, *meta.Key, *beta.HealthCheck, *MockBetaHealthChecks) error
|
|
||||||
|
|
||||||
// X is extra state that can be used as part of the mock. Generated code
|
|
||||||
// will not use this field.
|
|
||||||
X interface{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get returns the object from the mock.
|
|
||||||
func (m *MockBetaHealthChecks) Get(ctx context.Context, key *meta.Key) (*beta.HealthCheck, error) {
|
|
||||||
if m.GetHook != nil {
|
|
||||||
if intercept, obj, err := m.GetHook(ctx, key, m); intercept {
|
|
||||||
klog.V(5).Infof("MockBetaHealthChecks.Get(%v, %s) = %+v, %v", ctx, key, obj, err)
|
|
||||||
return obj, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if !key.Valid() {
|
|
||||||
return nil, fmt.Errorf("invalid GCE key (%+v)", key)
|
|
||||||
}
|
|
||||||
|
|
||||||
m.Lock.Lock()
|
|
||||||
defer m.Lock.Unlock()
|
|
||||||
|
|
||||||
if err, ok := m.GetError[*key]; ok {
|
|
||||||
klog.V(5).Infof("MockBetaHealthChecks.Get(%v, %s) = nil, %v", ctx, key, err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if obj, ok := m.Objects[*key]; ok {
|
|
||||||
typedObj := obj.ToBeta()
|
|
||||||
klog.V(5).Infof("MockBetaHealthChecks.Get(%v, %s) = %+v, nil", ctx, key, typedObj)
|
|
||||||
return typedObj, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
err := &googleapi.Error{
|
|
||||||
Code: http.StatusNotFound,
|
|
||||||
Message: fmt.Sprintf("MockBetaHealthChecks %v not found", key),
|
|
||||||
}
|
|
||||||
klog.V(5).Infof("MockBetaHealthChecks.Get(%v, %s) = nil, %v", ctx, key, err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// List all of the objects in the mock.
|
|
||||||
func (m *MockBetaHealthChecks) List(ctx context.Context, fl *filter.F) ([]*beta.HealthCheck, error) {
|
|
||||||
if m.ListHook != nil {
|
|
||||||
if intercept, objs, err := m.ListHook(ctx, fl, m); intercept {
|
|
||||||
klog.V(5).Infof("MockBetaHealthChecks.List(%v, %v) = [%v items], %v", ctx, fl, len(objs), err)
|
|
||||||
return objs, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
m.Lock.Lock()
|
|
||||||
defer m.Lock.Unlock()
|
|
||||||
|
|
||||||
if m.ListError != nil {
|
|
||||||
err := *m.ListError
|
|
||||||
klog.V(5).Infof("MockBetaHealthChecks.List(%v, %v) = nil, %v", ctx, fl, err)
|
|
||||||
|
|
||||||
return nil, *m.ListError
|
|
||||||
}
|
|
||||||
|
|
||||||
var objs []*beta.HealthCheck
|
|
||||||
for _, obj := range m.Objects {
|
|
||||||
if !fl.Match(obj.ToBeta()) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
objs = append(objs, obj.ToBeta())
|
|
||||||
}
|
|
||||||
|
|
||||||
klog.V(5).Infof("MockBetaHealthChecks.List(%v, %v) = [%v items], nil", ctx, fl, len(objs))
|
|
||||||
return objs, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Insert is a mock for inserting/creating a new object.
|
|
||||||
func (m *MockBetaHealthChecks) Insert(ctx context.Context, key *meta.Key, obj *beta.HealthCheck) error {
|
|
||||||
if m.InsertHook != nil {
|
|
||||||
if intercept, err := m.InsertHook(ctx, key, obj, m); intercept {
|
|
||||||
klog.V(5).Infof("MockBetaHealthChecks.Insert(%v, %v, %+v) = %v", ctx, key, obj, err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if !key.Valid() {
|
|
||||||
return fmt.Errorf("invalid GCE key (%+v)", key)
|
|
||||||
}
|
|
||||||
|
|
||||||
m.Lock.Lock()
|
|
||||||
defer m.Lock.Unlock()
|
|
||||||
|
|
||||||
if err, ok := m.InsertError[*key]; ok {
|
|
||||||
klog.V(5).Infof("MockBetaHealthChecks.Insert(%v, %v, %+v) = %v", ctx, key, obj, err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if _, ok := m.Objects[*key]; ok {
|
|
||||||
err := &googleapi.Error{
|
|
||||||
Code: http.StatusConflict,
|
|
||||||
Message: fmt.Sprintf("MockBetaHealthChecks %v exists", key),
|
|
||||||
}
|
|
||||||
klog.V(5).Infof("MockBetaHealthChecks.Insert(%v, %v, %+v) = %v", ctx, key, obj, err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
obj.Name = key.Name
|
|
||||||
projectID := m.ProjectRouter.ProjectID(ctx, "beta", "healthChecks")
|
|
||||||
obj.SelfLink = SelfLink(meta.VersionBeta, projectID, "healthChecks", key)
|
|
||||||
|
|
||||||
m.Objects[*key] = &MockHealthChecksObj{obj}
|
|
||||||
klog.V(5).Infof("MockBetaHealthChecks.Insert(%v, %v, %+v) = nil", ctx, key, obj)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete is a mock for deleting the object.
|
|
||||||
func (m *MockBetaHealthChecks) Delete(ctx context.Context, key *meta.Key) error {
|
|
||||||
if m.DeleteHook != nil {
|
|
||||||
if intercept, err := m.DeleteHook(ctx, key, m); intercept {
|
|
||||||
klog.V(5).Infof("MockBetaHealthChecks.Delete(%v, %v) = %v", ctx, key, err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if !key.Valid() {
|
|
||||||
return fmt.Errorf("invalid GCE key (%+v)", key)
|
|
||||||
}
|
|
||||||
|
|
||||||
m.Lock.Lock()
|
|
||||||
defer m.Lock.Unlock()
|
|
||||||
|
|
||||||
if err, ok := m.DeleteError[*key]; ok {
|
|
||||||
klog.V(5).Infof("MockBetaHealthChecks.Delete(%v, %v) = %v", ctx, key, err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if _, ok := m.Objects[*key]; !ok {
|
|
||||||
err := &googleapi.Error{
|
|
||||||
Code: http.StatusNotFound,
|
|
||||||
Message: fmt.Sprintf("MockBetaHealthChecks %v not found", key),
|
|
||||||
}
|
|
||||||
klog.V(5).Infof("MockBetaHealthChecks.Delete(%v, %v) = %v", ctx, key, err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
delete(m.Objects, *key)
|
|
||||||
klog.V(5).Infof("MockBetaHealthChecks.Delete(%v, %v) = nil", ctx, key)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Obj wraps the object for use in the mock.
|
|
||||||
func (m *MockBetaHealthChecks) Obj(o *beta.HealthCheck) *MockHealthChecksObj {
|
|
||||||
return &MockHealthChecksObj{o}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update is a mock for the corresponding method.
|
|
||||||
func (m *MockBetaHealthChecks) Update(ctx context.Context, key *meta.Key, arg0 *beta.HealthCheck) error {
|
|
||||||
if m.UpdateHook != nil {
|
|
||||||
return m.UpdateHook(ctx, key, arg0, m)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GCEBetaHealthChecks is a simplifying adapter for the GCE HealthChecks.
|
|
||||||
type GCEBetaHealthChecks struct {
|
|
||||||
s *Service
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the HealthCheck named by key.
|
|
||||||
func (g *GCEBetaHealthChecks) Get(ctx context.Context, key *meta.Key) (*beta.HealthCheck, error) {
|
|
||||||
klog.V(5).Infof("GCEBetaHealthChecks.Get(%v, %v): called", ctx, key)
|
|
||||||
|
|
||||||
if !key.Valid() {
|
|
||||||
klog.V(2).Infof("GCEBetaHealthChecks.Get(%v, %v): key is invalid (%#v)", ctx, key, key)
|
|
||||||
return nil, fmt.Errorf("invalid GCE key (%#v)", key)
|
|
||||||
}
|
|
||||||
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "HealthChecks")
|
|
||||||
rk := &RateLimitKey{
|
|
||||||
ProjectID: projectID,
|
|
||||||
Operation: "Get",
|
|
||||||
Version: meta.Version("beta"),
|
|
||||||
Service: "HealthChecks",
|
|
||||||
}
|
|
||||||
klog.V(5).Infof("GCEBetaHealthChecks.Get(%v, %v): projectID = %v, rk = %+v", ctx, key, projectID, rk)
|
|
||||||
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
|
||||||
klog.V(4).Infof("GCEBetaHealthChecks.Get(%v, %v): RateLimiter error: %v", ctx, key, err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
call := g.s.Beta.HealthChecks.Get(projectID, key.Name)
|
|
||||||
call.Context(ctx)
|
|
||||||
v, err := call.Do()
|
|
||||||
klog.V(4).Infof("GCEBetaHealthChecks.Get(%v, %v) = %+v, %v", ctx, key, v, err)
|
|
||||||
return v, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// List all HealthCheck objects.
|
|
||||||
func (g *GCEBetaHealthChecks) List(ctx context.Context, fl *filter.F) ([]*beta.HealthCheck, error) {
|
|
||||||
klog.V(5).Infof("GCEBetaHealthChecks.List(%v, %v) called", ctx, fl)
|
|
||||||
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "HealthChecks")
|
|
||||||
rk := &RateLimitKey{
|
|
||||||
ProjectID: projectID,
|
|
||||||
Operation: "List",
|
|
||||||
Version: meta.Version("beta"),
|
|
||||||
Service: "HealthChecks",
|
|
||||||
}
|
|
||||||
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
klog.V(5).Infof("GCEBetaHealthChecks.List(%v, %v): projectID = %v, rk = %+v", ctx, fl, projectID, rk)
|
|
||||||
call := g.s.Beta.HealthChecks.List(projectID)
|
|
||||||
if fl != filter.None {
|
|
||||||
call.Filter(fl.String())
|
|
||||||
}
|
|
||||||
var all []*beta.HealthCheck
|
|
||||||
f := func(l *beta.HealthCheckList) error {
|
|
||||||
klog.V(5).Infof("GCEBetaHealthChecks.List(%v, ..., %v): page %+v", ctx, fl, l)
|
|
||||||
all = append(all, l.Items...)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
if err := call.Pages(ctx, f); err != nil {
|
|
||||||
klog.V(4).Infof("GCEBetaHealthChecks.List(%v, ..., %v) = %v, %v", ctx, fl, nil, err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
if klog.V(4) {
|
|
||||||
klog.V(4).Infof("GCEBetaHealthChecks.List(%v, ..., %v) = [%v items], %v", ctx, fl, len(all), nil)
|
|
||||||
} else if klog.V(5) {
|
|
||||||
var asStr []string
|
|
||||||
for _, o := range all {
|
|
||||||
asStr = append(asStr, fmt.Sprintf("%+v", o))
|
|
||||||
}
|
|
||||||
klog.V(5).Infof("GCEBetaHealthChecks.List(%v, ..., %v) = %v, %v", ctx, fl, asStr, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
return all, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Insert HealthCheck with key of value obj.
|
|
||||||
func (g *GCEBetaHealthChecks) Insert(ctx context.Context, key *meta.Key, obj *beta.HealthCheck) error {
|
|
||||||
klog.V(5).Infof("GCEBetaHealthChecks.Insert(%v, %v, %+v): called", ctx, key, obj)
|
|
||||||
if !key.Valid() {
|
|
||||||
klog.V(2).Infof("GCEBetaHealthChecks.Insert(%v, %v, ...): key is invalid (%#v)", ctx, key, key)
|
|
||||||
return fmt.Errorf("invalid GCE key (%+v)", key)
|
|
||||||
}
|
|
||||||
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "HealthChecks")
|
|
||||||
rk := &RateLimitKey{
|
|
||||||
ProjectID: projectID,
|
|
||||||
Operation: "Insert",
|
|
||||||
Version: meta.Version("beta"),
|
|
||||||
Service: "HealthChecks",
|
|
||||||
}
|
|
||||||
klog.V(5).Infof("GCEBetaHealthChecks.Insert(%v, %v, ...): projectID = %v, rk = %+v", ctx, key, projectID, rk)
|
|
||||||
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
|
||||||
klog.V(4).Infof("GCEBetaHealthChecks.Insert(%v, %v, ...): RateLimiter error: %v", ctx, key, err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
obj.Name = key.Name
|
|
||||||
call := g.s.Beta.HealthChecks.Insert(projectID, obj)
|
|
||||||
call.Context(ctx)
|
|
||||||
|
|
||||||
op, err := call.Do()
|
|
||||||
if err != nil {
|
|
||||||
klog.V(4).Infof("GCEBetaHealthChecks.Insert(%v, %v, ...) = %+v", ctx, key, err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
err = g.s.WaitForCompletion(ctx, op)
|
|
||||||
klog.V(4).Infof("GCEBetaHealthChecks.Insert(%v, %v, %+v) = %+v", ctx, key, obj, err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete the HealthCheck referenced by key.
|
|
||||||
func (g *GCEBetaHealthChecks) Delete(ctx context.Context, key *meta.Key) error {
|
|
||||||
klog.V(5).Infof("GCEBetaHealthChecks.Delete(%v, %v): called", ctx, key)
|
|
||||||
if !key.Valid() {
|
|
||||||
klog.V(2).Infof("GCEBetaHealthChecks.Delete(%v, %v): key is invalid (%#v)", ctx, key, key)
|
|
||||||
return fmt.Errorf("invalid GCE key (%+v)", key)
|
|
||||||
}
|
|
||||||
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "HealthChecks")
|
|
||||||
rk := &RateLimitKey{
|
|
||||||
ProjectID: projectID,
|
|
||||||
Operation: "Delete",
|
|
||||||
Version: meta.Version("beta"),
|
|
||||||
Service: "HealthChecks",
|
|
||||||
}
|
|
||||||
klog.V(5).Infof("GCEBetaHealthChecks.Delete(%v, %v): projectID = %v, rk = %+v", ctx, key, projectID, rk)
|
|
||||||
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
|
||||||
klog.V(4).Infof("GCEBetaHealthChecks.Delete(%v, %v): RateLimiter error: %v", ctx, key, err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
call := g.s.Beta.HealthChecks.Delete(projectID, key.Name)
|
|
||||||
|
|
||||||
call.Context(ctx)
|
|
||||||
|
|
||||||
op, err := call.Do()
|
|
||||||
if err != nil {
|
|
||||||
klog.V(4).Infof("GCEBetaHealthChecks.Delete(%v, %v) = %v", ctx, key, err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
err = g.s.WaitForCompletion(ctx, op)
|
|
||||||
klog.V(4).Infof("GCEBetaHealthChecks.Delete(%v, %v) = %v", ctx, key, err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update is a method on GCEBetaHealthChecks.
|
|
||||||
func (g *GCEBetaHealthChecks) Update(ctx context.Context, key *meta.Key, arg0 *beta.HealthCheck) error {
|
|
||||||
klog.V(5).Infof("GCEBetaHealthChecks.Update(%v, %v, ...): called", ctx, key)
|
|
||||||
|
|
||||||
if !key.Valid() {
|
|
||||||
klog.V(2).Infof("GCEBetaHealthChecks.Update(%v, %v, ...): key is invalid (%#v)", ctx, key, key)
|
|
||||||
return fmt.Errorf("invalid GCE key (%+v)", key)
|
|
||||||
}
|
|
||||||
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "HealthChecks")
|
|
||||||
rk := &RateLimitKey{
|
|
||||||
ProjectID: projectID,
|
|
||||||
Operation: "Update",
|
|
||||||
Version: meta.Version("beta"),
|
|
||||||
Service: "HealthChecks",
|
|
||||||
}
|
|
||||||
klog.V(5).Infof("GCEBetaHealthChecks.Update(%v, %v, ...): projectID = %v, rk = %+v", ctx, key, projectID, rk)
|
|
||||||
|
|
||||||
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
|
||||||
klog.V(4).Infof("GCEBetaHealthChecks.Update(%v, %v, ...): RateLimiter error: %v", ctx, key, err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
call := g.s.Beta.HealthChecks.Update(projectID, key.Name, arg0)
|
|
||||||
call.Context(ctx)
|
|
||||||
op, err := call.Do()
|
|
||||||
if err != nil {
|
|
||||||
klog.V(4).Infof("GCEBetaHealthChecks.Update(%v, %v, ...) = %+v", ctx, key, err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
err = g.s.WaitForCompletion(ctx, op)
|
|
||||||
klog.V(4).Infof("GCEBetaHealthChecks.Update(%v, %v, ...) = %+v", ctx, key, err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// AlphaHealthChecks is an interface that allows for mocking of HealthChecks.
|
// AlphaHealthChecks is an interface that allows for mocking of HealthChecks.
|
||||||
type AlphaHealthChecks interface {
|
type AlphaHealthChecks interface {
|
||||||
Get(ctx context.Context, key *meta.Key) (*alpha.HealthCheck, error)
|
Get(ctx context.Context, key *meta.Key) (*alpha.HealthCheck, error)
|
||||||
@ -8030,6 +7655,381 @@ func (g *GCEAlphaHealthChecks) Update(ctx context.Context, key *meta.Key, arg0 *
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BetaHealthChecks is an interface that allows for mocking of HealthChecks.
|
||||||
|
type BetaHealthChecks interface {
|
||||||
|
Get(ctx context.Context, key *meta.Key) (*beta.HealthCheck, error)
|
||||||
|
List(ctx context.Context, fl *filter.F) ([]*beta.HealthCheck, error)
|
||||||
|
Insert(ctx context.Context, key *meta.Key, obj *beta.HealthCheck) error
|
||||||
|
Delete(ctx context.Context, key *meta.Key) error
|
||||||
|
Update(context.Context, *meta.Key, *beta.HealthCheck) error
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewMockBetaHealthChecks returns a new mock for HealthChecks.
|
||||||
|
func NewMockBetaHealthChecks(pr ProjectRouter, objs map[meta.Key]*MockHealthChecksObj) *MockBetaHealthChecks {
|
||||||
|
mock := &MockBetaHealthChecks{
|
||||||
|
ProjectRouter: pr,
|
||||||
|
|
||||||
|
Objects: objs,
|
||||||
|
GetError: map[meta.Key]error{},
|
||||||
|
InsertError: map[meta.Key]error{},
|
||||||
|
DeleteError: map[meta.Key]error{},
|
||||||
|
}
|
||||||
|
return mock
|
||||||
|
}
|
||||||
|
|
||||||
|
// MockBetaHealthChecks is the mock for HealthChecks.
|
||||||
|
type MockBetaHealthChecks struct {
|
||||||
|
Lock sync.Mutex
|
||||||
|
|
||||||
|
ProjectRouter ProjectRouter
|
||||||
|
|
||||||
|
// Objects maintained by the mock.
|
||||||
|
Objects map[meta.Key]*MockHealthChecksObj
|
||||||
|
|
||||||
|
// If an entry exists for the given key and operation, then the error
|
||||||
|
// will be returned instead of the operation.
|
||||||
|
GetError map[meta.Key]error
|
||||||
|
ListError *error
|
||||||
|
InsertError map[meta.Key]error
|
||||||
|
DeleteError map[meta.Key]error
|
||||||
|
|
||||||
|
// xxxHook allow you to intercept the standard processing of the mock in
|
||||||
|
// order to add your own logic. Return (true, _, _) to prevent the normal
|
||||||
|
// execution flow of the mock. Return (false, nil, nil) to continue with
|
||||||
|
// normal mock behavior/ after the hook function executes.
|
||||||
|
GetHook func(ctx context.Context, key *meta.Key, m *MockBetaHealthChecks) (bool, *beta.HealthCheck, error)
|
||||||
|
ListHook func(ctx context.Context, fl *filter.F, m *MockBetaHealthChecks) (bool, []*beta.HealthCheck, error)
|
||||||
|
InsertHook func(ctx context.Context, key *meta.Key, obj *beta.HealthCheck, m *MockBetaHealthChecks) (bool, error)
|
||||||
|
DeleteHook func(ctx context.Context, key *meta.Key, m *MockBetaHealthChecks) (bool, error)
|
||||||
|
UpdateHook func(context.Context, *meta.Key, *beta.HealthCheck, *MockBetaHealthChecks) error
|
||||||
|
|
||||||
|
// X is extra state that can be used as part of the mock. Generated code
|
||||||
|
// will not use this field.
|
||||||
|
X interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get returns the object from the mock.
|
||||||
|
func (m *MockBetaHealthChecks) Get(ctx context.Context, key *meta.Key) (*beta.HealthCheck, error) {
|
||||||
|
if m.GetHook != nil {
|
||||||
|
if intercept, obj, err := m.GetHook(ctx, key, m); intercept {
|
||||||
|
klog.V(5).Infof("MockBetaHealthChecks.Get(%v, %s) = %+v, %v", ctx, key, obj, err)
|
||||||
|
return obj, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !key.Valid() {
|
||||||
|
return nil, fmt.Errorf("invalid GCE key (%+v)", key)
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Lock.Lock()
|
||||||
|
defer m.Lock.Unlock()
|
||||||
|
|
||||||
|
if err, ok := m.GetError[*key]; ok {
|
||||||
|
klog.V(5).Infof("MockBetaHealthChecks.Get(%v, %s) = nil, %v", ctx, key, err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if obj, ok := m.Objects[*key]; ok {
|
||||||
|
typedObj := obj.ToBeta()
|
||||||
|
klog.V(5).Infof("MockBetaHealthChecks.Get(%v, %s) = %+v, nil", ctx, key, typedObj)
|
||||||
|
return typedObj, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
err := &googleapi.Error{
|
||||||
|
Code: http.StatusNotFound,
|
||||||
|
Message: fmt.Sprintf("MockBetaHealthChecks %v not found", key),
|
||||||
|
}
|
||||||
|
klog.V(5).Infof("MockBetaHealthChecks.Get(%v, %s) = nil, %v", ctx, key, err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// List all of the objects in the mock.
|
||||||
|
func (m *MockBetaHealthChecks) List(ctx context.Context, fl *filter.F) ([]*beta.HealthCheck, error) {
|
||||||
|
if m.ListHook != nil {
|
||||||
|
if intercept, objs, err := m.ListHook(ctx, fl, m); intercept {
|
||||||
|
klog.V(5).Infof("MockBetaHealthChecks.List(%v, %v) = [%v items], %v", ctx, fl, len(objs), err)
|
||||||
|
return objs, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Lock.Lock()
|
||||||
|
defer m.Lock.Unlock()
|
||||||
|
|
||||||
|
if m.ListError != nil {
|
||||||
|
err := *m.ListError
|
||||||
|
klog.V(5).Infof("MockBetaHealthChecks.List(%v, %v) = nil, %v", ctx, fl, err)
|
||||||
|
|
||||||
|
return nil, *m.ListError
|
||||||
|
}
|
||||||
|
|
||||||
|
var objs []*beta.HealthCheck
|
||||||
|
for _, obj := range m.Objects {
|
||||||
|
if !fl.Match(obj.ToBeta()) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
objs = append(objs, obj.ToBeta())
|
||||||
|
}
|
||||||
|
|
||||||
|
klog.V(5).Infof("MockBetaHealthChecks.List(%v, %v) = [%v items], nil", ctx, fl, len(objs))
|
||||||
|
return objs, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert is a mock for inserting/creating a new object.
|
||||||
|
func (m *MockBetaHealthChecks) Insert(ctx context.Context, key *meta.Key, obj *beta.HealthCheck) error {
|
||||||
|
if m.InsertHook != nil {
|
||||||
|
if intercept, err := m.InsertHook(ctx, key, obj, m); intercept {
|
||||||
|
klog.V(5).Infof("MockBetaHealthChecks.Insert(%v, %v, %+v) = %v", ctx, key, obj, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !key.Valid() {
|
||||||
|
return fmt.Errorf("invalid GCE key (%+v)", key)
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Lock.Lock()
|
||||||
|
defer m.Lock.Unlock()
|
||||||
|
|
||||||
|
if err, ok := m.InsertError[*key]; ok {
|
||||||
|
klog.V(5).Infof("MockBetaHealthChecks.Insert(%v, %v, %+v) = %v", ctx, key, obj, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, ok := m.Objects[*key]; ok {
|
||||||
|
err := &googleapi.Error{
|
||||||
|
Code: http.StatusConflict,
|
||||||
|
Message: fmt.Sprintf("MockBetaHealthChecks %v exists", key),
|
||||||
|
}
|
||||||
|
klog.V(5).Infof("MockBetaHealthChecks.Insert(%v, %v, %+v) = %v", ctx, key, obj, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
obj.Name = key.Name
|
||||||
|
projectID := m.ProjectRouter.ProjectID(ctx, "beta", "healthChecks")
|
||||||
|
obj.SelfLink = SelfLink(meta.VersionBeta, projectID, "healthChecks", key)
|
||||||
|
|
||||||
|
m.Objects[*key] = &MockHealthChecksObj{obj}
|
||||||
|
klog.V(5).Infof("MockBetaHealthChecks.Insert(%v, %v, %+v) = nil", ctx, key, obj)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete is a mock for deleting the object.
|
||||||
|
func (m *MockBetaHealthChecks) Delete(ctx context.Context, key *meta.Key) error {
|
||||||
|
if m.DeleteHook != nil {
|
||||||
|
if intercept, err := m.DeleteHook(ctx, key, m); intercept {
|
||||||
|
klog.V(5).Infof("MockBetaHealthChecks.Delete(%v, %v) = %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !key.Valid() {
|
||||||
|
return fmt.Errorf("invalid GCE key (%+v)", key)
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Lock.Lock()
|
||||||
|
defer m.Lock.Unlock()
|
||||||
|
|
||||||
|
if err, ok := m.DeleteError[*key]; ok {
|
||||||
|
klog.V(5).Infof("MockBetaHealthChecks.Delete(%v, %v) = %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, ok := m.Objects[*key]; !ok {
|
||||||
|
err := &googleapi.Error{
|
||||||
|
Code: http.StatusNotFound,
|
||||||
|
Message: fmt.Sprintf("MockBetaHealthChecks %v not found", key),
|
||||||
|
}
|
||||||
|
klog.V(5).Infof("MockBetaHealthChecks.Delete(%v, %v) = %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
delete(m.Objects, *key)
|
||||||
|
klog.V(5).Infof("MockBetaHealthChecks.Delete(%v, %v) = nil", ctx, key)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Obj wraps the object for use in the mock.
|
||||||
|
func (m *MockBetaHealthChecks) Obj(o *beta.HealthCheck) *MockHealthChecksObj {
|
||||||
|
return &MockHealthChecksObj{o}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update is a mock for the corresponding method.
|
||||||
|
func (m *MockBetaHealthChecks) Update(ctx context.Context, key *meta.Key, arg0 *beta.HealthCheck) error {
|
||||||
|
if m.UpdateHook != nil {
|
||||||
|
return m.UpdateHook(ctx, key, arg0, m)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GCEBetaHealthChecks is a simplifying adapter for the GCE HealthChecks.
|
||||||
|
type GCEBetaHealthChecks struct {
|
||||||
|
s *Service
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the HealthCheck named by key.
|
||||||
|
func (g *GCEBetaHealthChecks) Get(ctx context.Context, key *meta.Key) (*beta.HealthCheck, error) {
|
||||||
|
klog.V(5).Infof("GCEBetaHealthChecks.Get(%v, %v): called", ctx, key)
|
||||||
|
|
||||||
|
if !key.Valid() {
|
||||||
|
klog.V(2).Infof("GCEBetaHealthChecks.Get(%v, %v): key is invalid (%#v)", ctx, key, key)
|
||||||
|
return nil, fmt.Errorf("invalid GCE key (%#v)", key)
|
||||||
|
}
|
||||||
|
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "HealthChecks")
|
||||||
|
rk := &RateLimitKey{
|
||||||
|
ProjectID: projectID,
|
||||||
|
Operation: "Get",
|
||||||
|
Version: meta.Version("beta"),
|
||||||
|
Service: "HealthChecks",
|
||||||
|
}
|
||||||
|
klog.V(5).Infof("GCEBetaHealthChecks.Get(%v, %v): projectID = %v, rk = %+v", ctx, key, projectID, rk)
|
||||||
|
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
||||||
|
klog.V(4).Infof("GCEBetaHealthChecks.Get(%v, %v): RateLimiter error: %v", ctx, key, err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
call := g.s.Beta.HealthChecks.Get(projectID, key.Name)
|
||||||
|
call.Context(ctx)
|
||||||
|
v, err := call.Do()
|
||||||
|
klog.V(4).Infof("GCEBetaHealthChecks.Get(%v, %v) = %+v, %v", ctx, key, v, err)
|
||||||
|
return v, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// List all HealthCheck objects.
|
||||||
|
func (g *GCEBetaHealthChecks) List(ctx context.Context, fl *filter.F) ([]*beta.HealthCheck, error) {
|
||||||
|
klog.V(5).Infof("GCEBetaHealthChecks.List(%v, %v) called", ctx, fl)
|
||||||
|
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "HealthChecks")
|
||||||
|
rk := &RateLimitKey{
|
||||||
|
ProjectID: projectID,
|
||||||
|
Operation: "List",
|
||||||
|
Version: meta.Version("beta"),
|
||||||
|
Service: "HealthChecks",
|
||||||
|
}
|
||||||
|
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
klog.V(5).Infof("GCEBetaHealthChecks.List(%v, %v): projectID = %v, rk = %+v", ctx, fl, projectID, rk)
|
||||||
|
call := g.s.Beta.HealthChecks.List(projectID)
|
||||||
|
if fl != filter.None {
|
||||||
|
call.Filter(fl.String())
|
||||||
|
}
|
||||||
|
var all []*beta.HealthCheck
|
||||||
|
f := func(l *beta.HealthCheckList) error {
|
||||||
|
klog.V(5).Infof("GCEBetaHealthChecks.List(%v, ..., %v): page %+v", ctx, fl, l)
|
||||||
|
all = append(all, l.Items...)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if err := call.Pages(ctx, f); err != nil {
|
||||||
|
klog.V(4).Infof("GCEBetaHealthChecks.List(%v, ..., %v) = %v, %v", ctx, fl, nil, err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if klog.V(4) {
|
||||||
|
klog.V(4).Infof("GCEBetaHealthChecks.List(%v, ..., %v) = [%v items], %v", ctx, fl, len(all), nil)
|
||||||
|
} else if klog.V(5) {
|
||||||
|
var asStr []string
|
||||||
|
for _, o := range all {
|
||||||
|
asStr = append(asStr, fmt.Sprintf("%+v", o))
|
||||||
|
}
|
||||||
|
klog.V(5).Infof("GCEBetaHealthChecks.List(%v, ..., %v) = %v, %v", ctx, fl, asStr, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
return all, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert HealthCheck with key of value obj.
|
||||||
|
func (g *GCEBetaHealthChecks) Insert(ctx context.Context, key *meta.Key, obj *beta.HealthCheck) error {
|
||||||
|
klog.V(5).Infof("GCEBetaHealthChecks.Insert(%v, %v, %+v): called", ctx, key, obj)
|
||||||
|
if !key.Valid() {
|
||||||
|
klog.V(2).Infof("GCEBetaHealthChecks.Insert(%v, %v, ...): key is invalid (%#v)", ctx, key, key)
|
||||||
|
return fmt.Errorf("invalid GCE key (%+v)", key)
|
||||||
|
}
|
||||||
|
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "HealthChecks")
|
||||||
|
rk := &RateLimitKey{
|
||||||
|
ProjectID: projectID,
|
||||||
|
Operation: "Insert",
|
||||||
|
Version: meta.Version("beta"),
|
||||||
|
Service: "HealthChecks",
|
||||||
|
}
|
||||||
|
klog.V(5).Infof("GCEBetaHealthChecks.Insert(%v, %v, ...): projectID = %v, rk = %+v", ctx, key, projectID, rk)
|
||||||
|
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
||||||
|
klog.V(4).Infof("GCEBetaHealthChecks.Insert(%v, %v, ...): RateLimiter error: %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
obj.Name = key.Name
|
||||||
|
call := g.s.Beta.HealthChecks.Insert(projectID, obj)
|
||||||
|
call.Context(ctx)
|
||||||
|
|
||||||
|
op, err := call.Do()
|
||||||
|
if err != nil {
|
||||||
|
klog.V(4).Infof("GCEBetaHealthChecks.Insert(%v, %v, ...) = %+v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = g.s.WaitForCompletion(ctx, op)
|
||||||
|
klog.V(4).Infof("GCEBetaHealthChecks.Insert(%v, %v, %+v) = %+v", ctx, key, obj, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete the HealthCheck referenced by key.
|
||||||
|
func (g *GCEBetaHealthChecks) Delete(ctx context.Context, key *meta.Key) error {
|
||||||
|
klog.V(5).Infof("GCEBetaHealthChecks.Delete(%v, %v): called", ctx, key)
|
||||||
|
if !key.Valid() {
|
||||||
|
klog.V(2).Infof("GCEBetaHealthChecks.Delete(%v, %v): key is invalid (%#v)", ctx, key, key)
|
||||||
|
return fmt.Errorf("invalid GCE key (%+v)", key)
|
||||||
|
}
|
||||||
|
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "HealthChecks")
|
||||||
|
rk := &RateLimitKey{
|
||||||
|
ProjectID: projectID,
|
||||||
|
Operation: "Delete",
|
||||||
|
Version: meta.Version("beta"),
|
||||||
|
Service: "HealthChecks",
|
||||||
|
}
|
||||||
|
klog.V(5).Infof("GCEBetaHealthChecks.Delete(%v, %v): projectID = %v, rk = %+v", ctx, key, projectID, rk)
|
||||||
|
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
||||||
|
klog.V(4).Infof("GCEBetaHealthChecks.Delete(%v, %v): RateLimiter error: %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
call := g.s.Beta.HealthChecks.Delete(projectID, key.Name)
|
||||||
|
|
||||||
|
call.Context(ctx)
|
||||||
|
|
||||||
|
op, err := call.Do()
|
||||||
|
if err != nil {
|
||||||
|
klog.V(4).Infof("GCEBetaHealthChecks.Delete(%v, %v) = %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = g.s.WaitForCompletion(ctx, op)
|
||||||
|
klog.V(4).Infof("GCEBetaHealthChecks.Delete(%v, %v) = %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update is a method on GCEBetaHealthChecks.
|
||||||
|
func (g *GCEBetaHealthChecks) Update(ctx context.Context, key *meta.Key, arg0 *beta.HealthCheck) error {
|
||||||
|
klog.V(5).Infof("GCEBetaHealthChecks.Update(%v, %v, ...): called", ctx, key)
|
||||||
|
|
||||||
|
if !key.Valid() {
|
||||||
|
klog.V(2).Infof("GCEBetaHealthChecks.Update(%v, %v, ...): key is invalid (%#v)", ctx, key, key)
|
||||||
|
return fmt.Errorf("invalid GCE key (%+v)", key)
|
||||||
|
}
|
||||||
|
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "HealthChecks")
|
||||||
|
rk := &RateLimitKey{
|
||||||
|
ProjectID: projectID,
|
||||||
|
Operation: "Update",
|
||||||
|
Version: meta.Version("beta"),
|
||||||
|
Service: "HealthChecks",
|
||||||
|
}
|
||||||
|
klog.V(5).Infof("GCEBetaHealthChecks.Update(%v, %v, ...): projectID = %v, rk = %+v", ctx, key, projectID, rk)
|
||||||
|
|
||||||
|
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
||||||
|
klog.V(4).Infof("GCEBetaHealthChecks.Update(%v, %v, ...): RateLimiter error: %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
call := g.s.Beta.HealthChecks.Update(projectID, key.Name, arg0)
|
||||||
|
call.Context(ctx)
|
||||||
|
op, err := call.Do()
|
||||||
|
if err != nil {
|
||||||
|
klog.V(4).Infof("GCEBetaHealthChecks.Update(%v, %v, ...) = %+v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
err = g.s.WaitForCompletion(ctx, op)
|
||||||
|
klog.V(4).Infof("GCEBetaHealthChecks.Update(%v, %v, ...) = %+v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// HttpHealthChecks is an interface that allows for mocking of HttpHealthChecks.
|
// HttpHealthChecks is an interface that allows for mocking of HttpHealthChecks.
|
||||||
type HttpHealthChecks interface {
|
type HttpHealthChecks interface {
|
||||||
Get(ctx context.Context, key *meta.Key) (*ga.HttpHealthCheck, error)
|
Get(ctx context.Context, key *meta.Key) (*ga.HttpHealthCheck, error)
|
13
vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/gen/BUILD
generated
vendored
Normal file
13
vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/gen/BUILD
generated
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
filegroup(
|
||||||
|
name = "package-srcs",
|
||||||
|
srcs = glob(["**"]),
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:private"],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "all-srcs",
|
||||||
|
srcs = [":package-srcs"],
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
)
|
@ -1,4 +1,4 @@
|
|||||||
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
|
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||||
|
|
||||||
go_library(
|
go_library(
|
||||||
name = "go_default_library",
|
name = "go_default_library",
|
||||||
@ -9,7 +9,8 @@ go_library(
|
|||||||
"method.go",
|
"method.go",
|
||||||
"service.go",
|
"service.go",
|
||||||
],
|
],
|
||||||
importpath = "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta",
|
importmap = "k8s.io/kubernetes/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta",
|
||||||
|
importpath = "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
"//vendor/google.golang.org/api/compute/v0.alpha:go_default_library",
|
"//vendor/google.golang.org/api/compute/v0.alpha:go_default_library",
|
||||||
@ -18,12 +19,6 @@ go_library(
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
go_test(
|
|
||||||
name = "go_default_test",
|
|
||||||
srcs = ["key_test.go"],
|
|
||||||
embed = [":go_default_library"],
|
|
||||||
)
|
|
||||||
|
|
||||||
filegroup(
|
filegroup(
|
||||||
name = "package-srcs",
|
name = "package-srcs",
|
||||||
srcs = glob(["**"]),
|
srcs = glob(["**"]),
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017 The Kubernetes Authors.
|
Copyright 2018 Google LLC
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017 The Kubernetes Authors.
|
Copyright 2018 Google LLC
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017 The Kubernetes Authors.
|
Copyright 2018 Google LLC
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@ -225,9 +225,9 @@ var AllServices = []*ServiceInfo{
|
|||||||
Object: "HealthCheck",
|
Object: "HealthCheck",
|
||||||
Service: "HealthChecks",
|
Service: "HealthChecks",
|
||||||
Resource: "healthChecks",
|
Resource: "healthChecks",
|
||||||
version: VersionBeta,
|
version: VersionAlpha,
|
||||||
keyType: Global,
|
keyType: Global,
|
||||||
serviceType: reflect.TypeOf(&beta.HealthChecksService{}),
|
serviceType: reflect.TypeOf(&alpha.HealthChecksService{}),
|
||||||
additionalMethods: []string{
|
additionalMethods: []string{
|
||||||
"Update",
|
"Update",
|
||||||
},
|
},
|
||||||
@ -236,9 +236,9 @@ var AllServices = []*ServiceInfo{
|
|||||||
Object: "HealthCheck",
|
Object: "HealthCheck",
|
||||||
Service: "HealthChecks",
|
Service: "HealthChecks",
|
||||||
Resource: "healthChecks",
|
Resource: "healthChecks",
|
||||||
version: VersionAlpha,
|
version: VersionBeta,
|
||||||
keyType: Global,
|
keyType: Global,
|
||||||
serviceType: reflect.TypeOf(&alpha.HealthChecksService{}),
|
serviceType: reflect.TypeOf(&beta.HealthChecksService{}),
|
||||||
additionalMethods: []string{
|
additionalMethods: []string{
|
||||||
"Update",
|
"Update",
|
||||||
},
|
},
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017 The Kubernetes Authors.
|
Copyright 2018 Google LLC
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017 The Kubernetes Authors.
|
Copyright 2018 Google LLC
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
@ -3,12 +3,13 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
|||||||
go_library(
|
go_library(
|
||||||
name = "go_default_library",
|
name = "go_default_library",
|
||||||
srcs = ["mock.go"],
|
srcs = ["mock.go"],
|
||||||
importpath = "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/mock",
|
importmap = "k8s.io/kubernetes/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock",
|
||||||
|
importpath = "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/cloudprovider/providers/gce/cloud:go_default_library",
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud:go_default_library",
|
||||||
"//pkg/cloudprovider/providers/gce/cloud/filter:go_default_library",
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter:go_default_library",
|
||||||
"//pkg/cloudprovider/providers/gce/cloud/meta:go_default_library",
|
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta:go_default_library",
|
||||||
"//vendor/google.golang.org/api/compute/v0.alpha:go_default_library",
|
"//vendor/google.golang.org/api/compute/v0.alpha:go_default_library",
|
||||||
"//vendor/google.golang.org/api/compute/v0.beta:go_default_library",
|
"//vendor/google.golang.org/api/compute/v0.beta:go_default_library",
|
||||||
"//vendor/google.golang.org/api/compute/v1:go_default_library",
|
"//vendor/google.golang.org/api/compute/v1:go_default_library",
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017 The Kubernetes Authors.
|
Copyright 2018 Google LLC
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@ -30,13 +30,13 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
|
cloud "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter"
|
||||||
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
alpha "google.golang.org/api/compute/v0.alpha"
|
alpha "google.golang.org/api/compute/v0.alpha"
|
||||||
beta "google.golang.org/api/compute/v0.beta"
|
beta "google.golang.org/api/compute/v0.beta"
|
||||||
ga "google.golang.org/api/compute/v1"
|
ga "google.golang.org/api/compute/v1"
|
||||||
"google.golang.org/api/googleapi"
|
"google.golang.org/api/googleapi"
|
||||||
cloud "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017 The Kubernetes Authors.
|
Copyright 2018 Google LLC
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@ -27,7 +27,7 @@ import (
|
|||||||
ga "google.golang.org/api/compute/v1"
|
ga "google.golang.org/api/compute/v1"
|
||||||
"google.golang.org/api/googleapi"
|
"google.golang.org/api/googleapi"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017 The Kubernetes Authors.
|
Copyright 2018 Google LLC
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@ -19,7 +19,7 @@ package cloud
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ProjectRouter routes service calls to the appropriate GCE project.
|
// ProjectRouter routes service calls to the appropriate GCE project.
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017 The Kubernetes Authors.
|
Copyright 2018 Google LLC
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@ -20,7 +20,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RateLimitKey is a key identifying the operation to be rate limited. The rate limit
|
// RateLimitKey is a key identifying the operation to be rate limited. The rate limit
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017 The Kubernetes Authors.
|
Copyright 2018 Google LLC
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017 The Kubernetes Authors.
|
Copyright 2018 Google LLC
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@ -21,7 +21,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
Loading…
Reference in New Issue
Block a user