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")
resource: 'bindings'
};
var makeBinding = function (serviceToBind) {
var makeBinding = function (serviceToBind, appToBind) {
var generateName = $filter('generateName');
return {
var relatedObjName = generateName(_.trunc(serviceToBind, DNS1123_SUBDOMAIN_VALIDATION.maxlength - 6) + '-');
var binding = {
kind: 'Binding',
apiVersion: 'servicecatalog.k8s.io/v1alpha1',
metadata: {
......@@ -1027,17 +1027,29 @@ angular.module("openshiftCommonServices")
instanceRef: {
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 {
bindingResource: bindingResource,
bindService: function(context, serviceToBind, appToBind) {
var newBinding = makeBinding(serviceToBind);
// TODO: Use appToBind to bind the service to the application
var newBinding = makeBinding(serviceToBind, appToBind);
return DataService.create(bindingResource, null, newBinding, context);
},
isServiceBindable: function(serviceInstance, serviceClasses) {
......
......@@ -2648,10 +2648,10 @@ angular.module("openshiftCommonServices")
resource: 'bindings'
};
var makeBinding = function (serviceToBind) {
var makeBinding = function (serviceToBind, appToBind) {
var generateName = $filter('generateName');
return {
var relatedObjName = generateName(_.trunc(serviceToBind, DNS1123_SUBDOMAIN_VALIDATION.maxlength - 6) + '-');
var binding = {
kind: 'Binding',
apiVersion: 'servicecatalog.k8s.io/v1alpha1',
metadata: {
......@@ -2661,17 +2661,29 @@ angular.module("openshiftCommonServices")
instanceRef: {
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 {
bindingResource: bindingResource,
bindService: function(context, serviceToBind, appToBind) {
var newBinding = makeBinding(serviceToBind);
// TODO: Use appToBind to bind the service to the application
var newBinding = makeBinding(serviceToBind, appToBind);
return DataService.create(bindingResource, null, newBinding, context);
},
isServiceBindable: function(serviceInstance, serviceClasses) {
......
......@@ -1080,9 +1080,8 @@ return data;
var bindingResource = {
group:"servicecatalog.k8s.io",
resource:"bindings"
}, makeBinding = function(serviceToBind) {
var generateName = $filter("generateName");
return {
}, makeBinding = function(serviceToBind, appToBind) {
var generateName = $filter("generateName"), relatedObjName = generateName(_.trunc(serviceToBind, DNS1123_SUBDOMAIN_VALIDATION.maxlength - 6) + "-"), binding = {
kind:"Binding",
apiVersion:"servicecatalog.k8s.io/v1alpha1",
metadata:{
......@@ -1092,14 +1091,20 @@ spec:{
instanceRef:{
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 {
bindingResource:bindingResource,
bindService:function(context, serviceToBind, appToBind) {
var newBinding = makeBinding(serviceToBind);
var newBinding = makeBinding(serviceToBind, appToBind);
return DataService.create(bindingResource, null, newBinding, context);
},
isServiceBindable:function(serviceInstance, serviceClasses) {
......
......@@ -7,10 +7,10 @@ angular.module("openshiftCommonServices")
resource: 'bindings'
};
var makeBinding = function (serviceToBind) {
var makeBinding = function (serviceToBind, appToBind) {
var generateName = $filter('generateName');
return {
var relatedObjName = generateName(_.trunc(serviceToBind, DNS1123_SUBDOMAIN_VALIDATION.maxlength - 6) + '-');
var binding = {
kind: 'Binding',
apiVersion: 'servicecatalog.k8s.io/v1alpha1',
metadata: {
......@@ -20,17 +20,29 @@ angular.module("openshiftCommonServices")
instanceRef: {
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 {
bindingResource: bindingResource,
bindService: function(context, serviceToBind, appToBind) {
var newBinding = makeBinding(serviceToBind);
// TODO: Use appToBind to bind the service to the application
var newBinding = makeBinding(serviceToBind, appToBind);
return DataService.create(bindingResource, null, newBinding, context);
},
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