Commit ccb521bc by Jessica Forrester Committed by GitHub

Merge pull request #99 from jwforres/bind-pod-preset

Optionally send AlphaPodPresetTemplate when creating Binding
parents d6f53769 1a9a6d41
...@@ -1014,10 +1014,10 @@ angular.module("openshiftCommonServices") ...@@ -1014,10 +1014,10 @@ angular.module("openshiftCommonServices")
resource: 'bindings' resource: 'bindings'
}; };
var makeBinding = function (serviceToBind) { var makeBinding = function (serviceToBind, appToBind) {
var generateName = $filter('generateName'); var generateName = $filter('generateName');
var relatedObjName = generateName(_.trunc(serviceToBind, DNS1123_SUBDOMAIN_VALIDATION.maxlength - 6) + '-');
return { var binding = {
kind: 'Binding', kind: 'Binding',
apiVersion: 'servicecatalog.k8s.io/v1alpha1', apiVersion: 'servicecatalog.k8s.io/v1alpha1',
metadata: { metadata: {
...@@ -1027,17 +1027,29 @@ angular.module("openshiftCommonServices") ...@@ -1027,17 +1027,29 @@ angular.module("openshiftCommonServices")
instanceRef: { instanceRef: {
name: serviceToBind name: serviceToBind
}, },
secretName: generateName(_.trunc(serviceToBind, DNS1123_SUBDOMAIN_VALIDATION.maxlength - 6) + '-') secretName: relatedObjName
} }
}; };
var appSelector = _.get(appToBind, 'spec.selector');
if (appSelector) {
if (!appSelector.matchLabels && !appSelector.matchExpressions) {
// Then this is the old format of selector, pod preset requires the new format
appSelector = {
matchLabels: appSelector
};
}
binding.spec.alphaPodPresetTemplate = {
name: relatedObjName,
selector: appSelector
};
}
return binding;
}; };
return { return {
bindingResource: bindingResource, bindingResource: bindingResource,
bindService: function(context, serviceToBind, appToBind) { bindService: function(context, serviceToBind, appToBind) {
var newBinding = makeBinding(serviceToBind); var newBinding = makeBinding(serviceToBind, appToBind);
// TODO: Use appToBind to bind the service to the application
return DataService.create(bindingResource, null, newBinding, context); return DataService.create(bindingResource, null, newBinding, context);
}, },
isServiceBindable: function(serviceInstance, serviceClasses) { isServiceBindable: function(serviceInstance, serviceClasses) {
......
...@@ -2648,10 +2648,10 @@ angular.module("openshiftCommonServices") ...@@ -2648,10 +2648,10 @@ angular.module("openshiftCommonServices")
resource: 'bindings' resource: 'bindings'
}; };
var makeBinding = function (serviceToBind) { var makeBinding = function (serviceToBind, appToBind) {
var generateName = $filter('generateName'); var generateName = $filter('generateName');
var relatedObjName = generateName(_.trunc(serviceToBind, DNS1123_SUBDOMAIN_VALIDATION.maxlength - 6) + '-');
return { var binding = {
kind: 'Binding', kind: 'Binding',
apiVersion: 'servicecatalog.k8s.io/v1alpha1', apiVersion: 'servicecatalog.k8s.io/v1alpha1',
metadata: { metadata: {
...@@ -2661,17 +2661,29 @@ angular.module("openshiftCommonServices") ...@@ -2661,17 +2661,29 @@ angular.module("openshiftCommonServices")
instanceRef: { instanceRef: {
name: serviceToBind name: serviceToBind
}, },
secretName: generateName(_.trunc(serviceToBind, DNS1123_SUBDOMAIN_VALIDATION.maxlength - 6) + '-') secretName: relatedObjName
} }
}; };
var appSelector = _.get(appToBind, 'spec.selector');
if (appSelector) {
if (!appSelector.matchLabels && !appSelector.matchExpressions) {
// Then this is the old format of selector, pod preset requires the new format
appSelector = {
matchLabels: appSelector
};
}
binding.spec.alphaPodPresetTemplate = {
name: relatedObjName,
selector: appSelector
};
}
return binding;
}; };
return { return {
bindingResource: bindingResource, bindingResource: bindingResource,
bindService: function(context, serviceToBind, appToBind) { bindService: function(context, serviceToBind, appToBind) {
var newBinding = makeBinding(serviceToBind); var newBinding = makeBinding(serviceToBind, appToBind);
// TODO: Use appToBind to bind the service to the application
return DataService.create(bindingResource, null, newBinding, context); return DataService.create(bindingResource, null, newBinding, context);
}, },
isServiceBindable: function(serviceInstance, serviceClasses) { isServiceBindable: function(serviceInstance, serviceClasses) {
......
...@@ -1080,9 +1080,8 @@ return data; ...@@ -1080,9 +1080,8 @@ return data;
var bindingResource = { var bindingResource = {
group:"servicecatalog.k8s.io", group:"servicecatalog.k8s.io",
resource:"bindings" resource:"bindings"
}, makeBinding = function(serviceToBind) { }, makeBinding = function(serviceToBind, appToBind) {
var generateName = $filter("generateName"); var generateName = $filter("generateName"), relatedObjName = generateName(_.trunc(serviceToBind, DNS1123_SUBDOMAIN_VALIDATION.maxlength - 6) + "-"), binding = {
return {
kind:"Binding", kind:"Binding",
apiVersion:"servicecatalog.k8s.io/v1alpha1", apiVersion:"servicecatalog.k8s.io/v1alpha1",
metadata:{ metadata:{
...@@ -1092,14 +1091,20 @@ spec:{ ...@@ -1092,14 +1091,20 @@ spec:{
instanceRef:{ instanceRef:{
name:serviceToBind name:serviceToBind
}, },
secretName:generateName(_.trunc(serviceToBind, DNS1123_SUBDOMAIN_VALIDATION.maxlength - 6) + "-") secretName:relatedObjName
} }
}; }, appSelector = _.get(appToBind, "spec.selector");
return appSelector && (appSelector.matchLabels || appSelector.matchExpressions || (appSelector = {
matchLabels:appSelector
}), binding.spec.alphaPodPresetTemplate = {
name:relatedObjName,
selector:appSelector
}), binding;
}; };
return { return {
bindingResource:bindingResource, bindingResource:bindingResource,
bindService:function(context, serviceToBind, appToBind) { bindService:function(context, serviceToBind, appToBind) {
var newBinding = makeBinding(serviceToBind); var newBinding = makeBinding(serviceToBind, appToBind);
return DataService.create(bindingResource, null, newBinding, context); return DataService.create(bindingResource, null, newBinding, context);
}, },
isServiceBindable:function(serviceInstance, serviceClasses) { isServiceBindable:function(serviceInstance, serviceClasses) {
......
...@@ -7,10 +7,10 @@ angular.module("openshiftCommonServices") ...@@ -7,10 +7,10 @@ angular.module("openshiftCommonServices")
resource: 'bindings' resource: 'bindings'
}; };
var makeBinding = function (serviceToBind) { var makeBinding = function (serviceToBind, appToBind) {
var generateName = $filter('generateName'); var generateName = $filter('generateName');
var relatedObjName = generateName(_.trunc(serviceToBind, DNS1123_SUBDOMAIN_VALIDATION.maxlength - 6) + '-');
return { var binding = {
kind: 'Binding', kind: 'Binding',
apiVersion: 'servicecatalog.k8s.io/v1alpha1', apiVersion: 'servicecatalog.k8s.io/v1alpha1',
metadata: { metadata: {
...@@ -20,17 +20,29 @@ angular.module("openshiftCommonServices") ...@@ -20,17 +20,29 @@ angular.module("openshiftCommonServices")
instanceRef: { instanceRef: {
name: serviceToBind name: serviceToBind
}, },
secretName: generateName(_.trunc(serviceToBind, DNS1123_SUBDOMAIN_VALIDATION.maxlength - 6) + '-') secretName: relatedObjName
} }
}; };
var appSelector = _.get(appToBind, 'spec.selector');
if (appSelector) {
if (!appSelector.matchLabels && !appSelector.matchExpressions) {
// Then this is the old format of selector, pod preset requires the new format
appSelector = {
matchLabels: appSelector
};
}
binding.spec.alphaPodPresetTemplate = {
name: relatedObjName,
selector: appSelector
};
}
return binding;
}; };
return { return {
bindingResource: bindingResource, bindingResource: bindingResource,
bindService: function(context, serviceToBind, appToBind) { bindService: function(context, serviceToBind, appToBind) {
var newBinding = makeBinding(serviceToBind); var newBinding = makeBinding(serviceToBind, appToBind);
// TODO: Use appToBind to bind the service to the application
return DataService.create(bindingResource, null, newBinding, context); return DataService.create(bindingResource, null, newBinding, context);
}, },
isServiceBindable: function(serviceInstance, serviceClasses) { isServiceBindable: function(serviceInstance, serviceClasses) {
......
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