Commit 8c94a437 by benjaminapetersen

Add logic to dedupe kinds by ignoring "openshift" namespace in APIService.calculateAvailableKinds()

parent bd077870
...@@ -471,8 +471,10 @@ angular.module('openshiftCommonServices') ...@@ -471,8 +471,10 @@ angular.module('openshiftCommonServices')
var kinds = []; var kinds = [];
var rejectedKinds = Constants.AVAILABLE_KINDS_BLACKLIST; var rejectedKinds = Constants.AVAILABLE_KINDS_BLACKLIST;
// Legacy openshift and k8s kinds // ignore the legacy openshift kinds, these have been migrated to api groups
_.each(API_CFG, function(api) { _.each(_.pick(API_CFG, function(value, key) {
return key !== 'openshift';
}), function(api) {
_.each(api.resources.v1, function(resource) { _.each(api.resources.v1, function(resource) {
if (resource.namespaced || includeClusterScoped) { if (resource.namespaced || includeClusterScoped) {
// Exclude subresources and any rejected kinds // Exclude subresources and any rejected kinds
......
...@@ -1817,8 +1817,10 @@ angular.module('openshiftCommonServices') ...@@ -1817,8 +1817,10 @@ angular.module('openshiftCommonServices')
var kinds = []; var kinds = [];
var rejectedKinds = Constants.AVAILABLE_KINDS_BLACKLIST; var rejectedKinds = Constants.AVAILABLE_KINDS_BLACKLIST;
// Legacy openshift and k8s kinds // ignore the legacy openshift kinds, these have been migrated to api groups
_.each(API_CFG, function(api) { _.each(_.pick(API_CFG, function(value, key) {
return key !== 'openshift';
}), function(api) {
_.each(api.resources.v1, function(resource) { _.each(api.resources.v1, function(resource) {
if (resource.namespaced || includeClusterScoped) { if (resource.namespaced || includeClusterScoped) {
// Exclude subresources and any rejected kinds // Exclude subresources and any rejected kinds
......
...@@ -741,7 +741,9 @@ var kind = "<none>", version = "<none>"; ...@@ -741,7 +741,9 @@ var kind = "<none>", version = "<none>";
return apiObject && apiObject.kind && (kind = apiObject.kind), apiObject && apiObject.apiVersion && (version = apiObject.apiVersion), "The API version " + version + " for kind " + kind + " is not supported by this server"; return apiObject && apiObject.kind && (kind = apiObject.kind), apiObject && apiObject.apiVersion && (version = apiObject.apiVersion), "The API version " + version + " for kind " + kind + " is not supported by this server";
}, calculateAvailableKinds = function(includeClusterScoped) { }, calculateAvailableKinds = function(includeClusterScoped) {
var kinds = [], rejectedKinds = Constants.AVAILABLE_KINDS_BLACKLIST; var kinds = [], rejectedKinds = Constants.AVAILABLE_KINDS_BLACKLIST;
return _.each(API_CFG, function(api) { return _.each(_.pick(API_CFG, function(value, key) {
return "openshift" !== key;
}), function(api) {
_.each(api.resources.v1, function(resource) { _.each(api.resources.v1, function(resource) {
if (resource.namespaced || includeClusterScoped) { if (resource.namespaced || includeClusterScoped) {
if (resource.name.indexOf("/") >= 0 || _.contains(rejectedKinds, resource.kind)) return; if (resource.name.indexOf("/") >= 0 || _.contains(rejectedKinds, resource.kind)) return;
......
...@@ -268,8 +268,10 @@ angular.module('openshiftCommonServices') ...@@ -268,8 +268,10 @@ angular.module('openshiftCommonServices')
var kinds = []; var kinds = [];
var rejectedKinds = Constants.AVAILABLE_KINDS_BLACKLIST; var rejectedKinds = Constants.AVAILABLE_KINDS_BLACKLIST;
// Legacy openshift and k8s kinds // ignore the legacy openshift kinds, these have been migrated to api groups
_.each(API_CFG, function(api) { _.each(_.pick(API_CFG, function(value, key) {
return key !== 'openshift';
}), function(api) {
_.each(api.resources.v1, function(resource) { _.each(api.resources.v1, function(resource) {
if (resource.namespaced || includeClusterScoped) { if (resource.namespaced || includeClusterScoped) {
// Exclude subresources and any rejected kinds // Exclude subresources and any rejected kinds
......
{
"node": true,
"browser": true,
"esversion": 6,
"bitwise": true,
"camelcase": false,
"curly": true,
"eqeqeq": true,
"immed": true,
"indent": 2,
"latedef": true,
"newcap": false,
"noarg": true,
"quotmark": false,
"regexp": true,
"smarttabs": true,
"strict": true,
"sub" : true,
"undef": true,
"unused": true,
"expr" : true,
"globals": {
"ace": false,
"after": false,
"afterEach": false,
"afterAll": false,
"angular": false,
"by": false,
"before": false,
"beforeAll": false,
"beforeEach": false,
"browser": false,
"describe": false,
"element" : false,
"expect": false,
"inject": false,
"it": false,
"xit": false,
"jasmine": false,
"spyOn": false,
"hawtioPluginLoader": false,
"HawtioCore": false,
"Logger" : false,
"LabelSelector": false,
"moment": false,
"Messenger" : false,
"protractor" : false,
"URI": false,
"ZeroClipboard": false,
"$": false,
"_" : false
}
}
// Mocked API discovery // Mocked API discovery
window.OPENSHIFT_CONFIG.api.k8s.resources = { window.OPENSHIFT_CONFIG.api.k8s.resources = {
"v1": { "v1":{
"bindings": { "bindings":{
"name": "bindings", "name":"bindings",
"namespaced": true, "namespaced":true,
"kind": "Binding" "kind":"Binding"
}, },
"componentstatuses": { "componentstatuses":{
"name": "componentstatuses", "name":"componentstatuses",
"namespaced": false, "namespaced":false,
"kind": "ComponentStatus" "kind":"ComponentStatus"
}, },
"configmaps": { "configmaps":{
"name": "configmaps", "name":"configmaps",
"namespaced": true, "namespaced":true,
"kind": "ConfigMap" "kind":"ConfigMap"
}, },
"endpoints": { "endpoints":{
"name": "endpoints", "name":"endpoints",
"namespaced": true, "namespaced":true,
"kind": "Endpoints" "kind":"Endpoints"
}, },
"events": { "events":{
"name": "events", "name":"events",
"namespaced": true, "namespaced":true,
"kind": "Event" "kind":"Event"
}, },
"limitranges": { "limitranges":{
"name": "limitranges", "name":"limitranges",
"namespaced": true, "namespaced":true,
"kind": "LimitRange" "kind":"LimitRange"
}, },
"namespaces": { "namespaces":{
"name": "namespaces", "name":"namespaces",
"namespaced": false, "namespaced":false,
"kind": "Namespace" "kind":"Namespace"
}, },
"namespaces/finalize": { "namespaces/finalize":{
"name": "namespaces/finalize", "name":"namespaces/finalize",
"namespaced": false, "namespaced":false,
"kind": "Namespace" "kind":"Namespace"
}, },
"namespaces/status": { "namespaces/status":{
"name": "namespaces/status", "name":"namespaces/status",
"namespaced": false, "namespaced":false,
"kind": "Namespace" "kind":"Namespace"
}, },
"nodes": { "nodes":{
"name": "nodes", "name":"nodes",
"namespaced": false, "namespaced":false,
"kind": "Node" "kind":"Node"
}, },
"nodes/proxy": { "nodes/proxy":{
"name": "nodes/proxy", "name":"nodes/proxy",
"namespaced": false, "namespaced":false,
"kind": "Node" "kind":"Node"
}, },
"nodes/status": { "nodes/status":{
"name": "nodes/status", "name":"nodes/status",
"namespaced": false, "namespaced":false,
"kind": "Node" "kind":"Node"
}, },
"persistentvolumeclaims": { "persistentvolumeclaims":{
"name": "persistentvolumeclaims", "name":"persistentvolumeclaims",
"namespaced": true, "namespaced":true,
"kind": "PersistentVolumeClaim" "kind":"PersistentVolumeClaim"
}, },
"persistentvolumeclaims/status": { "persistentvolumeclaims/status":{
"name": "persistentvolumeclaims/status", "name":"persistentvolumeclaims/status",
"namespaced": true, "namespaced":true,
"kind": "PersistentVolumeClaim" "kind":"PersistentVolumeClaim"
}, },
"persistentvolumes": { "persistentvolumes":{
"name": "persistentvolumes", "name":"persistentvolumes",
"namespaced": false, "namespaced":false,
"kind": "PersistentVolume" "kind":"PersistentVolume"
}, },
"persistentvolumes/status": { "persistentvolumes/status":{
"name": "persistentvolumes/status", "name":"persistentvolumes/status",
"namespaced": false, "namespaced":false,
"kind": "PersistentVolume" "kind":"PersistentVolume"
}, },
"pods": { "pods":{
"name": "pods", "name":"pods",
"namespaced": true, "namespaced":true,
"kind": "Pod" "kind":"Pod"
}, },
"pods/attach": { "pods/attach":{
"name": "pods/attach", "name":"pods/attach",
"namespaced": true, "namespaced":true,
"kind": "Pod" "kind":"Pod"
}, },
"pods/binding": { "pods/binding":{
"name": "pods/binding", "name":"pods/binding",
"namespaced": true, "namespaced":true,
"kind": "Binding" "kind":"Binding"
}, },
"pods/exec": { "pods/eviction":{
"name": "pods/exec", "name":"pods/eviction",
"namespaced": true, "namespaced":true,
"kind": "Pod" "kind":"Eviction"
}, },
"pods/log": { "pods/exec":{
"name": "pods/log", "name":"pods/exec",
"namespaced": true, "namespaced":true,
"kind": "Pod" "kind":"Pod"
}, },
"pods/portforward": { "pods/log":{
"name": "pods/portforward", "name":"pods/log",
"namespaced": true, "namespaced":true,
"kind": "Pod" "kind":"Pod"
}, },
"pods/proxy": { "pods/portforward":{
"name": "pods/proxy", "name":"pods/portforward",
"namespaced": true, "namespaced":true,
"kind": "Pod" "kind":"Pod"
}, },
"pods/status": { "pods/proxy":{
"name": "pods/status", "name":"pods/proxy",
"namespaced": true, "namespaced":true,
"kind": "Pod" "kind":"Pod"
}, },
"podtemplates": { "pods/status":{
"name": "podtemplates", "name":"pods/status",
"namespaced": true, "namespaced":true,
"kind": "PodTemplate" "kind":"Pod"
}, },
"replicationcontrollers": { "podtemplates":{
"name": "replicationcontrollers", "name":"podtemplates",
"namespaced": true, "namespaced":true,
"kind": "ReplicationController" "kind":"PodTemplate"
}, },
"replicationcontrollers/scale": { "replicationcontrollers":{
"name": "replicationcontrollers/scale", "name":"replicationcontrollers",
"namespaced": true, "namespaced":true,
"kind": "Scale" "kind":"ReplicationController"
}, },
"replicationcontrollers/status": { "replicationcontrollers/scale":{
"name": "replicationcontrollers/status", "name":"replicationcontrollers/scale",
"namespaced": true, "namespaced":true,
"kind": "ReplicationController" "kind":"Scale"
}, },
"resourcequotas": { "replicationcontrollers/status":{
"name": "resourcequotas", "name":"replicationcontrollers/status",
"namespaced": true, "namespaced":true,
"kind": "ResourceQuota" "kind":"ReplicationController"
}, },
"resourcequotas/status": { "resourcequotas":{
"name": "resourcequotas/status", "name":"resourcequotas",
"namespaced": true, "namespaced":true,
"kind": "ResourceQuota" "kind":"ResourceQuota"
}, },
"secrets": { "resourcequotas/status":{
"name": "secrets", "name":"resourcequotas/status",
"namespaced": true, "namespaced":true,
"kind": "Secret" "kind":"ResourceQuota"
}, },
"securitycontextconstraints": { "secrets":{
"name": "securitycontextconstraints", "name":"secrets",
"namespaced": false, "namespaced":true,
"kind": "SecurityContextConstraints" "kind":"Secret"
}, },
"serviceaccounts": { "securitycontextconstraints":{
"name": "serviceaccounts", "name":"securitycontextconstraints",
"namespaced": true, "namespaced":false,
"kind": "ServiceAccount" "kind":"SecurityContextConstraints"
}, },
"services": { "serviceaccounts":{
"name": "services", "name":"serviceaccounts",
"namespaced": true, "namespaced":true,
"kind": "Service" "kind":"ServiceAccount"
}, },
"services/proxy": { "services":{
"name": "services/proxy", "name":"services",
"namespaced": true, "namespaced":true,
"kind": "Service" "kind":"Service"
}, },
"services/status": { "services/proxy":{
"name": "services/status", "name":"services/proxy",
"namespaced": true, "namespaced":true,
"kind": "Service" "kind":"Service"
},
"services/status":{
"name":"services/status",
"namespaced":true,
"kind":"Service"
} }
} }
}; };
window.OPENSHIFT_CONFIG.api.openshift.resources = { window.OPENSHIFT_CONFIG.api.openshift.resources = {
"v1": { "v1":{
"buildconfigs": { "appliedclusterresourcequotas":{
"name": "buildconfigs", "name":"appliedclusterresourcequotas",
"namespaced": true, "namespaced":true,
"kind": "BuildConfig" "kind":"AppliedClusterResourceQuota"
}, },
"buildconfigs/instantiate": { "buildconfigs":{
"name": "buildconfigs/instantiate", "name":"buildconfigs",
"namespaced": true, "namespaced":true,
"kind": "BuildRequest" "kind":"BuildConfig"
}, },
"buildconfigs/instantiatebinary": { "buildconfigs/instantiate":{
"name": "buildconfigs/instantiatebinary", "name":"buildconfigs/instantiate",
"namespaced": true, "namespaced":true,
"kind": "BinaryBuildRequestOptions" "kind":"BuildRequest"
}, },
"buildconfigs/webhooks": { "buildconfigs/instantiatebinary":{
"name": "buildconfigs/webhooks", "name":"buildconfigs/instantiatebinary",
"namespaced": true, "namespaced":true,
"kind": "Status" "kind":"BinaryBuildRequestOptions"
}, },
"builds": { "buildconfigs/webhooks":{
"name": "builds", "name":"buildconfigs/webhooks",
"namespaced": true, "namespaced":true,
"kind": "Build" "kind":"Status"
}, },
"builds/clone": { "builds":{
"name": "builds/clone", "name":"builds",
"namespaced": true, "namespaced":true,
"kind": "BuildRequest" "kind":"Build"
}, },
"builds/details": { "builds/clone":{
"name": "builds/details", "name":"builds/clone",
"namespaced": true, "namespaced":true,
"kind": "Build" "kind":"BuildRequest"
}, },
"builds/log": { "builds/details":{
"name": "builds/log", "name":"builds/details",
"namespaced": true, "namespaced":true,
"kind": "BuildLog" "kind":"Build"
}, },
"clusternetworks": { "builds/log":{
"name": "clusternetworks", "name":"builds/log",
"namespaced": false, "namespaced":true,
"kind": "ClusterNetwork" "kind":"BuildLog"
}, },
"clusterpolicies": { "clusternetworks":{
"name": "clusterpolicies", "name":"clusternetworks",
"namespaced": false, "namespaced":false,
"kind": "ClusterPolicy" "kind":"ClusterNetwork"
}, },
"clusterpolicybindings": { "clusterpolicies":{
"name": "clusterpolicybindings", "name":"clusterpolicies",
"namespaced": false, "namespaced":false,
"kind": "ClusterPolicyBinding" "kind":"ClusterPolicy"
}, },
"clusterrolebindings": { "clusterpolicybindings":{
"name": "clusterrolebindings", "name":"clusterpolicybindings",
"namespaced": false, "namespaced":false,
"kind": "ClusterRoleBinding" "kind":"ClusterPolicyBinding"
}, },
"clusterroles": { "clusterresourcequotas":{
"name": "clusterroles", "name":"clusterresourcequotas",
"namespaced": false, "namespaced":false,
"kind": "ClusterRole" "kind":"ClusterResourceQuota"
}, },
"deploymentconfigrollbacks": { "clusterresourcequotas/status":{
"name": "deploymentconfigrollbacks", "name":"clusterresourcequotas/status",
"namespaced": true, "namespaced":false,
"kind": "DeploymentConfigRollback" "kind":"ClusterResourceQuota"
}, },
"deploymentconfigs": { "clusterrolebindings":{
"name": "deploymentconfigs", "name":"clusterrolebindings",
"namespaced": true, "namespaced":false,
"kind": "DeploymentConfig" "kind":"ClusterRoleBinding"
}, },
"deploymentconfigs/log": { "clusterroles":{
"name": "deploymentconfigs/log", "name":"clusterroles",
"namespaced": true, "namespaced":false,
"kind": "DeploymentLog" "kind":"ClusterRole"
}, },
"deploymentconfigs/scale": { "deploymentconfigrollbacks":{
"name": "deploymentconfigs/scale", "name":"deploymentconfigrollbacks",
"namespaced": true, "namespaced":true,
"kind": "Scale" "kind":"DeploymentConfigRollback"
}, },
"generatedeploymentconfigs": { "deploymentconfigs":{
"name": "generatedeploymentconfigs", "name":"deploymentconfigs",
"namespaced": true, "namespaced":true,
"kind": "DeploymentConfig" "kind":"DeploymentConfig"
}, },
"groups": { "deploymentconfigs/instantiate":{
"name": "groups", "name":"deploymentconfigs/instantiate",
"namespaced": false, "namespaced":true,
"kind": "Group" "kind":"DeploymentRequest"
}, },
"hostsubnets": { "deploymentconfigs/log":{
"name": "hostsubnets", "name":"deploymentconfigs/log",
"namespaced": false, "namespaced":true,
"kind": "HostSubnet" "kind":"DeploymentLog"
}, },
"identities": { "deploymentconfigs/rollback":{
"name": "identities", "name":"deploymentconfigs/rollback",
"namespaced": false, "namespaced":true,
"kind": "Identity" "kind":"DeploymentConfigRollback"
}, },
"images": { "deploymentconfigs/scale":{
"name": "images", "name":"deploymentconfigs/scale",
"namespaced": false, "namespaced":true,
"kind": "Image" "kind":"Scale"
}, },
"imagestreamimages": { "deploymentconfigs/status":{
"name": "imagestreamimages", "name":"deploymentconfigs/status",
"namespaced": true, "namespaced":true,
"kind": "ImageStreamImage" "kind":"DeploymentConfig"
}, },
"imagestreamimports": { "egressnetworkpolicies":{
"name": "imagestreamimports", "name":"egressnetworkpolicies",
"namespaced": true, "namespaced":true,
"kind": "ImageStreamImport" "kind":"EgressNetworkPolicy"
}, },
"imagestreammappings": { "generatedeploymentconfigs":{
"name": "imagestreammappings", "name":"generatedeploymentconfigs",
"namespaced": true, "namespaced":true,
"kind": "ImageStreamMapping" "kind":"DeploymentConfig"
}, },
"imagestreams": { "groups":{
"name": "imagestreams", "name":"groups",
"namespaced": true, "namespaced":false,
"kind": "ImageStream" "kind":"Group"
}, },
"imagestreams/secrets": { "hostsubnets":{
"name": "imagestreams/secrets", "name":"hostsubnets",
"namespaced": true, "namespaced":false,
"kind": "SecretList" "kind":"HostSubnet"
}, },
"imagestreams/status": { "identities":{
"name": "imagestreams/status", "name":"identities",
"namespaced": true, "namespaced":false,
"kind": "ImageStream" "kind":"Identity"
}, },
"imagestreamtags": { "images":{
"name": "imagestreamtags", "name":"images",
"namespaced": true, "namespaced":false,
"kind": "ImageStreamTag" "kind":"Image"
}, },
"localresourceaccessreviews": { "imagesignatures":{
"name": "localresourceaccessreviews", "name":"imagesignatures",
"namespaced": true, "namespaced":false,
"kind": "LocalResourceAccessReview" "kind":"ImageSignature"
}, },
"localsubjectaccessreviews": { "imagestreamimages":{
"name": "localsubjectaccessreviews", "name":"imagestreamimages",
"namespaced": true, "namespaced":true,
"kind": "LocalSubjectAccessReview" "kind":"ImageStreamImage"
}, },
"netnamespaces": { "imagestreamimports":{
"name": "netnamespaces", "name":"imagestreamimports",
"namespaced": false, "namespaced":true,
"kind": "NetNamespace" "kind":"ImageStreamImport"
}, },
"oauthaccesstokens": { "imagestreammappings":{
"name": "oauthaccesstokens", "name":"imagestreammappings",
"namespaced": false, "namespaced":true,
"kind": "OAuthAccessToken" "kind":"ImageStreamMapping"
}, },
"oauthauthorizetokens": { "imagestreams":{
"name": "oauthauthorizetokens", "name":"imagestreams",
"namespaced": false, "namespaced":true,
"kind": "OAuthAuthorizeToken" "kind":"ImageStream"
}, },
"oauthclientauthorizations": { "imagestreams/secrets":{
"name": "oauthclientauthorizations", "name":"imagestreams/secrets",
"namespaced": false, "namespaced":true,
"kind": "OAuthClientAuthorization" "kind":"SecretList"
}, },
"oauthclients": { "imagestreams/status":{
"name": "oauthclients", "name":"imagestreams/status",
"namespaced": false, "namespaced":true,
"kind": "OAuthClient" "kind":"ImageStream"
}, },
"policies": { "imagestreamtags":{
"name": "policies", "name":"imagestreamtags",
"namespaced": true, "namespaced":true,
"kind": "Policy" "kind":"ImageStreamTag"
}, },
"policybindings": { "localresourceaccessreviews":{
"name": "policybindings", "name":"localresourceaccessreviews",
"namespaced": true, "namespaced":true,
"kind": "PolicyBinding" "kind":"LocalResourceAccessReview"
}, },
"processedtemplates": { "localsubjectaccessreviews":{
"name": "processedtemplates", "name":"localsubjectaccessreviews",
"namespaced": true, "namespaced":true,
"kind": "Template" "kind":"LocalSubjectAccessReview"
}, },
"projectrequests": { "netnamespaces":{
"name": "projectrequests", "name":"netnamespaces",
"namespaced": false, "namespaced":false,
"kind": "ProjectRequest" "kind":"NetNamespace"
}, },
"projects": { "oauthaccesstokens":{
"name": "projects", "name":"oauthaccesstokens",
"namespaced": false, "namespaced":false,
"kind": "Project" "kind":"OAuthAccessToken"
}, },
"resourceaccessreviews": { "oauthauthorizetokens":{
"name": "resourceaccessreviews", "name":"oauthauthorizetokens",
"namespaced": true, "namespaced":false,
"kind": "ResourceAccessReview" "kind":"OAuthAuthorizeToken"
}, },
"rolebindings": { "oauthclientauthorizations":{
"name": "rolebindings", "name":"oauthclientauthorizations",
"namespaced": true, "namespaced":false,
"kind": "RoleBinding" "kind":"OAuthClientAuthorization"
}, },
"roles": { "oauthclients":{
"name": "roles", "name":"oauthclients",
"namespaced": true, "namespaced":false,
"kind": "Role" "kind":"OAuthClient"
}, },
"routes": { "podsecuritypolicyreviews":{
"name": "routes", "name":"podsecuritypolicyreviews",
"namespaced": true, "namespaced":true,
"kind": "Route" "kind":"PodSecurityPolicyReview"
}, },
"routes/status": { "podsecuritypolicyselfsubjectreviews":{
"name": "routes/status", "name":"podsecuritypolicyselfsubjectreviews",
"namespaced": true, "namespaced":true,
"kind": "Route" "kind":"PodSecurityPolicySelfSubjectReview"
}, },
"subjectaccessreviews": { "podsecuritypolicysubjectreviews":{
"name": "subjectaccessreviews", "name":"podsecuritypolicysubjectreviews",
"namespaced": true, "namespaced":true,
"kind": "SubjectAccessReview" "kind":"PodSecurityPolicySubjectReview"
}, },
"templates": { "policies":{
"name": "templates", "name":"policies",
"namespaced": true, "namespaced":true,
"kind": "Template" "kind":"Policy"
}, },
"useridentitymappings": { "policybindings":{
"name": "useridentitymappings", "name":"policybindings",
"namespaced": false, "namespaced":true,
"kind": "UserIdentityMapping" "kind":"PolicyBinding"
}, },
"users": { "processedtemplates":{
"name": "users", "name":"processedtemplates",
"namespaced": false, "namespaced":true,
"kind": "User" "kind":"Template"
},
"projectrequests":{
"name":"projectrequests",
"namespaced":false,
"kind":"ProjectRequest"
},
"projects":{
"name":"projects",
"namespaced":false,
"kind":"Project"
},
"resourceaccessreviews":{
"name":"resourceaccessreviews",
"namespaced":true,
"kind":"ResourceAccessReview"
},
"rolebindingrestrictions":{
"name":"rolebindingrestrictions",
"namespaced":true,
"kind":"RoleBindingRestriction"
},
"rolebindings":{
"name":"rolebindings",
"namespaced":true,
"kind":"RoleBinding"
},
"roles":{
"name":"roles",
"namespaced":true,
"kind":"Role"
},
"routes":{
"name":"routes",
"namespaced":true,
"kind":"Route"
},
"routes/status":{
"name":"routes/status",
"namespaced":true,
"kind":"Route"
},
"selfsubjectrulesreviews":{
"name":"selfsubjectrulesreviews",
"namespaced":true,
"kind":"SelfSubjectRulesReview"
},
"subjectaccessreviews":{
"name":"subjectaccessreviews",
"namespaced":true,
"kind":"SubjectAccessReview"
},
"subjectrulesreviews":{
"name":"subjectrulesreviews",
"namespaced":true,
"kind":"SubjectRulesReview"
},
"templates":{
"name":"templates",
"namespaced":true,
"kind":"Template"
},
"useridentitymappings":{
"name":"useridentitymappings",
"namespaced":false,
"kind":"UserIdentityMapping"
},
"users":{
"name":"users",
"namespaced":false,
"kind":"User"
} }
} }
}; };
window.OPENSHIFT_CONFIG.apis.groups = { window.OPENSHIFT_CONFIG.apis.groups = {
"autoscaling": { "apps":{
"name": "autoscaling", "name":"apps",
"preferredVersion": "v1", "preferredVersion":"v1beta1",
"versions": { "versions":{
"v1": { "v1beta1":{
"version": "v1", "version":"v1beta1",
"groupVersion": "autoscaling/v1", "groupVersion":"apps/v1beta1",
"resources": { "resources":{
"horizontalpodautoscalers": { "statefulsets":{
"name": "horizontalpodautoscalers", "name":"statefulsets",
"namespaced": true, "namespaced":true,
"kind": "HorizontalPodAutoscaler" "kind":"StatefulSet"
}, },
"horizontalpodautoscalers/status": { "statefulsets/status":{
"name": "horizontalpodautoscalers/status", "name":"statefulsets/status",
"namespaced": true, "namespaced":true,
"kind": "HorizontalPodAutoscaler" "kind":"StatefulSet"
} }
} }
} }
} },
}, "hostPrefix":null
"batch": { },
"name": "batch", "apps.openshift.io":{
"preferredVersion": "v1", "name":"apps.openshift.io",
"versions": { "preferredVersion":"v1",
"v1": { "versions":{
"version": "v1", "v1":{
"groupVersion": "batch/v1", "version":"v1",
"resources": { "groupVersion":"apps.openshift.io/v1",
"jobs": { "resources":{
"name": "jobs", "deploymentconfigs":{
"namespaced": true, "name":"deploymentconfigs",
"kind": "Job" "namespaced":true,
}, "kind":"DeploymentConfig"
"jobs/status": { },
"name": "jobs/status", "deploymentconfigs/instantiate":{
"namespaced": true, "name":"deploymentconfigs/instantiate",
"kind": "Job" "namespaced":true,
} "kind":"DeploymentRequest"
} },
} "deploymentconfigs/log":{
} "name":"deploymentconfigs/log",
}, "namespaced":true,
"extensions": { "kind":"DeploymentLog"
"name": "extensions", },
"preferredVersion": "v1beta1", "deploymentconfigs/rollback":{
"versions": { "name":"deploymentconfigs/rollback",
"v1beta1": { "namespaced":true,
"version": "v1beta1", "kind":"DeploymentConfigRollback"
"groupVersion": "extensions/v1beta1", },
"resources": { "deploymentconfigs/scale":{
"daemonsets": { "name":"deploymentconfigs/scale",
"name": "daemonsets", "namespaced":true,
"namespaced": true, "kind":"Scale"
"kind": "DaemonSet" },
}, "deploymentconfigs/status":{
"daemonsets/status": { "name":"deploymentconfigs/status",
"name": "daemonsets/status", "namespaced":true,
"namespaced": true, "kind":"DeploymentConfig"
"kind": "DaemonSet" }
}, }
"deployments": { }
"name": "deployments", },
"namespaced": true, "hostPrefix":null
"kind": "Deployment" },
}, "authentication.k8s.io":{
"deployments/rollback": { "name":"authentication.k8s.io",
"name": "deployments/rollback", "preferredVersion":"v1beta1",
"namespaced": true, "versions":{
"kind": "DeploymentRollback" "v1beta1":{
}, "version":"v1beta1",
"deployments/scale": { "groupVersion":"authentication.k8s.io/v1beta1",
"name": "deployments/scale", "resources":{
"namespaced": true, "tokenreviews":{
"kind": "Scale" "name":"tokenreviews",
}, "namespaced":false,
"deployments/status": { "kind":"TokenReview"
"name": "deployments/status", }
"namespaced": true, }
"kind": "Deployment" }
}, },
"horizontalpodautoscalers": { "hostPrefix":null
"name": "horizontalpodautoscalers", },
"namespaced": true, "authorization.k8s.io":{
"kind": "HorizontalPodAutoscaler" "name":"authorization.k8s.io",
}, "preferredVersion":"v1beta1",
"horizontalpodautoscalers/status": { "versions":{
"name": "horizontalpodautoscalers/status", "v1beta1":{
"namespaced": true, "version":"v1beta1",
"kind": "HorizontalPodAutoscaler" "groupVersion":"authorization.k8s.io/v1beta1",
}, "resources":{
"ingresses": { "localsubjectaccessreviews":{
"name": "ingresses", "name":"localsubjectaccessreviews",
"namespaced": true, "namespaced":true,
"kind": "Ingress" "kind":"LocalSubjectAccessReview"
}, },
"ingresses/status": { "selfsubjectaccessreviews":{
"name": "ingresses/status", "name":"selfsubjectaccessreviews",
"namespaced": true, "namespaced":false,
"kind": "Ingress" "kind":"SelfSubjectAccessReview"
}, },
"jobs": { "subjectaccessreviews":{
"name": "jobs", "name":"subjectaccessreviews",
"namespaced": true, "namespaced":false,
"kind": "Job" "kind":"SubjectAccessReview"
}, }
"jobs/status": { }
"name": "jobs/status", }
"namespaced": true, },
"kind": "Job" "hostPrefix":null
},
"authorization.openshift.io":{
"name":"authorization.openshift.io",
"preferredVersion":"v1",
"versions":{
"v1":{
"version":"v1",
"groupVersion":"authorization.openshift.io/v1",
"resources":{
"clusterpolicies":{
"name":"clusterpolicies",
"namespaced":false,
"kind":"ClusterPolicy"
},
"clusterpolicybindings":{
"name":"clusterpolicybindings",
"namespaced":false,
"kind":"ClusterPolicyBinding"
},
"clusterrolebindings":{
"name":"clusterrolebindings",
"namespaced":false,
"kind":"ClusterRoleBinding"
},
"clusterroles":{
"name":"clusterroles",
"namespaced":false,
"kind":"ClusterRole"
},
"localresourceaccessreviews":{
"name":"localresourceaccessreviews",
"namespaced":true,
"kind":"LocalResourceAccessReview"
},
"localsubjectaccessreviews":{
"name":"localsubjectaccessreviews",
"namespaced":true,
"kind":"LocalSubjectAccessReview"
},
"policies":{
"name":"policies",
"namespaced":true,
"kind":"Policy"
},
"policybindings":{
"name":"policybindings",
"namespaced":true,
"kind":"PolicyBinding"
},
"resourceaccessreviews":{
"name":"resourceaccessreviews",
"namespaced":true,
"kind":"ResourceAccessReview"
},
"rolebindingrestrictions":{
"name":"rolebindingrestrictions",
"namespaced":true,
"kind":"RoleBindingRestriction"
},
"rolebindings":{
"name":"rolebindings",
"namespaced":true,
"kind":"RoleBinding"
},
"roles":{
"name":"roles",
"namespaced":true,
"kind":"Role"
},
"selfsubjectrulesreviews":{
"name":"selfsubjectrulesreviews",
"namespaced":true,
"kind":"SelfSubjectRulesReview"
},
"subjectaccessreviews":{
"name":"subjectaccessreviews",
"namespaced":true,
"kind":"SubjectAccessReview"
},
"subjectrulesreviews":{
"name":"subjectrulesreviews",
"namespaced":true,
"kind":"SubjectRulesReview"
}
}
}
},
"hostPrefix":null
},
"autoscaling":{
"name":"autoscaling",
"preferredVersion":"v1",
"versions":{
"v1":{
"version":"v1",
"groupVersion":"autoscaling/v1",
"resources":{
"horizontalpodautoscalers":{
"name":"horizontalpodautoscalers",
"namespaced":true,
"kind":"HorizontalPodAutoscaler"
},
"horizontalpodautoscalers/status":{
"name":"horizontalpodautoscalers/status",
"namespaced":true,
"kind":"HorizontalPodAutoscaler"
}
}
}
},
"hostPrefix":null
},
"batch":{
"name":"batch",
"preferredVersion":"v1",
"versions":{
"v1":{
"version":"v1",
"groupVersion":"batch/v1",
"resources":{
"jobs":{
"name":"jobs",
"namespaced":true,
"kind":"Job"
},
"jobs/status":{
"name":"jobs/status",
"namespaced":true,
"kind":"Job"
}
}
},
"v2alpha1":{
"version":"v2alpha1",
"groupVersion":"batch/v2alpha1",
"resources":{
"cronjobs":{
"name":"cronjobs",
"namespaced":true,
"kind":"CronJob"
},
"cronjobs/status":{
"name":"cronjobs/status",
"namespaced":true,
"kind":"CronJob"
},
"jobs":{
"name":"jobs",
"namespaced":true,
"kind":"Job"
},
"jobs/status":{
"name":"jobs/status",
"namespaced":true,
"kind":"Job"
},
"scheduledjobs":{
"name":"scheduledjobs",
"namespaced":true,
"kind":"ScheduledJob"
},
"scheduledjobs/status":{
"name":"scheduledjobs/status",
"namespaced":true,
"kind":"ScheduledJob"
}
}
}
},
"hostPrefix":null
},
"build.openshift.io":{
"name":"build.openshift.io",
"preferredVersion":"v1",
"versions":{
"v1":{
"version":"v1",
"groupVersion":"build.openshift.io/v1",
"resources":{
"buildconfigs":{
"name":"buildconfigs",
"namespaced":true,
"kind":"BuildConfig"
},
"buildconfigs/instantiate":{
"name":"buildconfigs/instantiate",
"namespaced":true,
"kind":"BuildRequest"
},
"buildconfigs/instantiatebinary":{
"name":"buildconfigs/instantiatebinary",
"namespaced":true,
"kind":"BinaryBuildRequestOptions"
},
"buildconfigs/webhooks":{
"name":"buildconfigs/webhooks",
"namespaced":true,
"kind":"Status"
},
"builds":{
"name":"builds",
"namespaced":true,
"kind":"Build"
},
"builds/clone":{
"name":"builds/clone",
"namespaced":true,
"kind":"BuildRequest"
},
"builds/details":{
"name":"builds/details",
"namespaced":true,
"kind":"Build"
},
"builds/log":{
"name":"builds/log",
"namespaced":true,
"kind":"BuildLog"
}
}
}
},
"hostPrefix":null
},
"certificates.k8s.io":{
"name":"certificates.k8s.io",
"preferredVersion":"v1alpha1",
"versions":{
"v1alpha1":{
"version":"v1alpha1",
"groupVersion":"certificates.k8s.io/v1alpha1",
"resources":{
"certificatesigningrequests":{
"name":"certificatesigningrequests",
"namespaced":false,
"kind":"CertificateSigningRequest"
},
"certificatesigningrequests/approval":{
"name":"certificatesigningrequests/approval",
"namespaced":false,
"kind":"CertificateSigningRequest"
},
"certificatesigningrequests/status":{
"name":"certificatesigningrequests/status",
"namespaced":false,
"kind":"CertificateSigningRequest"
}
}
}
},
"hostPrefix":null
},
"extensions":{
"name":"extensions",
"preferredVersion":"v1beta1",
"versions":{
"v1beta1":{
"version":"v1beta1",
"groupVersion":"extensions/v1beta1",
"resources":{
"daemonsets":{
"name":"daemonsets",
"namespaced":true,
"kind":"DaemonSet"
},
"daemonsets/status":{
"name":"daemonsets/status",
"namespaced":true,
"kind":"DaemonSet"
},
"deployments":{
"name":"deployments",
"namespaced":true,
"kind":"Deployment"
},
"deployments/rollback":{
"name":"deployments/rollback",
"namespaced":true,
"kind":"DeploymentRollback"
},
"deployments/scale":{
"name":"deployments/scale",
"namespaced":true,
"kind":"Scale"
},
"deployments/status":{
"name":"deployments/status",
"namespaced":true,
"kind":"Deployment"
},
"horizontalpodautoscalers":{
"name":"horizontalpodautoscalers",
"namespaced":true,
"kind":"HorizontalPodAutoscaler"
},
"horizontalpodautoscalers/status":{
"name":"horizontalpodautoscalers/status",
"namespaced":true,
"kind":"HorizontalPodAutoscaler"
},
"ingresses":{
"name":"ingresses",
"namespaced":true,
"kind":"Ingress"
},
"ingresses/status":{
"name":"ingresses/status",
"namespaced":true,
"kind":"Ingress"
},
"jobs":{
"name":"jobs",
"namespaced":true,
"kind":"Job"
},
"jobs/status":{
"name":"jobs/status",
"namespaced":true,
"kind":"Job"
},
"networkpolicies":{
"name":"networkpolicies",
"namespaced":true,
"kind":"NetworkPolicy"
},
"podsecuritypolicies":{
"name":"podsecuritypolicies",
"namespaced":false,
"kind":"PodSecurityPolicy"
},
"replicasets":{
"name":"replicasets",
"namespaced":true,
"kind":"ReplicaSet"
},
"replicasets/scale":{
"name":"replicasets/scale",
"namespaced":true,
"kind":"Scale"
},
"replicasets/status":{
"name":"replicasets/status",
"namespaced":true,
"kind":"ReplicaSet"
},
"replicationcontrollers":{
"name":"replicationcontrollers",
"namespaced":true,
"kind":"ReplicationControllerDummy"
},
"replicationcontrollers/scale":{
"name":"replicationcontrollers/scale",
"namespaced":true,
"kind":"Scale"
},
"thirdpartyresources":{
"name":"thirdpartyresources",
"namespaced":false,
"kind":"ThirdPartyResource"
}
}
}
}, },
"replicasets": { "hostPrefix":null
"name": "replicasets", },
"namespaced": true, "image.openshift.io":{
"kind": "ReplicaSet" "name":"image.openshift.io",
"preferredVersion":"v1",
"versions":{
"v1":{
"version":"v1",
"groupVersion":"image.openshift.io/v1",
"resources":{
"images":{
"name":"images",
"namespaced":false,
"kind":"Image"
},
"imagesignatures":{
"name":"imagesignatures",
"namespaced":false,
"kind":"ImageSignature"
},
"imagestreamimages":{
"name":"imagestreamimages",
"namespaced":true,
"kind":"ImageStreamImage"
},
"imagestreamimports":{
"name":"imagestreamimports",
"namespaced":true,
"kind":"ImageStreamImport"
},
"imagestreammappings":{
"name":"imagestreammappings",
"namespaced":true,
"kind":"ImageStreamMapping"
},
"imagestreams":{
"name":"imagestreams",
"namespaced":true,
"kind":"ImageStream"
},
"imagestreams/secrets":{
"name":"imagestreams/secrets",
"namespaced":true,
"kind":"SecretList"
},
"imagestreams/status":{
"name":"imagestreams/status",
"namespaced":true,
"kind":"ImageStream"
},
"imagestreamtags":{
"name":"imagestreamtags",
"namespaced":true,
"kind":"ImageStreamTag"
}
}
}
}, },
"replicasets/scale": { "hostPrefix":null
"name": "replicasets/scale", },
"namespaced": true, "network.openshift.io":{
"kind": "Scale" "name":"network.openshift.io",
}, "preferredVersion":"v1",
"replicasets/status": { "versions":{
"name": "replicasets/status", "v1":{
"namespaced": true, "version":"v1",
"kind": "ReplicaSet" "groupVersion":"network.openshift.io/v1",
}, "resources":{
"replicationcontrollers": { "clusternetworks":{
"name": "replicationcontrollers", "name":"clusternetworks",
"namespaced": true, "namespaced":false,
"kind": "ReplicationControllerDummy" "kind":"ClusterNetwork"
}, },
"replicationcontrollers/scale": { "egressnetworkpolicies":{
"name": "replicationcontrollers/scale", "name":"egressnetworkpolicies",
"namespaced": true, "namespaced":true,
"kind": "Scale" "kind":"EgressNetworkPolicy"
},
"hostsubnets":{
"name":"hostsubnets",
"namespaced":false,
"kind":"HostSubnet"
},
"netnamespaces":{
"name":"netnamespaces",
"namespaced":false,
"kind":"NetNamespace"
}
} }
} }
},
"hostPrefix":null
},
"oauth.openshift.io":{
"name":"oauth.openshift.io",
"preferredVersion":"v1",
"versions":{
"v1":{
"version":"v1",
"groupVersion":"oauth.openshift.io/v1",
"resources":{
"oauthaccesstokens":{
"name":"oauthaccesstokens",
"namespaced":false,
"kind":"OAuthAccessToken"
},
"oauthauthorizetokens":{
"name":"oauthauthorizetokens",
"namespaced":false,
"kind":"OAuthAuthorizeToken"
},
"oauthclientauthorizations":{
"name":"oauthclientauthorizations",
"namespaced":false,
"kind":"OAuthClientAuthorization"
},
"oauthclients":{
"name":"oauthclients",
"namespaced":false,
"kind":"OAuthClient"
}
}
}
},
"hostPrefix":null
},
"policy":{
"name":"policy",
"preferredVersion":"v1beta1",
"versions":{
"v1beta1":{
"version":"v1beta1",
"groupVersion":"policy/v1beta1",
"resources":{
"poddisruptionbudgets":{
"name":"poddisruptionbudgets",
"namespaced":true,
"kind":"PodDisruptionBudget"
},
"poddisruptionbudgets/status":{
"name":"poddisruptionbudgets/status",
"namespaced":true,
"kind":"PodDisruptionBudget"
} }
} }
} }
},
"hostPrefix":null
},
"project.openshift.io":{
"name":"project.openshift.io",
"preferredVersion":"v1",
"versions":{
"v1":{
"version":"v1",
"groupVersion":"project.openshift.io/v1",
"resources":{
"projectrequests":{
"name":"projectrequests",
"namespaced":false,
"kind":"ProjectRequest"
},
"projects":{
"name":"projects",
"namespaced":false,
"kind":"Project"
}
}
}
},
"hostPrefix":null
},
"quota.openshift.io":{
"name":"quota.openshift.io",
"preferredVersion":"v1",
"versions":{
"v1":{
"version":"v1",
"groupVersion":"quota.openshift.io/v1",
"resources":{
"appliedclusterresourcequotas":{
"name":"appliedclusterresourcequotas",
"namespaced":true,
"kind":"AppliedClusterResourceQuota"
},
"clusterresourcequotas":{
"name":"clusterresourcequotas",
"namespaced":false,
"kind":"ClusterResourceQuota"
},
"clusterresourcequotas/status":{
"name":"clusterresourcequotas/status",
"namespaced":false,
"kind":"ClusterResourceQuota"
}
}
}
},
"hostPrefix":null
},
"route.openshift.io":{
"name":"route.openshift.io",
"preferredVersion":"v1",
"versions":{
"v1":{
"version":"v1",
"groupVersion":"route.openshift.io/v1",
"resources":{
"routes":{
"name":"routes",
"namespaced":true,
"kind":"Route"
},
"routes/status":{
"name":"routes/status",
"namespaced":true,
"kind":"Route"
}
}
}
},
"hostPrefix":null
},
"security.openshift.io":{
"name":"security.openshift.io",
"preferredVersion":"v1",
"versions":{
"v1":{
"version":"v1",
"groupVersion":"security.openshift.io/v1",
"resources":{
"podsecuritypolicyreviews":{
"name":"podsecuritypolicyreviews",
"namespaced":true,
"kind":"PodSecurityPolicyReview"
},
"podsecuritypolicyselfsubjectreviews":{
"name":"podsecuritypolicyselfsubjectreviews",
"namespaced":true,
"kind":"PodSecurityPolicySelfSubjectReview"
},
"podsecuritypolicysubjectreviews":{
"name":"podsecuritypolicysubjectreviews",
"namespaced":true,
"kind":"PodSecurityPolicySubjectReview"
}
}
}
},
"hostPrefix":null
},
"storage.k8s.io":{
"name":"storage.k8s.io",
"preferredVersion":"v1beta1",
"versions":{
"v1beta1":{
"version":"v1beta1",
"groupVersion":"storage.k8s.io/v1beta1",
"resources":{
"storageclasses":{
"name":"storageclasses",
"namespaced":false,
"kind":"StorageClass"
}
}
}
},
"hostPrefix":null
},
"template.openshift.io":{
"name":"template.openshift.io",
"preferredVersion":"v1",
"versions":{
"v1":{
"version":"v1",
"groupVersion":"template.openshift.io/v1",
"resources":{
"brokertemplateinstances":{
"name":"brokertemplateinstances",
"namespaced":false,
"kind":"BrokerTemplateInstance"
},
"processedtemplates":{
"name":"processedtemplates",
"namespaced":true,
"kind":"Template"
},
"templateinstances":{
"name":"templateinstances",
"namespaced":true,
"kind":"TemplateInstance"
},
"templates":{
"name":"templates",
"namespaced":true,
"kind":"Template"
}
}
}
},
"hostPrefix":null
},
"user.openshift.io":{
"name":"user.openshift.io",
"preferredVersion":"v1",
"versions":{
"v1":{
"version":"v1",
"groupVersion":"user.openshift.io/v1",
"resources":{
"groups":{
"name":"groups",
"namespaced":false,
"kind":"Group"
},
"identities":{
"name":"identities",
"namespaced":false,
"kind":"Identity"
},
"useridentitymappings":{
"name":"useridentitymappings",
"namespaced":false,
"kind":"UserIdentityMapping"
},
"users":{
"name":"users",
"namespaced":false,
"kind":"User"
}
}
}
},
"hostPrefix":null
}
}; };
describe("APIService", function(){ describe("APIService", function() {
var APIService; var APIService;
beforeEach(function(){ beforeEach(function(){
inject(function(_APIService_){ inject(function(_APIService_) {
APIService = _APIService_; APIService = _APIService_;
}); });
}); });
describe("#toResourceGroupVersion", function(){ describe("#toResourceGroupVersion", function() {
var tc = [ var tc = [
// string args // string args
...@@ -62,7 +62,8 @@ describe("APIService", function(){ ...@@ -62,7 +62,8 @@ describe("APIService", function(){
})); }));
}); });
/*
describe("#parseGroupVersion", function(){ describe("#parseGroupVersion", function(){
var tc = [ var tc = [
// invalid cases // invalid cases
...@@ -234,6 +235,78 @@ describe("APIService", function(){ ...@@ -234,6 +235,78 @@ describe("APIService", function(){
}); });
})); }));
}); });
*/
describe('#availableKinds', function() {
var bothSample = ['Binding','ConfigMap','DeploymentConfig','Event','LimitRange','Pod','ReplicaSet','Role','Service', 'Template'];
var onlyClusterSample = ['ClusterResourceQuota','Namespace','OAuthAccessToken','PersistentVolume','ProjectRequest','User'];
it('should return list of kinds that are scoped to a namespace by default', function() {
var namespacedKinds = _.map(APIService.availableKinds(), 'kind');
expect( _.difference(bothSample, namespacedKinds).length ).toEqual(0);
});
it('should not return list cluster scoped kinds by default', function() {
var namespacedKinds = _.map(APIService.availableKinds(), 'kind');
expect( _.difference(onlyClusterSample, namespacedKinds).length ).toEqual(onlyClusterSample.length);
});
it('should return list of all kinds, including those that are cluster scoped, when passed a truthy argument', function() {
var allKinds = _.map(APIService.availableKinds(true), 'kind');
expect( _.difference(bothSample, allKinds).length ).toEqual(0);
expect( _.difference(onlyClusterSample, allKinds).length ).toEqual(0);
});
// kinds from the old /oapi should not be iterated at all.
it('should not list kinds from the old /oapi namespace (that do not have a group)', function() {
var allKinds = APIService.availableKinds(true);
var shouldNotBeFound = [];
// This is a sampling of items from /oapi that should no longer be listed
var oapiShouldNotExistSample = [
{kind: 'ClusterPolicy'},
{kind: 'ClusterRole'},
{kind: 'Image'},
{kind: 'Template'},
{kind: 'Project'},
{kind: 'User'}
];
_.each(oapiShouldNotExistSample, function(kindToFind) {
var found = _.find(allKinds, function(kind) {
return (kind.kind === kindToFind.kind) && !_.includes(_.keys(kind), 'group');
});
if(found) {
shouldNotBeFound.push(found);
}
});
expect(shouldNotBeFound.length).toEqual(0);
});
// unlike the /oapi endpoint, the /api endpoint should still be listed
it('should list items from the k8s /api namespace (that do not have a group)', function() {
var allKinds = APIService.availableKinds(true);
var shouldBeFound = [];
// this is a sampling of items from /api that should still be listed,
// even though they do not yet have a group associated.
var k8sAPIStillExistsSample = [
{kind: 'Binding'},
{kind: 'ConfigMap'},
{kind: 'Namespace'},
{kind: 'PersistentVolume'},
{kind: 'Service'},
{kind: 'ServiceAccount'},
{kind: 'Pod'}
];
_.each(k8sAPIStillExistsSample, function(kindToFind) {
var found = _.find(allKinds, function(kind) {
return (kind.kind === kindToFind.kind) && !_.includes(_.keys(kind), 'group');
});
if(found) {
shouldBeFound.push(found);
}
});
expect(shouldBeFound.length).toEqual(k8sAPIStillExistsSample.length);
});
});
}); });
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment