1 /*
   2  * CDDL HEADER START
   3  *
   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License, Version 1.0 only
   6  * (the "License").  You may not use this file except in compliance
   7  * with the License.
   8  *
   9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  10  * or http://www.opensolaris.org/os/licensing.
  11  * See the License for the specific language governing permissions
  12  * and limitations under the License.
  13  *
  14  * When distributing Covered Code, include this CDDL HEADER in each
  15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  16  * If applicable, add the following below this CDDL HEADER, with the
  17  * fields enclosed by brackets "[]" replaced with your own identifying
  18  * information: Portions Copyright [yyyy] [name of copyright owner]
  19  *
  20  * CDDL HEADER END
  21  */
  22 /*
  23  * ident        "%Z%%M% %I%     %E% SMI"
  24  *
  25  * Copyright (c) 2001 by Sun Microsystems, Inc.
  26  * All rights reserved.
  27  */
  28 package com.sun.dhcpmgr.cli.pntadm;
  29 
  30 import com.sun.dhcpmgr.data.Network;
  31 import com.sun.dhcpmgr.bridge.NoEntryException;
  32 import com.sun.dhcpmgr.bridge.NoDefaultsException;
  33 
  34 import java.lang.IllegalArgumentException;
  35 
  36 /**
  37  * The main class for the "list network tables" functionality
  38  * of pntadm.
  39  */
  40 public class ListNetworkTables extends PntAdmFunction {
  41 
  42     /**
  43      * The valid options associated with listing network tables.
  44      */
  45     static final int supportedOptions[] = {
  46         PntAdm.RESOURCE,
  47         PntAdm.RESOURCE_CONFIG,
  48         PntAdm.PATH
  49     };
  50 
  51     /**
  52      * Constructs a ListNetworkTables object.
  53      */
  54     public ListNetworkTables() {
  55 
  56         validOptions = supportedOptions;
  57 
  58     } // constructor
  59 
  60     /**
  61      * Returns the option flag for this function.
  62      * @returns the option flag for this function.
  63      */
  64     public int getFunctionFlag() {
  65         return (PntAdm.LIST_NETWORK_TABLES);
  66     }
  67 
  68     /**
  69      * Executes the "list network tables" functionality.
  70      * @return PntAdm.SUCCESS, PntAdm.ENOENT, PntAdm.WARNING, or
  71      * PntAdm.CRITICAL
  72      */
  73     public int execute()
  74         throws IllegalArgumentException {
  75 
  76         int returnCode = PntAdm.SUCCESS;
  77 
  78         // Get the list of networks.
  79         //
  80         Network [] networks = null;
  81         try {
  82                 networks = getNetMgr().getNetworks(getDhcpDatastore());
  83         } catch (NoEntryException e) {
  84             // No network tables
  85         } catch (Throwable e) {
  86             printErrMessage(getMessage(e));
  87             return (PntAdm.WARNING);
  88         }
  89 
  90         if (networks != null) {
  91             for (int i = 0; i < networks.length; i++) {
  92                 System.out.println(networks[i].toString());
  93             }
  94         }
  95 
  96         return (returnCode);
  97 
  98     } // execute
  99 
 100 } // ListNetworkTables