nikhiljindal
4c4a084a92
Updating proxy to return 301 to add a / at the end
2015-03-30 12:12:49 -07:00
Brendan Burns
ee0d71aac6
Fix up parameter handling. Also handle type mapping between Go and JSON
2015-03-27 21:43:16 -07:00
Brendan Burns
d70d2d20cd
Add params for the proxy when installing the API.
2015-03-27 21:43:16 -07:00
Daniel Smith
93a82c30d9
Revert "Updating proxy to return 301 to add a "/" at the end for #4958"
2015-03-27 15:59:40 -07:00
Daniel Smith
d137e7b62d
Merge pull request #6048 from nikhiljindal/proxy
...
Updating proxy to return 301 to add a "/" at the end for #4958
2015-03-27 15:49:10 -07:00
Brian Grant
f0da47b2dd
Merge pull request #5763 from smarterclayton/get_input_parameters_versioned
...
Expose versioned query parameters and make watch an operation on List
2015-03-27 14:35:23 -07:00
nikhiljindal
2fff606a6f
Updating proxy to return 301 to add a / at the end
2015-03-27 14:29:18 -07:00
Clayton Coleman
870da687d0
Add more extensive tests to apiserver for variations in version
...
Formalize v1beta1 and v1beta3 style APIs in our test cases.
2015-03-27 15:03:58 -04:00
Clayton Coleman
eb0eff69fe
Move watch to being a resthandler resource and expose it on LIST
...
GET /pods?watch=true&resourceVersion=10
will now function equivalent to GET /watch/pods.
2015-03-27 15:03:58 -04:00
Clayton Coleman
1618c39a46
Convert List query parameters via object conversion
...
Convert url.Values -> an object, with appropriate versioning. ListOptions
should also expose parameter names to swagger.
2015-03-27 15:03:57 -04:00
Clayton Coleman
30358e8b04
Add more specific error handling and handle generic errors more effectively
...
The client library should type more generic errors from the server.
2015-03-26 17:30:13 -04:00
Clayton Coleman
fc3609fb5b
Allow InputStreams to be returned by requests
...
Add additional metadata to restful services.
2015-03-24 17:25:45 -04:00
Jordan Liggitt
a75b501821
Improve ResourceLocation API, allow proxy to use authenticated transport
2015-03-24 11:11:34 -04:00
Wojciech Tyczynski
f7191d626d
Change "/ns" to "/namespaces" in few remaining places.
2015-03-24 13:05:32 +01:00
Clayton Coleman
d46087db50
Move REST* interfaces into pkg/api/rest
...
Dependency chain is now api -> api/rest -> apiserver. Makes the
interfaces much cleaner to read, and cleans up some inconsistenties
that crept in along the way.
2015-03-23 16:52:21 -04:00
Clayton Coleman
428d2263e5
Graceful deletion of resources
...
This commit adds support to core resources to enable deferred deletion
of resources. Clients may optionally specify a time period after which
resources must be deleted via an object sent with their DELETE. That
object may define an optional grace period in seconds, or allow the
default "preferred" value for a resource to be used. Once the object
is marked as pending deletion, the deletionTimestamp field will be set
and an etcd TTL will be in place.
Clients should assume resources that have deletionTimestamp set will
be deleted at some point in the future. Other changes will come later
to enable graceful deletion on a per resource basis.
2015-03-19 15:33:32 -04:00
Brendan Burns
6d763dce2b
start normalizing error handling in watch.
2015-03-17 21:04:55 -07:00
Brendan Burns
4725ecac3f
Set the emptyNameError to be a bad request. Always return a JSON error.
2015-03-17 16:17:14 -07:00
Brian Grant
2f9a41b898
Merge pull request #5233 from brendandburns/labels
...
Make label and field selector query strings versionable.
2015-03-16 16:01:37 -07:00
Piotr Szczesniak
ffcf7b1866
Increased default timeout in APIServer to 2 minutes
...
This should for #5431
2015-03-14 06:54:31 +01:00
Rohit Jnagal
203f37a58a
Merge pull request #5240 from xudifsd/rm-double-write-in-apiserver-proxy
...
Redirector.ResourceLocation shouldn't return `"", nil`
2015-03-13 09:20:46 -07:00
nikhiljindal
5b1e8589e9
Updating api_installer to register paths in a deterministic order to get a deterministic swagger spec
2015-03-12 22:55:17 -07:00
Di Xu
3fac253536
Redirector.ResourceLocation shouldn't return `"", nil`
2015-03-13 08:26:46 +08:00
Brendan Burns
266234f3b9
Make label and field selector query strings versionable.
2015-03-12 12:24:07 -07:00
Wojciech Tyczynski
9f2f10d6db
Make scheduler to watch PodSpec.Host instead Status.Host
2015-03-12 13:38:58 +01:00
Daniel Smith
cc3a433a7a
fix goroutine leak
2015-03-11 12:51:20 -07:00
Salvatore Dario Minonne
925fa6baf8
Adding fields selector
2015-03-10 22:13:10 +01:00
Brian Grant
7aa060bae7
Merge pull request #4706 from mikedanese/PATCH
...
add PATCH verb to apiserver
2015-03-10 11:38:22 -07:00
Mike Danese
46ec580771
add PATCH to apiserver
2015-03-10 10:56:15 -07:00
Brendan Burns
5b3b330bb8
Switch some parse errors to return HTTP 400 instead of the default (500)
2015-03-09 20:42:14 -07:00
Brian Grant
7b72d9539f
Merge pull request #5054 from smarterclayton/switch_to_sub_bindings
...
Make Pod binding a subresource (and be generic to other types)
2015-03-09 16:41:26 -07:00
Clayton Coleman
4b16a87096
Simplify api_installer and setup methods
2015-03-09 14:39:31 -04:00
Brendan Burns
7c654a3d1b
Expand test coverage in master, kubectl/cmd/util, pkg/registry/resourcequota, and api/rest.
2015-03-07 15:24:39 -08:00
Daniel Smith
05ea93f985
Merge pull request #5147 from a-robinson/func
...
Re-add the defer statements around the monitor() calls in the apiserver.
2015-03-06 15:31:45 -08:00
Alex Robinson
60f0e9d673
Fix the broken calls to the monitor() by having it take arguments as pointers.
...
This is needed for the changes to various labels from later in the function
to be picked up.
2015-03-06 23:16:44 +00:00
Brendan Burns
2700871b04
Merge pull request #5013 from smarterclayton/misc_fixup
...
Small cleanups to a number of client behaviors
2015-03-06 15:41:34 +01:00
Salvatore Dario Minonne
75f2efb500
moving ParseSelector to Parse for labels only.
2015-03-05 22:39:36 +01:00
Brian Grant
58a9045f75
Merge pull request #5081 from vmarmol/put
...
Specified that PUT is a replace and not an update.
2015-03-05 10:32:55 -08:00
Victor Marmol
5d919d6935
Specified that PUT is a replace and not an update.
...
Fixes #3112 .
2015-03-04 17:02:42 -08:00
Satnam Singh
123ca7de53
Specify HTTP for REDIRECT
2015-03-04 16:37:15 -08:00
Clayton Coleman
3beea3b660
Skip types that are not registered on an API version
2015-03-03 21:14:57 -05:00
Brian Grant
fca9fd68c7
Merge pull request #4779 from smarterclayton/status_endpoints
...
Minimal status mutation change
2015-03-03 11:00:02 -08:00
Daniel Smith
c4822dc060
Revert "Revert "Adding converter functions to convert field label selectors to internal version before matching""
...
This reverts commit 5f35a67002
.
2015-03-02 15:00:09 -08:00
Clayton Coleman
3d290089ae
Minimal status mutation change
...
PUT /api/v1beta3/namespaces/default/pods/foo/status
{
"metadata": {...}, // allowed for valid values
"spec": {}, // ignored
"status": {...}, // allowed, except for Host
}
Exposes the simplest possibly change. Needs a slight refactoring
to RESTUpdateStrategy to split merging which can be done in a
follow up.
2015-03-01 22:35:17 -05:00
Alex Robinson
0d5fe5d078
Use a prometheus Histogram rather than a Summary for tracking apiserver latency.
2015-03-02 02:15:16 +00:00
Zach Loafman
5f35a67002
Revert "Adding converter functions to convert field label selectors to internal version before matching"
2015-02-28 11:42:49 -08:00
nikhiljindal
48e7945f65
Versioning the field selectors
2015-02-27 16:10:59 -08:00
Daniel Smith
ec58e6d78e
use correct path for proxy replacements
2015-02-24 10:10:06 -08:00
Daniel Smith
78d05e5307
add URL path generation function
2015-02-24 10:10:04 -08:00
Daniel Smith
2d56547524
refactor proxy upgrade path
2015-02-24 10:10:02 -08:00
nikhiljindal
905a3f7909
Updating the handlers to accept full request path rather than a trimmed one
2015-02-24 00:37:20 -08:00
Andy Goldstein
44d41a0f1b
Move golang code to third_party
2015-02-20 20:00:31 -05:00
Andy Goldstein
5bd0e9ab05
Add streaming command execution & port forwarding
...
Add streaming command execution & port forwarding via HTTP connection
upgrades (currently using SPDY).
2015-02-20 09:57:02 -05:00
Daniel Smith
5b96a454d2
clean up rest installation code a little
2015-02-19 13:26:27 -08:00
Daniel Smith
ca5a73ac6b
remove redundant func()
2015-02-17 15:58:18 -08:00
Brian Grant
876d651737
Merge pull request #4395 from smarterclayton/split_naming
...
Fix cross-namespace LIST and WATCH
2015-02-17 09:40:09 -08:00
deads2k
3be343449f
expose creation APIRequestInfoResolver
2015-02-16 13:56:03 -05:00
Clayton Coleman
9175082a1c
Split naming behavior out into objects that are derived from the request
...
Fix bug with cross namespace queries not being possible. Ensure selflink
is set on lists correctly.
2015-02-16 00:23:38 -05:00
Clayton Coleman
c977a45864
Merge pull request #4419 from smarterclayton/expand_generic_resources
...
Expand the generic registry
2015-02-13 13:53:20 -05:00
Clayton Coleman
78385b1230
Set 201 when RESTCreater returns a simple api.Status object
2015-02-13 12:12:50 -05:00
Jordan Liggitt
083ce268e0
Put user in context, map requests to context above resthandler layer
2015-02-12 20:58:04 -05:00
Clayton Coleman
c24f4a24b4
Rename TryAgainLater status code to ServerTimeout
2015-02-12 15:01:12 -05:00
Clayton Coleman
e6fdac1365
Return an error when names are empty
2015-02-12 09:45:13 -05:00
Clayton Coleman
8f6e3607a9
Add monitoring as a filter
2015-02-11 17:07:23 -05:00
Clayton Coleman
79cb93002e
Remove asynchronous channel on RESTStorage interfaces
2015-02-11 16:26:07 -05:00
Clayton Coleman
d167c11b59
Remove layers of indirection between apiinstaller and resthandler
...
Make the RESTHandler feel more go-restful, set the stage for adding
new types of subresource collections.
2015-02-11 16:26:06 -05:00
derekwaynecarr
7b34d6ef8e
The namespace context for a get of an individual namespace is the namespace
2015-02-11 16:06:51 -05:00
Alex Robinson
ab62b689a5
Add monitoring instrumentation for the remaining HTTP handlers in the apiserver.
2015-02-10 23:19:49 +00:00
Victor Marmol
535502ead6
Merge pull request #4272 from a-robinson/metrics
...
Basic initial instrumentation of the apiserver
2015-02-10 14:58:14 -08:00
Alex Robinson
d39262d743
Consolidate the prometheus Counters into a shared CounterVec and remove
...
the "code" label from the latencies SummaryVec.
2015-02-10 22:47:56 +00:00
Clayton Coleman
06656efe62
Merge pull request #4283 from ncdc/allow-proxy-to-resource-root-path
...
Allow proxying to a resource at /
2015-02-10 17:45:31 -05:00
Alex Robinson
2463cff79c
Basic initial instrumentation of the apiserver. This links in the
...
prometheus library for monitoring, which exports some basic resource
usage metrics by default, like number of goroutines, open file
descriptors, resident and virtual memory, etc. I've also started adding
in request counters and latency histograms, but have only added them to two
of our HTTP handlers. If this looks reasonable, I'll add them to the rest
in a second PR.
2015-02-10 20:44:28 +00:00
Andy Goldstein
4f89ed9d6a
Allow proxying to a resource at /
...
Add a route for /proxy/<kind>/<name>/ without requiring additional path
information. This allows for e.g. /proxy/service/myservice/, which will
proxy to the service at /, instead of always requiring something in the
path.
2015-02-10 10:04:40 -05:00
derekwaynecarr
0bd0e12bbc
Add support for Namespace as Kind
...
Add example for using namespaces
2015-02-10 09:50:50 -05:00
Mike Danese
14bfec92f2
rename probe.Status to probe.Result.
2015-02-05 15:49:58 -08:00
nikhiljindal
19f7ecf31b
Deleting the API objects related to /operations
2015-02-04 20:50:45 -08:00
deads2k
8a2fe9bd2b
modify policy to correctly identify resource versus kind
2015-02-04 13:36:01 -05:00
deads2k
1c9216a45e
clarify api request information
2015-02-04 13:36:01 -05:00
Brendan Burns
65e4964bc2
Merge pull request #4087 from enisoc/apiserver-proxy-redirect
...
Rewrite "Location" header in apiserver proxy.
2015-02-04 09:33:34 -08:00
nikhiljindal
18609e1706
Moving /watch, /proxy and /redirect registration to go-restful
2015-02-03 15:47:48 -08:00
Anthony Yeh
6a0dec0e99
Rewrite "Location" header in apiserver proxy.
...
So that redirects work correctly.
2015-02-03 15:14:28 -08:00
Clayton Coleman
9263a8f627
Remove logging on apiserver startup
...
Now that we return errors on startup there's not much value in the
startup log for anyone except a few developers. Nuke
2015-02-03 00:02:07 -05:00
Anthony Yeh
695b08885b
Fix apiserver proxy path rewriting.
...
1) Absolute paths without a hostname were being rewritten relative to
the current page, rather than relative to the current host.
e.g. When viewing /some/page.html, it would rewrite:
/other/page.html => proxyPrepend/some/other/page.html
Instead, it should rewrite:
/other/page.html => proxyPrepend/other/page.html
2) Trailing slashes were being stripped from all rewritten URLs.
This is because path.Join() always calls path.Clean() as well:
http://golang.org/pkg/path/#Join
2015-02-02 13:01:46 -08:00
derekwaynecarr
22ceccc188
Fix TestUnimplementedRESTStorage
2015-02-02 10:26:19 -05:00
derekwaynecarr
a216cb747c
Fix logic issue in register resource handlers not doing list across all namespaces in v1beta3
2015-02-02 10:26:19 -05:00
derekwaynecarr
4c33e36a88
Plumb restmapper properly through apiserver and tests
2015-02-02 10:26:19 -05:00
derekwaynecarr
71ec444d63
Make a RESTMapper scope aware
2015-02-02 10:26:19 -05:00
Satnam Singh
d8bda4006a
Increase API rate limit on read only port of apiserver
2015-01-30 11:58:59 -08:00
nikhiljindal
dc92d3c7a2
Cleaning up the operations code in client
2015-01-28 21:04:16 -08:00
Brian Grant
fcb1cd30ff
Merge pull request #3891 from nikhiljindal/Operation
...
Deleting OperationHandler for handling /operation endpoint on server
2015-01-28 17:01:37 -08:00
Satnam Singh
5d5752374b
Set Retry-After header before calling WriteHeader
2015-01-28 14:28:37 -08:00
nikhiljindal
521728e920
Deleting OperationHandler for handling /operation endpoint on server
2015-01-28 13:13:10 -08:00
Tim Hockin
c8f61885df
Merge pull request #3695 from mikedanese/ready
...
refactor pkg/health into more reusable pkg/probe
2015-01-28 11:00:32 -08:00
Clayton Coleman
5117189e03
Merge pull request #3707 from nikhiljindal/preOperations
...
Removing support for asynchronous server requests
2015-01-28 13:02:52 -05:00
deads2k
6e1f680a57
return all errors from RESTStorage registration
2015-01-28 10:31:33 -05:00
nikhiljindal
de60600608
Making all operations synchronous
2015-01-27 18:47:56 -08:00
Satnam Singh
3a9e6d8f29
Switch to use Too Many Requests response code
...
Name the 429 status code
2015-01-27 14:54:30 -08:00
Satnam Singh
358ace610d
Merge pull request #3824 from smarterclayton/allow_panic_and_error_reporting
...
Allow panics and unhandled errors to be sent elsewhere
2015-01-27 13:18:43 -08:00
Mike Danese
5dc6362f8a
rename probe.Healthy to probe.Success and renam probe.Unhealthy to probe.Failure.
2015-01-27 11:20:30 -08:00
Mike Danese
a298402bd4
remove pkg/health and move everything over to pkg/probe
2015-01-27 11:20:30 -08:00
Brendan Burns
b078889360
Merge pull request #3822 from nikhiljindal/swaggerbug
...
Fixing a bug where Reads() was being called twice on POST routes
2015-01-27 10:01:27 -08:00
Clayton Coleman
19987612bf
Replace code that eats errors with a more consistent reporting
...
In order to allow certain programmer error / unexpected error states
to be captured, replace sections that log and eat errors with a method
that can be centrally replaced. This captures two common error sources,
replication errors, and apiserver code that returns invalid errors.
2015-01-26 20:54:29 -05:00
nikhiljindal
54e5d1f102
Fixing a bug where Reads() was called twice on all POST routes
2015-01-26 17:21:25 -08:00
Satnam Singh
8350bb9700
Add a Retry-After header when rate limit is exceeded
2015-01-22 16:03:00 -08:00
Brian Grant
3ae67f8153
Merge pull request #3548 from nikhiljindal/listHandlers
...
Updating handleIndex in master to list all valid paths.
2015-01-21 15:42:50 -08:00
nikhiljindal
51007cc798
Updating handleIndex in master to list all valid paths.
...
The list of valid paths is computed from http.ServeMux and
restful.WebService.
Adding a mux helper - wrapper over mux, that keeps track of the paths
handled by mux.
2015-01-21 13:40:01 -08:00
Anthony Yeh
8c900187b6
Add reverse proxy headers in apiserver proxy.
...
Fixes #3484
2015-01-19 13:15:41 -08:00
Nikhil Jindal
e6c5d59a55
Merge pull request #3509 from enisoc/apiserver-proxy-trailing-slash
...
Preserve trailing slash in apiserver proxy.
2015-01-15 15:13:49 -08:00
Nikhil Jindal
aeab434400
Merge pull request #3514 from enisoc/apiserver-proxy-content-type
...
Allow Content-Type with charset in apiserver proxy.
2015-01-15 15:07:07 -08:00
Clayton Coleman
90c835af47
The API server setup logging is debug specific, bump above V(4)
...
Reduces some chatter in test suites where we are confident this code
already works. Also removed any logging which is obvious from swagger.
Finally, rolls up InstallREST related errors all the way back to master,
which will glog.Fatalf (coding errors).
2015-01-15 14:25:58 -05:00
Anthony Yeh
895c23e2d2
Allow Content-Type with charset in apiserver proxy.
...
Fixes #3456
2015-01-14 23:01:49 -08:00
Anthony Yeh
6f641744ff
Preserve trailing slash in apiserver proxy.
...
Some servers are sensitive to the presence of a trailing slash.
For example, http://etcd/v2/keys returns 404 while
http://etcd/v2/keys/ returns the key named "/".
2015-01-14 21:42:34 -08:00
nikhiljindal
f8db96b673
Fixing a bug in
...
https://github.com/GoogleCloudPlatform/kubernetes/pull/3404 which broke
swagger-ui.
Swagger-ui requires operation to be defined on all Routes.
2015-01-12 15:20:01 -08:00
Daniel Smith
6f43074143
Merge pull request #3404 from smarterclayton/method_not_allowed
...
Allow RESTStorage objects to not implement methods
2015-01-12 13:21:10 -08:00
Clayton Coleman
d17f75f254
Remove user agent logging (doesn't add significant value)
...
We can reintroduce path/agent logging at a later point, this just clogs
verbose logs.
2015-01-12 13:37:37 -05:00
Clayton Coleman
22c99c98e2
Split RESTStorage into separate interfaces
...
Omit unimplemented interfaces from Swagger
2015-01-12 12:19:45 -05:00
nikhiljindal
7e909ed743
Changes to improve swagger ui.
...
- Separating out index, version and api handlers into independent web
services. Moved the index handler to /welcome, version handler to
/version and the api handler to /api,
2015-01-09 10:56:24 -08:00
Eric Tune
c2b3d678c0
Merge pull request #3248 from derekwaynecarr/admission_control_hooks
...
Implement basic admission control framework
2015-01-07 16:52:49 -08:00
derekwaynecarr
a56087cdf8
Remove client from attributes, remove admission control interface, fix-up error codes
2015-01-07 14:42:31 -05:00
derekwaynecarr
5ceffe2625
Add tests to ensure resthandler invokes admission control
2015-01-07 14:42:31 -05:00
derekwaynecarr
1e2b995a79
Fix admission control in tests
2015-01-07 14:42:31 -05:00
derekwaynecarr
520ae3ef27
Implement basic admission control framework
2015-01-07 14:42:31 -05:00
Clayton Coleman
31fc19efe9
Watching on invalid label/field selectors should error
2015-01-07 14:38:38 -05:00
Daniel Smith
4ab8f238ce
Fix proxy bug where it is confused by gzip encoding
2014-12-22 11:35:47 -08:00
Brendan Burns
5c14fc610b
Merge pull request #3045 from nikhiljindal/setApiVersion
...
Setting apiVersion in restful.WebService
2014-12-19 10:11:15 -08:00
nikhiljindal
cfee8f1355
done
2014-12-18 15:38:09 -08:00
derekwaynecarr
6694a45542
Add doc for {namespace} path param, fixup and verify proxy paths
2014-12-16 15:55:48 -05:00
derekwaynecarr
14dd466e83
Added namespace test case for POST to /pods
2014-12-16 15:55:48 -05:00
derekwaynecarr
7cf664439f
Move namespace from query param to path part
2014-12-16 15:55:47 -05:00
bgrant0607
9b40c52c24
Merge pull request #2910 from smarterclayton/small_v1beta3_refactors
...
Fix internal -> v1beta3 round trip issues
2014-12-15 13:21:12 -08:00
Clayton Coleman
b1b255f90a
Prevent infinite loop in apiserver errorJSON
2014-12-12 18:23:17 -05:00
Clayton Coleman
904d0d46c3
Rename ServerOp to Operation in v1beta3 and internal
...
Add the appropriate rename logic internally.
2014-12-12 18:08:41 -05:00
Brendan Burns
59b5546b28
Turn on node level validation, and make the validation set dynamic.
2014-12-10 22:02:45 -08:00
derekwaynecarr
ef25520baa
make selfLink namespace aware
2014-12-05 17:37:11 -05:00
Sam Ghods
6399854240
Remove unused YAML tags and GetYAML/SetYAML methods
...
Unneeded after move to ghodss/yaml.
2014-12-02 16:25:28 -08:00
Brian Grant
e18dcb87c4
Format JSON by default. Fixes #2243 .
2014-11-25 23:11:43 +00:00
Tim Hockin
95a9098311
fix 'go vet' warnings
2014-11-21 09:45:28 +08:00
Tim Hockin
ea960711ff
Clean up error logs.
...
Use %v for errors, tidy some messages, make error messages start lowe-case
(as per go guidelines). Just accumulated nits.
2014-11-21 09:45:26 +08:00
Jordan Liggitt
c895331277
Make master take authenticator.Request interface instead of tokenfile
2014-11-19 15:07:51 -05:00
Eric Paris
4e95104953
update code.goole.com/p/go.net to golang.org/x/net
...
https://groups.google.com/forum/#!topic/golang-nuts/eD8dh3T9yyA
2014-11-16 22:10:24 -05:00
Brian Grant
7583e1a643
Automatic API generation by adopting go-restful
2014-11-14 16:49:19 +00:00
Clayton Coleman
21a6e96418
Merge pull request #2126 from brendandburns/validatez
...
Add etcd to the list of services to validate.
2014-11-10 14:53:41 -05:00
Clayton Coleman
4acb8e5eaf
Merge pull request #2189 from lavalamp/fix
...
Add self links to objects sent down the watch channel.
2014-11-06 12:57:07 -05:00
Brendan Burns
d7dc20fd6a
Add etcd to the list of services to validate.
...
Also add minions.
2014-11-05 21:22:01 -08:00
Daniel Smith
4196780eda
Add self links to objects sent down the watch channel.
2014-11-05 17:22:18 -08:00
Eric Tune
6e81e8c896
Basic ACL file.
...
Added function to read basic ACL from a CSV file.
Added implementation of Authorize based on that file's policies.
Added docs on authentication and authorization.
Added example file and tested it.
2014-11-05 16:06:22 -08:00
Eric Tune
1668c6f107
Authorization based on namespace, kind, readonly.
...
Also, pass Authorizer into master.Config.
2014-11-03 17:45:15 -08:00
Eric Tune
3045035512
Get user from request and put in authz attribs.
...
Added integration tests for user-based auth.
2014-11-03 16:38:56 -08:00
Brendan Burns
f02fe2da1b
Deflake the TestCreate test, by adding an explicit wait.
2014-11-02 12:38:31 -08:00
Eric Tune
55c2d6bbbb
Add basic Authorization.
...
Added basic interface for authorizer implementations.
Added default "authorize everything" and "authorize nothing
implementations.
Added authorization check immediately after authentication check.
Added an integration test of authorization at the HTTP level of
abstraction.
2014-10-31 12:04:33 -07:00
Brendan Burns
563311071d
Merge pull request #2090 from ddysher/stop-httptest-server
...
Stop httptest server.
2014-10-30 21:44:53 -07:00
Deyuan Deng
acf9d23b32
Stop httptest server.
2014-10-30 21:37:08 -04:00
Daniel Smith
b28234fac6
Fix self linking of objects returned in lists.
2014-10-30 15:04:11 -07:00
derekwaynecarr
dda19071e3
Fix watch by namespace
2014-10-30 12:56:50 -04:00
Daniel Smith
3045311398
Fix subtle bug when proxy constructs outgoing URL.
2014-10-29 11:29:28 -07:00
Daniel Smith
7209ca1543
Make redirect handle namespaces just like proxy (which is weird and needs to be fixed but at least this will be consistent).
2014-10-29 11:29:28 -07:00
Daniel Smith
dca7363459
Serve API version list, test with an integration test.
2014-10-28 17:35:56 -07:00
Clayton Coleman
5cb3c10289
Merge pull request #1782 from smarterclayton/allow_put_to_set_create
...
Allow clients to determine the difference between create or update on PUT
2014-10-28 13:40:41 -04:00
Eric Tune
40a5ca034d
Integration test on master, not just apiserver.
...
Moved code from cmd/apiserver to pkg/master.
test/integration/client_test made to use a master object,
instead of an apiserver.Handle.
Subsequent PRs will move more handler-installation into
pkg/master, with the goal that every http.Handler of a
standalone apiserver process can also be tested
in a "testing"-style go test.
In particular, a subsequent PR will test
authorization.
2014-10-27 09:14:58 -07:00
Clayton Coleman
d5ee171410
Allow clients to determine the difference between create or update on PUT
...
PUT allows an object to be created (http 201). This allows REST code to
indicate an object has been created and clients to react to it.
APIServer now deals with <-chan RESTResult instead of <-chan runtime.Object,
allowing more data to be passed through.
2014-10-24 14:41:15 -04:00
Clayton Coleman
644eb70085
Refactor tests to split ObjectMeta from TypeMeta
2014-10-24 11:22:21 -04:00
Clayton Coleman
7550c146dc
Replace struct initializers for TypeMeta with ObjectMeta
2014-10-24 11:22:21 -04:00
Clayton Coleman
1ccb86c760
Rename methods in api/meta to be cleaner
2014-10-22 22:59:12 -04:00
Clayton Coleman
bb77a5d15f
Rename ID -> Name
2014-10-22 15:00:26 -04:00
Daniel Smith
91efe51770
Merge pull request #1829 from jhadvig/proxy_flush
...
Flush data periodically instead of their buffering
2014-10-21 17:01:15 -07:00
Tim Hockin
e8686429c4
Merge pull request #1916 from lavalamp/fix
...
Add read-only, rate limited endpoint
2014-10-20 16:42:46 -07:00
jhadvig
69c7228006
Flush data periodically instead of their buffering
2014-10-21 01:39:01 +02:00
Daniel Smith
9356ed7fe7
Add read-only, rate limited endpoint
2014-10-20 16:32:52 -07:00
derekwaynecarr
51aeb6bcd1
Add unit test for namespace aware proxy
2014-10-20 16:26:51 -04:00
Tim Hockin
c5388e9a30
Merge pull request #1884 from lavalamp/fix4
...
Get rid of old minion proxy code in favor of new, better proxy code
2014-10-20 11:50:52 -07:00
Daniel Smith
bf942e859f
remove old proxy code.
2014-10-20 11:28:12 -07:00
derekwaynecarr
5e01c804fd
Fixup apiserver proxy to be namespace aware
2014-10-20 10:39:16 -04:00
deads2k
2c35c06727
report originating error for GetReference failure
2014-10-17 12:52:41 -04:00
bgrant0607
9edd8a104c
Merge pull request #1833 from erictune/authz
...
Add forbidden error.
2014-10-16 13:39:17 -07:00
derekwaynecarr
085ca40291
Enforce unique constraint at namespace boundary in etcd, make client and server namespace aware
2014-10-16 13:02:52 -04:00
Eric Tune
26a2bab797
Add forbidden error.
...
Will be used in subsequent PRs that add authorization.
2014-10-16 09:25:54 -07:00
Haney Maxwell
c0bf974871
Allow disabling non-necessary kubelet and apiserver endpoints
2014-10-09 16:49:27 -07:00
Clayton Coleman
82bcdd3b3b
Make ResourceVersion a string internally instead of uint64
...
Allows us to define different watch versioning regimes in the future
as well as to encode information with the resource version.
This changes /watch/resources?resourceVersion=3 to start the watch at
4 instead of 3, which means clients can read a resource version and
then send it back to the server. Clients should no longer do math on
resource versions.
2014-10-07 19:00:26 -04:00
Clayton Coleman
d3e51a0f24
Rename JSONBase -> TypeMeta in preparation for v1beta3
...
Will make subsequent refactor much easier
2014-10-07 11:12:16 -04:00
derekwaynecarr
e4ec49ee6b
Require namespace on controller, pod, service objects
2014-10-01 10:57:50 -04:00
Tim Hockin
e73de49f81
Caps on StatusReason*
2014-09-27 21:38:51 -07:00
Daniel Smith
37e505601e
add self linking to apiserver
2014-09-26 15:08:02 -07:00
derekwaynecarr
ee19ba186d
Update to use api.Context
2014-09-26 11:50:34 -04:00
derekwaynecarr
be85ad7a3d
Add context object in test cases flows
2014-09-26 11:50:34 -04:00
derekwaynecarr
3e685674e7
Add context object to interfaces
2014-09-26 11:50:34 -04:00
Clayton Coleman
74db9a1b20
Log apiserver errors that are not of an expected type
...
Currently HttpLog only expected status range - this logs errors
that come back from a REST storage object without being first
converted to something in pkg/api/errors. This usually indicates
unexpected error conditions that a programmer didn't explicitly
check for - the kinds of problems that may need debugging by
an operator later. Set to V(1) because they don't impair normal
operation.
2014-09-25 16:21:48 -04:00
Clayton Coleman
e3da2ba2c8
Cleanup watch encoding (remove dupe Encoding)
...
Move standard watch encode / decode streams to use
runtime.RawExtension and embed API decoding based on
a provided codec.
2014-09-22 16:03:07 -04:00
Brendan Burns
a4912d7203
Merge pull request #1342 from jwforres/websocket_connection_header
...
Match any Connection header that contains the Upgrade token for websocke...
2014-09-18 09:47:07 -07:00
Jessica Forrester
f2732f18a7
Match any Connection header that contains the Upgrade token for websockets
2014-09-18 09:26:21 -04:00
Daniel Smith
4e9cf2ccb4
Add field selector to List, implement for pods.
2014-09-16 16:17:16 -07:00
Daniel Smith
0b75f7b543
Merge pull request #1275 from smarterclayton/v1beta2
...
Create v1beta2 and allow multiple Codec encodings to exist
2014-09-16 14:52:04 -07:00
Brendan Burns
f8844ce69e
Add a validator for validating components in the cluster infrastructure.
2014-09-16 13:37:01 -07:00
Clayton Coleman
61e3ce7ddc
Make runtime less global for Codec
...
* Make Codec separate from Scheme
* Move EncodeOrDie off Scheme to take a Codec
* Make Copy work without a Codec
* Create a "latest" package that imports all versions and
sets global defaults for "most recent encoding"
* v1beta1 is the current "latest", v1beta2 exists
* Kill DefaultCodec, replace it with "latest.Codec"
* This updates the client and etcd to store the latest known version
* EmbeddedObject is per schema and per package now
* Move runtime.DefaultScheme to api.Scheme
* Split out WatchEvent since it's not an API object today, treat it
like a special object in api
* Kill DefaultResourceVersioner, instead place it on "latest" (as the
package that understands all packages)
* Move objDiff to runtime.ObjectDiff
2014-09-16 16:26:43 -04:00
Clayton Coleman
154a91cd33
Rename runtime.DefaultScheme to latest.Codec for ease of readability
2014-09-16 16:19:35 -04:00
Clayton Coleman
fe614aeda2
Simple refactor for ease of readability
...
runtime.DefaultCodec -> latest.Codec
2014-09-16 16:12:35 -04:00
Jessica Forrester
0f2b8f4f9f
Create passthroughLogger when LogOf is called and request has no logger
2014-09-11 16:48:06 -04:00
Jessica Forrester
d82cf7dd48
Rebased and fixed test cases
2014-09-09 17:50:18 -04:00
Jessica Forrester
0cac1c5f79
Switch LogOf from panicking when logger is missing to creating logger with the defaults.
...
Update CORS tests to a table-based test and cover more cases.
2014-09-09 17:50:18 -04:00
Jessica Forrester
becf6ca4e7
Move RecoverPanics to be the top level wrapped handler. Add new method to be sure a logger has been generated instead of assuming one has. Move regexp list compilation into a utility and pass regexp list into CORS.
2014-09-09 17:50:18 -04:00
Jessica Forrester
8b4ca9c2a7
Move CORS handler wrapping into cmd/apiserver and switch config flag to a list of allowed origins
2014-09-09 17:50:18 -04:00
Jessica Forrester
8723eece49
Add option to enable a simple CORS implementation for the api server
2014-09-09 17:50:18 -04:00
Brendan Burns
69b359b689
Don't stack trace on 301s
2014-09-09 14:10:46 -07:00
Daniel Smith
9345da0bfd
Fix build
2014-09-08 13:05:38 -07:00
brendandburns
753b80c9b8
Merge pull request #1105 from lavalamp/proxy
...
Add a generic proxier
2014-09-08 12:51:24 -07:00
Daniel Smith
fc09f988b4
Make tests pass again
2014-09-07 22:26:42 -07:00
Daniel Smith
0d30a656ef
Do interface{} -> runtime.Object rename everywhere
2014-09-07 22:19:24 -07:00
Daniel Smith
1c2b65788d
Rename Codec and ResourceVersioner to add Default in front, to allow for types of those names
2014-09-07 22:19:24 -07:00
Daniel Smith
7790961011
Rename Object to EmbeddedObject
2014-09-05 14:43:35 -07:00
Daniel Smith
b6f1f84875
Extend proxy test to test all URL rewriting cases.
2014-09-05 13:33:31 -07:00
Daniel Smith
6554ee96f7
Rewrite proxy code for clarity and correctness.
2014-09-05 13:33:30 -07:00
Daniel Smith
e2b645ec15
Add a generic proxier
...
To proxy traffic to anything that implements ResourceLocation.
Currently, this is only services. This is easily extensible to minions
(would supercede existing mechanism) and pods.
2014-09-05 13:33:30 -07:00
Clayton Coleman
34c40e4e48
Errors should be part of api/errors, not apiserver
...
Renames constructor methods to be errors.New<name> which changed a few
places.
2014-09-03 17:16:00 -04:00
Tim Hockin
6a624a2b4f
try to fix data race
2014-09-02 13:51:15 -07:00
Daniel Smith
a63966e73c
Combine pkg/apitools and pkg/api/common and call the result pkg/runtime
2014-09-02 11:15:44 -07:00
Daniel Smith
099c8fd36f
Propagate rename; tests pass again.
2014-09-02 10:42:06 -07:00
Vojtech Vitek (V-Teq)
59f58cd043
Unify Godoc formatting, fix various typos
...
Signed-off-by: Vojtech Vitek (V-Teq) <vvitek@redhat.com>
2014-09-02 13:41:03 +02:00
Daniel Smith
aa9b9b9fa8
Invert api and api/v1beta1 dependencies
...
This is some cleanup that has been needed for a while.
There's still one more step that could usefully be done, which is to
split up our api package into the part that provides the helper
functions and the part that provides the internal types. That can come
later.
The v1beta1 package is now a good example of what an api plugin should
do to version its types.
2014-08-29 12:15:30 -07:00
Daniel Smith
4de254444e
Add simple service redirection
2014-08-27 20:51:41 -07:00
Brendan Burns
52473bdf11
Deflake operation listing.
2014-08-26 22:48:24 -07:00
Clayton Coleman
0a841a49fd
Naming of Reason constants is inconsistent
...
Changed ReasonType to StatusReason (to match the field) and
changed CauseReason to CauseType and renamed StatusCause.Reason to
Type.
2014-08-26 13:39:21 -04:00
Clayton Coleman
52923a1348
Return validation errors from storage create/update
2014-08-26 13:30:55 -04:00
Clayton Coleman
d326ba2976
Add a Causes array to status details for validation errors
...
Uses the same constant values as api/errors for each nested
reason.
2014-08-26 13:30:55 -04:00
Satnam Singh
3f0f119e42
Very minor change to use camelCase for ReasonType as suggested in issue #914 .
2014-08-25 16:57:13 -07:00
Tim Hockin
0f97a73c1b
Rename a bunch of "Make" functions to "New"
...
Also rename some to other names that make better reading. There are still a
bunch of "make" functions but they do things like assemble a string from parts
or build an array of things. It seemed that "make" there seemed fine. "New"
is for "constructors".
2014-08-20 21:27:19 -07:00
Brendan Burns
a198bbb0ae
Switch api.Status to *api.Status in a bunch of places.
2014-08-20 10:21:49 -07:00
Clayton Coleman
bbf3b55e76
Extract RESTHandler and allow API groupings
...
Prepare for running multiple API versions on the same HTTP server
by decoupling some of the mechanics of apiserver. Define a new
APIGroup object which represents a version of the API.
2014-08-13 10:53:34 -04:00
Daniel Smith
1a5a22c539
Fix files missing gofmt
2014-08-12 17:48:00 -07:00
Daniel Smith
f220aa1aba
Fix flaky TestOpGet and TestSyncCreateTimeout
2014-08-12 14:23:12 -07:00
Daniel Smith
9050c819dc
Merge pull request #722 from smarterclayton/improve_errors
...
Normalize apiserver error handling of standard errors
2014-08-11 12:43:06 -07:00
Clayton Coleman
d419eedb06
Watch handler not returning after 404
2014-08-09 10:46:56 -04:00
Clayton Coleman
0083fae453
Provide helpers and tests for common error types
...
Unify error handling in apiserver into a single path - RESTStorage
objects must provide appropriate errors individually. Ensure ALL
errors which can be traced to logical faults with RESTStorage are
returned as api.Status objects.
2014-08-08 19:44:47 -04:00
Daniel Smith
5dd130a350
Prevent accidental setting of sync or timeout
2014-08-08 14:09:14 -07:00
Daniel Smith
49cded3800
Simplify ResourceWatcher interface to one function.
2014-08-08 14:09:13 -07:00
Daniel Smith
283fdba6ab
Add more parameters to Watch
...
* Add labels selector (same as List)
* Add fields selector
* Plan to let you select pods by Host and/or Status
* Add resourceVersion to let you resume a watch where you left off.
2014-08-08 14:09:13 -07:00
Clayton Coleman
a74fac7d70
Centralize path magic in apiserver into the New method
...
Make OperationHandler and WatchHandler properly encapsulate their
concerns and make them not depend on the global path
2014-08-08 16:33:44 -04:00
Clayton Coleman
c9fc0bcf3d
Decouple apiserver from codec implementation
...
The apiserver on initialization must be provided with a codec
for encoding and decoding all handled objects including api.Status
and api.ServerOp. In addition, the RESTStorage Extract() method
has been changed to New(), which returns a pointer object that the
codec must decode into (the internal object). Switched registry
methods to use pointers for Create/Update instead of values.
2014-08-07 13:35:35 -04:00
Clayton Coleman
836d2b9808
Fix proxy error condition and simplify method
...
Add new minion proxy test case.
2014-08-06 01:03:17 -04:00
Daniel Smith
860050b507
Merge pull request #745 from smarterclayton/add_structured_reason
...
Evolve the api.Status object with Reason/Details
2014-08-05 13:28:19 -07:00
Clayton Coleman
4f88b778a6
Evolve the api.Status object with Reason/Details
...
Contains breaking API change on api.Status#Details (type change)
Turn Details from string -> StatusDetails - a general
bucket for keyed error behavior. Define an open enumeration
ReasonType exposed as Reason on the status object to provide
machine readable subcategorization beyond HTTP Status Code. Define
a human readable field Message which is common convention (previously
this was joined into Details).
Precedence order: HTTP Status Code, Reason, Details. apiserver would
impose restraints on the ReasonTypes defined by the main apiobject,
and ensure their use is consistent.
There are four long term scenarios this change supports:
1. Allow a client access to a machine readable field that can be
easily switched on for improving or translating the generic
server Message.
2. Return a 404 when a composite operation on multiple resources
fails with enough data so that a client can distinguish which
item does not exist. E.g. resource Parent and resource Child,
POST /parents/1/children to create a new Child, but /parents/1
is deleted. POST returns 404, ReasonTypeNotFound, and
Details.ID = "1", Details.Kind = "parent"
3. Allow a client to receive validation data that is keyed by
attribute for building user facing UIs around field submission.
Validation is usually expressed as map[string][]string, but
that type is less appropriate for many other uses.
4. Allow specific API errors to return more granular failure status
for specific operations. An example might be a minion proxy,
where the operation that failed may be both proxying OR the
minion itself. In this case a reason may be defined "proxy_failed"
corresponding to 502, where the Details field may be extended
to contain a nested error object.
At this time only ID and Kind are exposed
2014-08-05 16:17:53 -04:00
Clayton Coleman
325f9ef005
Make create atomic on etcd for Services/ReplControllers
2014-08-05 01:12:27 -04:00
Kouhei Ueno
6288336436
Rename IsEtcdConflict to IsEtcdTestFailed
2014-08-05 08:07:20 +09:00
Brendan Burns
d648b2350e
Fix unit test build.
2014-08-04 09:50:25 -07:00
brendandburns
81a8ac723f
Merge pull request #753 from smarterclayton/remove_expect_no_error_apiserver
...
Remove expectNoError from apiserver
2014-08-04 09:15:34 -07:00
Clayton Coleman
64bf2d9f63
Remove expectNoError from apiserver
2014-08-04 09:37:53 -04:00
Clayton Coleman
75aa364b3c
/api/v1beta1/operations was returning Not Found
...
Splitting an empty string returns []string{""}, not []string{}
2014-08-03 19:35:17 -04:00
brendandburns
30b6ab5278
Merge pull request #728 from smarterclayton/improve_apiserver_tests
...
Expand apiserver test cases
2014-08-01 09:32:19 -07:00
Clayton Coleman
af4d57b39a
Expand apiserver tests
2014-07-31 18:59:54 -04:00
Clayton Coleman
8986a0fc4b
Remove debugging statement
2014-07-31 18:52:15 -04:00
Daniel Smith
928092e79e
Etcd watcher verification
...
To make sure the etcd watcher works, I changed the replication
controller to use watch.Interface. I made apiserver support watches on
controllers, so replicationController can be run only off of the
apiserver. I made sure all the etcd watch testing that used to be in
replicationController is now tested on the new etcd watcher in
pkg/tools/.
2014-07-31 14:54:30 -07:00
brendandburns
76e2cd70f7
Merge pull request #683 from smarterclayton/slightly_pause_on_return
...
Slightly pause on requests to allow most to finish
2014-07-30 16:05:15 -07:00
brendandburns
59c5fb11c0
Merge pull request #672 from lavalamp/customConversionFuncs
...
Custom conversion funcs
2014-07-30 15:09:01 -07:00
Clayton Coleman
1bdeb058e1
Slightly pause on requests to allow most to finish
...
Currently, every write will result in a 202 (etcd adding a few
ms of latency to each request). This forces clients to go into
a poll loop and pick a reasonable server poll frequency, which
results in 1 + N queries to the server for the single operation
and adds unavoidable latency to each request which affects their
perception of the service.
Add a very slight (25ms by default) delay to wait for requests
to finish. For clients doing normal writes this reduces the
requests made against the server to 1. For clients on long requests
this has no effect. The downside is that http connections are held
on to for a longer period in high write loads. The decrease in
perceived latency from the kubecfg is significant.
2014-07-30 17:49:47 -04:00
Daniel Smith
242c8cdaec
Add custom conversion function system.
...
As an example, demonstrate how Env.Key's deprecation ought to work.
2014-07-30 14:18:23 -07:00
Clayton Coleman
e64a393e1a
Move handle* methods to their respective locations
...
Fix names
2014-07-30 17:15:09 -04:00
Clayton Coleman
fe7f611d88
Split operations code and add comments
2014-07-30 17:15:09 -04:00
Clayton Coleman
9069696514
Rename write -> writeJSON
2014-07-30 17:15:09 -04:00
Clayton Coleman
b84c9f7a1c
Rename methods and move parseTimeout
2014-07-30 17:15:09 -04:00
Clayton Coleman
82b78912fc
Move prefix methods
2014-07-30 17:15:09 -04:00
Clayton Coleman
a2c86e4c97
Simplify helpers
2014-07-30 17:15:09 -04:00
Clayton Coleman
c7d311896e
Shorten variable name
2014-07-30 17:15:09 -04:00
Clayton Coleman
8b511832ff
Split minion
2014-07-30 17:15:09 -04:00
Clayton Coleman
a46f6313bc
Split interfaces
2014-07-30 17:15:09 -04:00
Clayton Coleman
d5e22bfe2a
Split index
2014-07-30 17:14:07 -04:00
Clayton Coleman
b70a145161
Split operations test
2014-07-30 17:14:06 -04:00
Clayton Coleman
db51ea2a17
Split async
2014-07-30 17:14:06 -04:00
Clayton Coleman
b911d9265a
Split watch
2014-07-30 17:14:06 -04:00
erictune
a41aeeca67
Merge pull request #701 from SebastianM/misspelling
...
fix misspelling
2014-07-30 13:36:14 -07:00
Sebastian Müller
e1172fc78c
fix misspelling
2014-07-30 20:10:12 +02:00
Clayton Coleman
dc6fdc423d
Merge pull request #627 from lavalamp/fix
...
Add /version to server and check it in client.
2014-07-30 12:52:15 -04:00
brendandburns
0ad9221f5c
Merge pull request #695 from danmcp/fix_golint_warnings
...
Fixing golint warnings
2014-07-30 06:49:27 -07:00
Dan McPherson
d5fcaa1f03
Fixing golint warnings
2014-07-30 13:41:09 +02:00
Dawn Chen
8e9864e8fc
Instead of apiserver panic when proxy a request to a dead minion,
...
print out proper message through http.Response
2014-07-28 16:40:29 -07:00
Daniel Smith
3b8488028d
Add /version to server and check it in client.
...
Will help detect client/version skew and prevent e2e test from passing
while running a version other than the one you think it's running.
2014-07-28 15:45:25 -07:00
Dan McPherson
7bbc5e2a19
Fixing typos
2014-07-28 15:15:50 +02:00
Clayton Coleman
1047c57c6d
Use http.StatusInternalServerError instead of 500
2014-07-27 15:37:03 -04:00
Brendan Burns
bf5ae4bb9d
Fork API types.
2014-07-24 21:47:08 -07:00
Daniel Smith
9e9d9b8913
Merge pull request #607 from smarterclayton/return_correct_content_type
...
Write the json content type for API responses
2014-07-24 15:27:31 -07:00
Jonathan Boulle
c43035088b
assorted formatting and typo fixes
2014-07-24 15:10:36 -07:00
Clayton Coleman
30e881c3f9
Write JSON content type for API responses
2014-07-24 17:45:02 -04:00
Dawn Chen
47ad71f92d
HandleIndex when URL.Path == "/"
2014-07-22 14:12:16 -07:00
Dawn Chen
dc921b8c65
comment changes
2014-07-21 14:46:59 -07:00
Dawn Chen
064237a5b8
Add support to query kubelet's logs and cadvisor's stats through
...
apiserver by passing rawquery.
minor changes
Fixed a minor rebase issues.
Using ioutil.ReadAll instead of httputil.DumpResponse
2014-07-21 11:52:32 -07:00
Daniel Smith
69c483f620
Add APIObject for generic inclusion of API objects.
...
Includes test and json/yaml getters and setters.
2014-07-18 22:35:08 -07:00
Daniel Smith
eda30d4f20
Add watch mechanism to apiserver
...
Implemented via HTTP and websocket. A test is present but this isn't
yet wired into anything.
Eventual purpose of this is to allow a scheduler to watch for new pods.
Or allow replication controller to watch for new items it controlls.
Generally, it'll be good to turn everything possible into a push instead
of a poll.
2014-07-18 16:47:17 -07:00
Clayton Coleman
0ccf1b7812
Operation server was not returning in error cases
2014-07-18 12:36:27 -04:00
Yuki Yugui Sonoda
2aa3de12d4
Make RESTful operations return 404 Not Found when the target resource
...
does not exist.
In the original implementation, GET, DELETE and PUT operations on
non-existent resources used to return 500 but not 404.
2014-07-18 14:16:56 +09:00
Daniel Smith
90afdb06c1
Move logger to own package; clean up apiserver to use serve mux.
2014-07-15 21:25:33 -07:00
Yifan Gu
0e9e2ee7f4
Changed op.notify<-true to close(op.notify).
2014-07-15 15:08:04 -07:00
Daniel Smith
61917a0628
Revert "Changed op.notify<-true to close(op.notify)."
2014-07-15 10:34:05 -07:00
Yifan Gu
90cc060699
Changed op.notify<-true to close(op.notify).
2014-07-15 00:29:43 -07:00
Yuki Yugui Sonoda
5cfbed4453
Fixes golint errors in pkg/apiserver
2014-07-08 16:10:11 +09:00
Daniel Smith
3b9735d787
Test atomic PUTs, and make them work.
...
Improve apiserver/logger.go's interface (it's pretty cool now).
Improve apiserver's error reporting to clients.
Improve client's handling of errors from apiserver.
Make failed PUTs return 409 (conflict)-- http status codes are amazingly
well defined for what we're doing!
2014-07-02 15:42:05 -07:00
Dawn Chen
85152fc137
Add a FileServer for master's logs
2014-06-30 16:33:54 -07:00
Daniel Smith
afd13edd6a
Address comments; also, demonstrate one more property in test.
2014-06-26 11:36:15 -07:00
Daniel Smith
c9246dc130
Implement required sync changes everywhere.
...
Make requests sync by default, so that usage of them doesn't have to
change.
2014-06-26 10:33:21 -07:00
Daniel Smith
59a6489e84
Add tracked operations to apiserver
2014-06-26 10:33:21 -07:00
Tim Hockin
9f9e75f508
Switch to glog for logging, bridge logging to glog.
...
1) imported glog to third_party (previous commit)
2) add support for third_party/update.sh to update just one pkg
3) search-and-replace:
s/log.Printf/glog.Infof/
s/log.Print/glog.Info/
s/log.Fatalf/glog.Fatalf/
s/log.Fatal/glog.Fatal/
4) convert glog.Info.*, err into glog.Error*
Adds some util interfaces to logging and calls them from each cmd, which
will set the default log output to write to glog. Pass glog-wrapped
Loggers to etcd for logging.
Log files will go to /tmp - we should probably follow this up with a
default log dir for each cmd.
The glog lib is sort of weak in that it only flushes every 30 seconds, so
we spin up our own flushing goroutine.
2014-06-24 20:51:57 -07:00
brendandburns
49c25a4e28
Merge pull request #196 from lavalamp/marshal
...
Make api able to marshal its types correctly
2014-06-23 13:22:52 -07:00
Daniel Smith
b850d36166
Fix boilerplate everywhere
2014-06-23 11:32:11 -07:00
Daniel Smith
ee75bb8dbe
Address comments; Also internally start using JSONBase instead of reflect.Value of JSONBase.
2014-06-23 09:54:17 -07:00