def handle_create(self): props = self.prepare_properties(self.properties, self.physical_resource_name()) neutron_utils.resolve_network(self.neutron(), props, self.NETWORK, "network_id") self._prepare_list_properties(props) port = self.neutron().create_port({"port": props})["port"] self.resource_id_set(port["id"])
def handle_update(self, json_snippet, tmpl_diff, prop_diff): props = self.prepare_update_properties(json_snippet) connections = props.pop(self.CONNECTIONS) if self.DEVICES in prop_diff: self.handle_delete() self.properties.data.update(props) self.handle_create() return else: props.pop(self.DEVICES, None) if self.NAME in prop_diff: self.neutron().update_network_gateway(self.resource_id, {'network_gateway': props}) if self.CONNECTIONS in prop_diff: for connection in self.properties[self.CONNECTIONS]: try: neutron_utils.resolve_network(self.neutron(), connection, self.NETWORK, 'network_id') if self.NETWORK in connection.keys(): connection.pop(self.NETWORK) self.neutron().disconnect_network_gateway( self.resource_id, connection) except NeutronClientException as ex: self._handle_not_found_exception(ex) for connection in connections: neutron_utils.resolve_network(self.neutron(), connection, self.NETWORK, 'network_id') if self.NETWORK in connection.keys(): connection.pop(self.NETWORK) self.neutron().connect_network_gateway(self.resource_id, connection)
def handle_create(self): props = self.prepare_properties(self.properties, self.physical_resource_name()) neutron_utils.resolve_network(self.neutron(), props, self.NETWORK, 'network_id') self._null_gateway_ip(props) subnet = self.neutron().create_subnet({'subnet': props})['subnet'] self.resource_id_set(subnet['id'])
def handle_create(self): props = self.prepare_properties(self.properties, self.physical_resource_name()) neutron_utils.resolve_network(self.neutron(), props, self.FLOATING_NETWORK, 'floating_network_id') fip = self.neutron().create_floatingip({'floatingip': props})['floatingip'] self.resource_id_set(fip['id'])
def handle_create(self): props = self.prepare_properties( self.properties, self.physical_resource_name()) neutron_utils.resolve_network( self.neutron(), props, self.NETWORK, 'network_id') self._null_gateway_ip(props) subnet = self.neutron().create_subnet({'subnet': props})['subnet'] self.resource_id_set(subnet['id'])
def prepare_properties(self, properties, name): props = super(Router, self).prepare_properties(properties, name) gateway = props.get(self.EXTERNAL_GATEWAY) if gateway: neutron_utils.resolve_network( self.neutron(), gateway, self.EXTERNAL_GATEWAY_NETWORK, 'network_id') if gateway[self.EXTERNAL_GATEWAY_ENABLE_SNAT] is None: del gateway[self.EXTERNAL_GATEWAY_ENABLE_SNAT] return props
def prepare_properties(self, properties, name): props = super(Router, self).prepare_properties(properties, name) gateway = props.get(self.EXTERNAL_GATEWAY) if gateway: neutron_utils.resolve_network(self.neutron(), gateway, self.EXTERNAL_GATEWAY_NETWORK, 'network_id') if gateway[self.EXTERNAL_GATEWAY_ENABLE_SNAT] is None: del gateway[self.EXTERNAL_GATEWAY_ENABLE_SNAT] return props
def handle_create(self): props = self.prepare_properties( self.properties, self.physical_resource_name()) neutron_utils.resolve_network( self.neutron(), props, self.FLOATING_NETWORK, 'floating_network_id') fip = self.neutron().create_floatingip({ 'floatingip': props})['floatingip'] self.resource_id_set(fip['id'])
def handle_create(self): props = self.prepare_properties(self.properties, self.physical_resource_name()) neutron_utils.resolve_network(self.neutron(), props, self.NETWORK, 'network_id') self._prepare_list_properties(props) if not props['fixed_ips']: del (props['fixed_ips']) port = self.neutron().create_port({'port': props})['port'] self.resource_id_set(port['id'])
def handle_create(self): props = self.prepare_properties( self.properties, self.physical_resource_name()) neutron_utils.resolve_network(self.neutron(), props, self.NETWORK, 'network_id') self._prepare_list_properties(props) if not props['fixed_ips']: del(props['fixed_ips']) port = self.neutron().create_port({'port': props})['port'] self.resource_id_set(port['id'])
def handle_create(self): props = self.prepare_properties(self.properties, self.physical_resource_name()) connections = props.pop(self.CONNECTIONS) ret = self.neutron().create_network_gateway({'network_gateway': props})['network_gateway'] for connection in connections: neutron_utils.resolve_network(self.neutron(), connection, self.NETWORK, 'network_id') if self.NETWORK in connection.keys(): connection.pop(self.NETWORK) self.neutron().connect_network_gateway(ret['id'], connection) self.resource_id_set(ret['id'])
def handle_create(self): router_id = self.properties.get(self.ROUTER_ID) network_id = neutron_utils.resolve_network(self.neutron(), dict(self.properties), self.NETWORK, 'network_id') self.neutron().add_gateway_router(router_id, {'network_id': network_id}) self.resource_id_set('%s:%s' % (router_id, network_id))
def handle_create(self): router_id = self.properties.get(self.ROUTER_ID) network_id = neutron_utils.resolve_network( self.neutron(), dict(self.properties), self.NETWORK, 'network_id') self.neutron().add_gateway_router( router_id, {'network_id': network_id}) self.resource_id_set('%s:%s' % (router_id, network_id))
def handle_create(self): props = self.prepare_properties( self.properties, self.physical_resource_name()) connections = props.pop(self.CONNECTIONS) ret = self.neutron().create_network_gateway( {'network_gateway': props})['network_gateway'] for connection in connections: neutron_utils.resolve_network( self.neutron(), connection, self.NETWORK, 'network_id') if self.NETWORK in connection.keys(): connection.pop(self.NETWORK) self.neutron().connect_network_gateway( ret['id'], connection ) self.resource_id_set(ret['id'])
def handle_delete(self): if not self.resource_id: return client = self.neutron() connections = self.properties[self.CONNECTIONS] for connection in connections: try: neutron_utils.resolve_network(self.neutron(), connection, self.NETWORK, 'network_id') if self.NETWORK in connection.keys(): connection.pop(self.NETWORK) client.disconnect_network_gateway(self.resource_id, connection) except NeutronClientException as ex: self._handle_not_found_exception(ex) try: client.delete_network_gateway(self.resource_id) except NeutronClientException as ex: self._handle_not_found_exception(ex) else: return self._delete_task()
def handle_update(self, json_snippet, tmpl_diff, prop_diff): props = self.prepare_update_properties(json_snippet) connections = props.pop(self.CONNECTIONS) if self.DEVICES in prop_diff: self.handle_delete() self.properties.data.update(props) self.handle_create() return else: props.pop(self.DEVICES, None) if self.NAME in prop_diff: self.neutron().update_network_gateway( self.resource_id, {'network_gateway': props}) if self.CONNECTIONS in prop_diff: for connection in self.properties[self.CONNECTIONS]: try: neutron_utils.resolve_network( self.neutron(), connection, self.NETWORK, 'network_id') if self.NETWORK in connection.keys(): connection.pop(self.NETWORK) self.neutron().disconnect_network_gateway( self.resource_id, connection ) except NeutronClientException as ex: self._handle_not_found_exception(ex) for connection in connections: neutron_utils.resolve_network( self.neutron(), connection, self.NETWORK, 'network_id') if self.NETWORK in connection.keys(): connection.pop(self.NETWORK) self.neutron().connect_network_gateway( self.resource_id, connection )
def handle_delete(self): if not self.resource_id: return client = self.neutron() connections = self.properties[self.CONNECTIONS] for connection in connections: try: neutron_utils.resolve_network( self.neutron(), connection, self.NETWORK, 'network_id') if self.NETWORK in connection.keys(): connection.pop(self.NETWORK) client.disconnect_network_gateway( self.resource_id, connection ) except NeutronClientException as ex: self._handle_not_found_exception(ex) try: client.delete_network_gateway(self.resource_id) except NeutronClientException as ex: self._handle_not_found_exception(ex) else: return self._delete_task()