You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
govc: enhance VAPI for vSphere Supervisor Services
- Update GET for both /supervisor-services and /supervisor-services/{id}/versions
- Add GET for specific service and specific version:
/supervisor-services/{id} and /supervisor-services/{id}/versions/{version}
- Add DELETE for /supervisor-services/{id} and /supervisor-services/{id}/versions/{version}:
DELETE for /supervisor-services/{id} and /supervisor-services/{id}/versions/{version}
- Add activate/deactivate for a service version too (you can't delete a version of a service
if it's not deactivated first):
PATCH for superrvisor-services/{id} and /supervisor-services/{id}/versions/{version}
- Update namespace.bats tests to test list and get
- Update VAPI simulator to use `ServeHTTP` to make sure the path vlaues are set properly
- Also update copyrights
Fixes#3624
Testing Done: Ran `make install check doc` and `./govc/test/namespace.bats`
Also ran against a real VC where I added 1 dummy service with 2 versions:
`export GOVC_URL=...`
```
$ cat sample-pkg.test.carvel.dev-1.0.0.yaml
apiVersion: data.packaging.carvel.dev/v1alpha1
kind: PackageMetadata
metadata:
name: sample-pkg-testgovc.test.carvel.dev
spec:
displayName: "sample-service for testing"
shortDescription: "Sample core service description"
---
apiVersion: data.packaging.carvel.dev/v1alpha1
kind: Package
metadata:
name: sample-pkg-testgovc.test.carvel.dev.1.0.0
spec:
refName: sample-pkg-testgovc.test.carvel.dev
version: 1.0.0
releasedAt: 2021-05-05T18:57:06Z
template:
spec:
fetch:
- imgpkgBundle:
image: wcp-docker-ci.artifactory.eng.vmware.com/carvel/simple-app-bundle:v0.0.0
template:
- ytt:
paths:
- config-step-2-template
- config-step-2a-overlays
deploy:
- kapp: { }
$ govc namespace.service.create sample-pkg.test.carvel.dev-1.0.0.yaml
$ govc namespace.service.create sample-pkg.test.carvel.dev-1.0.0.yaml
govc: 400 Bad Request: {"messages":[{"args":["sample-pkg-testgovc.test.carvel.dev","Supervisor Service"],"default_message":"Failed to create Supervisor Service sample-pkg-testgovc.test.carvel.dev because an instance of Supervisor Service with the same identifier already exists.","localized":"Failed to create Supervisor Service sample-pkg-testgovc.test.carvel.dev because an instance of Supervisor Service with the same identifier already exists.","id":"vcenter.wcp.appplatform.supervisorservice.write.unique_violation"}]}
$ govc namespace.service.version.create sample-pkg-testgovc.test.carvel.dev sample-pkg.test.carvel.dev-2.0.0.yaml
$ govc namespace.service.version.deactivate sample-pkg-testgovc.test.carvel.dev 2.0.0
$ govc namespace.service.version.activate sample-pkg-testgovc.test.carvel.dev 2.0.0
$ govc namespace.service.version.rm sample-pkg-testgovc.test.carvel.dev 2.0.0
govc: 400 Bad Request: {"messages":[{"args":["sample-pkg-testgovc.test.carvel.dev","2.0.0"],"default_message":"Cannot delete the Supervisor Service (sample-pkg-testgovc.test.carvel.dev) version (2.0.0) because it is active.","localized":"Cannot delete the Supervisor Service (sample-pkg-testgovc.test.carvel.dev) version (2.0.0) because it is active.","id":"vcenter.wcp.appplatform.supervisorserviceversion.delete.activated"}]}
$ govc namespace.service.version.deactivate sample-pkg-testgovc.test.carvel.dev 2.0.0
$ govc namespace.service.version.rm sample-pkg-testgovc.test.carvel.dev 2.0.0
$ govc namespace.service.ls sample-pkg-testgovc.test.carvel.dev 2.0.0
$ govc namespace.service.ls -json
[...]
{
"supervisor_service": "sample-pkg-testgovc.test.carvel.dev",
"display_name": "sample-service for testing version",
"state": "ACTIVATED"
},
]
$ govc namespace.service.info -json sample-pkg-testgovc.test.carvel.dev
{
"display_name": "sample-service for testing version",
"state": "ACTIVATED",
"description": "Sample core service description",
"must_be_installed": false,
"has_default_versions_registered": false
}
{
"must_be_installed": false,
"has_default_versions_registered": false,
"description": "Sample core service description",
"state": "ACTIVATED",
"display_name": "sample-service for testing version"
}
```
Signed-off-by: Fanny Strudel <fanny.strudel@broadcom.com>
// The specification required to create a Supervisor Service with a version from inline content that is based on the vSphere application service format.
// The specification required to create a Supervisor Service with a version from inline content that is based on the Carvel application package format.
// SupervisorServiceVersion defines a new SupervisorService version specification
56
+
typeSupervisorServiceVersionstruct {
57
+
// The specification required to create a Supervisor Service with a version from inline content that is based on the vSphere application service format.
// The specification required to create a Supervisor Service with a version from inline content that is based on the Carvel application package format.
// SupervisorServicesVSphereSpec defines a new SupervisorService specification of vSphere type
@@ -55,20 +72,32 @@ type SupervisorServicesVSphereVersionCreateSpec struct {
55
72
AcceptEulabool`json:"accept_EULA,omitempty"`
56
73
}
57
74
58
-
// CreateSupervisorService creates a new Supervisor Service on vSphere Namespaces endpoint.
75
+
// The “SupervisorServicesCarvelSpec“ class provides a specification required to create a Supervisor Service with a version from Carvel application package format (Package and PackageMetadata resources should be declared).
76
+
typeSupervisorServicesCarvelSpecstruct {
77
+
// Supervisor service version specification that provides the service definitions for one Supervisor Service version.
// The “CarvelVersionCreateSpec“ class provides a specification required to create a Supervisor Service version from Carvel application package format (Package and PackageMetadata resources should be declared).
82
+
typeCarvelVersionCreateSpecstruct {
83
+
// Inline content that contains all service definition of the version in Carvel application package format, which shall be base64 encoded.
84
+
Contentstring`json:"content"`
85
+
}
86
+
87
+
// CreateSupervisorService creates a new Supervisor Service on vCenter.
0 commit comments