<?xml version="1.0" encoding="windows-1252"?>
<node id="359100" title="Boldra's scratchpad" created="2004-06-01 23:27:05" updated="2005-08-15 06:56:23">
<type id="182711">
scratchpad</type>
<author id="34613">
Boldra</author>
<data>
<field name="doctext">
&lt;c&gt;sub all_arguments {
    my ( $self, $machine_template ) = @_;
    my @all_sids = map { $_-&gt;sid } $machine_template-&gt;all_systems;
    return (
        Class-&gt;new_from_instance( $self, 
                                  sid =&gt; { 
                                      maximum_size =&gt; 3,                  
                                      valid_values =&gt; \@all_sids 
                                  } 
        ),



        Class-&gt;new_from_instance( hostname =&gt; $self ),



        Class-&gt;new_from_moose_meta_attribute( 
                   $self-&gt;meta-&gt;get_attribute('sid') =&gt; { 
                               maximum_size =&gt; 3, 
                               valid_values =&gt; \@all_sids 
                   } 
        ),



        Class-&gt;new_from_moose_meta_attribute( 
                      $self-&gt;meta-&gt;get_attribute('hostname')
        ),
    );
}







sub all_arguments_arrayref {
    my ( $self, $machine_template ) = @_;
    my @all_sids = map { $_-&gt;sid } $machine_template-&gt;all_systems;
    my @arguments = Cloud::SSF::PluginArgument-&gt;new_from_moose_meta_attribute(
        $self-&gt;meta-&gt;get_attribute('sid'), {
            maximum_length =&gt; 3,
            valid_values   =&gt; \@all_sids,
        }
        ),
      Cloud::SSF::PluginArgument-&gt;new_from_moose_meta_attribute(
        $self-&gt;meta-&gt;get_attribute('depends_on'), {
            children    =&gt; [
                Cloud::SSF::PluginArgument-&gt;new(
                    {
                        name        =&gt; 'sid',
                        type        =&gt; 'Str',
                        is_required =&gt; 1,
                        children    =&gt; [],
                        valid_value =&gt; [],
                ),
                Cloud::SSF::PluginArgument-&gt;new(
                    {
                        name        =&gt; 'remote_lgtst',
                        type        =&gt; 'HashRef',
                        is_required =&gt; 1,
                        children    =&gt; [
                            Cloud::SSF::PluginArgument-&gt;new(
                                {
                                    name        =&gt; 'port_nr',
                                    is_required =&gt; 1,
                                    type        =&gt; 'Int',
                                }
                            ),
                            Cloud::SSF::PluginArgument-&gt;new(
                                {
                                    name        =&gt; 'port_nr',
                                    type        =&gt; 'Int',
                                    is_required =&gt; 1,
                                }
                            ),
                        ],
                    }
                ),
            ],
        }
      );
    return \@arguments;
}
&lt;/c&gt;</field>
</data>
</node>
