urfaclient и array input

Технические вопросы по UTM 5.0
Ответить
NShut
Сообщения: 72
Зарегистрирован: Ср апр 01, 2009 12:39

urfaclient и array input

Сообщение NShut »

Здравствуйте. Второй день бьюсь об стену с официальным клиентом урфа.
Не могу понять как подать на вход данные массива через array. В примерах не нашел. На форуме искал тоже разными запросами.

все примеры расчитаны на выходящие данные, for и т.д.
мне же надо используя функцию rpcf_edit_tclass или rpcf_add_classes добавить группу айпи адресов, т.е. ежедневно её изменять динамически.
пишу так:
<parameter name="saddr" value="82.200.24.0"/>
<parameter name="saddr_mask" value="255.255.255.0"/>
...
но как указать второй адрес, пробовал так:
<parameter name="saddr" value="82.200.24.0" array_index="1"/>
ничего не вышло, данные принимаются но клиент подвисает без ошибок. выход по контрл+С. Сам программист и если надо писать For то ума не приложу как это сделать.
может просто не туда копаю. Маленький примерчик укажите, пусть даже не по этой функции.

Pulse
Сообщения: 945
Зарегистрирован: Вт окт 03, 2006 12:58

Сообщение Pulse »

Код: Выделить всё

    
<urfa>
<set dst="select_type" value="0" />
    <call function="rpcf_search_users_new">
    </call>
     <for name="w" from="0" count="size&#40;basic_account&#41;">
         <set dst="account_id" src="basic_account" src_index="w"/>

      <call function="rpcf_get_all_services_for_user"/>
</urfa>


NShut
Сообщения: 72
Зарегистрирован: Ср апр 01, 2009 12:39

Сообщение NShut »

to Pulse
таких примеров у меня куча, я дальше не могу понять
т.е. мне нужно добавить 20 подсетей
пример
<for name="w" from="0" count="2">
<set dst="192.168.0.0" dstmask="255.255.0.0" src_index="w"/>
<set dst="10.0.0.0" dstmask="255.0.0.0" src_index="w"/>
</for>
для меня выглядит извиняюсь как полный бред и как его изменить для конкретного указания списка одинаковых значений, причем их куча. я немогу понять
Следующий пример который попробовал тоже безрезультатен
<set dst="saddr" value="82.200.24.0" dst_index="1"/>
<set dst="saddr_mask" value="255.255.255.0" dst_index="1"/>

<set dst="saddr" value="12.200.24.0" dst_index="0"/>
<set dst="saddr_mask" value="255.255.255.0" dst_index="0"/>
сообщает что важный параметр saddr не указан

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

Вот у меня функция редактирования пользователя, посмотри в ней место где идет заполнение доп параметров

Код: Выделить всё

<?xml version="1.0"?>
<urfa>
<!-- Dlia poluchenia info polzovatelia -->
   <parameter name="user_id"/>

<!-- Parametri dopustimie k izmeneniu -->
   <parameter name="set_login"/>
   <parameter name="set_passport"/>
   <parameter name="set_full_name"/>
   <parameter name="set_actual_address"/>
   <parameter name="set_house_id"/>
   <parameter name="set_building"/>
   <parameter name="set_floor"/>
   <parameter name="set_flat_number"/>
   <parameter name="set_entrance"/>
   <parameter name="set_work_telephone" value="!unset!"/>
   <parameter name="set_home_telephone" value="!unset!"/>
   <parameter name="set_mobile_telephone" value="!unset!"/>
   <parameter name="set_comments" value="!unset!"/>
   <parameter name="set_connect_date"/>
   <parameter name="param_1"/>
   <parameter name="param_2"/>
   <parameter name="param_3"/>
   <parameter name="param_4"/>
   <parameter name="param_5"/>
   <parameter name="param_6"/>
   <parameter name="param_7"/>
   <parameter name="param_108"/>
   <parameter name="param_109"/>
   <parameter name="param_101"/>
   <parameter name="param_102"/>
   <parameter name="param_103"/>
   <parameter name="param_104" value="!unset!"/>
   <parameter name="param_108"/>
   <parameter name="param_109"/>
   <parameter name="param_110"/>
   <parameter name="param_111"/>
   <parameter name="param_112"/>
   <parameter name="param_113"/>
   <parameter name="param_114"/>
   <parameter name="param_115"/>

<!-- Poluchaem massiv dop parametrov -->
   <call function="rpcf_get_uaparam_list"/>

<!-- Poluchaem informatciu o polzovatele -->
   <call function="rpcf_get_userinfo"/>

<!-- Vnosim izmenenia s proverkoy i soxranaem -->
   <if variable="set_login" value="" condition="ne">
     <set dst="login" src="set_login" />
   </if>
   <if variable="set_passport" value="" condition="ne">
     <set dst="passport" src="set_passport" />
   </if>
   <if variable="set_full_name" value="" condition="ne">
     <set dst="full_name" src="set_full_name" />
   </if>
   <if variable="set_actual_address" value="" condition="ne">
     <set dst="act_address" src="set_actual_address" />
   </if>
   <if variable="set_house_id" value="" condition="ne">
     <set dst="house_id" src="set_house_id" />
   </if>
   <if variable="set_building" value="" condition="ne">
     <set dst="building" src="set_building" />
   </if>
   <if variable="set_floor" value="" condition="ne">
     <set dst="floor" src="set_floor" />
   </if>
   <if variable="set_flat_number" value="" condition="ne">
     <set dst="flat_number" src="set_flat_number" />
   </if>
   <if variable="set_entrance" value="" condition="ne">
     <set dst="entrance" src="set_entrance" />
   </if>
   <if variable="set_connect_date" value="" condition="ne">
     <set dst="connect_date" src="set_connect_date" />
   </if>
   <if variable="set_home_telephone" value="!unset!" condition="ne">
     <set dst="home_tel" src="set_home_telephone" />
   </if>
   <if variable="set_work_telephone" value="!unset!" condition="ne">
     <set dst="work_tel" src="set_work_telephone" />
   </if>
   <if variable="set_mobile_telephone" value="!unset!" condition="ne">
    <set dst="mob_tel" src="set_mobile_telephone" />
   </if>
   <if variable="set_comments" value="!unset!" condition="ne">
     <set dst="comments" src="set_comments" />
   </if>

   <for name="i" from="0" count="uparam_size">
     <set dst="magic" value="0" />
     <set dst="id_tmp" src="id" src_index="i"/>
     <for name="j" from="0" count="size&#40;parameter_id&#41;">
       <set dst="parameter_id_tmp" src="parameter_id" src_index="j"/>
       <if variable="parameter_id_tmp" value="id_tmp" condition="eq">
         <set dst="magic" value="1" />
       </if>
     </for>
     <if variable="magic" value="0" condition="eq">
       <set src="id_tmp" dst="parameter_id" dst_index="size&#40;parameter_value&#41;"/>
       <set dst="parameter_value" dst_index="size&#40;parameter_value&#41;" value=""/>
     </if>
   </for>

   <for name="i" from="0" count="size&#40;parameter_value&#41;">
     <set dst="parameter_id_tmp" src="parameter_id" src_index="i"/>

     <if variable="parameter_id_tmp" value="1" condition="eq">
         <set dst="parameter_value" dst_index="i" src="param_1" />
     </if>
     <if variable="parameter_id_tmp" value="2" condition="eq">
         <set dst="parameter_value" dst_index="i" src="param_2" />
     </if>
     <if variable="parameter_id_tmp" value="3" condition="eq">
       <if variable="param_3" value="" condition="ne">
         <set dst="parameter_value" dst_index="i" src="param_3" />
       </if>
     </if>
     <if variable="parameter_id_tmp" value="4" condition="eq">
       <if variable="param_4" value="" condition="ne">
         <set dst="parameter_value" dst_index="i" src="param_4" />
       </if>
     </if>
     <if variable="parameter_id_tmp" value="5" condition="eq">
       <if variable="param_5" value="" condition="ne">
         <set dst="parameter_value" dst_index="i" src="param_5" />
       </if>
     </if>
     <if variable="parameter_id_tmp" value="6" condition="eq">
         <set dst="parameter_value" dst_index="i" src="param_6" />
     </if>
     <if variable="parameter_id_tmp" value="7" condition="eq">
         <set dst="parameter_value" dst_index="i" src="param_7" />
     </if>
     <if variable="parameter_id_tmp" value="101" condition="eq">
       <if variable="param_101" value="" condition="ne">
         <set dst="parameter_value" dst_index="i" src="param_101" />
       </if>
     </if>
     <if variable="parameter_id_tmp" value="102" condition="eq">
       <if variable="param_102" value="" condition="ne">
         <set dst="parameter_value" dst_index="i" src="param_102" />
       </if>
     </if>
     <if variable="parameter_id_tmp" value="103" condition="eq">
       <if variable="param_103" value="" condition="ne">
         <set dst="parameter_value" dst_index="i" src="param_103" />
       </if>
     </if>
     <if variable="parameter_id_tmp" value="104" condition="eq">
       <if variable="param_104" value="!unset!" condition="ne">
         <set dst="parameter_value" dst_index="i" src="param_104" />
       </if>
     </if>
     <if variable="parameter_id_tmp" value="108" condition="eq">
       <if variable="param_108" value="" condition="ne">
         <set dst="parameter_value" dst_index="i" src="param_108" />
       </if>
     </if>
     <if variable="parameter_id_tmp" value="109" condition="eq">
       <if variable="param_109" value="" condition="ne">
         <set dst="parameter_value" dst_index="i" src="param_109" />
       </if>
     </if>
     <if variable="parameter_id_tmp" value="110" condition="eq">
       <if variable="param_110" value="" condition="ne">
         <set dst="parameter_value" dst_index="i" src="param_110" />
       </if>
     </if>
     <if variable="parameter_id_tmp" value="111" condition="eq">
       <if variable="param_111" value="" condition="ne">
         <set dst="parameter_value" dst_index="i" src="param_111" />
       </if>
     </if>
     <if variable="parameter_id_tmp" value="112" condition="eq">
       <if variable="param_112" value="" condition="ne">
         <set dst="parameter_value" dst_index="i" src="param_112" />
       </if>
     </if>
     <if variable="parameter_id_tmp" value="113" condition="eq">
       <if variable="param_113" value="" condition="ne">
         <set dst="parameter_value" dst_index="i" src="param_113" />
       </if>
     </if>
     <if variable="parameter_id_tmp" value="114" condition="eq">
       <if variable="param_114" value="" condition="ne">
         <set dst="parameter_value" dst_index="i" src="param_114" />
       </if>
     </if>
     <if variable="parameter_id_tmp" value="115" condition="eq">
       <if variable="param_115" value="" condition="ne">
         <set dst="parameter_value" dst_index="i" src="param_115" />
       </if>
     </if>
   </for>
   <call function="rpcf_add_user"/>
</urfa>

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

Сори я выше ответил неудачно.

NShut
Сообщения: 72
Зарегистрирован: Ср апр 01, 2009 12:39

Сообщение NShut »

:D победил. Нет всетаки создатели молодцы. Мало того что клиент денег стоит и в доке почти ниче нет по клиенту, так еще в api.xml строчку забыли:
<integer name="tcp_flags" array_index="i"/>
в общем мой пример для функции rpcf_edit_tclass:
команда запуска:
/netup/utm5/bin/utm5_urfaclient -x /netup/utm5/xml -a main -datafile /netup/utm5/xml/data.xml
файл main.xml
<urfa>
<call function="rpcf_edit_tclass">
<parameter name="tclass_id" value="50"/>
<parameter name="tclass_name" value="noname"/>
<parameter name="graph_color" value="52428"/>
<parameter name="is_display" value="1"/>
<parameter name="is_fill" value="0"/>
<parameter name="time_range_id" value="0"/>
<parameter name="dont_save" value="1"/>
<parameter name="local_traf_policy" value="0"/>
<parameter name="tclass_count" value="2"/>
</call>
</urfa>
файл data.xml
<urfa>
<array name="saddr" dimension="1" comment="">
<dim>79.175.39.0</dim>
<dim>212.192.163.0</dim>
</array>
<array name="saddr_mask" dimension="1" comment="">
<dim>255.255.255.128</dim>
<dim>255.255.255.0</dim>
</array>
......(также все параметры описываются)

<array name="sport" dimension="1" comment="">
<dim>0</dim>
<dim>0</dim>
</array>
</urfa>
конечно для создания файла был накидан скрипт pl, не в ручную же все делать. Пошел за пивом и делать бэкап :)

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

А ты где вообще взял про datafile /netup/utm5/xml/data.xml

Вышли мне плиз доку на мыло evgene@olympus.ru

NShut
Сообщения: 72
Зарегистрирован: Ср апр 01, 2009 12:39

Сообщение NShut »

на почту кинул, а вобще случайно нашел
urfaclient --help

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

Кстати в 007 появился вроде как такой пример:

Код: Выделить всё

<?xml version="1.0"?>
<urfa>
    <array name="pole_code_array" dimension="1" comment="List of poles to output">
        <dim comment="discount_period_id">4</dim>
        <dim comment="create_date">6</dim> 
        <dim comment="last_change">7</dim>
        <dim comment="who_create">8</dim>
        <dim comment="who_change">9</dim>
        <dim comment="is_juridical">10</dim>
        <dim comment="juridical_address">11</dim>
        <dim comment="actual_address">12</dim>
        <dim comment="work_telephone">13</dim>
        <dim comment="home_telephone">14</dim>
        <dim comment="mobile_telephone">15</dim>
        <dim comment="web_page">16</dim>
        <dim comment="icq_number">17</dim>
        <dim comment="tax_number">18</dim>
        <dim comment="kpp_number">19</dim>
        <dim comment="house_id">21</dim>
        <dim comment="flat_number">22</dim>
        <dim comment="entrance">23</dim>
        <dim comment="floor">24</dim>
        <dim comment="email">25</dim>
        <dim comment="passport">26</dim>
        <dim comment="district">40</dim>
        <dim comment="building">41</dim> 
    </array>

    <array name="what_id" dimension="1" comment="">
        <dim>1</dim>
        <dim>2</dim> 
    </array>

    <array name="criteria_id" dimension="1" comment="">
        <dim>8</dim>
        <dim>1</dim> 
    </array>

    <array name="pattern" dimension="1" comment="">
        <dim>4</dim>
        <dim>vvv</dim> 
    </array>
        
</urfa>

Ответить