# Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. Namespaces: =: io.murano.resources std: io.murano sys: io.murano.system Name: NovaNetwork Extends: Network Methods: joinInstance: Arguments: - instance: Contract: $.class(Instance).notNull() - securityGroupName: Contract: $.string() - assignFloatingIp: Contract: $.bool().notNull() - sharedIps: Contract: - $.class(std:SharedIp) Body: - $fipName: null - $template: null - $instanceFipOutput: null - $instanceResources: [] - $instanceOutputs: [] - If: $assignFloatingIp Then: - $instanceFipOutput: $instance.name + '-floatingIPaddress' - $fipName: format('fip-nn-{0}', $instance.name) - $template: resources: $fipName: type: 'OS::Nova::FloatingIP' $fipName + 'Assignment': type: 'OS::Nova::FloatingIPAssociation' properties: floating_ip: get_resource: $fipName server_id: get_resource: $instance.name outputs: $instanceFipOutput: value: get_attr: [$fipName, ip] description: format('Floating IP of {0}', $instance.name) - $instanceResources: [$fipName, $fipName + 'Assignment'] - $instanceOutputs: [$instanceFipOutput] - Return: template: $template secGroupName: get_resource: $securityGroupName instanceFipOutput: $instanceFipOutput instanceResources: $instanceResources instanceOutputs: $instanceOutputs generateSecurityGroupManager: Arguments: - environment: Contract: $.class(std:Environment).notNull() Body: - Return: new(sys:AwsSecurityGroupManager, environment => $environment) describe: Body: - Return: provider: NovaNetwork