Automation

last person joined: 2 days ago 

Ask questions and share experiences about Apstra, Paragon, and all things network automation.
  • 1.  could someone help me to correct this scripts?

     
    Posted 02-27-2012 18:56

    I am trying to write my first script which is for modify file name in /var/home/lab directory. for example, there are two files in this directory:

    _juniper.conf.gz_20120215_092212
    _juniper.conf.gz_20120215_092732

    I want to use jcs:split function to separate them and use the number part of the filename instead the original filename. however I'm failed. The error code I pasted below.

     

    version 1.0;
    ns junos = "http://xml.juniper.net/junos/*/junos";
    ns xnm = "http://xml.juniper.net/xnm/1.1/xnm";
    ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0";

    import "../import/junos.xsl";

    match/{
    <op-script-results> {
    var $rpc = <file-list> {
    <path>"/var/home/lab";
    }
    var $out = jcs:invoke($rpc);
    for-each (directory-list/directory name/file-information){
    <output>file-name;
    var $filename=file-name;
    var $postfix=jcs:split("_",$filename);
    rename $filename $postfix;
    }
    }
    }

     

     

    hostname> op rename               
    error: ^

    error: /var/db/scripts/op/rename.slax:19: error: /var/db/scripts/op/rename.slax:18: parse error, unexpected T_BARE before 'rename':

    error: ^

    error: /var/db/scripts/op/rename.slax:21: error: /var/db/scripts/op/rename.slax:20: parse error, unexpected L_CBRACE before '}':

    error: ^

    error: error: /var/db/scripts/op/rename.slax: 3 errors detected during parsing

    error: error reading stylesheet: rename.slax

    error: /var/db/scripts/op/rename.slax:15: error: /var/db/scripts/op/rename.slax:14: parse error, unexpected T_BARE, expecting L_CPAREN before 'name':
    error: ^
    error: /var/db/scripts/op/rename.slax:19: error: /var/db/scripts/op/rename.slax:18: parse error, unexpected T_BARE before 'rename':
    error: ^
    error: /var/db/scripts/op/rename.slax:21: error: /var/db/scripts/op/rename.slax:20: parse error, unexpected L_CBRACE before '}':
    error: ^
    error: error: /var/db/scripts/op/rename.slax: 3 errors detected during parsing
    error: error reading stylesheet: rename.slax



  • 2.  RE: could someone help me to correct this scripts?
    Best Answer

    Posted 02-28-2012 00:40

    Hi

     

    I think I managed to make it work. Please compare it carefully to your variant because there

    were several things to correct.

     

    version 1.0;
    
    ns junos = "http://xml.juniper.net/junos/*/junos";
    ns xnm = "http://xml.juniper.net/xnm/1.1/xnm";
    ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0";
    
    import "../import/junos.xsl";
    
    match / {
    	<op-script-results> {
    		var $rpc = <file-list> {
    			<path> "/var/home/lab";
    		}
    		var $out = jcs:invoke($rpc);
    
    		for-each ($out/directory/file-information[contains(file-name, "juniper.conf.gz")]) {
    
    			var $filename=file-name;
    			<output> "Found file " _ $filename;
    
    			var $postfix=jcs:split("_", $filename);
    			var $new-name = $postfix[3] _ "-" _ $postfix[4] ;
    
    			<output> "Will rename it to " _ $new-name;
    			<output>;
    
    			var $rpc-rename = <command> "file rename /var/home/lab/" _ $filename _ " /var/home/lab/" _ $new-name ; 
    			var $result = jcs:invoke($rpc-rename);
    			/* you should add some error checking here */
    
    		}
    	}
    }

     

    Here is how it works

     

    lab@mxA-1> file list | match 2012
    _juniper.conf.gz_20120215_092732
    _juniper.conf.gz_20120215_092733
    _juniper.conf.gz_20120215_092734
    
    lab@mxA-1> op rename.slax    
    Found file _juniper.conf.gz_20120215_092732
    Will rename it to 20120215-092732
    
    Found file _juniper.conf.gz_20120215_092733
    Will rename it to 20120215-092733
    
    Found file _juniper.conf.gz_20120215_092734
    Will rename it to 20120215-092734
    
    lab@mxA-1> file list | match 2012 
    20120215-092732
    20120215-092733
    20120215-092734

     



  • 3.  RE: could someone help me to correct this scripts?

     
    Posted 03-26-2012 23:38

    Thank you very much!!