mirror of
https://github.com/google/nomulus.git
synced 2025-05-07 23:38:21 +02:00
110 lines
2.8 KiB
Text
110 lines
2.8 KiB
Text
// Copyright 2016 The Nomulus Authors. All Rights Reserved.
|
|
//
|
|
// 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.
|
|
|
|
{namespace registry.soy.registrar.hostepp autoescape="strict"}
|
|
|
|
|
|
/**
|
|
* Host create request.
|
|
* @param item
|
|
* @param clTrid
|
|
*/
|
|
{template .create}
|
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
|
<command>
|
|
<create>
|
|
<host:create xmlns:host="urn:ietf:params:xml:ns:host-1.0">
|
|
<host:name>{$item['host:name']}</host:name>
|
|
{if isNonnull($item['host:addr'])}
|
|
{foreach $addr in $item['host:addr']}
|
|
{let $type: strContains($addr['value'], ':') ? 'v6' : 'v4' /}
|
|
<host:addr ip="{$type}">{$addr['value']}</host:addr>
|
|
{/foreach}
|
|
{/if}
|
|
</host:create>
|
|
</create>
|
|
<clTRID>{$clTrid}</clTRID>
|
|
</command>
|
|
</epp>
|
|
{/template}
|
|
|
|
|
|
/**
|
|
* Host update request.
|
|
* @param item
|
|
* @param clTrid
|
|
* @param? addAddrs list of addrs to add.
|
|
* @param? remAddrs list of addrs to remove.
|
|
*/
|
|
{template .update}
|
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
|
<command>
|
|
<update>
|
|
<host:update xmlns:host="urn:ietf:params:xml:ns:host-1.0">
|
|
<host:name>{$item['host:name']}</host:name>
|
|
{call .addRem}
|
|
{param isAdd: true /}
|
|
{param addrs: $addAddrs /}
|
|
{/call}
|
|
{call .addRem}
|
|
{param isAdd: false /}
|
|
{param addrs: $remAddrs /}
|
|
{/call}
|
|
{if $item['host:name'] != $item['host:chgName']}
|
|
<host:chg>
|
|
<host:name>{$item['host:chgName']}</host:name>
|
|
</host:chg>
|
|
{/if}
|
|
</host:update>
|
|
</update>
|
|
<clTRID>{$clTrid}</clTRID>
|
|
</command>
|
|
</epp>
|
|
{/template}
|
|
|
|
|
|
/**
|
|
* Host info request.
|
|
* @param clTrid
|
|
* @param id The hostname (named "id" to preserve component API).
|
|
*/
|
|
{template .info}
|
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
|
<command>
|
|
<info>
|
|
<host:info xmlns:host="urn:ietf:params:xml:ns:host-1.0">
|
|
<host:name>{$id}</host:name>
|
|
</host:info>
|
|
</info>
|
|
<clTRID>{$clTrid}</clTRID>
|
|
</command>
|
|
</epp>
|
|
{/template}
|
|
|
|
|
|
/**
|
|
* @param isAdd
|
|
* @param? addrs
|
|
*/
|
|
{template .addRem}
|
|
{let $tagName: $isAdd ? 'host:add' : 'host:rem' /}
|
|
{if length($addrs) > 0}
|
|
<{$tagName}>
|
|
{foreach $addr in $addrs}
|
|
{let $type: strContains($addr, ':') ? 'v6' : 'v4' /}
|
|
<host:addr ip="{$type}">{$addr}</host:addr>
|
|
{/foreach}
|
|
</{$tagName}>
|
|
{/if}
|
|
{/template}
|