提交 2bea8f6e 编写于 作者: P PiotrDabkowski

Updated secret API from old syle to new.

Included additional information returned by secrets/{namespace} GET
request.
上级 b770c55a
......@@ -98,6 +98,7 @@ const (
ResourceKindJob = "job"
ResourceKindPetSet = "petset"
ResourceKindNode = "node"
ResourceKindSecret = "secret"
)
// ClientType represents type of client that is used to perform generic operations on resources.
......@@ -133,6 +134,7 @@ var kindToAPIMapping = map[string]struct {
ResourceKindPetSet: {"petsets", ClientTypeAppsClient},
ResourceKindJob: {"jobs", ClientTypeBatchClient},
ResourceKindNode: {"nodes", ClientTypeDefault},
ResourceKindSecret: {"secrets", ClientTypeDefault},
}
// IsSelectorMatching returns true when an object with the given
......
......@@ -19,6 +19,7 @@ import (
client "k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"github.com/kubernetes/dashboard/src/app/backend/resource/common"
)
// SecretSpec - common interface for the specification of different secrets.
......@@ -62,17 +63,18 @@ func (spec *ImagePullSecretSpec) GetData() map[string][]byte {
// Secret - a single secret returned to the frontend.
type Secret struct {
Name string `json:"name"`
common.ObjectMeta `json:"objectMeta"`
common.TypeMeta `json:"typeMeta"`
}
// SecretsList - response structure for a queried secrets list.
type SecretsList struct {
Secrets []string `json:"secrets"`
Secrets []Secret `json:"secrets"`
}
// GetSecrets - return all secrets in the given namespace.
func GetSecrets(client *client.Client, namespace string) (*SecretsList,
error) {
error) {
secretsList := &SecretsList{}
secrets, err := client.Secrets(namespace).List(api.ListOptions{
LabelSelector: labels.Everything(),
......@@ -82,7 +84,7 @@ func GetSecrets(client *client.Client, namespace string) (*SecretsList,
return nil, err
}
for _, secret := range secrets.Items {
secretsList.Secrets = append(secretsList.Secrets, secret.ObjectMeta.Name)
secretsList.Secrets = append(secretsList.Secrets, *NewSecret(&secret))
}
return secretsList, err
}
......@@ -99,5 +101,11 @@ func CreateSecret(client *client.Client, spec SecretSpec) (*Secret, error) {
Data: spec.GetData(),
}
_, err := client.Secrets(namespace).Create(secret)
return &Secret{Name: secret.ObjectMeta.Name}, err
return NewSecret(secret), err
}
// NewSecret - creates a new instance of Secret struct based on K8s Secret.
func NewSecret(secret *api.Secret) (*Secret) {
return &Secret{common.NewObjectMeta(secret.ObjectMeta),
common.NewTypeMeta(common.ResourceKindSecret)}
}
\ No newline at end of file
......@@ -304,7 +304,7 @@ export default class DeployFromSettingsController {
/** @type {!angular.Resource<!backendApi.SecretsList>} */
let resource = this.resource_(`api/v1/secret/${namespace}`);
resource.get(
(res) => { this.secrets = res.secrets; },
(res) => { this.secrets = res.secrets.map((e) => e.objectMeta.name); },
(err) => { this.log_.log(`Error getting secrets: ${err}`); });
}
......
......@@ -335,14 +335,18 @@ describe('DeployFromSettings controller', () => {
it('get secrets should update the secrets list', () => {
ctrl.resource_ = angularResource;
let response = {
secrets: ['secret1', 'secret2', 'secret3'],
'secrets': [
{'objectMeta': {'name': 'secret1'}},
{'objectMeta': {'name': 'secret2'}},
{'objectMeta': {'name': 'secret3'}},
],
};
httpBackend.expectGET('api/v1/secret/default').respond(200, response);
// when
ctrl.getSecrets('default');
httpBackend.flush();
// expect
expect(ctrl.secrets).toEqual(response.secrets);
expect(ctrl.secrets).toEqual(['secret1', 'secret2', 'secret3']);
});
it('successful image pull secret creation should update ctrl.imagePullSecret', () => {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册