Handle an asset service schema version

Add a version flag to allow fields to be added to assets
that are required for proper fuctioning of that asset type that
this version of the pluging will flag as unsupported rather then
partially but brokenly support.

Change-Id: Id85d7b0a13dbc8e290a01835e531f5998d6e2324
This commit is contained in:
Kevin Fox 2015-09-23 11:13:27 -07:00
parent e5b4503cb8
commit b2ab2acb3b
2 changed files with 40 additions and 33 deletions

View File

@ -1,38 +1,43 @@
<div ng-switch="asset.service.type">
<div ng-switch-when="heat" ng-switch="asset.validated">
<a ng-switch-default ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/}">Checking</a>
<a ng-switch-when="error" ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/">Error</a>
<a ng-switch-when="unsupported" ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/">Unsupported</a>
<a ng-switch-when="true" ng-class="extraclasses" class="btn btn-success btn-default ajax-modal" href="{$ WEBROOT $}project/stacks/select_template?template_source=url&template_url={$ asset.attributes.url | encodeURIComponent $}">Launch</a>
<div ng-switch="asset.disabled">
<div ng-switch-when="true">
<a ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/">Unsupported</a>
</div>
<div ng-switch-when="glance" ng-switch="asset.attributes.indirect_url || '_undefined_'">
<a ng-switch-default ng-class="extraclasses" class="btn btn-primary btn-default" target="_blank" href="{$ asset.attributes.indirect_url $}">Install Instructions</a>
<div ng-switch-when="_undefined_" ng-switch="asset.installed">
<a ng-switch-default ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/">Checking</a>
<a ng-switch-when="false" ng-class="extraclasses" class="btn btn-primary btn-default ajax-modal" href="{$ WEBROOT $}project/images/create/?name={$ asset.name | encodeURIComponent $}&source_type=url&image_url={$ asset.attributes.url | encodeURIComponent $}&disk_format={$ asset.service.disk_format $}&architecture={$ asset.service.architecture $}&minimum_disk={$ asset.service.min_disk $}&minimum_ram={$ asset.service.min_ram $}&description={$ asset.description $}">Install</a>
<a ng-switch-when="true" ng-class="extraclasses" class="btn btn-success btn-default ajax-modal" href="{$ WEBROOT $}project/instances/launch?source_type=image_id&source_id={$ asset.installed_id $}">Launch</a>
</a>
<div ng-switch-default ng-switch="asset.service.type">
<div ng-switch-when="heat" ng-switch="asset.validated">
<a ng-switch-default ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/}">Checking</a>
<a ng-switch-when="error" ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/">Error</a>
<a ng-switch-when="unsupported" ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/">Unsupported</a>
<a ng-switch-when="true" ng-class="extraclasses" class="btn btn-success btn-default ajax-modal" href="{$ WEBROOT $}project/stacks/select_template?template_source=url&template_url={$ asset.attributes.url | encodeURIComponent $}">Launch</a>
</div>
</div>
<div ng-switch-when="murano" ng-switch="asset.has_murano">
<a ng-switch-when="false" ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/">Unsupported</a>
<div ng-switch-when="true" ng-switch="asset.installed">
<a ng-switch-default ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/">Checking</a>
<a ng-switch-when="false" ng-class="extraclasses" class="btn btn-primary btn-default ajax-modal" href="{$ WEBROOT $}murano/packages/upload?repo_name={$ asset.service.package_name | encodeURIComponent $}&import_type=by_name">Install</a>
<a ng-switch-when="true" ng-class="extraclasses" class="btn btn-success btn-default ajax-modal" href="{$ WEBROOT $}murano/catalog/quick-add/{$ asset.service.murano_id $}">Launch</a>
</div>
</div>
<div ng-switch-when="bundle" ng-switch="asset.service.murano_package_name || '_undefined_'">
<div ng-switch-when="_undefined_"></div>
<div ng-switch-default ng-switch="asset.has_murano">
<a ng-switch-when="false" ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/">Unsupported</a>
<div ng-switch-when="true" ng-switch="asset.installed || '_undefined_'">
<a ng-switch-default ng-class="extraclasses" class="btn btn-primary btn-default ajax-modal" href="{$ WEBROOT $}murano/packages/import_bundle?name={$ asset.service.murano_package_name | encodeURIComponent $}&import_type=by_repo">Install</a>
<a ng-switch-when="true" ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/">Installed</a>
<div ng-switch-when="glance" ng-switch="asset.attributes.indirect_url || '_undefined_'">
<a ng-switch-default ng-class="extraclasses" class="btn btn-primary btn-default" target="_blank" href="{$ asset.attributes.indirect_url $}">Install Instructions</a>
<div ng-switch-when="_undefined_" ng-switch="asset.installed">
<a ng-switch-default ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/">Checking</a>
<a ng-switch-when="false" ng-class="extraclasses" class="btn btn-primary btn-default ajax-modal" href="{$ WEBROOT $}project/images/create/?name={$ asset.name | encodeURIComponent $}&source_type=url&image_url={$ asset.attributes.url | encodeURIComponent $}&disk_format={$ asset.service.disk_format $}&architecture={$ asset.service.architecture $}&minimum_disk={$ asset.service.min_disk $}&minimum_ram={$ asset.service.min_ram $}&description={$ asset.description $}">Install</a>
<a ng-switch-when="true" ng-class="extraclasses" class="btn btn-success btn-default ajax-modal" href="{$ WEBROOT $}project/instances/launch?source_type=image_id&source_id={$ asset.installed_id $}">Launch</a>
</a>
</div>
</div>
</div>
<div ng-switch-default>
<a ng-switch-when="false" ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/">Unsupported</a>
<div ng-switch-when="murano" ng-switch="asset.has_murano">
<a ng-switch-when="false" ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/">Unsupported</a>
<div ng-switch-when="true" ng-switch="asset.installed">
<a ng-switch-default ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/">Checking</a>
<a ng-switch-when="false" ng-class="extraclasses" class="btn btn-primary btn-default ajax-modal" href="{$ WEBROOT $}murano/packages/upload?repo_name={$ asset.service.package_name | encodeURIComponent $}&import_type=by_name">Install</a>
<a ng-switch-when="true" ng-class="extraclasses" class="btn btn-success btn-default ajax-modal" href="{$ WEBROOT $}murano/catalog/quick-add/{$ asset.service.murano_id $}">Launch</a>
</div>
</div>
<div ng-switch-when="bundle" ng-switch="asset.service.murano_package_name || '_undefined_'">
<div ng-switch-when="_undefined_"></div>
<div ng-switch-default ng-switch="asset.has_murano">
<a ng-switch-when="false" ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/">Unsupported</a>
<div ng-switch-when="true" ng-switch="asset.installed || '_undefined_'">
<a ng-switch-default ng-class="extraclasses" class="btn btn-primary btn-default ajax-modal" href="{$ WEBROOT $}murano/packages/import_bundle?name={$ asset.service.murano_package_name | encodeURIComponent $}&import_type=by_repo">Install</a>
<a ng-switch-when="true" ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/">Installed</a>
</div>
</div>
</div>
<div ng-switch-default>
<a ng-switch-when="false" ng-class="extraclasses" class="btn btn-default disabled ajax-modal" href="/">Unsupported</a>
</div>
</div>
</div>

View File

@ -243,7 +243,9 @@
};
angular.forEach(data.assets, function(asset) {
$scope.assets.push(asset);
if (asset.service.type == 'heat') {
if ('version' in asset.service && asset.service.version > 1) {
asset.disabled = true;
} else if (asset.service.type == 'heat') {
process(asset);
} else if (asset.service.type == 'murano') {
asset.validated = true;